UNPKG

st-bundle

Version:

CLI for watching and bundling SpringType projects.

51 lines (50 loc) 2.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = require("path"); const resolver_1 = require("../resolver/resolver"); const utils_1 = require("../utils/utils"); const devPackage_1 = require("./devPackage"); function assembleFastAnalysis(ctx) { const ict = ctx.ict; ict.on('assemble_fast_analysis', (props) => { const module = props.module; // inject browser essentials into the module if (module.fastAnalysis && module.fastAnalysis.report) { const report = module.fastAnalysis.report; if (ctx.config.target === 'browser') { if (report.browserEssentials) { for (const item of report.browserEssentials) { // adding it to analysis to be picked up and created accordingly module.fastAnalysis.imports.push({ type: resolver_1.ImportType.REQUIRE, statement: item.moduleName }); if (item.obj) { module.header.push(utils_1.createRequireConstWithObject(item.moduleName, item.variable, item.obj)); } else { module.header.push(utils_1.createRequireConst(item.moduleName, item.variable)); } } } } if (ctx.config.target === 'browser') { if (report.contains__filename) { module.header.push(utils_1.createVarString('__filename', module.props.fuseBoxPath)); } if (report.contains__dirname) { module.header.push(utils_1.createVarString('__dirname', utils_1.ensureFuseBoxPath(path.dirname(module.props.fuseBoxPath)))); } } if (report.dynamicImports && !ctx.config.production) { // TODO: make sure it works on server too module.fastAnalysis.imports.push({ type: resolver_1.ImportType.REQUIRE, statement: devPackage_1.devImports.packageName }); module.header.push(utils_1.createRequireConst(devPackage_1.devImports.packageName, devPackage_1.devImports.variable)); // replace dynamic imports everywhere throughout the code if (module.contents) { const re = /(\s+|^|\(|:)(import\()/g; module.contents = module.contents.replace(re, `$1${devPackage_1.devImports.variable}(`); } } } return props; }); } exports.assembleFastAnalysis = assembleFastAnalysis;