@nx-dotnet/utils
Version:
This library was generated with [Nx](https://nx.dev).
59 lines • 2.14 kB
JavaScript
;
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