0.1.2 • Published 5 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
- Usesource-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();
}