UNPKG

@electron-forge/maker-zip

Version:

ZIP maker for Electron Forge

58 lines • 6.08 kB
import path from 'node:path'; import { promisify } from 'node:util'; import { writeJson } from '@electron-forge/core-utils'; import { MakerBase } from '@electron-forge/maker-base'; import { zip } from 'cross-zip'; export default class MakerZIP extends MakerBase { name = 'zip'; defaultPlatforms = ['darwin', 'mas', 'win32', 'linux']; isSupportedOnCurrentPlatform() { return true; } async make({ dir, makeDir, appName, packageJSON, targetArch, targetPlatform, }) { const zipDir = ['darwin', 'mas'].includes(targetPlatform) ? path.resolve(dir, `${appName}.app`) : dir; const zipName = `${path.basename(dir)}-${packageJSON.version}.zip`; const zipPath = path.resolve(makeDir, 'zip', targetPlatform, targetArch, zipName); await this.ensureFile(zipPath); await promisify(zip)(zipDir, zipPath); // Only generate RELEASES.json for darwin builds (not MAS) if (targetPlatform === 'darwin' && this.config.macUpdateManifestBaseUrl) { const parsed = new URL(this.config.macUpdateManifestBaseUrl); parsed.pathname += '/RELEASES.json'; const response = await fetch(parsed.toString()); let currentValue = { currentRelease: '', releases: [], }; if (response.status === 200) { currentValue = (await response.json()); } const updateUrl = new URL(this.config.macUpdateManifestBaseUrl); updateUrl.pathname += `/${zipName}`; // Remove existing release if it is already in the manifest currentValue.releases = currentValue.releases || []; currentValue.releases = currentValue.releases.filter((release) => release.version !== packageJSON.version); // Add the current version as the current release currentValue.currentRelease = packageJSON.version; currentValue.releases.push({ version: packageJSON.version, updateTo: { name: `${appName} v${packageJSON.version}`, version: packageJSON.version, pub_date: new Date().toISOString(), url: updateUrl.toString(), notes: this.config.macUpdateReleaseNotes || '', }, }); const releasesPath = path.resolve(makeDir, 'zip', targetPlatform, targetArch, 'RELEASES.json'); await this.ensureFile(releasesPath); await writeJson(releasesPath, currentValue); return [zipPath, releasesPath]; } return [zipPath]; } } export { MakerZIP }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFrZXJaSVAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTWFrZXJaSVAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFFckUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQW9CaEMsTUFBTSxDQUFDLE9BQU8sT0FBTyxRQUFTLFNBQVEsU0FBeUI7SUFDN0QsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUViLGdCQUFnQixHQUFvQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXhFLDRCQUE0QjtRQUMxQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQ1QsR0FBRyxFQUNILE9BQU8sRUFDUCxPQUFPLEVBQ1AsV0FBVyxFQUNYLFVBQVUsRUFDVixjQUFjLEdBQ0Q7UUFDYixNQUFNLE1BQU0sR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sTUFBTSxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFFUixNQUFNLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLE9BQU8sTUFBTSxDQUFDO1FBQ25FLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQzFCLE9BQU8sRUFDUCxLQUFLLEVBQ0wsY0FBYyxFQUNkLFVBQVUs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