node-hook
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/node-hook package

    1.0.0 • Public • Published

    node-hook

    Run source transform function on Node require

    NPM

    Build status dependencies devdependencies semantic-release

    Install and use

    npm install --save node-hook

    Before loading desired .js files, install hook

    var hook = require('node-hook');
     
    function logLoadedFilename(source, filename) {
        return 'console.log("' + filename + '");\n' + source;
    }
    hook.hook('.js', logLoadedFilename);
    require('./dummy');
    // prints fulle dummy.js filename, runs dummy.js
     
    hook.unhook('.js'); // removes your own transform

    remember: Nodejs caches compiled modules, so if the transform is not working, you might need to delete the cached entry in require.cache, then call require(filename) again to force reload.

    Related: Node require replacement really-need.

    You can hook several transformers thanks to the code submitted by djulien

    Existing transform

    You can get the current transform and run any source through it. For example to see how the current source looks when loaded but before evaluated

    const filename = resolve('./call-foo.js')
    const transform = Module._extensions['.js']
    const fakeModule = {
      _compile: source => {
        console.log('transformed code')
        console.log(source)
      }
    }
    transform(fakeModule, filename)

    Small print

    Author: Gleb Bahmutov © 2013

    License: MIT - do anything with the code, but don't blame me if it does not work.

    Support: if you find any problems with this module, email / tweet / open issue on Github

    Install

    npm i node-hook

    DownloadsWeekly Downloads

    28,409

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • bahmutov