Skip to content

Commit d5839ea

Browse files
committed
babel-register updates
1 parent 2597086 commit d5839ea

32 files changed

+232
-247
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
node_modules
2+
src/rewire-ts

lib/constants.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

lib/helpers/babelModules.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
"use strict";
2+
var babelModules = function (dir) { return ("require('babel-register')({\nplugins:[['transform-es2015-modules-commonjs',{'loose':true,sourceRoot:'" + dir + "'}]]\n});\n"); };
23
Object.defineProperty(exports, "__esModule", { value: true });
3-
exports.default = "require('babel-core/register')({plugins: [['transform-es2015-modules-commonjs',{loose:true}]]});";
4+
exports.default = babelModules;

lib/helpers/fileExists.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22
function fileExistsPolyfill(dir) {
3-
return "function _fileExists(e,r){void 0===r&&(r=!0);try{accessSync(e,F_OK)}catch(c){if(c)return r||console.log(c),!1}return!0}var _require=require(\"fs\"),accessSync=_require.accessSync,F_OK=_require.F_OK,_require2=require(\"path\"),resolve=_require2.resolve;function exists(p){return _fileExists(resolve('" + dir + "',p))}";
3+
return "function _fileExists(e,r){void 0===r&&(r=!0);try{accessSync(e,F_OK)}catch(c){if(c)return r||console.log(c),!1}return!0}var _require=require(\"fs\"),accessSync=_require.accessSync,F_OK=_require.F_OK,_require2=require(\"path\"),resolve=_require2.resolve;function exists(p){return _fileExists(resolve('" + dir + "',p))}\n";
44
}
55
Object.defineProperty(exports, "__esModule", { value: true });
66
exports.default = fileExistsPolyfill;

lib/helpers/import-paths.js

Lines changed: 0 additions & 26 deletions
This file was deleted.

lib/helpers/importPaths.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function fixImportPaths(_a) {
2121
return '';
2222
}
2323
return line;
24-
}).join('\n');
24+
}).join('\n') + '\n';
2525
}
2626
Object.defineProperty(exports, "__esModule", { value: true });
2727
exports.default = fixImportPaths;

lib/helpers/overrideRequire.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"use strict";
22
Object.defineProperty(exports, "__esModule", { value: true });
3-
exports.default = "require = require('rewire-coderoad');";
3+
exports.default = "require = require('rewire-coderoad');\n";

lib/index.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ var overrideRequire_1 = require('./helpers/overrideRequire');
66
var importPaths_1 = require('./helpers/importPaths');
77
var jsCodeRoad = function (_a) {
88
var dir = _a.dir, content = _a.content;
9-
return ('(function(){\n'
10-
+ process_console_log_1.logger
11-
+ babelModules_1.default
12-
+ fileExists_1.default(dir)
13-
+ overrideRequire_1.default
14-
+ importPaths_1.default({ dir: dir, content: content })
15-
+ '\n}());');
9+
return ("(function(){\n'use strict;'\n"
10+
+ '// babel\n' + babelModules_1.default(dir)
11+
+ '// logger\n' + process_console_log_1.logger + '\n'
12+
+ '// file exists\n' + fileExists_1.default(dir)
13+
+ '// overrideRequire\n' + overrideRequire_1.default
14+
+ '// fix imports\n' + importPaths_1.default({ dir: dir, content: content })
15+
+ '}());');
1616
};
1717
Object.defineProperty(exports, "__esModule", { value: true });
1818
exports.default = jsCodeRoad;

lib/rewire-ts/__get__.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"use strict";
2+
function __get__(varName) {
3+
try {
4+
if (varName && typeof varName === 'string') {
5+
return eval(varName);
6+
}
7+
else {
8+
throw new TypeError('__get__ expects a non-empty string');
9+
}
10+
}
11+
catch (e) {
12+
return undefined;
13+
}
14+
}
15+
Object.defineProperty(exports, "__esModule", { value: true });
16+
exports.default = __get__;

