UNPKG

create-eth

Version:
30 lines (24 loc) 994 B
import { inspect } from "util"; export const withDefaults = (template, expectedArgsDefaults, debug = false) => (receivedArgs) => { const argsWithDefault = Object.fromEntries( Object.entries(expectedArgsDefaults) .map(([argName, argDefault]) => [argName, receivedArgs[argName] ?? [argDefault]]) ); if (debug) { console.log(argsWithDefault, expectedArgsDefaults, receivedArgs); } const expectedArgsNames = Object.keys(expectedArgsDefaults) Object.keys(receivedArgs).forEach((receivedArgName) => { if (!expectedArgsNames.includes(receivedArgName)) { throw new Error( `Templated received unexpected argument \`${receivedArgName}\`. Expecting only ${ expectedArgsNames.map(name => `\`${name}\``).join(", ") }` ); } }); return template(argsWithDefault); }; export const stringify = val => inspect(val, { depth: null, compact: true, maxArrayLength: null, maxStringLength: null })