Narcissistic Passion Minified

    insert-module-globals
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/insert-module-globals package

    7.2.1 • Public • Published

    insert-module-globals

    insert implicit module globals (__filename, __dirname, process, global, setImmediate, clearImmediate and Buffer) as a browserify-style transform

    build status

    example

    var mdeps = require('module-deps');
    var bpack = require('browser-pack');
    var insert = require('insert-module-globals');
    function inserter (file) {
        return insert(file, { basedir: __dirname + '/files' });
    }
     
    var files = [ __dirname + '/files/main.js' ];
    mdeps(files, { transform: inserter })
        .pipe(bpack({ raw: true }))
        .pipe(process.stdout)
    ;
    $ node example/insert.js | node
    in main.js: {"__filename":"/main.js","__dirname":"/"}
    in foo/index.js: {"__filename":"/foo/index.js","__dirname":"/foo"}
    

    or use the command-line scripts:

    $ module-deps main.js | insert-module-globals | browser-pack | node
    in main.js: {"__filename":"/main.js","__dirname":"/"}
    in foo/index.js: {"__filename":"/foo/index.js","__dirname":"/foo"}
    

    or use insert-module-globals as a transform:

    $ module-deps main.js --transform insert-module-globals | browser-pack | node
    in main.js: {"__filename":"/main.js","__dirname":"/"}
    in foo/index.js: {"__filename":"/foo/index.js","__dirname":"/foo"}
    

    methods

    var insertGlobals = require('insert-module-globals')

    var inserter = insertGlobals(file, opts)

    Return a transform stream inserter for the filename file that will accept a javascript file as input and will output the file with a closure around the contents as necessary to define extra builtins.

    When opts.always is true, wrap every file with all the global variables without parsing. This is handy because parsing the scope can take a long time, so you can prioritize fast builds over saving bytes in the final output. When opts.always is truthy but not true, avoid parsing but perform a quick test to determine if wrapping should be skipped.

    Use opts.vars to override the default inserted variables, or set opts.vars[name] to undefined to not insert a variable which would otherwise be inserted.

    opts.vars properties with a . in their name will be executed instead of the parent object if ONLY that property is used. For example, "Buffer.isBuffer" will mask "Buffer" only when there is a Buffer.isBuffer() call in a file and no other references to Buffer.

    If opts.debug is true, an inline source map will be generated to compensate for the extra lines.

    events

    inserter.on('global', function (name) {})

    When a global is detected, the inserter stream emits a 'global' event.

    usage

    usage: insert-module-globals {basedir}
    

    install

    With npm, to get the library do:

    npm install insert-module-globals
    

    and to get the bin script do:

    npm install -g insert-module-globals
    

    insert custom globals.

    insert-module-globals can also insert arbitary globals into files. Pass in an object of functions as the vars option.

    var vars = {
        process: function (file, basedir) {
            return {
                id: "path/to/custom_process.js",
                source: customProcessContent
            }
        },
        Buffer: function (file, basedir) {
            return {
                id: 'path/to/custom_buffer.js',
                source: customProcessContent,
                //suffix is optional
                //it's used to extract the value from the module.
                //it becomes: require(...).Buffer in this case.
                suffix: '.Buffer'
            }
        },
        Math: function () {
            //if you return a string,
            //it's simply set as the value.
            return '{}'
            //^ any attempt to use Math[x] will throw!
        }
    }
     
    function inserter (file) {
        return insert(file, { vars: vars });
    }
    mdeps(files, { transform: inserter })
        .pipe(bpack({ raw: true }))
        .pipe(process.stdout)

    license

    MIT

    Install

    npm i insert-module-globals

    DownloadsWeekly Downloads

    1,077,887

    Version

    7.2.1

    License

    MIT

    Unpacked Size

    33.6 kB

    Total Files

    45

    Last publish

    Collaborators

    • raynos
    • lukechilds
    • defunctzombie
    • substack
    • feross
    • gkatsev
    • zertosh
    • mafintosh
    • maxogden
    • dominictarr
    • thlorenz
    • terinjokes
    • jmm
    • mellowmelon
    • ashaffer88
    • balupton
    • cwmma
    • jprichardson
    • indutny
    • jryans
    • sethvincent
    • yoshuawuyts
    • ungoldman
    • ahdinosaur
    • elnounch
    • parshap
    • yerkopalma
    • forbeslindesay
    • leichtgewicht
    • garann
    • bret
    • anandthakker
    • mattdesl
    • hughsk
    • fpereira1
    • goto-bus-stop
    • bpostlethwaite
    • emilbayes
    • stevemao
    • pkrumins
    • tehshrike