19 lines
1017 B
JavaScript
19 lines
1017 B
JavaScript
/** Resolve file-owned Windows packaging and signature-cache concurrency. */
|
|
|
|
/**
|
|
* Validate packaging and cache worker limits without accessing signing hardware.
|
|
* @param {NodeJS.ProcessEnv} environment File-owned Windows packaging settings.
|
|
* @returns {{signatureCacheConcurrency: number, packConcurrency: number}} Worker limits, each defaulting to four when omitted.
|
|
*/
|
|
export function resolveWindowsPackageSettings(environment) {
|
|
const value = environment.DSH_DESKTOP_WINDOWS_SIGNATURE_CACHE_CONCURRENCY ?? '4'
|
|
if (!/^[1-8]$/u.test(value)) {
|
|
throw new Error('desktop package: DSH_DESKTOP_WINDOWS_SIGNATURE_CACHE_CONCURRENCY must be an integer from 1 to 8')
|
|
}
|
|
const pack = environment.DSH_DESKTOP_WINDOWS_PACK_CONCURRENCY ?? '4'
|
|
if (!/^[1-9]\d*$/u.test(pack) || !Number.isSafeInteger(Number(pack))) {
|
|
throw new Error('desktop package: DSH_DESKTOP_WINDOWS_PACK_CONCURRENCY must be a positive integer')
|
|
}
|
|
return { signatureCacheConcurrency: Number(value), packConcurrency: Number(pack) }
|
|
}
|