import * as domino from 'domino'; import * as fs from 'fs'; import * as path from 'path'; const template = fs.readFileSync(path.join(process.cwd(), 'build', 'index.html')).toString(); const win = domino.createWindow(template); global['window'] = win; Object.defineProperty(win.document.body.style, 'transform', { value: () => { return { enumerable: true, configurable: true }; }, }); Object.defineProperty(win.document.body.style, 'z-index', { value: () => { return { enumerable: true, configurable: true }; }, }); global['document'] = win.document; global['CSS'] = null; // global['atob'] = win.atob; global['atob'] = (base64: string) => { return Buffer.from(base64, 'base64').toString(); }; function setDomTypes() { // Make all Domino types available as types in the global env. Object.assign(global, domino['impl']); (global as any)['KeyboardEvent'] = domino['impl'].Event; } setDomTypes();