UNPKG

nwixtoolset

Version:

Node module wrapper around the WIX Toolset executables.

83 lines (82 loc) 4.81 kB
"use strict"; 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); }); }