From c2f2b0b33a94c00f80ed0f7c96c0a8fe347a366e Mon Sep 17 00:00:00 2001 From: Vasily Strelyaev Date: Sat, 7 Dec 2024 00:22:30 +0400 Subject: [PATCH] fix: framework demos fail when system.js faces some auto re-exports (#28512) --- apps/demos/utils/bundle/index.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/demos/utils/bundle/index.js b/apps/demos/utils/bundle/index.js index b1119b401f7f..de1daa887370 100644 --- a/apps/demos/utils/bundle/index.js +++ b/apps/demos/utils/bundle/index.js @@ -5,6 +5,7 @@ const Builder = require('systemjs-builder'); const babel = require('@babel/core'); const url = require('url'); +const GRID_COMMON_STAR_IMPORT = 'exports.Grids = __importStar(require("./grids"));'; // https://stackoverflow.com/questions/42412965/how-to-load-named-exports-with-systemjs/47108328 const prepareModulesToNamedImport = () => { @@ -216,6 +217,14 @@ const prepareConfigs = (framework)=> { ] }; + // This auto-generated runtime import is useless because grid.js exports only types, + // but System.js transpiles this import into code that crashes when triggered in a Demo. + const removeImportTranspiledToCrashingCode = (result) => { + if(result.code.includes(GRID_COMMON_STAR_IMPORT)) { + result.code = result.code.replace(GRID_COMMON_STAR_IMPORT, ''); + } + } + const result = new Promise((resolve) => { // systemjs-builder uses babel 6, so we use babel 7 here for transpiling ES2020 babel.transformFile(url.fileURLToPath(load.name), babelOptions, (err, result) => { @@ -223,6 +232,7 @@ const prepareConfigs = (framework)=> { fetch(load).then(r => resolve(r)); console.log('Unexpected transipling error (babel 7): ' + err); } else { + removeImportTranspiledToCrashingCode(result); resolve(result.code); } });