UNPKG

3.03 kBJavaScriptView Raw
1'use strict';
2
3var _createForOfIteratorHelper = require('@babel/runtime/helpers/esm/createForOfIteratorHelper');
4var _ric = require('ric-shim');
5
6function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
8function _interopNamespace(e) {
9 if (e && e.__esModule) return e;
10 var n = Object.create(null);
11 if (e) {
12 Object.keys(e).forEach(function (k) {
13 if (k !== 'default') {
14 var d = Object.getOwnPropertyDescriptor(e, k);
15 Object.defineProperty(n, k, d.get ? d : {
16 enumerable: true,
17 get: function () {
18 return e[k];
19 }
20 });
21 }
22 });
23 }
24 n['default'] = e;
25 return Object.freeze(n);
26}
27
28var _createForOfIteratorHelper__default = /*#__PURE__*/_interopDefaultLegacy(_createForOfIteratorHelper);
29var _ric__default = /*#__PURE__*/_interopDefaultLegacy(_ric);
30
31function loadPolyfills() {
32 var include = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all';
33 var loaders = {
34 intl: function intl() {
35 if (!global.Intl || typeof global.Intl.DateTimeFormat.prototype.formatToParts !== 'function') {
36 return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
37 /* webpackChunkName: "intl-polyfill" */
38 'intl')); }).then(function (_ref) {
39 var Intl = _ref["default"];
40 global.Intl = Intl;
41 return global.Intl;
42 }).then(function (Intl) {
43 return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
44 /* webpackChunkName: "locale-en" */
45 'intl/locale-data/jsonp/en')); }).then(function () {
46 return Intl;
47 });
48 });
49 }
50 },
51 ric: function ric() {
52 if (!global.requestIdleCallback) {
53 global.requestIdleCallback = _ric__default['default'];
54 global.cancelIdleCallback = _ric__default['default'].cancelIdleCallback;
55 return Promise.resolve(_ric__default['default']);
56 }
57 },
58 fetch: function fetch() {
59 if (window && !window.fetch) {
60 return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
61 /* webpackChunkName: "fetch-polyfill" */
62 'whatwg-fetch')); }).then(function () {
63 return window.fetch;
64 });
65 }
66 }
67 };
68 var promises = [];
69
70 if (include === 'all') {
71 for (var k in loaders) {
72 var promise = loaders[k]();
73
74 if (promise) {
75 promises.push(promise);
76 }
77 }
78 } else {
79 var _iterator = _createForOfIteratorHelper__default['default'](include),
80 _step;
81
82 try {
83 for (_iterator.s(); !(_step = _iterator.n()).done;) {
84 var _k = _step.value;
85
86 var _promise = loaders[_k]();
87
88 if (_promise) {
89 promises.push(_promise);
90 }
91 }
92 } catch (err) {
93 _iterator.e(err);
94 } finally {
95 _iterator.f();
96 }
97 }
98
99 return Promise.all(promises);
100}
101
102module.exports = loadPolyfills;