X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fpolyfills.ts;h=eec30760df211f2c3eee5c31301f5770cc98ef22;hb=f2e05ffea78255dd431dbddfffff89ac9ff69bdc;hp=65e211459ba76a3dae8adfc8e350061e0020073a;hpb=a6375e69668ea42e19531c6bc68dcd37f3f7cbd7;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/polyfills.ts b/client/src/polyfills.ts index 65e211459..eec30760d 100644 --- a/client/src/polyfills.ts +++ b/client/src/polyfills.ts @@ -1,11 +1,26 @@ -// Polyfills -// (these modules are what are in 'angular2/bundles/angular2-polyfills' so don't use that here) +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ -require('intl'); -require('intl/locale-data/jsonp/en.js'); -import 'ie-shim'; // Internet Explorer +/*************************************************************************************************** + * BROWSER POLYFILLS + */ -// Prefer CoreJS over the polyfills above +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ + +// For Google Bot import 'core-js/es6/symbol'; import 'core-js/es6/object'; import 'core-js/es6/function'; @@ -18,22 +33,56 @@ import 'core-js/es6/date'; import 'core-js/es6/array'; import 'core-js/es6/regexp'; import 'core-js/es6/map'; -import 'core-js/es6/set'; import 'core-js/es6/weak-map'; -import 'core-js/es6/weak-set'; -import 'core-js/es6/typed'; +import 'core-js/es6/set'; +import 'core-js/es7/object'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following for the Reflect API. */ + +// For Google Bot import 'core-js/es6/reflect'; -// see issue https://github.com/AngularClass/angular2-webpack-starter/issues/709 -// import 'core-js/es6/promise'; -import 'core-js/es7/reflect'; -import 'zone.js/dist/zone'; +/** Evergreen browsers require these. **/ +// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove. +import 'core-js/es7/reflect' + + +/** + * Required to support Web Animations `@angular/platform-browser/animations`. + * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation + **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + */ + +// (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame +// (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick +// (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames +/* +* in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js +* with the following flag, it will bypass `zone.js` patch for IE/Edge +*/ +// (window as any).__Zone_enable_cross_context_check = true; + + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone' // Included with Angular CLI. + -// Typescript emit helpers polyfill -import 'ts-helpers'; +/*************************************************************************************************** + * APPLICATION IMPORTS + */ -if ('production' !== ENV) { - Error.stackTraceLimit = Infinity; +// global/process polyfills - require('zone.js/dist/long-stack-trace-zone'); -} +;(window as any).global = window; +;(window as any).process = require('process/'); +;(window as any).Buffer = require('buffer/').Buffer;