in app/exec/extension/default.ts [185:257]
protected getMergeSettings(): Promise<MergeSettings> {
return Promise.all([
this.commandArgs.root.val(),
this.commandArgs.locRoot.val(),
this.commandArgs.manifestJs.val().then(files => files && files.length ? files[0] : null),
this.commandArgs.env.val(),
this.commandArgs.manifests.val(),
this.commandArgs.manifestGlobs.val(),
this.commandArgs.override.val(),
this.commandArgs.overridesFile.val(),
this.commandArgs.revVersion.val(),
this.commandArgs.bypassValidation.val(),
this.commandArgs.publisher.val(true),
this.commandArgs.extensionId.val(true),
this.commandArgs.json5.val(true),
]).then<MergeSettings>(values => {
const [
root,
locRoot,
manifestJs,
env,
manifests,
manifestGlob,
override,
overridesFile,
revVersion,
bypassValidation,
publisher,
extensionId,
json5,
] = values;
if (publisher) {
_.set(override, "publisher", publisher);
}
if (extensionId) {
_.set(override, "extensionid", extensionId);
}
let overrideFileContent = Promise.resolve("");
if (overridesFile && overridesFile.length > 0) {
overrideFileContent = promisify(readFile)(overridesFile[0], "utf8");
}
return overrideFileContent.then(contentStr => {
let content = contentStr;
if (content === "") {
content = "{}";
if (overridesFile && overridesFile.length > 0) {
trace.warn("Overrides file was empty. No overrides will be imported from " + overridesFile[0]);
}
}
let mergedOverrides = {};
let contentJSON = {};
try {
contentJSON = json5 ? jju.parse(content) : JSON.parse(content);
} catch (e) {
throw new Error("Could not parse contents of " + overridesFile[0] + " as JSON. \n");
}
contentJSON["__origin"] = overridesFile ? overridesFile[0] : path.join(root[0], "_override.json");
_.merge(mergedOverrides, contentJSON, override);
return {
root: root[0],
locRoot: locRoot && locRoot[0],
manifestJs: manifestJs,
env: env,
manifests: manifests,
manifestGlobs: manifestGlob,
overrides: mergedOverrides,
bypassValidation: bypassValidation,
revVersion: revVersion,
json5: json5,
};
});
});
}