tabby-web/frontend/src/ssr-polyfills.ts
Eugene Pankov f677febac3
init
2021-10-31 18:15:23 +01:00

42 lines
944 B
TypeScript

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()