st-bundle
Version:
CLI for watching and bundling SpringType projects.
51 lines (50 loc) • 2.62 kB
JavaScript
;
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;