Skip to content

Commit c2f2b0b

Browse files
fix: framework demos fail when system.js faces some auto re-exports (#28512)
1 parent 2ac1f5d commit c2f2b0b

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

apps/demos/utils/bundle/index.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const Builder = require('systemjs-builder');
55
const babel = require('@babel/core');
66
const url = require('url');
77

8+
const GRID_COMMON_STAR_IMPORT = 'exports.Grids = __importStar(require("./grids"));';
89

910
// https://stackoverflow.com/questions/42412965/how-to-load-named-exports-with-systemjs/47108328
1011
const prepareModulesToNamedImport = () => {
@@ -216,13 +217,22 @@ const prepareConfigs = (framework)=> {
216217
]
217218
};
218219

220+
// This auto-generated runtime import is useless because grid.js exports only types,
221+
// but System.js transpiles this import into code that crashes when triggered in a Demo.
222+
const removeImportTranspiledToCrashingCode = (result) => {
223+
if(result.code.includes(GRID_COMMON_STAR_IMPORT)) {
224+
result.code = result.code.replace(GRID_COMMON_STAR_IMPORT, '');
225+
}
226+
}
227+
219228
const result = new Promise((resolve) => {
220229
// systemjs-builder uses babel 6, so we use babel 7 here for transpiling ES2020
221230
babel.transformFile(url.fileURLToPath(load.name), babelOptions, (err, result) => {
222231
if(err) {
223232
fetch(load).then(r => resolve(r));
224233
console.log('Unexpected transipling error (babel 7): ' + err);
225234
} else {
235+
removeImportTranspiledToCrashingCode(result);
226236
resolve(result.code);
227237
}
228238
});

0 commit comments

Comments
 (0)