UNPKG

everything-dev

Version:

A consolidated product package for building Module Federation apps with oRPC APIs.

134 lines (132 loc) • 5.38 kB
const require_runtime = require('../_virtual/_rolldown/runtime.cjs'); const require_load = require('../services/resolution/load.cjs'); const require_services_resolution_resolver = require('../services/resolution/resolver.cjs'); const require_framework_version = require('../services/framework-version.cjs'); const require_secrets = require('../handlers/secrets.cjs'); const require_errors = require('../utils/errors.cjs'); const require_plugin = require('../plugin.cjs'); const require_banner = require('../utils/banner.cjs'); const require_catalog = require('./catalog.cjs'); const require_db = require('./commands/db.cjs'); const require_dev = require('./commands/dev.cjs'); const require_init = require('./commands/init.cjs'); const require_status = require('./status.cjs'); const require_inspect = require('./commands/inspect.cjs'); const require_lifecycle = require('./commands/lifecycle.cjs'); const require_publish = require('./commands/publish.cjs'); const require_scaffold = require('./commands/scaffold.cjs'); const require_help = require('./help.cjs'); const require_parse = require('./parse.cjs'); let node_path = require("node:path"); let effect = require("effect"); let node_process = require("node:process"); node_process = require_runtime.__toESM(node_process, 1); let every_plugin = require("every-plugin"); //#region src/cli/main.ts var CliError = class extends effect.Data.TaggedError("CliError") {}; const customRunners = { dev: require_dev.runDev, start: require_dev.runStart, init: require_init.runInit }; const preCalls = { rollback: require_publish.rollbackPreCall }; const renderers = { ...require_db.dbRenderers, ...require_inspect.inspectRenderers, ...require_lifecycle.lifecycleRenderers, ...require_publish.publishRenderers, ...require_scaffold.scaffoldRenderers, ...require_secrets.secretsRenderers }; const cliProgram = effect.Effect.tryPromise({ try: async () => { const args = node_process.default.argv.slice(2); const helpIndex = args.indexOf("--help") !== -1 ? args.indexOf("--help") : args.indexOf("-h"); if (helpIndex !== -1) { const helpTarget = require_catalog.findCommandDescriptor(args.slice(0, helpIndex)); if (helpTarget) { require_help.printCommandHelp(helpTarget.descriptor); return; } require_help.printHelp(); return; } const invocationArgs = args.length > 0 ? args : ["dev"]; const command = invocationArgs[0] ?? "dev"; const commandMatch = require_catalog.findCommandDescriptor(invocationArgs); if (!commandMatch) { console.error(`Unknown command: ${command}`); node_process.default.exit(1); } const { descriptor, consumed } = commandMatch; const commandArgs = invocationArgs.slice(consumed); let parsedInput; try { parsedInput = require_parse.parseCommandInput(descriptor, commandArgs); } catch (error) { throw new CliError({ message: require_errors.formatUnknownError(error) }); } const bootInput = parsedInput; const cwdConfigPath = require_load.findConfigPath(); const configPath = bootInput.configPath ?? cwdConfigPath; require_services_resolution_resolver.installBundleFetchFromEnv({ configPath }); const projectDir = cwdConfigPath ? (0, node_path.dirname)(cwdConfigPath) : void 0; const edResolved = projectDir ? require_framework_version.resolveFrameworkPackage(projectDir, "everything-dev") : void 0; const displayVersion = edResolved?.installedVersion ? `${edResolved.installedVersion}${edResolved.isLinked ? " (linked)" : ""}` : void 0; if (!node_process.default.env.BOS_NO_BANNER) require_banner.printBanner("everything-dev", displayVersion); const pluginRuntime = (0, every_plugin.createPluginRuntime)({ registry: { bos: { module: require_plugin.default } }, secrets: {} }); const client = (await pluginRuntime.usePlugin.bind(pluginRuntime)("bos", { variables: { configPath: configPath ?? void 0, configDir: cwdConfigPath ? (0, node_path.dirname)(cwdConfigPath) : void 0 }, secrets: {} })).createClient(); const outdatedWarning = require_status.warnIfOutdated(client, command); try { const input = parsedInput; const ctx = { client, input, descriptor, projectDir, configPath, outdatedWarning }; await preCalls[descriptor.key]?.(ctx); const custom = customRunners[descriptor.key]; if (custom) { await custom(ctx); return; } const result = await client[descriptor.key](input); if (result?.status === "error" && descriptor.key !== "publish" && descriptor.key !== "deploy") { console.error(`[CLI] ${require_errors.formatUnknownError(result.error)}`); node_process.default.exit(1); } await renderers[descriptor.key]?.(result, ctx); } catch (error) { throw new CliError({ message: require_errors.formatUnknownError(error) }); } }, catch: (error) => new CliError({ message: require_errors.formatUnknownError(error) }) }); const runCli = async () => { const exit = await effect.Effect.runPromiseExit(cliProgram); if (effect.Exit.isFailure(exit)) { const reasons = exit.cause.reasons ?? []; for (const reason of reasons) { if (reason?._tag !== "Fail") continue; const failure = reason.error; console.error(`[CLI] ${require_errors.formatUnknownError(failure)}`); } node_process.default.exit(1); } }; //#endregion exports.CliError = CliError; exports.runCli = runCli; //# sourceMappingURL=main.cjs.map