mirror of
https://github.com/wassname/talk.git
synced 2026-07-04 13:24:10 +08:00
28 lines
638 B
TypeScript
28 lines
638 B
TypeScript
import { JSDOM } from "jsdom";
|
|
|
|
declare var global: any;
|
|
|
|
const jsdom = new JSDOM("<!doctype html><html><body></body></html>");
|
|
const { window } = jsdom;
|
|
|
|
function copyProps(src: any, target: any) {
|
|
const props = Object.getOwnPropertyNames(src)
|
|
.filter(prop => typeof target[prop] === "undefined")
|
|
.reduce(
|
|
(result, prop) => ({
|
|
...result,
|
|
[prop]: Object.getOwnPropertyDescriptor(src, prop),
|
|
}),
|
|
{}
|
|
);
|
|
Object.defineProperties(target, props);
|
|
}
|
|
|
|
global.window = window;
|
|
global.document = (window as any).document;
|
|
global.navigator = {
|
|
userAgent: "node.js",
|
|
};
|
|
|
|
copyProps(window, global);
|