UNPKG

lasso-require

Version:

Lasso.js plugin to support Node.js style module require in the browser

43 lines (33 loc) 1.2 kB
var nodePath = require('path'); var fs = require('fs'); var lassoModulesClientMainPath = require.resolve('lasso-modules-client'); var FS_READ_OPTIONS = {encoding: 'utf8'}; var modGlobalVarRegex = /\$_mod/g; exports.create = function(config, lasso) { var modulesRuntimeGlobal = config.modulesRuntimeGlobal; return { getDir: function() { return nodePath.dirname(lassoModulesClientMainPath); }, read: function(lassoContext, callback) { fs.readFile(lassoModulesClientMainPath, FS_READ_OPTIONS, function(err, contents) { if (err) { return callback(err); } if (modulesRuntimeGlobal) { contents = contents.replace(modGlobalVarRegex, modulesRuntimeGlobal); } callback(null, contents); }); }, getUnbundledTargetPrefix: function(lassoContext) { return config.unbundledTargetPrefix; }, getSourceFile: function() { return lassoModulesClientMainPath; }, calculateKey: function() { return 'modules-runtime'; } }; };