Skip to content

Instantly share code, notes, and snippets.

@chromakode
Created December 3, 2014 01:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chromakode/4cbcc6da0418c0235b4a to your computer and use it in GitHub Desktop.
Save chromakode/4cbcc6da0418c0235b4a to your computer and use it in GitHub Desktop.
jsio require preprocessor
var importExpr = /^(\s*)(import\s+[^=+*"'\r\n;\/]+|from\s+[^=+"'\r\n;\/]+)(;|\/|$)/gm;
function replaceImport(raw, p1, p2, p3) {
if (!/\/\//.test(p1)) {
return p1 + 'jsio(\'' + p2 + '\')' + p3;
}
return raw;
}
var requireExpr = /^(.*)require\(['"]([^=+*"'\r\n;]+)['"]\)(;|\/|$)/gm;
function replaceRequire(raw, p1, p2, p3) {
if (!/\/\//.test(p1)) {
return p1 + 'jsio(\'' + p2 + '\')' + p3;
}
return raw;
}
exports = function (path, moduleDef, opts) {
moduleDef.src = moduleDef.src.replace(importExpr, replaceImport);
moduleDef.src = moduleDef.src.replace(requireExpr, replaceRequire);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment