X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fpolyfills.ts;h=b68c07fdb9cac4695c8e8128b69e0c2cee47ae57;hb=3a0fb65c61f80b510bce979a45d59d17948745e8;hp=cf7270ac338829182d69257c3205b70e52310624;hpb=b20b5fed405f0ab24d24709d7db65625a79f3b37;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/polyfills.ts b/client/src/polyfills.ts index cf7270ac3..b68c07fdb 100644 --- a/client/src/polyfills.ts +++ b/client/src/polyfills.ts @@ -1,21 +1,90 @@ -// 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 + */ -// import 'ie-shim'; // Internet Explorer -// import 'es6-shim'; -// import 'es6-promise'; -// import 'es7-reflect-metadata'; +/*************************************************************************************************** + * BROWSER POLYFILLS + */ -// Prefer CoreJS over the polyfills above -import 'core-js/es6'; -import 'core-js/es7/reflect'; -require('zone.js/dist/zone'); +/** + * IE9, IE10 and IE11 requires all of the following polyfills. + */ -// Typescript emit helpers polyfill -import 'ts-helpers'; +// For Google Bot +import 'core-js/es6/symbol' +import 'core-js/es6/object' +import 'core-js/es6/function' +import 'core-js/es6/parse-int' +import 'core-js/es6/parse-float' +import 'core-js/es6/number' +import 'core-js/es6/math' +import 'core-js/es6/string' +import 'core-js/es6/date' +import 'core-js/es6/array' +import 'core-js/es6/regexp' +import 'core-js/es6/map' +import 'core-js/es6/weak-map' +import 'core-js/es6/set' +import 'core-js/es7/object' -if ('production' !== ENV) { - Error.stackTraceLimit = Infinity; +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. - require('zone.js/dist/long-stack-trace-zone'); -} +/** IE10 and IE11 requires the following for the Reflect API. */ + +// For Google Bot +// import 'core-js/es6/reflect'; // --> dealt with in src/environment.ts + +/** + * 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' // --> dealt with in src/environment.ts + +/** + * 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. + */ +// tslint:disable +import 'zone.js/dist/zone' // Included with Angular CLI. + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ + +// global/process polyfills + +;(window as any).global = window +;(window as any).process = require('process/') +;(window as any).Buffer = require('buffer/').Buffer