Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/rewire.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/moduleEnv.js')
-rw-r--r--lib/moduleEnv.js20
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/moduleEnv.js b/lib/moduleEnv.js
index 8ad7891..29c407c 100644
--- a/lib/moduleEnv.js
+++ b/lib/moduleEnv.js
@@ -2,6 +2,7 @@
var Module = require("module"),
fs = require("fs"),
+ babelCore = require("babel-core"),
coffee;
// caching original wrapper
@@ -11,18 +12,34 @@ var moduleWrapper0 = Module.wrapper[0],
nodeRequire,
currentModule;
-function load(targetModule) {
+function load(targetModule, isTransform) {
nodeRequire = targetModule.require;
targetModule.require = requireProxy;
currentModule = targetModule;
registerExtensions();
+
targetModule.load(targetModule.id);
// This is only necessary if nothing has been required within the module
reset();
}
+function compile(targetModule, src, filename) {
+ nodeRequire = targetModule.require;
+ targetModule.require = requireProxy;
+ targetModule.filename = filename;
+ currentModule = targetModule;
+
+ var convertedSrc = babelCore.transform(stripBOM(src), {
+ plugins: ["transform-es2015-constants"]
+ });
+
+ targetModule._compile(convertedSrc.code, filename);
+
+ reset();
+}
+
function reset() {
Module.wrapper[0] = moduleWrapper0;
Module.wrapper[1] = moduleWrapper1;
@@ -91,4 +108,5 @@ try {
}
exports.load = load;
+exports.compile = compile;
exports.inject = inject;