UNPKG

4.63 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/options/CommonWindowsInstallerConfiguration.ts"],"names":[],"mappings":";;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;AAqDM,SAAA,mBAAA,CAA8B,OAA9B,EAA4E,QAA5E,EAAiG;AACrG,QAAM,UAAU,SAAS,OAAzB;AAEA,MAAI,eAA8B,IAAlC;;AACA,MAAI,QAAQ,YAAR,IAAwB,IAAxB,IAAgC,QAAQ,YAAR,KAAyB,KAA7D,EAAoE;AAClE,QAAI,QAAQ,YAAR,KAAyB,IAA7B,EAAmC;AACjC,YAAM,cAAc,SAAS,OAAT,CAAiB,WAArC;;AACA,UAAI,eAAe,IAAnB,EAAyB;AACvB,cAAM,KAAI,wCAAJ,EAA8B,iHAA9B,CAAN;AACD;;AACD,qBAAe,iCAAiB,WAAjB,CAAf;AACD,KAND,MAOK;AACH,qBAAgB,QAAQ,YAAR,CAAgC,KAAhC,CAAsC,QAAtC,EAAgD,GAAhD,CAAoD,MAAM,iCAAiB,EAAjB,CAA1D,EAAgF,IAAhF,CAAqF,IAArF,CAAhB;AACD;AACF;;AAED,SAAO;AACL,kBAAc,QAAQ,UAAR,KAAuB,IADhC;AAEL,gBAAY,QAAQ,QAAR,KAAqB,KAF5B;AAIL,kBAAc,oCAAgB,QAAQ,YAAxB,IAAwC,QAAQ,eAAhD,GAAkE,SAAS,WAAT,CAAqB,QAAQ,YAA7B,CAJ3E;AAKL,6BAAyB,uCAAuC,QAAQ,qBAA/C,CALpB;AAML,+BAA2B,QAAQ,uBAAR,KAAoC,KAN1D;AAOL;AAPK,GAAP;AASD;;AAED,SAAA,sCAAA,CAAgD,KAAhD,EAAmF;AACjF,MAAI,UAAU,KAAd,EAAqB;AACnB,WAAO,8BAA8B,KAArC;AACD,GAFD,MAGK,IAAI,UAAU,QAAd,EAAwB;AAC3B,WAAO,8BAA8B,MAArC;AACD,GAFI,MAGA;AACH,WAAO,8BAA8B,aAArC;AACD;AACF;;AAED,IAAY,6BAAZ;;;AAAA,CAAA,UAAY,6BAAZ,EAAyC;AACvC,gCAAA,8BAAA,eAAA,IAAA,CAAA,IAAA,eAAA;AAAe,gCAAA,8BAAA,QAAA,IAAA,CAAA,IAAA,QAAA;AAAQ,gCAAA,8BAAA,OAAA,IAAA,CAAA,IAAA,OAAA;AACxB,CAFD,EAAY,0EAAA,gCAA6B,EAA7B,CAAZ,E","sourcesContent":["import { InvalidConfigurationError, isEmptyOrSpaces } from \"builder-util\"\nimport sanitizeFileName from \"sanitize-filename\"\nimport { WinPackager } from \"../winPackager\"\n\nexport interface CommonWindowsInstallerConfiguration {\n readonly oneClick?: boolean\n\n /**\n * Whether to install per all users (per-machine).\n * @default false\n */\n readonly perMachine?: boolean\n\n /**\n * Whether to run the installed application after finish. For assisted installer corresponding checkbox will be removed.\n * @default true\n */\n readonly runAfterFinish?: boolean\n\n /**\n * Whether to create desktop shortcut. Set to `always` if to recreate also on reinstall (even if removed by user).\n * @default true\n */\n readonly createDesktopShortcut?: boolean | \"always\"\n\n /**\n * Whether to create start menu shortcut.\n * @default true\n */\n readonly createStartMenuShortcut?: boolean\n\n /**\n * Whether to create submenu for start menu shortcut and program files directory. If `true`, company name will be used. Or string value.\n * @default false\n */\n readonly menuCategory?: boolean | string\n\n /**\n * The name that will be used for all shortcuts. Defaults to the application name.\n */\n readonly shortcutName?: string | null\n}\n\nexport interface FinalCommonWindowsInstallerOptions {\n isAssisted: boolean\n isPerMachine: boolean\n\n shortcutName: string\n menuCategory: string | null\n\n isCreateDesktopShortcut: DesktopShortcutCreationPolicy\n isCreateStartMenuShortcut: boolean\n}\n\nexport function getEffectiveOptions(options: CommonWindowsInstallerConfiguration, packager: WinPackager): FinalCommonWindowsInstallerOptions {\n const appInfo = packager.appInfo\n\n let menuCategory: string | null = null\n if (options.menuCategory != null && options.menuCategory !== false) {\n if (options.menuCategory === true) {\n const companyName = packager.appInfo.companyName\n if (companyName == null) {\n throw new InvalidConfigurationError(`Please specify \"author\" in the application package.json — it is required because \"menuCategory\" is set to true.`)\n }\n menuCategory = sanitizeFileName(companyName)\n }\n else {\n menuCategory = (options.menuCategory as string).split(/[\\/\\\\]/).map(it => sanitizeFileName(it)).join(\"\\\\\")\n }\n }\n\n return {\n isPerMachine: options.perMachine === true,\n isAssisted: options.oneClick === false,\n\n shortcutName: isEmptyOrSpaces(options.shortcutName) ? appInfo.productFilename : packager.expandMacro(options.shortcutName!!),\n isCreateDesktopShortcut: convertToDesktopShortcutCreationPolicy(options.createDesktopShortcut),\n isCreateStartMenuShortcut: options.createStartMenuShortcut !== false,\n menuCategory,\n }\n}\n\nfunction convertToDesktopShortcutCreationPolicy(value: boolean | undefined | string): DesktopShortcutCreationPolicy {\n if (value === false) {\n return DesktopShortcutCreationPolicy.NEVER\n }\n else if (value === \"always\") {\n return DesktopShortcutCreationPolicy.ALWAYS\n }\n else {\n return DesktopShortcutCreationPolicy.FRESH_INSTALL\n }\n}\n\nexport enum DesktopShortcutCreationPolicy {\n FRESH_INSTALL, ALWAYS, NEVER\n}"],"sourceRoot":""}