0.1.2 • Published 5 years ago

@brillout/require-gold v0.1.2

Weekly downloads
3
License
-
Repository
github
Last release
5 years ago

require-gold

Same as Node.js' native require but with added options:

  • skipCache - Don't use the cache. (Makes sure the module is reloaded.)
  • useSourceMap - Use source-map-support.
  • returnDefault - Always return the default export of the module. (This is convenient for code that needs to be agnostic to whether the required module is a CommonJS module or a ES6 module.)

Usage:

const require_ = require('@brillout/require-gold'); // npm install @brillout/require-gold
require_('./some-module', {skipCache: true, returnDefault: true, useSourceMap: true});

For a full documentation, see the source code:

// /require_.js

module.exports = require_;

function require_(
    moduleName,
    {
      skipCache=false,
      useSourceMap=true,
      returnDefault=true,
    }={}
  ){
  const modulePath = require.resolve(moduleName);

  if( useSourceMap ){
    installSourceMap();
  }

  if( skipCache ){
    delete require.cache[modulePath];
  }

  const moduleExports = require(modulePath);

  if( returnDefault ) {
    if( moduleExports.__esModule === true ) {
      return moduleExports.default;
    } else {
      return moduleExports;
    }
  }

  return moduleExports;
}

let sourceMapIsInstalled;
function installSourceMap() {
  if( !sourceMapIsInstalled ) return;
  sourceMapIsInstalled = true;
  const sourceMap = require('source-map-support');
  sourceMap.install();
}