Nobody Pays (for) Magazines
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    Node-JavaScript-Preprocessorpublic

    pp.js

    Purpose:

    This preprocessor is used to build JavaScript files together into a single file while enabling various features.

    I have elected to provide a suset of what the original C preprocessor does. I choose to implement in nodejs because I am trying to learn node. I am in the middle of building a couple of projects and found I have a need to frequently do this kind of manipulation and my tools were limited.

    Guiding principles:

    1. Unobtusive, I did not want any positional sensitivity so my code was still easy to read.
    2. I wanted to use a marker that would not interfere with javascript in any way
    3. I wanted to easily see what file and what code was in effect and what was left out
    4. I wanted to prevent infinite loops through inclusion
    5. A single source file could produce output suitable for testing, production, and other environments

    Commands: Commands are not case sensitive, files names may be. Defined variable are case sensitive. Commands are placed anywhere on a line they do no have to appear in the first column Commands cannot follow code on the same line. A processed file comments out the commands so they will not work. So the following becomes:

    //@include somefile.js -> // //@include somefile.js

    e.g. Valid //@include sample.js //@include sample.js

    The commands for the preprocessor are: //@include filename.js

    The include command will only a file to be included one. Please note that a comment
    line will be inserted into the output file to indicate the source file. A check
    is done to ensure that the same include file is not used more than once. pp.js will
    throw an error if the same include sime is attempted in a single job.
    

    //@define var,var,var

    The define command creates a variable. Unlike the C preprocessor you cannot assign
    a value. All test are simply for existance. More than one define can be done
    at a time.
    

    //@if var,var,var

    The if command checks for the existance of a given variable. If more than one is
    specified then the result is OR'd together. Which just means if one is define its
    true.
    

    //@else

    Hopefully self explainitory.
    

    //@endif

    Hopefully self explainitory.
    

    How to use:

    usage: npm start Node-JavaScript-Preprocessor with the following options

    Source file(s) e.g. --src=file1.js,file2.js --src *required Destination to write the file e.g. --dst=output.js --dst *required Definition(s) to create e.g. --def=DEBUG,NODE,BROWSER --def Enable Debugging --debug Help. This Message. --help

    Tests:

    Sample test file in: FILE: test.js /*

    • a simple test of the if endif logic

    */ //@define Hello

    //@if Hello This should show //@else This should be commented //@endif

    //@include nestedfile3.js

    //@if DEBUG This should be commented //@else This should show //@endif

    //@if DEBUG //@if WIRE This should be commented //@else This should be commented (because its nested out) //@endif //@else This should show //@endif

    //@if DEBUG This should be commented //@endif //@if DEBUG //@include nofile.js //@endif

    FILE: nestedfile3.js This is the nested file 3

    //@if Hello This should show //@endif

    Command

    Result /*

    • a simple test of the if endif logic

    */ // //@define Hello

    // //@if Hello This should show // //@else // This should be commented // //@endif

    // //@include nestedfile3.js

    // //@if DEBUG // This should be commented // //@else // This should show // //@endif

    // //@if DEBUG // //@if WIRE // This should be commented // //@else // This should be commented (because its nested out) // //@endif // //@else This should show // //@endif

    // //@if DEBUG // This should be commented // //@endif // //@if DEBUG // //@include nofile.js // //@endif

    How to install:

    npm install Node-JavaScript-Preprocessor
    

    To run: npm start Node-JavaScript-Preprocessor

    Keywords

    none

    install

    npm i Node-JavaScript-Preprocessor

    Downloadsweekly downloads

    9

    version

    0.0.5

    license

    none

    repository

    githubgithub

    last publish

    collaborators

    • avatar