update to support paths without .js

This commit is contained in:
Philipp Kunz 2017-07-28 20:44:24 +02:00
parent 57e551e0ed
commit 2c32c7103c
3 changed files with 26 additions and 13 deletions

12
dist/index.js vendored
View File

@ -17,15 +17,22 @@ sourceMap.install({
if (cache[path]) { if (cache[path]) {
return cache[path].contents.toString(); return cache[path].contents.toString();
} }
else if (cache[path + '.js']) {
return cache[path + '.js'].contents.toString();
}
} }
}); });
let cache = {}; let cache = {};
let originalLoader = Module._extensions['.js']; let originalLoader = Module._extensions['.js'];
Module._extensions['.js'] = function (module, filename) { Module._extensions['.js'] = function (module, filename) {
let file = cache[filename]; let file = cache[filename];
let file2 = cache[filename + '.js'];
if (file) { if (file) {
module._compile(file.contents.toString(), filename); module._compile(file.contents.toString(), filename);
} }
else if (file2) {
module._compile(file2.contents.toString(), filename);
}
else { else {
originalLoader.apply(this, arguments); originalLoader.apply(this, arguments);
} }
@ -33,7 +40,8 @@ Module._extensions['.js'] = function (module, filename) {
let originalModuleResolve = Module._resolveFilename; let originalModuleResolve = Module._resolveFilename;
Module._resolveFilename = function (request, parent, isMain) { Module._resolveFilename = function (request, parent, isMain) {
let file = cache[request]; let file = cache[request];
if (file) { let file2 = cache[request + '.js'];
if (file || file2) {
return request; return request;
} }
else { else {
@ -52,4 +60,4 @@ exports.injectFileArray = (fileArray) => __awaiter(this, void 0, void 0, functio
} }
return fileArray; return fileArray;
}); });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsMEJBQXVCO0FBRXZCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUUvQixnREFBaUQ7QUFDakQscUNBQXNDO0FBS3RDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDaEIsWUFBWSxFQUFFLFVBQVUsSUFBSTtRQUMxQixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFBO0FBR0YsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ2YsSUFBSSxjQUFjLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUU5QyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsTUFBTSxFQUFFLFFBQVE7SUFDcEQsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzFCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDVCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDdkMsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVELElBQUkscUJBQXFCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFBO0FBRW5ELE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTTtJQUN6RCxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNULE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDckQsQ0FBQztBQUNILENBQUMsQ0FBQTtBQUVVLFFBQUEsUUFBUSxHQUFHO0lBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ3pDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFBO1FBQ3ZCLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3ZCLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBT1UsUUFBQSxlQUFlLEdBQUcsQ0FBTyxTQUF1QjtJQUN6RCxHQUFHLENBQUMsQ0FBQyxJQUFJLFVBQVUsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFBO0lBQ3JDLENBQUM7SUFDRCxNQUFNLENBQUMsU0FBUyxDQUFBO0FBQ2xCLENBQUMsQ0FBQSxDQUFBIn0= //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsMEJBQXVCO0FBRXZCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUU5QixnREFBZ0Q7QUFDaEQscUNBQXFDO0FBS3JDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDaEIsWUFBWSxFQUFFLFVBQVUsSUFBSTtRQUMxQixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ3hDLENBQUM7UUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2hELENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQyxDQUFBO0FBRUYsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFBO0FBQ2QsSUFBSSxjQUFjLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUU5QyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsTUFBTSxFQUFFLFFBQVE7SUFDcEQsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzFCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUE7SUFDbkMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNULE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7QUFDSCxDQUFDLENBQUE7QUFFRCxJQUFJLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQTtBQUVuRCxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU07SUFDekQsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3pCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUE7SUFDbEMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEIsTUFBTSxDQUFDLE9BQU8sQ0FBQTtJQUNoQixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixNQUFNLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBRVUsUUFBQSxRQUFRLEdBQUc7SUFDcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDekMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUE7UUFDdkIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDdkIsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFPVSxRQUFBLGVBQWUsR0FBRyxDQUFPLFNBQXVCO0lBQ3pELEdBQUcsQ0FBQyxDQUFDLElBQUksVUFBVSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDakMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUE7SUFDckMsQ0FBQztJQUNELE1BQU0sQ0FBQyxTQUFTLENBQUE7QUFDbEIsQ0FBQyxDQUFBLENBQUEifQ==

View File

@ -17,7 +17,7 @@ console.log('this console comment was injected')
}) })
tap.test('should log hi to console', async () => { tap.test('should log hi to console', async () => {
require(path.join(__dirname, 'hi.js')) require(path.join(__dirname, 'hi'))
}) })
tap.start() tap.start()

View File

@ -1,10 +1,10 @@
import 'typings-global' import 'typings-global'
let Module = require('module'); let Module = require('module')
import path = require('path'); import path = require('path')
import sourceMap = require('source-map-support'); import sourceMap = require('source-map-support')
import through2 = require('through2'); import through2 = require('through2')
import vm = require('vm'); import vm = require('vm')
import { Transform } from 'stream' import { Transform } from 'stream'
@ -12,18 +12,22 @@ sourceMap.install({
retrieveFile: function (path) { retrieveFile: function (path) {
if (cache[path]) { if (cache[path]) {
return cache[path].contents.toString() return cache[path].contents.toString()
} else if (cache[path + '.js']) {
return cache[path + '.js'].contents.toString()
} }
} }
}) })
let cache = {}
let cache = {};
let originalLoader = Module._extensions['.js'] let originalLoader = Module._extensions['.js']
Module._extensions['.js'] = function (module, filename) { Module._extensions['.js'] = function (module, filename) {
let file = cache[filename] let file = cache[filename]
let file2 = cache[filename + '.js']
if (file) { if (file) {
module._compile(file.contents.toString(), filename) module._compile(file.contents.toString(), filename)
} else if (file2) {
module._compile(file2.contents.toString(), filename)
} else { } else {
originalLoader.apply(this, arguments) originalLoader.apply(this, arguments)
} }
@ -32,9 +36,10 @@ Module._extensions['.js'] = function (module, filename) {
let originalModuleResolve = Module._resolveFilename let originalModuleResolve = Module._resolveFilename
Module._resolveFilename = function (request, parent, isMain) { Module._resolveFilename = function (request, parent, isMain) {
let file = cache[request]; let file = cache[request]
if (file) { let file2 = cache[request + '.js']
return request; if (file || file2) {
return request
} else { } else {
return originalModuleResolve.apply(this, arguments) return originalModuleResolve.apply(this, arguments)
} }