1 | 'use strict';
|
2 |
|
3 | var _createForOfIteratorHelper = require('@babel/runtime/helpers/esm/createForOfIteratorHelper');
|
4 | var _ric = require('ric-shim');
|
5 |
|
6 | function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
7 |
|
8 | function _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 |
|
28 | var _createForOfIteratorHelper__default = _interopDefaultLegacy(_createForOfIteratorHelper);
|
29 | var _ric__default = _interopDefaultLegacy(_ric);
|
30 |
|
31 | function 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 _interopNamespace(require(
|
37 |
|
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 _interopNamespace(require(
|
44 |
|
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 _interopNamespace(require(
|
61 |
|
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 |
|
102 | module.exports = loadPolyfills;
|