Null Pointer Micromanagement
    Wondering what’s next for npm?Check out our public roadmap! »

    funmix

    0.1.4 • Public • Published

    FunMix Build Status

    FunMix can insert sentences the beginning and the end of each function.

    Example

    var Funmix = require("funmix");
     
    var src = " var result = 0; function fibonacci1(n) { if (n<=2) return n; return fibonacci1(n-1) + fibonacci1(n-2); } ";
     
    /*
    BEFORE
    var result = 0;
    function fibonacci1(n) {
      if (n<=2) return n;
      return fibonacci1(n-1) + fibonacci1(n-2);
    }
     
    result = fibonacci1(4);
    console.log(result);
    */ 
     
    var startPrg = "function timeEndFunc(name, args){console.timeEnd(name); return args;}";
    var endPrg = "console.log('finish');";
    var enter = "console.time('${name}');";
    var leave = "console.timeEnd('${name}');";
    var returnStmt = "timeEndFunc('${name}', ${arg});";
    var funmix = new Funmix(src);
    funmix.setStartProgram(startPrg);
    funmix.setEndProgram(endPrg);
    funmix.setStartFunc(enter);
    funmix.setEndFunc(leave);
    funmix.setReturnStmt(returnStmt);
    var code = funmix.generate();
     
    /*
    AFTER
    function timeEndFunc(name, args) {
        console.timeEnd(name);
        return args;
    }
    var result = 0;
    function fibonacci1(n) {
        console.time('fibonacci1');
        if (n <= 2)
            return timeEndFunc('fibonacci1', n);
        return timeEndFunc('fibonacci1', fibonacci1(n - 1) + fibonacci1(n - 2));
        console.timeEnd('fibonacci1');
    }
    result = fibonacci1(4);
    console.log(result);
    console.log('finish');
    */ 

    Install

    $ npm install funmix -S

    Methods

    • setStartProgram(program) - set program code at the beginning of the given code
    /*
    BEFORE
    var result = 0;
    function fibonacci1(n) {
      if (n<=2) return n;
      return fibonacci1(n-1) + fibonacci1(n-2);
    }
     
    result = fibonacci1(4);
    console.log(result);
    */ 
     
    var startPrg = "console.log('START!!!!');";
    var funmix = new Funmix(src);
    funmix.setStartProgram(startPrg);
    var code = funmix.generate();
     
    /*
    AFTER
    console.log('START!!!!');
    var result = 0;
    function fibonacci1(n) {
      if (n<=2) return n;
      return fibonacci1(n-1) + fibonacci1(n-2);
    }
     
    result = fibonacci1(4);
    console.log(result);
    */ 
     
    • setEndProgram(program) - set program code at the end of the given code
    /*
    BEFORE
    var result = 0;
    function fibonacci1(n) {
      if (n<=2) return n;
      return fibonacci1(n-1) + fibonacci1(n-2);
    }
     
    result = fibonacci1(4);
    console.log(result);
    */ 
     
    var endPrg = "console.log('END!!!!');";
    var funmix = new Funmix(src);
    funmix.setStartProgram(startPrg);
    var code = funmix.generate();
     
    /*
    AFTER
    var result = 0;
    function fibonacci1(n) {
      if (n<=2) return n;
      return fibonacci1(n-1) + fibonacci1(n-2);
    }
     
    result = fibonacci1(4);
    console.log(result);
    console.log('END!!!!');
    */ 
     
    • setStartFunc(program) - set program code at the beginnig of each function
    • setEndFunc(program) - set program code at the end of each function
    /*
    BEFORE
    function test(n) {
      console.log(n);
    }
    test("Hello");
    */ 
     
    var startFunc = "console.time('${name} line:${loc.start.line}');";
    var endFunc = "console.timeEnd('${name} line:${loc.start.line}');";
    var funmix = new Funmix(src);
    funmix.setStartFunc(startPrg);
    funmix.setEndFunc(startPrg);
    var code = funmix.generate();
     
    /*
    AFTER
    function test(n) {
      console.time('test line:1');
      console.log(n);
      console.timeEnd('test line:1');
    }
    test("Hello");
    */ 
     
    • setReturnStmt(program) - set program code at the return statement

    License

    MIT

    Install

    npm i funmix

    DownloadsWeekly Downloads

    2

    Version

    0.1.4

    License

    MIT

    Last publish

    Collaborators

    • avatar