UNPKG

genish.js

Version:
51 lines (37 loc) 1.04 kB
'use strict' let gen = require( './gen.js' ) let proto = { basename:'selector', gen() { let inputs = gen.getInputs( this ), out, returnValue = 0 switch( inputs.length ) { case 2 : returnValue = inputs[1] break; case 3 : out = ` var ${this.name}_out = ${inputs[0]} === 1 ? ${inputs[1]} : ${inputs[2]}\n\n`; returnValue = [ this.name + '_out', out ] break; default: out = ` var ${this.name}_out = 0 switch( ${inputs[0]} + 1 ) {\n` for( let i = 1; i < inputs.length; i++ ){ out +=` case ${i}: ${this.name}_out = ${inputs[i]}; break;\n` } out += ' }\n\n' returnValue = [ this.name + '_out', ' ' + out ] } gen.memo[ this.name ] = this.name + '_out' return returnValue }, } module.exports = ( ...inputs ) => { let ugen = Object.create( proto ) Object.assign( ugen, { uid: gen.getUID(), inputs }) ugen.name = `${ugen.basename}${ugen.uid}` return ugen }