UNPKG

genish.js

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