UNPKG

st-bundle

Version:

CLI for watching and bundling SpringType projects.

41 lines (40 loc) 2.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ProductionContext_1 = require("./ProductionContext"); const codeSplittingStage_1 = require("./stages/codeSplittingStage"); const finalStage_1 = require("./stages/finalStage"); const generationStage_1 = require("./stages/generationStage"); const moduleLinkStage_1 = require("./stages/moduleLinkStage"); const preparationStage_1 = require("./stages/preparationStage"); const referenceLinkStage_1 = require("./stages/referenceLinkStage"); const transpileStage_1 = require("./stages/transpileStage"); async function productionMain(props) { const productionContext = ProductionContext_1.createProductionContext(props); const flow = { productionContext, ctx: props.ctx, packages: props.packages }; /** Stage 1 */ // Replace process, add polyfills // unwrap if conditions with dead code elimination // replace FuseBox.iServer and FuseBox.isBrowser // some other preparationStage_1.preparationStage(flow); // after this stage, productionContext has: // productionContext.productionPackages which contain transform (but not transpiled sources ready for further transformations) // TREE SHAKING STAGES ********************************************************************************************************* /** Stage 2 */ moduleLinkStage_1.moduleLinkStage(flow); // at this stage we need to resolve and most importantly link all production modules and packages for further treeshaking // and other manupulations // having import references in places and we now link all the imports and exports // to count references referenceLinkStage_1.referenceLinkStage(flow); //treeShakingStage(flow); codeSplittingStage_1.codeSplittingStage(flow); transpileStage_1.transpileStage(flow); generationStage_1.generationStage(flow); // writing bundles and such const data = await finalStage_1.finalStage(flow); props.ctx.log.stopStreaming(); props.ctx.ict.sync('complete', { bundles: data.bundles, ctx: props.ctx, packages: props.packages }); return data; } exports.productionMain = productionMain;