UNPKG

chai-latte

Version:

Build expressive & readable fluent interface libraries.

13 lines (12 loc) 577 B
// https://stackoverflow.com/questions/1007981/how-to-get-function-parameter-names-values-dynamically export function extractArguments(func) { return (func + '') .replace(/[/][/].*$/mg,'') // strip single-line comments .replace(/\s+/g, '') // strip white space .replace(/[/][*][^/*]*[*][/]/g, '') // strip multi-line comments .split('){', 1)[0].replace(/^[^(]*[(]/, '') // extract the parameters .replace(/=[^,]+/g, '') // strip any ES6 defaults .split(',') .filter(Boolean) // split & filter [""] .map(t => t.replace(/\)$/g, '')) }