Skip to content
This repository has been archived by the owner on Jul 3, 2024. It is now read-only.

Commit

Permalink
fix ns-require with same files paths
Browse files Browse the repository at this point in the history
  • Loading branch information
danieljoppi committed Jan 10, 2016
1 parent a54d347 commit 63aafe0
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/vm-sim.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,15 +108,16 @@ exports.importSuiteScript = (script) => {

context.nsRequire = (libReq) => {
return (mod) => {
return libReq[mod] || require(mod);
let alias = libReq[mod];
return (alias && context[alias]) || require(mod);
};
};

const requireRe = /require\(\s*['"]([^'")]*)['"]\s*\)/g;
let nsify = (content, alias, libReq) => {
let pre = `var ${alias} = (function(require, module, exports){`,
lstr = JSON.stringify(libReq),
pos = `return module.exports || exports;})(nsRequire(${lstr}), {}, {})`;
pos = `return module.exports || exports;})(nsRequire(${lstr}), {}, {});`;
return new Buffer(`${pre}${content}${pos}`);
},
findRequire = (dir, alias, libReq) => {
Expand All @@ -138,7 +139,9 @@ exports.importSuiteScript = (script) => {
_libReq = {};
libReq[mod] = _alias;
content.replace(requireRe, findRequire(_dir, _alias, _libReq));
libs[file] = nsify(content, _alias, _libReq);

let idx = _alias.substr(_alias.indexOf('$')).replace(/\$/g,'');
libs[`${file}$${idx}`] = nsify(content, _alias, _libReq);
}
return orig;
};
Expand Down

0 comments on commit 63aafe0

Please sign in to comment.