UNPKG

st-bundle

Version:

CLI for watching and bundling SpringType projects.

61 lines (60 loc) 2.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const helpers_1 = require("../../sourcemaps/helpers"); const fastTransform_1 = require("../../transform/fastTransform/fastTransform"); function pluginJS() { return (ctx) => { const ict = ctx.ict; ict.on('bundle_resolve_module', (props) => { const module = props.module; if (!module.isJavascriptModule()) return; const config = ctx.config; const analysis = module.fastAnalysis; let continueWithFastTransform = analysis && !!analysis.report && (analysis.report.es6Syntax || analysis.replaceable) && !analysis.report.containsJSX; let withSourceMaps = false; if (module.pkg.isDefaultPackage && config.sourceMap.project) { withSourceMaps = true; } if (!module.pkg.isDefaultPackage && config.sourceMap.vendor) { withSourceMaps = true; } if (continueWithFastTransform) { const transformation = fastTransform_1.fastTransform({ absPath: module.props.absPath, webWorkers: analysis && analysis.workers, sourceMaps: withSourceMaps, input: module.contents, ast: module.fastAnalysis.ast, sourceInterceptor: value => { if (analysis.replaceable) { const replacement = analysis.replaceable && analysis.replaceable.find(item => item.fromStatement === value); if (replacement) { return replacement.toStatement; } } return value; }, }); module.contents = transformation.code; if (withSourceMaps) { module.sourceMap = helpers_1.fixModuleSourceMap(module, transformation.sourceMap); } analysis.report.statementsReplaced = true; analysis.report.transpiled = true; ctx.log.info('transform', module.getShortPath()); } else { if (analysis && analysis.report) { analysis.report.statementsReplaced = false; analysis.report.transpiled = false; } } return props; }); }; } exports.pluginJS = pluginJS;