UNPKG

siesta-lite

Version:

Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers

41 lines (28 loc) 1.1 kB
let vm = require('vm') export const requireInContext = (fileName : string, ctx? : object, requireFun? : Function) : object => { let old = vm.runInThisContext let context : any = 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 = (code, options) => { return vm.runInContext(code, context, options) } (requireFun || require)(fileName) vm.runInThisContext = old return context }