UNPKG

3.99 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.ArchiveTarget = void 0;
4const builder_util_1 = require("builder-util");
5const path = require("path");
6const core_1 = require("../core");
7const fileMatcher_1 = require("../fileMatcher");
8const archive_1 = require("./archive");
9const differentialUpdateInfoBuilder_1 = require("./differentialUpdateInfoBuilder");
10class ArchiveTarget extends core_1.Target {
11 constructor(name, outDir, packager, isWriteUpdateInfo = false) {
12 super(name);
13 this.outDir = outDir;
14 this.packager = packager;
15 this.isWriteUpdateInfo = isWriteUpdateInfo;
16 this.options = this.packager.config[this.name];
17 }
18 async build(appOutDir, arch) {
19 const packager = this.packager;
20 const isMac = packager.platform === core_1.Platform.MAC;
21 const format = this.name;
22 let defaultPattern;
23 const defaultArch = (0, builder_util_1.defaultArchFromString)(packager.platformSpecificBuildOptions.defaultArch);
24 if (packager.platform === core_1.Platform.LINUX) {
25 // tslint:disable-next-line:no-invalid-template-strings
26 defaultPattern = "${name}-${version}" + (arch === defaultArch ? "" : "-${arch}") + ".${ext}";
27 }
28 else {
29 // tslint:disable-next-line:no-invalid-template-strings
30 defaultPattern = "${productName}-${version}" + (arch === defaultArch ? "" : "-${arch}") + "-${os}.${ext}";
31 }
32 const artifactName = packager.expandArtifactNamePattern(this.options, format, arch, defaultPattern, false);
33 const artifactPath = path.join(this.outDir, artifactName);
34 await packager.info.callArtifactBuildStarted({
35 targetPresentableName: `${isMac ? "macOS " : ""}${format}`,
36 file: artifactPath,
37 arch,
38 });
39 let updateInfo = null;
40 if (format.startsWith("tar.")) {
41 await (0, archive_1.tar)(packager.compression, format, artifactPath, appOutDir, isMac, packager.info.tempDirManager);
42 }
43 else {
44 let withoutDir = !isMac;
45 let dirToArchive = appOutDir;
46 if (isMac) {
47 dirToArchive = path.dirname(appOutDir);
48 const fileMatchers = (0, fileMatcher_1.getFileMatchers)(packager.config, "extraDistFiles", dirToArchive, packager.createGetFileMatchersOptions(this.outDir, arch, packager.platformSpecificBuildOptions));
49 if (fileMatchers == null) {
50 dirToArchive = appOutDir;
51 }
52 else {
53 await (0, fileMatcher_1.copyFiles)(fileMatchers, null, true);
54 withoutDir = true;
55 }
56 }
57 const archiveOptions = {
58 compression: packager.compression,
59 withoutDir,
60 };
61 await (0, archive_1.archive)(format, artifactPath, dirToArchive, archiveOptions);
62 if (this.isWriteUpdateInfo && format === "zip") {
63 if (isMac) {
64 updateInfo = await (0, differentialUpdateInfoBuilder_1.createBlockmap)(artifactPath, this, packager, artifactName);
65 }
66 else {
67 updateInfo = await (0, differentialUpdateInfoBuilder_1.appendBlockmap)(artifactPath);
68 }
69 }
70 }
71 await packager.info.callArtifactBuildCompleted({
72 updateInfo,
73 file: artifactPath,
74 // tslint:disable-next-line:no-invalid-template-strings
75 safeArtifactName: packager.computeSafeArtifactName(artifactName, format, arch, false, packager.platformSpecificBuildOptions.defaultArch, defaultPattern.replace("${productName}", "${name}")),
76 target: this,
77 arch,
78 packager,
79 isWriteUpdateInfo: this.isWriteUpdateInfo,
80 });
81 }
82}
83exports.ArchiveTarget = ArchiveTarget;
84//# sourceMappingURL=ArchiveTarget.js.map
\No newline at end of file