create-nx-workspace
Version:
36 lines (35 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.unparse = unparse;
const flat_1 = require("flat");
function unparse(options) {
const unparsed = [];
for (const key of Object.keys(options)) {
const value = options[key];
unparseOption(key, value, unparsed);
}
return unparsed;
}
function unparseOption(key, value, unparsed) {
if (value === true) {
unparsed.push(`--${key}`);
}
else if (value === false) {
unparsed.push(`--no-${key}`);
}
else if (Array.isArray(value)) {
value.forEach((item) => unparseOption(key, item, unparsed));
}
else if (Object.prototype.toString.call(value) === '[object Object]') {
const flattened = (0, flat_1.flatten)(value, { safe: true });
for (const flattenedKey in flattened) {
unparseOption(`${key}.${flattenedKey}`, flattened[flattenedKey], unparsed);
}
}
else if (typeof value === 'string' && value.includes(' ')) {
unparsed.push(`--${key}="${value}"`);
}
else if (value != null) {
unparsed.push(`--${key}=${value}`);
}
}