siesta-lite
Version:
Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers
33 lines (32 loc) • 1.08 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var vm = require('vm');
exports.requireInContext = function (fileName, ctx, requireFun) {
var old = vm.runInThisContext;
var context = ctx;
if (!ctx) {
context = Object.assign(ctx || {}, {
Buffer: Buffer,
process: process,
console: console,
setImmediate: setImmediate,
clearImmediate: clearImmediate,
setTimeout: setTimeout,
clearTimeout: clearTimeout,
setInterval: setInterval,
clearInterval: clearInterval
});
if (typeof URL != 'undefined')
context.URL = URL;
if (typeof URLSearchParams != 'undefined')
context.URLSearchParams = URLSearchParams;
context.global = context;
vm.createContext(context);
}
vm.runInThisContext = function (code, options) {
return vm.runInContext(code, context, options);
};
(requireFun || require)(fileName);
vm.runInThisContext = old;
return context;
};
;