strong-trace
Version:
StrongTrace Node.js Tracer
41 lines (32 loc) • 917 B
JavaScript
;
module.exports = replaceCompile
module.exports.restoreCompile = restoreCompile
// TODO option to save files out in transformed form
function replaceCompile(tx, fileTest) {
if (tx == null) {
return
}
// If no fileTest provided, rewrite every file.
if (fileTest == null) {
fileTest = function () { return true }
}
// make sure that we're not double-wrapping compile
restoreCompile()
var Module = Object.getPrototypeOf(module)
Module.__compile = Module._compile
Module._compile = function (content, filename) {
// console.log(filename)
if (fileTest(filename)) {
content = tx.transform(content, filename)
}
// console.log(content)
return this.__compile(content, filename)
}
}
function restoreCompile() {
var Module = Object.getPrototypeOf(module)
if (Module.__compile === undefined) {
return
}
Module._compile = Module.__compile
}