UNPKG

mocha

Version:

Classic, reliable, trusted test framework for Node.js and the browser

56 lines (43 loc) 1.25 kB
const toArray = (value) => (Array.isArray(value) ? value : [value]); const unparseOption = (name, value) => { if (value === false) { return [`--no-${name}`]; } if (value === true) { return [`--${name}`]; } if (value == null) { return []; } if (Array.isArray(value)) { return value.flatMap((item) => unparseOption(name, item)); } if (typeof value === "object") { return Object.entries(value).flatMap(([key, item]) => unparseOption(`${name}.${key}`, item), ); } if (name.includes(".")) { return [`--${name}=${String(value)}`]; } return [`--${name}`, String(value)]; }; const unparseMochaArgs = (opts) => { const positionals = opts._ == null ? [] : toArray(opts._).map(String); const options = Object.entries(opts).flatMap(([name, value]) => name === "_" ? [] : unparseOption(name, value), ); return positionals.concat(options); }; const unparseNodeFlags = (opts) => { return Object.entries(opts).flatMap(([name, value]) => { if (value === true) { return [`--${name}`]; } if (value === false || value == null) { return []; } return toArray(value).map((item) => `--${name}=${item}`); }); }; export { unparseMochaArgs, unparseNodeFlags };