fork-openpgpjs/src/polyfills.js
Daniel Huigens 2fffc76060 Don't overwrite Web Streams Polyfill to globals
Instead, use the ponyfill that's now included in web-stream-tools.
Also, convert back to native ReadableStream when we used the ponyfill.
2021-02-09 19:25:20 +01:00

62 lines
1.9 KiB
JavaScript

/**
* @fileoverview Old browser polyfills
* All are listed as dev dependencies because Node does not need them
* and for browser babel will take care of it
* @requires util
* @module polyfills
*/
import util from './util';
if (typeof global !== 'undefined') {
/********************************************************************
* NOTE: This list is duplicated in Gruntfile.js, *
* so that these polyfills are only included in the compat bundle. *
********************************************************************/
try {
if (typeof global.fetch === 'undefined') {
require('whatwg-fetch');
}
if (typeof Array.prototype.fill === 'undefined') {
require('core-js/fn/array/fill');
}
if (typeof Array.prototype.find === 'undefined') {
require('core-js/fn/array/find');
}
if (typeof Array.prototype.includes === 'undefined') {
require('core-js/fn/array/includes');
}
if (typeof Array.from === 'undefined') {
require('core-js/fn/array/from');
}
// No if-statement on Promise because of IE11. Otherwise Promise is undefined in the service worker.
require('core-js/fn/promise');
if (typeof Uint8Array.from === 'undefined') {
require('core-js/fn/typed/uint8-array');
}
if (typeof String.prototype.repeat === 'undefined') {
require('core-js/fn/string/repeat');
}
if (typeof Symbol === 'undefined') {
require('core-js/fn/symbol');
}
if (typeof Object.assign === 'undefined') {
require('core-js/fn/object/assign');
}
} catch (e) {}
}
if (typeof TextEncoder === 'undefined') {
const nodeUtil = util.nodeRequire('util') || {};
global.TextEncoder = nodeUtil.TextEncoder;
global.TextDecoder = nodeUtil.TextDecoder;
}
if (typeof TextEncoder === 'undefined') {
const textEncoding = require('text-encoding-utf-8');
global.TextEncoder = textEncoding.TextEncoder;
global.TextDecoder = textEncoding.TextDecoder;
}