polyfill.js 572 B

1234567891011121314151617181920212223242526
  1. import tldRules from 'tldjs/rules.json';
  2. import { JSDOM } from 'jsdom';
  3. global.window = global;
  4. global.browser = {
  5. storage: {
  6. local: {
  7. get() {
  8. return Promise.resolve({
  9. 'dat:tldRules': tldRules,
  10. });
  11. },
  12. set() {
  13. return Promise.resolve();
  14. },
  15. },
  16. },
  17. };
  18. const domProps = Object.getOwnPropertyDescriptors(new JSDOM('').window);
  19. for (const k of Object.keys(domProps)) {
  20. if (k.endsWith('Storage') || k in global) delete domProps[k];
  21. }
  22. delete domProps.performance;
  23. Object.defineProperties(global, domProps);