LarpixClient/electron/node_modules/electron-updater/out/providers/GenericProvider.js
2026-05-10 14:02:17 +02:00

51 lines
No EOL
2.2 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GenericProvider = void 0;
const builder_util_runtime_1 = require("builder-util-runtime");
const util_1 = require("../util");
const Provider_1 = require("./Provider");
class GenericProvider extends Provider_1.Provider {
constructor(configuration, updater, runtimeOptions) {
super(runtimeOptions);
this.configuration = configuration;
this.updater = updater;
this.baseUrl = util_1.newBaseUrl(this.configuration.url);
}
get channel() {
const result = this.updater.channel || this.configuration.channel;
return result == null ? this.getDefaultChannelName() : this.getCustomChannelName(result);
}
async getLatestVersion() {
const channelFile = util_1.getChannelFilename(this.channel);
const channelUrl = util_1.newUrlFromBase(channelFile, this.baseUrl, this.updater.isAddNoCacheQuery);
for (let attemptNumber = 0;; attemptNumber++) {
try {
return Provider_1.parseUpdateInfo(await this.httpRequest(channelUrl), channelFile, channelUrl);
}
catch (e) {
if (e instanceof builder_util_runtime_1.HttpError && e.statusCode === 404) {
throw builder_util_runtime_1.newError(`Cannot find channel "${channelFile}" update info: ${e.stack || e.message}`, "ERR_UPDATER_CHANNEL_FILE_NOT_FOUND");
}
else if (e.code === "ECONNREFUSED") {
if (attemptNumber < 3) {
await new Promise((resolve, reject) => {
try {
setTimeout(resolve, 1000 * attemptNumber);
}
catch (e) {
reject(e);
}
});
continue;
}
}
throw e;
}
}
}
resolveFiles(updateInfo) {
return Provider_1.resolveFiles(updateInfo, this.baseUrl);
}
}
exports.GenericProvider = GenericProvider;
//# sourceMappingURL=GenericProvider.js.map