lib/rewire-ts/addImportsAsVars.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
"use strict";
2+
var importRegex = /^import\s+(?:\s?(.+)\}?\s+from\s+)?[\'"]([^"\']+)["\']/m;
3+
var namedRegex = /^{.+}$/;
4+
function detectImports(src) {
5+
var imports = {};
6+
src.split('\n').forEach(function (line) {
7+
var match = line.match(importRegex);
8+
var vars = null;
9+
var path = null;
10+
var importType = 'default';
11+
if (match && match[1]) {
12+
vars = match[1];
13+
if (vars.match(namedRegex)) {
14+
vars = vars.slice(1, -1);
15+
importType = 'named';
16+
}
17+
vars = vars.split(',').map(function (x) { return x.trim(); });
18+
path = match[2];
19+
}
20+
if (vars && vars.length) {
21+
vars.forEach(function (i) { return imports[i] = {
22+
path: path,
23+
importType: importType,
24+
}; });
25+
}
26+
});
27+
var output = '';
28+
for (var key in imports) {
29+
if (!key) {
30+
continue;
31+
}
32+
try {
33+
var _a = imports[key], path = _a.path, importType = _a.importType;
34+
eval("var " + key + ";");
35+
if (importType === 'named') {
36+
output += "\nglobal." + key + " = require('" + path + "')." + key + ";";
37+
}
38+
else {
39+
output += "\nglobal." + key + " = require('" + path + "').default;";
40+
}
41+
}
42+
catch (e) {
43+
return;
44+
}
45+
}
46+
return output;
47+
}
48+
Object.defineProperty(exports, "__esModule", { value: true });
49+
exports.default = detectImports;

lib/rewire-ts/fileExists.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"use strict";
2+
var fs = require('fs');
3+
function fileExists(path) {
4+
try {
5+
fs.accessSync(path, fs.F_OK);
6+
}
7+
catch (e) {
8+
if (e) {
9+
console.log(e);
10+
}
11+
return false;
12+
}
13+
return true;
14+
}
15+
Object.defineProperty(exports, "__esModule", { value: true });
16+
exports.default = fileExists;

lib/rewire-ts/getDefinePropertySrc.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
'use strict';
2+
var __get__1 = require('./__get__');
3+
var getMethods = function (source) { return ({
4+
'__get__': __get__1.default.toString(),
5+
'__text__': "'" + source.toString() + "'",
6+
}); };
7+
function getDefinePropertySrc(src) {
8+
console.log(src);
9+
var methods = getMethods(src);
10+
return "\nif (typeof(module.exports) === 'function' ||\n(typeof(module.exports) === 'object' && module.exports !== null && Object.isExtensible(module.exports))) {" +
11+
Object.keys(methods).reduce(function (preValue, value) {
12+
return preValue += "Object.defineProperty(module.exports, '" + value + "', {enumerable: false, value: " + methods[value] + ", writable: true});";
13+
}, '') +
14+
'}';
15+
}
16+
Object.defineProperty(exports, "__esModule", { value: true });
17+
exports.default = getDefinePropertySrc;

lib/rewire-ts/getImportGlobalsSrc.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
"use strict";
2+
function getImportGlobalsSrc() {
3+
var key, src = '', globalObj = typeof global === 'undefined' ? window : global;
4+
var ignore = [];
5+
ignore.push('global');
6+
ignore.push('module', 'exports', 'require');
7+
for (key in globalObj) {
8+
if (ignore.indexOf(key) !== -1) {
9+
continue;
10+
}
11+
try {
12+
eval("var " + key + ";");
13+
src += "var " + key + " = global." + key + ";";
14+
}
15+
catch (e) {
16+
return;
17+
}
18+
}
19+
return src;
20+
}
21+
Object.defineProperty(exports, "__esModule", { value: true });
22+
exports.default = getImportGlobalsSrc;

lib/rewire-ts/index.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
"use strict";
2+
var rewire_1 = require('./rewire');
3+
var fileExists_1 = require('./fileExists');
4+
function rewire(filename) {
5+
if (!filename.match(/^[a-zA-Z]/)) {
6+
if (!fileExists_1.default(filename)) {
7+
return {
8+
__get__: function () { return; },
9+
__text__: undefined,
10+
};
11+
}
12+
}
13+
return rewire_1.rewireModule(module.parent, filename);
14+
}
15+
;
16+
delete require.cache[__filename];
17+
Object.defineProperty(exports, "__esModule", { value: true });
18+
exports.default = rewire;

lib/rewire-ts/moduleEnv.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"use strict";
2+
var Module = require('module');
3+
var moduleWrapper0 = Module.wrapper[0], moduleWrapper1 = Module.wrapper[1], nodeRequire, currentModule;
4+
function load(targetModule) {
5+
nodeRequire = targetModule.require;
6+
targetModule.require = requireProxy;
7+
currentModule = targetModule;
8+
targetModule.load(targetModule.id);
9+
reset();
10+
}
11+
exports.load = load;
12+
function reset() {
13+
Module.wrapper[0] = moduleWrapper0;
14+
Module.wrapper[1] = moduleWrapper1;
15+
}
16+
function inject(prelude, appendix) {
17+
Module.wrapper[0] = moduleWrapper0 + prelude;
18+
Module.wrapper[1] = appendix + moduleWrapper1;
19+
}
20+
exports.inject = inject;
21+
function requireProxy(path) {
22+
reset();
23+
currentModule.require = nodeRequire;
24+
return nodeRequire.call(currentModule, path);
25+
}

lib/rewire-ts/rewire.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
"use strict";
2+
var getImportGlobalsSrc_1 = require('./getImportGlobalsSrc');
3+
var getDefinePropertySrc_1 = require('./getDefinePropertySrc');
4+
var addImportsAsVars_1 = require('./addImportsAsVars');
5+
var moduleEnv_1 = require('./moduleEnv');
6+
var Module = require('module'), fs = require('fs');
7+
function rewireModule(parentModulePath, targetPath) {
8+
if (typeof targetPath !== 'string') {
9+
throw new TypeError('Filename must be a string');
10+
}
11+
targetPath = Module._resolveFilename(targetPath, parentModulePath);
12+
if (Array.isArray(targetPath)) {
13+
targetPath = targetPath[1];
14+
}
15+
var src = fs.readFileSync(targetPath, 'utf8');
16+
var targetModule = new Module(targetPath, parentModulePath);
17+
var prelude = getImportGlobalsSrc_1.default()
18+
+ '(function () { ';
19+
var appendix = '\n'
20+
+ getDefinePropertySrc_1.default(src)
21+
+ '\n'
22+
+ addImportsAsVars_1.default(src)
23+
+ '})();';
24+
moduleEnv_1.inject(prelude, appendix);
25+
moduleEnv_1.load(targetModule);
26+
return targetModule.exports;
27+
}
28+
exports.rewireModule = rewireModule;
29+
;

lib/runner/index.js

Lines changed: 0 additions & 10 deletions
This file was deleted.

lib/runner/paths/mocha.js

Lines changed: 0 additions & 16 deletions
This file was deleted.

lib/runner/paths/node.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

lib/runner/runner-process.js

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)