0.1.2 • Published 6 years ago
@brillout/require-gold v0.1.2
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();
}