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 43 44 45 | 1x 286x 286x 40x 73x 12x 12x 15x 2x 15x 15x 15x 15x 1x | const util = require('util') class GeneratedExpression { constructor(expressionTemplate, parameterTypes) { this._expressionTemplate = expressionTemplate this._parameterTypes = parameterTypes } get source() { return util.format( this._expressionTemplate, ...this._parameterTypes.map(t => t.name) ) } /** * Returns an array of parameter names to use in generated function/method signatures * * @returns {Array.<String>} */ get parameterNames() { const usageByTypeName = {} return this._parameterTypes.map(t => getParameterName(t.name, usageByTypeName) ) } /** * @returns {Array.<ParameterType>} */ get parameterTypes() { return this._parameterTypes } } function getParameterName(typeName, usageByTypeName) { let count = usageByTypeName[typeName] count = count ? count + 1 : 1 usageByTypeName[typeName] = count return count === 1 ? typeName : `${typeName}${count}` } module.exports = GeneratedExpression |