UNPKG

execa

Version:
16 lines (13 loc) • 629 B
// The options of methods like `subprocess.pipe()`, `subprocess.readable()` or `sendMessage()` are kept on a null-prototype object, otherwise a polluted `Object.prototype` would inject option values. // Like destructuring them, `null` throws. export const copyOptions = (options = {}) => { if (options === null) { throw new TypeError('The options must be an object, not `null`.'); } return {__proto__: null, ...options}; }; export const checkBooleanOption = (value, optionName) => { if (value !== undefined && typeof value !== 'boolean') { throw new TypeError(`The \`${optionName}\` option must use a boolean.`); } };