UNPKG

genish.js

Version:
55 lines (42 loc) 991 B
'use strict' const gen = require('./gen.js') const proto = { basename: 'mul', gen() { let inputs = gen.getInputs( this ), out = ` var ${this.name} = `, sum = 1, numCount = 0, mulAtEnd = false, alreadyFullSummed = true inputs.forEach( (v,i) => { if( isNaN( v ) ) { out += v if( i < inputs.length -1 ) { mulAtEnd = true out += ' * ' } alreadyFullSummed = false }else{ if( i === 0 ) { sum = v }else{ sum *= parseFloat( v ) } numCount++ } }) if( numCount > 0 ) { out += mulAtEnd || alreadyFullSummed ? sum : ' * ' + sum } out += '\n' gen.memo[ this.name ] = this.name return [ this.name, out ] } } module.exports = ( ...args ) => { const mul = Object.create( proto ) Object.assign( mul, { id: gen.getUID(), inputs: args, }) mul.name = mul.basename + mul.id return mul }