Narcoleptic Pasta Manufacturer


    0.1.4 • Public • Published

    jsinc - node.js module

    This module allows loading of javascript files that made for the browser as modules for node.js;

    by Shimon Doodkin

    license: MIT


     Object context = jsinc( String file1, ... , String fileN, Object context, Function callback )
    • the last argument is an optional context object.
    • the function returns the resulting global object, after running the script(s)
    • basically it loades the javascript files, adds a window object, executes the script and returns to you the global object with all of the functions and variables that ware added by the script.


    Getting started

    install from npm like:

    npm install jsinc

    To get started do like this:

    var jsinc=require('jsinc');
    var date=jsinc( 'date.js' );
    console.log(date); // see what's there

    Pinpoint the wanted functions out:

    // linq example:
    // download linq from
    var jsinc   = require('jsinc');
    var jslinq  = jsinc(__dirname+'/deps/jslinq/scripts/JSLINQ.js').window.JSLINQ; // wanted function

    Advanced futures

    Read multiple files at once:

    var jsinc = require('jsinc');
    var date = jsinc( 'date.js', 'date2.js' );

    Custom context:

    if the last argument is an object then it is used as context.
    // if you need XMLHttpRequest for example, you can add it to the sand box like:
    // install xmlhttp like: npm install xmlhttprequest
    var date=jsinc( 'date.js',{XMLHttpRequest:require('xmlhttprequest')} );
    // you can do even staff like this (if you know what are you doing):
    var date=jsinc('date.js',this);
    // the above does a "mixin" but may have problem (nodejs bug)
    // if this module exports getters,setter, and nonenumeratable
    // read multiple files in steps by reusing the context 
    var jsinc = require('jsinc');
    var context = jsinc( 'date.js' );
        context = jsinc( 'date2.js',context );

    Callback and Async file reading and loading

    var app={}; jsinc( 'date.js',{XMLHttpRequest:require('xmlhttprequest')}, function (date){; }); // if you add a callback function, the file will be read asynchronously.

    Other Ideas:

    • Use it for modules that are shared with the browser
    • Use it as a simple way to write simple modules that do not require to export the module's function
    • To bind or to rewrite the function after they loaded
    • Put a callback function in the context object and call it
    • Put jsinc in the context object, as a way for the script load other scripts, binded with the context object filled in.
    • I use this module to do quick migration of browser libs to node.js




    npm i jsinc

    DownloadsWeekly Downloads






    Last publish


    • shimondoodkin