UNPKG

firejsx

Version:

The React Framework for SSB, SSR and Serverless technologies

73 lines (72 loc) 2.75 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ConfigMapper_1 = require("./ConfigMapper"); const ArgsMapper_1 = require("./ArgsMapper"); const MemoryFS = require("memory-fs"); const SSB_1 = require("../SSB"); const Cli_1 = require("../utils/Cli"); const Server_1 = require("../Server"); const args = ArgsMapper_1.parseArgs(ArgsMapper_1.getArgs()); const cli = new Cli_1.default(args["--log-mode"]); (async function main() { const config = ConfigMapper_1.parseConfig((() => { const [path, config] = ConfigMapper_1.getUserConfig(args["--conf"]); cli.ok(`Using ${path} config`); return config || {}; })(), args, cli); if (args["--disable-plugins"]) config.plugins = []; const app = new SSB_1.default({ outDir: config.outDir, cacheDir: config.cacheDir, prefix: config.prefix, pages: config.pages, plugins: config.plugins, lib: config.lib, custom: config.custom, cli, args, staticDir: config.staticDir, pro: !!args["--pro"], ssr: !!args["--ssr"], watch: !(args["--export"] || args["--export-fly"]), staticPrefix: config.staticPrefix, verbose: !!args["--verbose"], outputFileSystem: (args["--disk"] || args["--export-fly"] || args["--export"]) ? undefined : new MemoryFS(), appPath: config.app }); //log cli.ok("ENV :", process.env.NODE_ENV); cli.ok("SSR :", app.$.ssr); cli.ok("HMR :", !app.$.pageArchitect.webpackArchitect.proOrSSR); cli.ok("Watch :", app.$.watch); // initialize await app.init(); // switch according tio modes if (args["--export"]) { const startTime = new Date().getTime(); cli.ok("Exporting"); await app.export(); cli.ok("Exported to", config.outDir); cli.ok("Finished in", (new Date().getTime() - startTime) / 1000 + "s"); if (config.staticDir) cli.warn("Don't forget to copy the static folder"); } else if (args["--export-fly"]) { const startTime = new Date().getTime(); cli.ok("Exporting for on the fly rendering"); //warn user if (!app.$.pro) cli.warn("Exporting a development build"); if (!app.$.ssr) cli.warn("Exported build won't be able to render your app. Only a html skeleton will be produced."); //export await app.exportFly(); cli.ok("Exported to", config.outDir); cli.ok("Finished in", (new Date().getTime() - startTime) / 1000 + "s"); } else return void new Server_1.default(app).init(args["--port"], args["--addr"], config.devServer); app.destruct(); })();