Skip to content

Commit 809d991

Browse files
crisbetojelbourn
authored andcommitted
build: switch dev app system config to es5 (#16853)
Currently the `system-config.js` is loaded in directly and it's written in ES6. This breaks loading the dev app in some older browsers that don't support it. These changes rewrite the file to ES5.
1 parent ca7fff5 commit 809d991

File tree

1 file changed

+93
-82
lines changed

1 file changed

+93
-82
lines changed

src/dev-app/system-config.js

Lines changed: 93 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9-
const CDK_PACKAGES = [
9+
// Note that this file isn't being transpiled so we need to keep it in ES5.
10+
11+
var CDK_PACKAGES = [
1012
'a11y',
1113
'accordion',
1214
'bidi',
@@ -26,13 +28,13 @@ const CDK_PACKAGES = [
2628
'tree',
2729
];
2830

29-
const CDK_EXPERIMENTAL_PACKAGES = [
31+
var CDK_EXPERIMENTAL_PACKAGES = [
3032
'dialog',
3133
'popover-edit',
3234
'scrolling',
3335
];
3436

35-
const MATERIAL_PACKAGES = [
37+
var MATERIAL_PACKAGES = [
3638
'autocomplete', 'badge',
3739
'bottom-sheet', 'button',
3840
'button-toggle', 'card',
@@ -53,11 +55,11 @@ const MATERIAL_PACKAGES = [
5355
'tree',
5456
];
5557

56-
const GOOGLE_MAPS_PACKAGES = [
58+
var GOOGLE_MAPS_PACKAGES = [
5759
'google-map',
5860
];
5961

60-
const MATERIAL_EXPERIMENTAL_PACKAGES = [
62+
var MATERIAL_EXPERIMENTAL_PACKAGES = [
6163
'mdc-button',
6264
'mdc-card',
6365
'mdc-checkbox',
@@ -71,13 +73,13 @@ const MATERIAL_EXPERIMENTAL_PACKAGES = [
7173
];
7274

7375
/** Bazel runfile path referring to the "src/" folder of the project. */
74-
const srcRunfilePath = 'angular_material/src';
76+
var srcRunfilePath = 'angular_material/src';
7577

7678
/** Path mappings that will be registered in SystemJS. */
77-
const pathMapping = {};
79+
var pathMapping = {};
7880

7981
/** Package configurations that will be used in SystemJS. */
80-
const packagesConfig = {};
82+
var packagesConfig = {};
8183

8284
// Configure all primary entry-points.
8385
configureEntryPoint('cdk');
@@ -88,88 +90,97 @@ configureEntryPoint('material-examples');
8890
configureEntryPoint('material-moment-adapter');
8991

9092
// Configure all secondary entry-points.
91-
CDK_PACKAGES.forEach(pkgName => configureEntryPoint('cdk', pkgName));
92-
CDK_EXPERIMENTAL_PACKAGES.forEach(pkgName => configureEntryPoint('cdk-experimental', pkgName));
93-
MATERIAL_EXPERIMENTAL_PACKAGES.forEach(
94-
pkgName => configureEntryPoint('material-experimental', pkgName));
95-
MATERIAL_PACKAGES.forEach(pkgName => configureEntryPoint('material', pkgName));
96-
GOOGLE_MAPS_PACKAGES.forEach(pkgName => configureEntryPoint('google-maps', pkgName));
93+
CDK_PACKAGES.forEach(function(pkgName) {
94+
configureEntryPoint('cdk', pkgName);
95+
});
96+
CDK_EXPERIMENTAL_PACKAGES.forEach(function(pkgName) {
97+
configureEntryPoint('cdk-experimental', pkgName);
98+
});
99+
MATERIAL_EXPERIMENTAL_PACKAGES.forEach(function(pkgName) {
100+
configureEntryPoint('material-experimental', pkgName);
101+
});
102+
MATERIAL_PACKAGES.forEach(function(pkgName) {
103+
configureEntryPoint('material', pkgName);
104+
});
105+
GOOGLE_MAPS_PACKAGES.forEach(function(pkgName) {
106+
configureEntryPoint('google-maps', pkgName);
107+
});
97108

98109
/** Configures the specified package and its entry-point. */
99110
function configureEntryPoint(pkgName, entryPoint) {
100111
if (entryPoint === undefined) {
101-
pathMapping[`@angular/${pkgName}`] = `${srcRunfilePath}/${pkgName}`;
102-
packagesConfig[`${srcRunfilePath}/${pkgName}`] = {main: 'index.js'};
112+
pathMapping['@angular/' + pkgName] = srcRunfilePath + '/' + pkgName;
113+
packagesConfig[srcRunfilePath + '/' + pkgName] = {main: 'index.js'};
103114
} else {
104-
pathMapping[`@angular/${pkgName}/${entryPoint}`] = `${srcRunfilePath}/${pkgName}/${entryPoint}`;
105-
packagesConfig[`${srcRunfilePath}/${pkgName}/${entryPoint}`] = {main: 'index.js'};
115+
pathMapping['@angular/' + pkgName + '/' + entryPoint] =
116+
srcRunfilePath + '/' + pkgName + '/' + entryPoint;
117+
packagesConfig[srcRunfilePath + '/' + pkgName + '/' + entryPoint] = {main: 'index.js'};
106118
}
107119
}
108120

121+
var map = Object.assign({
122+
'main': 'main.js',
123+
'tslib': 'tslib/tslib.js',
124+
'moment': 'moment/min/moment-with-locales.min.js',
125+
126+
'rxjs': 'rxjs/bundles/rxjs.umd.min.js',
127+
'rxjs/operators': 'system-rxjs-operators.js',
128+
129+
// MDC Web
130+
'@material/animation': '@material/animation/dist/mdc.animation.js',
131+
'@material/auto-init': '@material/auto-init/dist/mdc.autoInit.js',
132+
'@material/base': '@material/base/dist/mdc.base.js',
133+
'@material/checkbox': '@material/checkbox/dist/mdc.checkbox.js',
134+
'@material/chips': '@material/chips/dist/mdc.chips.js',
135+
'@material/dialog': '@material/dialog/dist/mdc.dialog.js',
136+
'@material/dom': '@material/dom/dist/mdc.dom.js',
137+
'@material/drawer': '@material/drawer/dist/mdc.drawer.js',
138+
'@material/floating-label': '@material/floating-label/dist/mdc.floatingLabel.js',
139+
'@material/form-field': '@material/form-field/dist/mdc.formField.js',
140+
'@material/grid-list': '@material/grid-list/dist/mdc.gridList.js',
141+
'@material/icon-button': '@material/icon-button/dist/mdc.iconButton.js',
142+
'@material/line-ripple': '@material/line-ripple/dist/mdc.lineRipple.js',
143+
'@material/linear-progress': '@material/linear-progress/dist/mdc.linearProgress.js',
144+
'@material/list': '@material/list/dist/mdc.list.js',
145+
'@material/menu': '@material/menu/dist/mdc.menu.js',
146+
'@material/menu-surface': '@material/menu-surface/dist/mdc.menuSurface.js',
147+
'@material/notched-outline': '@material/notched-outline/dist/mdc.notchedOutline.js',
148+
'@material/radio': '@material/radio/dist/mdc.radio.js',
149+
'@material/ripple': '@material/ripple/dist/mdc.ripple.js',
150+
'@material/select': '@material/select/dist/mdc.select.js',
151+
'@material/slider': '@material/slider/dist/mdc.slider.js',
152+
'@material/snackbar': '@material/snackbar/dist/mdc.snackbar.js',
153+
'@material/switch': '@material/switch/dist/mdc.switch.js',
154+
'@material/tab': '@material/tab/dist/mdc.tab.js',
155+
'@material/tab-bar': '@material/tab-bar/dist/mdc.tabBar.js',
156+
'@material/tab-indicator': '@material/tab-indicator/dist/mdc.tabIndicator.js',
157+
'@material/tab-scroller': '@material/tab-scroller/dist/mdc.tabScroller.js',
158+
'@material/text-field': '@material/textfield/dist/mdc.textfield.js',
159+
'@material/top-app-bar': '@material/top-app-bar/dist/mdc.topAppBar.js'
160+
}, pathMapping);
161+
162+
var packages = Object.assign({
163+
// Set the default extension for the root package, because otherwise the dev-app can't
164+
// be built within the production mode. Due to missing file extensions.
165+
'.': {defaultExtension: 'js'},
166+
167+
// Angular specific mappings.
168+
'@angular/core': {main: 'bundles/core.umd.js'},
169+
'@angular/common': {main: 'bundles/common.umd.js'},
170+
'@angular/common/http': {main: '../bundles/common-http.umd.js'},
171+
'@angular/compiler': {main: 'bundles/compiler.umd.js'},
172+
'@angular/forms': {main: 'bundles/forms.umd.js'},
173+
'@angular/animations': {main: 'bundles/animations.umd.js'},
174+
'@angular/elements': {main: 'bundles/elements.umd.js'},
175+
'@angular/router': {main: 'bundles/router.umd.js'},
176+
'@angular/animations/browser': {main: '../bundles/animations-browser.umd.js'},
177+
'@angular/platform-browser/animations': {main: '../bundles/platform-browser-animations.umd'},
178+
'@angular/platform-browser': {main: 'bundles/platform-browser.umd.js'},
179+
'@angular/platform-browser-dynamic': {main: 'bundles/platform-browser-dynamic.umd.js'},
180+
}, packagesConfig);
181+
109182
// Configure the base path and map the different node packages.
110183
System.config({
111-
map: {
112-
'main': 'main.js',
113-
'tslib': 'tslib/tslib.js',
114-
'moment': 'moment/min/moment-with-locales.min.js',
115-
116-
'rxjs': 'rxjs/bundles/rxjs.umd.min.js',
117-
'rxjs/operators': 'system-rxjs-operators.js',
118-
119-
// MDC Web
120-
'@material/animation': '@material/animation/dist/mdc.animation.js',
121-
'@material/auto-init': '@material/auto-init/dist/mdc.autoInit.js',
122-
'@material/base': '@material/base/dist/mdc.base.js',
123-
'@material/checkbox': '@material/checkbox/dist/mdc.checkbox.js',
124-
'@material/chips': '@material/chips/dist/mdc.chips.js',
125-
'@material/dialog': '@material/dialog/dist/mdc.dialog.js',
126-
'@material/dom': '@material/dom/dist/mdc.dom.js',
127-
'@material/drawer': '@material/drawer/dist/mdc.drawer.js',
128-
'@material/floating-label': '@material/floating-label/dist/mdc.floatingLabel.js',
129-
'@material/form-field': '@material/form-field/dist/mdc.formField.js',
130-
'@material/grid-list': '@material/grid-list/dist/mdc.gridList.js',
131-
'@material/icon-button': '@material/icon-button/dist/mdc.iconButton.js',
132-
'@material/line-ripple': '@material/line-ripple/dist/mdc.lineRipple.js',
133-
'@material/linear-progress': '@material/linear-progress/dist/mdc.linearProgress.js',
134-
'@material/list': '@material/list/dist/mdc.list.js',
135-
'@material/menu': '@material/menu/dist/mdc.menu.js',
136-
'@material/menu-surface': '@material/menu-surface/dist/mdc.menuSurface.js',
137-
'@material/notched-outline': '@material/notched-outline/dist/mdc.notchedOutline.js',
138-
'@material/radio': '@material/radio/dist/mdc.radio.js',
139-
'@material/ripple': '@material/ripple/dist/mdc.ripple.js',
140-
'@material/select': '@material/select/dist/mdc.select.js',
141-
'@material/slider': '@material/slider/dist/mdc.slider.js',
142-
'@material/snackbar': '@material/snackbar/dist/mdc.snackbar.js',
143-
'@material/switch': '@material/switch/dist/mdc.switch.js',
144-
'@material/tab': '@material/tab/dist/mdc.tab.js',
145-
'@material/tab-bar': '@material/tab-bar/dist/mdc.tabBar.js',
146-
'@material/tab-indicator': '@material/tab-indicator/dist/mdc.tabIndicator.js',
147-
'@material/tab-scroller': '@material/tab-scroller/dist/mdc.tabScroller.js',
148-
'@material/text-field': '@material/textfield/dist/mdc.textfield.js',
149-
'@material/top-app-bar': '@material/top-app-bar/dist/mdc.topAppBar.js',
150-
151-
...pathMapping,
152-
},
153-
packages: {
154-
// Set the default extension for the root package, because otherwise the dev-app can't
155-
// be built within the production mode. Due to missing file extensions.
156-
'.': {defaultExtension: 'js'},
157-
158-
// Angular specific mappings.
159-
'@angular/core': {main: 'bundles/core.umd.js'},
160-
'@angular/common': {main: 'bundles/common.umd.js'},
161-
'@angular/common/http': {main: '../bundles/common-http.umd.js'},
162-
'@angular/compiler': {main: 'bundles/compiler.umd.js'},
163-
'@angular/forms': {main: 'bundles/forms.umd.js'},
164-
'@angular/animations': {main: 'bundles/animations.umd.js'},
165-
'@angular/elements': {main: 'bundles/elements.umd.js'},
166-
'@angular/router': {main: 'bundles/router.umd.js'},
167-
'@angular/animations/browser': {main: '../bundles/animations-browser.umd.js'},
168-
'@angular/platform-browser/animations': {main: '../bundles/platform-browser-animations.umd'},
169-
'@angular/platform-browser': {main: 'bundles/platform-browser.umd.js'},
170-
'@angular/platform-browser-dynamic': {main: 'bundles/platform-browser-dynamic.umd.js'},
171-
172-
// Project specific configurations.
173-
...packagesConfig,
174-
}
184+
map: map,
185+
packages: packages
175186
});

0 commit comments

Comments
 (0)