UNPKG

@nx-dotnet/utils

Version:

This library was generated with [Nx](https://nx.dev).

59 lines 2.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getParameterString = getParameterString; exports.getSpawnParameterArray = getSpawnParameterArray; exports.convertOptionsToParams = convertOptionsToParams; /** * Transforms an object of parameters into a string. * @param parameters Parameters to transform into CLI arguments * @returns Parameter string to be appended to CLI command */ function getParameterString(parameters) { return Object.entries(parameters).reduce((acc, [flag, value]) => { if (typeof value === 'boolean' || !value) { if (value) { return acc + `--${flag} `; } else { return acc; } } else { return acc + `--${flag} ${value} `; } }, ''); } /** * Transforms an object of parameters into an array of strings with key followed by the corresponding value. * @param parameters Parameters to transform into CLI arguments * @returns Parameter string to be appended to CLI command */ function getSpawnParameterArray(parameters) { const spawnArray = []; for (const [key, value] of Object.entries(parameters)) { if (typeof value === 'boolean') { if (value) { spawnArray.push(`--${key}`); } } else if (value !== undefined && value !== null) { spawnArray.push(`--${key}=${value.toString()}`); } } return spawnArray; } /** * Converts an object of options like `{ noBuild: true }`into an array of CLI parameters like `["--no-build"]` * Will run a conversion process to change every option to a string, and will map keys to different flags if needed. */ function convertOptionsToParams(options, fixes) { const entries = Object.entries(options).map(([key, value]) => [ key in fixes.keyMap ? fixes.keyMap[key] : key, fixes.explicitFalseKeys.includes(key) && value === false ? 'false' : value, ]); return getSpawnParameterArray(Object.fromEntries(entries)); } //# sourceMappingURL=parameters.js.map