@electron-forge/maker-squirrel
Version:
Squirrel maker for Electron Forge
57 lines • 5.91 kB
JavaScript
import fs from 'node:fs/promises';
import os from 'node:os';
import path from 'node:path';
import { pathExists } from '@electron-forge/core-utils';
import { MakerBase } from '@electron-forge/maker-base';
import { convertVersion, createWindowsInstaller, } from 'electron-winstaller';
export default class MakerSquirrel extends MakerBase {
name = 'squirrel';
defaultPlatforms = ['win32'];
isSupportedOnCurrentPlatform() {
return (this.isInstalled('electron-winstaller') &&
!process.env.DISABLE_SQUIRREL_TEST);
}
async make({ dir, makeDir, targetArch, packageJSON, appName, forgeConfig, }) {
const outPath = path.resolve(makeDir, `squirrel.windows/${targetArch}`);
await this.ensureDirectory(outPath);
const tmpFolder = await fs.mkdtemp(path.resolve(os.tmpdir(), 'squirrel-maker-'));
await fs.cp(dir, tmpFolder, { recursive: true });
try {
const winstallerConfig = {
name: typeof packageJSON.name === 'string'
? packageJSON.name.replace(/-/g, '_')
: undefined, // squirrel hates hyphens
title: appName,
noMsi: true,
exe: `${forgeConfig.packagerConfig.executableName || appName}.exe`,
setupExe: `${appName}-${packageJSON.version} Setup.exe`,
...this.config,
appDirectory: tmpFolder,
outputDirectory: outPath,
};
await createWindowsInstaller(winstallerConfig);
const nupkgVersion = convertVersion(packageJSON.version);
const artifacts = [
path.resolve(outPath, 'RELEASES'),
path.resolve(outPath, winstallerConfig.setupExe || `${appName}Setup.exe`),
path.resolve(outPath, `${winstallerConfig.name}-${nupkgVersion}-full.nupkg`),
];
const deltaPath = path.resolve(outPath, `${winstallerConfig.name}-${nupkgVersion}-delta.nupkg`);
if (winstallerConfig.remoteReleases &&
!winstallerConfig.noDelta &&
(await pathExists(deltaPath))) {
artifacts.push(deltaPath);
}
const msiPath = path.resolve(outPath, winstallerConfig.setupMsi || `${appName}Setup.msi`);
if (!winstallerConfig.noMsi && (await pathExists(msiPath))) {
artifacts.push(msiPath);
}
return artifacts;
}
finally {
await fs.rm(tmpFolder, { recursive: true, force: true });
}
}
}
export { MakerSquirrel };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFrZXJTcXVpcnJlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9NYWtlclNxdWlycmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFFN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFFckUsT0FBTyxFQUNMLGNBQWMsRUFDZCxzQkFBc0IsR0FFdkIsTUFBTSxxQkFBcUIsQ0FBQztBQU83QixNQUFNLENBQUMsT0FBTyxPQUFPLGFBQWMsU0FBUSxTQUE4QjtJQUN2RSxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBRWxCLGdCQUFnQixHQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTlDLDRCQUE0QjtRQUMxQixPQUFPLENBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztZQUN2QyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUNULEdBQUcsRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLFdBQVcsRUFDWCxPQUFPLEVBQ1AsV0FBVyxHQUNFO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDeEUsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXBDLE1BQU0sU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FD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