dom.js 548 B

12345678910111213141516171819202122
  1. import { JSDOM } from 'jsdom';
  2. const { window } = new JSDOM('<!doctype html><html><body></body></html>');
  3. function copyProps(src, target) {
  4. const props = Object.getOwnPropertyNames(src)
  5. .filter(prop => typeof target[prop] === 'undefined')
  6. .reduce((result, prop) => ({
  7. ...result,
  8. [prop]: Object.getOwnPropertyDescriptor(src, prop),
  9. }), {});
  10. Object.defineProperties(target, props);
  11. }
  12. global.window = window;
  13. global.document = window.document;
  14. global.navigator = {
  15. userAgent: 'node.js',
  16. };
  17. copyProps(window, global);