thedesk/app/node_modules/electron-builder/out/builder.js

314 lines
8.4 KiB
JavaScript
Raw Normal View History

2019-09-13 00:38:13 +10:00
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createYargs = createYargs;
exports.normalizeOptions = normalizeOptions;
exports.coerceTypes = coerceTypes;
exports.createTargets = createTargets;
exports.build = build;
exports.configureBuildCommand = configureBuildCommand;
function _builderUtil() {
const data = require("builder-util");
_builderUtil = function () {
return data;
};
return data;
}
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = function () {
return data;
};
return data;
}
function _appBuilderLib() {
const data = require("app-builder-lib");
_appBuilderLib = function () {
return data;
};
return data;
}
function _yargs() {
const data = _interopRequireDefault(require("yargs"));
_yargs = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function createYargs() {
return _yargs().default.parserConfiguration({
"camel-case-expansion": false
});
}
/** @private */
function normalizeOptions(args) {
if (args.targets != null) {
return args;
}
const targets = new Map();
function processTargets(platform, types) {
function commonArch(currentIfNotSpecified) {
if (platform === _appBuilderLib().Platform.MAC) {
return args.x64 || currentIfNotSpecified ? [_builderUtil().Arch.x64] : [];
}
const result = Array();
if (args.x64) {
result.push(_builderUtil().Arch.x64);
}
if (args.armv7l) {
result.push(_builderUtil().Arch.armv7l);
}
if (args.arm64) {
result.push(_builderUtil().Arch.arm64);
}
if (args.ia32) {
result.push(_builderUtil().Arch.ia32);
}
return result.length === 0 && currentIfNotSpecified ? [(0, _builderUtil().archFromString)(process.arch)] : result;
}
let archToType = targets.get(platform);
if (archToType == null) {
archToType = new Map();
targets.set(platform, archToType);
}
if (types.length === 0) {
const defaultTargetValue = args.dir ? [_appBuilderLib().DIR_TARGET] : [];
for (const arch of commonArch(args.dir === true)) {
archToType.set(arch, defaultTargetValue);
}
return;
}
for (const type of types) {
const suffixPos = type.lastIndexOf(":");
if (suffixPos > 0) {
(0, _builderUtil().addValue)(archToType, (0, _builderUtil().archFromString)(type.substring(suffixPos + 1)), type.substring(0, suffixPos));
} else {
for (const arch of commonArch(true)) {
(0, _builderUtil().addValue)(archToType, arch, type);
}
}
}
}
if (args.mac != null) {
processTargets(_appBuilderLib().Platform.MAC, args.mac);
}
if (args.linux != null) {
processTargets(_appBuilderLib().Platform.LINUX, args.linux);
}
if (args.win != null) {
processTargets(_appBuilderLib().Platform.WINDOWS, args.win);
}
if (targets.size === 0) {
processTargets(_appBuilderLib().Platform.current(), []);
}
const result = Object.assign({}, args);
result.targets = targets;
delete result.dir;
delete result.mac;
delete result.linux;
delete result.win;
const r = result;
delete r.m;
delete r.o;
delete r.l;
delete r.w;
delete r.windows;
delete r.macos;
delete r.$0;
delete r._;
delete r.version;
delete r.help;
delete r.c;
delete r.p;
delete r.pd;
delete result.ia32;
delete result.x64;
delete result.armv7l;
delete result.arm64;
let config = result.config; // config is array when combining dot-notation values with a config file value
// https://github.com/electron-userland/electron-builder/issues/2016
if (Array.isArray(config)) {
const newConfig = {};
for (const configItem of config) {
if (typeof configItem === "object") {
(0, _builderUtil().deepAssign)(newConfig, configItem);
} else if (typeof configItem === "string") {
newConfig.extends = configItem;
}
}
config = newConfig;
result.config = newConfig;
} // AJV cannot coerce "null" string to null if string is also allowed (because null string is a valid value)
if (config != null && typeof config !== "string") {
if (config.extraMetadata != null) {
coerceTypes(config.extraMetadata);
} // ability to disable code sign using -c.mac.identity=null
if (config.mac != null) {
coerceValue(config.mac, "identity");
}
}
if ("project" in r && !("projectDir" in result)) {
result.projectDir = r.project;
}
delete r.project;
return result;
}
function coerceValue(host, key) {
const value = host[key];
if (value === "true") {
host[key] = true;
} else if (value === "false") {
host[key] = false;
} else if (value === "null") {
host[key] = null;
} else if (key === "version" && typeof value === "number") {
host[key] = value.toString();
} else if (value != null && typeof value === "object") {
coerceTypes(value);
}
}
/** @private */
function coerceTypes(host) {
for (const key of Object.getOwnPropertyNames(host)) {
coerceValue(host, key);
}
return host;
}
function createTargets(platforms, type, arch) {
const targets = new Map();
for (const platform of platforms) {
const archs = platform === _appBuilderLib().Platform.MAC ? [_builderUtil().Arch.x64] : arch === "all" ? [_builderUtil().Arch.x64, _builderUtil().Arch.ia32] : [(0, _builderUtil().archFromString)(arch == null ? process.arch : arch)];
const archToType = new Map();
targets.set(platform, archToType);
for (const arch of archs) {
archToType.set(arch, type == null ? [] : [type]);
}
}
return targets;
}
function build(rawOptions) {
const buildOptions = normalizeOptions(rawOptions || {});
return (0, _appBuilderLib().build)(buildOptions, new (_appBuilderLib().Packager)(buildOptions));
}
/**
* @private
*/
function configureBuildCommand(yargs) {
const publishGroup = "Publishing:";
const buildGroup = "Building:";
return yargs.option("mac", {
group: buildGroup,
alias: ["m", "o", "macos"],
description: `Build for macOS, accepts target list (see ${_chalk().default.underline("https://goo.gl/5uHuzj")}).`,
type: "array"
}).option("linux", {
group: buildGroup,
alias: "l",
description: `Build for Linux, accepts target list (see ${_chalk().default.underline("https://goo.gl/4vwQad")})`,
type: "array"
}).option("win", {
group: buildGroup,
alias: ["w", "windows"],
description: `Build for Windows, accepts target list (see ${_chalk().default.underline("https://goo.gl/jYsTEJ")})`,
type: "array"
}).option("x64", {
group: buildGroup,
description: "Build for x64",
type: "boolean"
}).option("ia32", {
group: buildGroup,
description: "Build for ia32",
type: "boolean"
}).option("armv7l", {
group: buildGroup,
description: "Build for armv7l",
type: "boolean"
}).option("arm64", {
group: buildGroup,
description: "Build for arm64",
type: "boolean"
}).option("dir", {
group: buildGroup,
description: "Build unpacked dir. Useful to test.",
type: "boolean"
}).option("publish", {
group: publishGroup,
alias: "p",
description: `Publish artifacts, see ${_chalk().default.underline("https://goo.gl/tSFycD")}`,
choices: ["onTag", "onTagOrDraft", "always", "never", undefined]
}).option("prepackaged", {
alias: ["pd"],
group: buildGroup,
description: "The path to prepackaged app (to pack in a distributable format)"
}).option("projectDir", {
alias: ["project"],
group: buildGroup,
description: "The path to project directory. Defaults to current working directory."
}).option("config", {
alias: ["c"],
group: buildGroup,
description: "The path to an electron-builder config. Defaults to `electron-builder.yml` (or `json`, or `json5`), see " + _chalk().default.underline("https://goo.gl/YFRJOM")
}).group(["help", "version"], "Other:").example("electron-builder -mwl", "build for macOS, Windows and Linux").example("electron-builder --linux deb tar.xz", "build deb and tar.xz for Linux").example("electron-builder --win --ia32", "build for Windows ia32").example("electron-builder -c.extraMetadata.foo=bar", "set package.json property `foo` to `bar`").example("electron-builder --config.nsis.unicode=false", "configure unicode options for NSIS");
}
// __ts-babel@6.0.4
//# sourceMappingURL=builder.js.map