All files get-param-names.ts

100% Statements 42/42
100% Branches 3/3
100% Functions 1/1
100% Lines 42/42

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 431x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 244x 244x 244x 244x 244x 244x 244x 244x 244x 244x 244x  
// Originally from https://github.com/goatslacker/get-parameter-names
 
/**
 * @hidden
 */
let COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
/**
 * @hidden
 */
let DEFAULT_PARAMS = /=[^,)]+/mg;
/**
 * @hidden
 */
let FAT_ARROWS = /=>.*$/mg;
/**
 * @hidden
 */
let SPACES = /\s/mg;
/**
 * @hidden
 */
let BEFORE_OPENING_PAREN = /^[^(]*\(/mg;
  /**
   * @hidden
   */
let AFTER_CLOSING_PAREN = /^([^)]*)\).*$/mg;
 
/**
 * Get the names of the parameters of the given function.
 * @param fn 
 */
export function getParameterNames(fn): string[] {
  let code = fn.toString()
    .replace(SPACES, '')
    .replace(COMMENTS, '')
    .replace(FAT_ARROWS, '')
    .replace(DEFAULT_PARAMS, '')
    .replace(BEFORE_OPENING_PAREN, '')
    .replace(AFTER_CLOSING_PAREN, '$1');
 
  return code ? code.split(',') : [];
}