nwixtoolset
Version:
Node module wrapper around the WIX Toolset executables.
83 lines (82 loc) • 4.81 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const run_1 = require("./run");
const util_1 = require("./util");
/**
* Links and binds one or more .wixobj files and creates a Windows Installer database (.msi or .msm).
* When necessary, Light will also create cabinets and embed streams into the Windows Installer database it creates.
* For more information on linking, see [Linker](http://wixtoolset.org/documentation/manual/v3/overview/light.html).
*
* @param src The file(s) (wixobj) to process.
* @param [options] Options for the compiler.
*/
function light(src, options = {}) {
return __awaiter(this, void 0, void 0, function* () {
const args = ["-nologo"];
util_1.addArgument(args, "-ai", options.allowIdenticalRows);
util_1.addArgument(args, "-ad", options.allowDuplicateDir);
util_1.addArgument(args, "-au", options.allowUnresolvedRefs);
yield util_1.addPathArgument(args, "-b", options.bind);
yield addBinderArguments(args, options);
yield util_1.addPathArgument(args, "-o", options.out);
util_1.addArgument(args, "-bf", options.bindWixout);
util_1.addArgument(args, "-binder", options.binder);
util_1.addMapArgument(args, "-cultures", options.cultures);
util_1.addArgument(args, "-d", options.define);
util_1.addArgument(args, "-dut", options.dropUnrealTables);
yield util_1.addPathArgument(args, "-loc", options.loc);
util_1.addArgument(args, "-notidy", options.notidy);
util_1.addArgument(args, "-pedantic", options.pedantic);
util_1.addArgument(args, "-sadmin", options.suppressAdminSequences);
util_1.addArgument(args, "-sadv", options.suppressAdvSequences);
util_1.addArgument(args, "-sloc", options.suppressLocalization);
util_1.addArgument(args, "-sma", options.suppressProcessMSI);
util_1.addArgument(args, "-ss", options.supressShemaValidation);
util_1.addArgument(args, "-sts", options.suppressTaggingSectionId);
util_1.addArgument(args, "-sts", options.suppressTaggingSectionId);
util_1.addArgument(args, "-sui", options.suppressUI);
util_1.addArgument(args, "-sv", options.suppressIntermediateFile);
util_1.addArgument(args, "-xo", options.wixout);
util_1.addCommonArguments(args, options);
yield util_1.addPathFile(args, src);
if (!util_1.undef(options.overridesTemp)) {
process.env.WIX_TEMP = options.overridesTemp;
}
return run_1.raw.light(args, options);
});
}
exports.light = light;
function addBinderArguments(args, options) {
return __awaiter(this, void 0, void 0, function* () {
util_1.addArgument(args, "-bcgg", options.backCompatibleGuids);
yield util_1.addPathArgument(args, "-cc", options.cacheCabs);
util_1.addArgument(args, "-ct", options.numberOfThreads);
yield util_1.addPathArgument(args, "-cub", options.cub);
util_1.addArgument(args, "-cub", options.cub);
util_1.addMapArgument(args, "-dcl", options.defaultCabLevel);
util_1.addArgument(args, "-eav", options.exactAssemblyVersions);
util_1.addArgument(args, "-fv", options.fileVersion);
util_1.addMapArgument(args, "-ice", options.ice);
util_1.addArgument(args, "-O1", options.optimizeSize);
util_1.addArgument(args, "-O2", options.optimizeTime);
util_1.addArgument(args, "-reusecab", options.reuseCab);
util_1.addArgument(args, "-sa", options.suppressAssemblies);
util_1.addArgument(args, "-sacl", options.suppressResetACLs);
util_1.addArgument(args, "-sf", options.suppressFiles);
util_1.addArgument(args, "-sh", options.supressFileInfo);
util_1.addMapArgument(args, "-sice", options.suppressICE);
util_1.addArgument(args, "-sl", options.suppressLayout);
util_1.addArgument(args, "-spdb", options.suppressPdb);
util_1.addArgument(args, "-spsd", options.suppressPatchSequenceData);
util_1.addArgument(args, "-sval", options.suppressValidation);
});
}