From 8b8fde8dc999051df0c5f70a4c4407859e3ddae0 Mon Sep 17 00:00:00 2001 From: Johannes Ewald Date: Tue, 4 Nov 2014 09:51:18 +0100 Subject: Put src generator into dedicated module `getDefinePropertySrc()` --- lib/getDefinePropertySrc.js | 27 +++++++++++++++++++++++++++ lib/rewire.js | 20 ++------------------ 2 files changed, 29 insertions(+), 18 deletions(-) create mode 100644 lib/getDefinePropertySrc.js (limited to 'lib') diff --git a/lib/getDefinePropertySrc.js b/lib/getDefinePropertySrc.js new file mode 100644 index 0000000..95dd9f2 --- /dev/null +++ b/lib/getDefinePropertySrc.js @@ -0,0 +1,27 @@ +"use strict"; + +var __get__ = require("./__get__.js"); +var __set__ = require ("./__set__.js"); +var __with__ = require("./__with__.js"); + +var srcs = { + "__get__": __get__.toString(), + "__set__": __set__.toString(), + "__with__": __with__.toString() +}; + +function getDefinePropertySrc() { + var src; + + src = Object.keys(srcs).reduce(function forEachSrc(preValue, value) { + return preValue += "Object.defineProperty(module.exports, '" + + value + + "', {enumerable: false, value: " + + srcs[value] + + "}); "; + }, ""); + + return src; +} + +module.exports = getDefinePropertySrc; \ No newline at end of file diff --git a/lib/rewire.js b/lib/rewire.js index 167d7b3..7d0b138 100644 --- a/lib/rewire.js +++ b/lib/rewire.js @@ -1,18 +1,10 @@ var Module = require("module"), fs = require("fs"), - __get__ = require("./__get__.js"), - __set__ = require ("./__set__.js"), - __with__ = require("./__with__.js"), getImportGlobalsSrc = require("./getImportGlobalsSrc.js"), + getDefinePropertySrc = require("./getDefinePropertySrc.js"), detectStrictMode = require("./detectStrictMode.js"), moduleEnv = require("./moduleEnv.js"); -var srcs = { - "__get__": __get__.toString(), - "__set__": __set__.toString(), - "__with__": __with__.toString() -}; - /** * Does actual rewiring the module. For further documentation @see index.js */ @@ -45,15 +37,7 @@ function internalRewire(parentModulePath, targetPath) { prelude = getImportGlobalsSrc(); // We append our special setter and getter. - appendix = "\n"; - - Object.keys(srcs).forEach(function forEachSrc(key) { - appendix += "Object.defineProperty(module.exports, '" + - key + - "', {enumerable: false, value: " + - srcs[key] + - "}); "; - }); + appendix = "\n" + getDefinePropertySrc(); // Check if the module uses the strict mode. // If so we must ensure that "use strict"; stays at the beginning of the module. -- cgit v1.2.3