30 lines
754 B
JavaScript
30 lines
754 B
JavaScript
import 'core-js/es6/promise';
|
|
|
|
// default promise polyfill doesn't include finally
|
|
Promise.prototype.finally = function finallyFn(callback) {
|
|
const constructor = this.constructor;
|
|
|
|
return this.then(
|
|
(value) => constructor.resolve(callback()).then(() => value),
|
|
(reason) => constructor.resolve(callback()).then(() => reason)
|
|
);
|
|
};
|
|
|
|
window.Promise = Promise;
|
|
|
|
export default function loadPolyfills() {
|
|
const fillCoreJs = () => {
|
|
if (
|
|
'startsWith' in String.prototype &&
|
|
'endsWith' in String.prototype &&
|
|
'includes' in Array.prototype &&
|
|
'assign' in Object &&
|
|
'keys' in Object
|
|
) return Promise.resolve();
|
|
|
|
return import(/* webpackChunkName: "polyfills" */ 'core-js');
|
|
};
|
|
|
|
return fillCoreJs();
|
|
}
|