CodeGenerator
Programmatically generate javascript.
Usage
npm install js-code-generator
Features
- Handles code indentation for you while allowing you to set the number of spaces and tabs.
- Provides helper method to generate unique names for iterator variables to make generating nested loops easier
- consistent function arguments and return values
Example
var Generate = ; var itrVar = Generate; var code = Generatecode console; /* Output:for (var i = 0; i < 10; i += 1) { if (i % 2 == 0) { console.log("even"); }}*/
Config
numSpacesPerTab (defaults to 4)
The number of spaces that make up 1 tab. Used for code indentation.
CodeGeneratornumSpacesPerTab = 2;
numTabs (defaults to 1)
The number of spaces that make up 1 tab. Used for code indentation.
CodeGeneratornumTabs = 2;
Methods
variable
/* @param Object data { {string} name, {string} value (optional) } @returns { data: data, code: code } */ var example1 = Generate;console// var test = 0; var example2 = Generate;console// var test;
reassignVariable
/* @param Object data { {string} name, {string} value } @returns { data: data, code: code } */ var code = ; var testVar = Generate;code; var example = Generatecode; console; /* Output:var test;test = 0;*/
incrementVariable
/*@param Object data { {string} name, {function} value (Optional)}*/ var code = Generatecode Generatecode Generatecode console; /* Output:var num = 0;num += 4;num++*/
decrementVariable
/*@param Object data { {string} name, {function} value (Optional)}*/ var code = Generatecode Generatecode Generatecode console; /* Output:var num = 0;num -= 4;num--*/
firstClassFunction
/* @param Object data { {string} name, {array} args (Optional), {function} body } @returns { data: data, code: code } */ var example = Generate console /* Output:var func = function(a, b, c) { console.log("hi");};*/
newInstance
/* @param Object data { {string} type {array} args } @returns Object { {string} code } */ var instance = Generate; var personVar = Generate; console; /* Output: var person = new Person('Bob', 30); */
objectPropertyAssignment
/* @param Object data { {string} objName (Optional. Defaults to "this") {string} propName, {string} value, {boolean} dotNotation (Optional. Defaults to true) }*/ var objVar = Generate; var example1 = Generate; var example2 = Generate; var code = objVarcode example1code example2code console; /* Output:var obj = {};obj.prop = "hello";obj["prop"] = "hello";*/
objectFunctionCall
/* @param Object data { {string} objName (Optional. Defaults to "this") {string} funcName, {array} args (Optional) }*/ var example = Generate console; /* Output:Math.floor(3.5);*/
objectFunction
/* @param Object data { {string} objName (Optional. Defaults to "this") {string} funcName, {array} args (Optional), {function} body }*/ var example = Generate console; /* Output:obj.sumNums = function(nums) { // code to sum elemens of nums array }*/
ifStatement
/*@param Object data { {string} condition, {function} body}*/ var numVar = Generate; var example = Generate; var code = numVarcode examplecode; console /* Output:var num = 0;if (num > 2) { numVar += 4; numVar++}*/
elseIfStatement
elseStatement
tryBlock
catchBlock
forLoop
/* @param Object data { {string} startCondition, {string} stopCondition, {string} incrementAction, {function} body }*/ var nestedForLoop = Generatecode console; /* Output:for (var i = 0; i < 10; i += 1) { for (var j = 0; j < 10; j += 1) { for (var k = 0; k < 10; k += 1) { } }}*/