st-bundle
Version:
CLI for watching and bundling SpringType projects.
64 lines (63 loc) • 2.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const createDevBundles_1 = require("../bundle/createDevBundles");
const attach_hmr_1 = require("../hmr/attach_hmr");
const plugin_assumption_1 = require("../plugins/core/plugin_assumption");
const plugin_css_1 = require("../plugins/core/plugin_css");
const plugin_js_1 = require("../plugins/core/plugin_js");
const plugin_sass_1 = require("../plugins/core/plugin_sass");
const plugin_typescript_1 = require("../plugins/core/plugin_typescript");
const attachWebWorkers_1 = require("../web-workers/attachWebWorkers");
const assemble_1 = require("./assemble");
const attach_cache_1 = require("./attach_cache");
const attach_watcher_1 = require("./attach_watcher");
const attach_webIndex_1 = require("./attach_webIndex");
const prerequisite_1 = require("./prerequisite");
const process_plugins_1 = require("./process_plugins");
const server_entry_1 = require("./server_entry");
async function bundleDev(ctx) {
const ict = ctx.ict;
ctx.log.startStreaming();
prerequisite_1.prerequisites(ctx);
const plugins = [
...ctx.config.plugins,
plugin_assumption_1.pluginAssumption(),
plugin_css_1.pluginCSS(),
plugin_js_1.pluginJS(),
plugin_sass_1.pluginSass(),
plugin_typescript_1.pluginTypescript(),
];
plugins.forEach(plugin => plugin && plugin(ctx));
attach_cache_1.attachCache(ctx);
attach_hmr_1.attachHMR(ctx);
attachWebWorkers_1.attachWebWorkers(ctx);
// lib-esm/params/paramTypes.js"
let bundles;
const packages = assemble_1.assemble(ctx, ctx.config.entries[0]);
if (packages) {
await process_plugins_1.processPlugins({
ctx: ctx,
packages: packages,
});
// sorting bundles with dev, system, default, vendor
const data = createDevBundles_1.createDevBundles(ctx, packages);
const writers = [];
for (const key in data.bundles) {
const bundle = data.bundles[key];
writers.push(() => bundle.generate().write());
}
bundles = await Promise.all(writers.map(i => i()));
await attach_webIndex_1.attachWebIndex(ctx, bundles);
attach_watcher_1.attachWatcher({ ctx });
}
ctx.log.stopStreaming();
ctx.log.fuseFinalise();
if (bundles) {
if (ctx.config.isServer()) {
const serverEntryBundle = await server_entry_1.addServerEntry(ctx, bundles);
bundles.push(serverEntryBundle.info);
}
ict.sync('complete', { ctx: ctx, bundles: bundles, packages: packages });
}
}
exports.bundleDev = bundleDev;