everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
1 lines • 8.57 kB
Source Map (JSON)
{"version":3,"file":"main.cjs","names":["Data","runDev","runStart","runInit","rollbackPreCall","dbRenderers","inspectRenderers","lifecycleRenderers","publishRenderers","scaffoldRenderers","secretsRenderers","Effect","process","findCommandDescriptor","parseCommandInput","formatUnknownError","findConfigPath","dirname","resolveFrameworkPackage","createPluginRuntime","bosPlugin","warnIfOutdated","Exit"],"sources":["../../src/cli/main.ts"],"sourcesContent":["import { dirname } from \"node:path\";\nimport process from \"node:process\";\nimport { Data, Effect, Exit } from \"effect\";\nimport { findConfigPath } from \"../config\";\nimport { secretsRenderers } from \"../handlers/secrets\";\nimport bosPlugin from \"../plugin\";\nimport { createPluginRuntime } from \"../sdk\";\nimport { installBundleFetchFromEnv } from \"../services/resolution/resolver\";\nimport { printBanner } from \"../utils/banner\";\nimport { formatUnknownError } from \"../utils/errors\";\nimport { findCommandDescriptor } from \"./catalog\";\nimport type { CommandContext } from \"./commands/context\";\nimport { dbRenderers } from \"./commands/db\";\nimport { runDev, runStart } from \"./commands/dev\";\nimport { runInit } from \"./commands/init\";\nimport { inspectRenderers } from \"./commands/inspect\";\nimport { lifecycleRenderers } from \"./commands/lifecycle\";\nimport { publishRenderers, rollbackPreCall } from \"./commands/publish\";\nimport { scaffoldRenderers } from \"./commands/scaffold\";\nimport { resolveFrameworkPackage } from \"./framework-version\";\nimport { printCommandHelp, printHelp } from \"./help\";\nimport { parseCommandInput } from \"./parse\";\nimport { warnIfOutdated } from \"./status\";\n\nexport class CliError extends Data.TaggedError(\"CliError\")<{ message: string }> {}\n\nconst customRunners: Record<string, (ctx: CommandContext) => Promise<void>> = {\n dev: runDev,\n start: runStart,\n init: runInit,\n};\n\nconst preCalls: Record<string, (ctx: CommandContext) => Promise<void>> = {\n rollback: rollbackPreCall,\n};\n\nconst renderers = {\n ...dbRenderers,\n ...inspectRenderers,\n ...lifecycleRenderers,\n ...publishRenderers,\n ...scaffoldRenderers,\n ...secretsRenderers,\n};\n\nconst cliProgram: Effect.Effect<void, CliError> = Effect.tryPromise({\n try: async (): Promise<void> => {\n const args = process.argv.slice(2);\n\n const helpIndex = args.indexOf(\"--help\") !== -1 ? args.indexOf(\"--help\") : args.indexOf(\"-h\");\n if (helpIndex !== -1) {\n const helpTarget = findCommandDescriptor(args.slice(0, helpIndex));\n if (helpTarget) {\n printCommandHelp(helpTarget.descriptor);\n return;\n }\n printHelp();\n return;\n }\n\n const invocationArgs = args.length > 0 ? args : [\"dev\"];\n const command = invocationArgs[0] ?? \"dev\";\n\n const commandMatch = findCommandDescriptor(invocationArgs);\n if (!commandMatch) {\n console.error(`Unknown command: ${command}`);\n process.exit(1);\n }\n\n const { descriptor, consumed } = commandMatch;\n const commandArgs = invocationArgs.slice(consumed);\n\n // Parse before the plugin boot: `start --config-path` steers the whole CLI,\n // not just the stack — the plugin initialize resolves and pin-validates the\n // boot config, so it must be the config the command will actually run.\n let parsedInput: unknown;\n try {\n parsedInput = parseCommandInput(descriptor, commandArgs);\n } catch (error) {\n throw new CliError({ message: formatUnknownError(error) });\n }\n const bootInput = parsedInput as { configPath?: string };\n\n const cwdConfigPath = findConfigPath();\n const configPath = bootInput.configPath ?? cwdConfigPath;\n installBundleFetchFromEnv({ configPath });\n\n const projectDir = cwdConfigPath ? dirname(cwdConfigPath) : undefined;\n const edResolved = projectDir\n ? resolveFrameworkPackage(projectDir, \"everything-dev\")\n : undefined;\n const displayVersion = edResolved?.installedVersion\n ? `${edResolved.installedVersion}${edResolved.isLinked ? \" (linked)\" : \"\"}`\n : undefined;\n if (!process.env.BOS_NO_BANNER) {\n printBanner(\"everything-dev\", displayVersion);\n }\n\n const runtime = createPluginRuntime({\n registry: {\n bos: { module: bosPlugin },\n },\n secrets: {},\n });\n\n const pluginRuntime: any = runtime;\n const loadPlugin = pluginRuntime.usePlugin.bind(pluginRuntime);\n const plugin = await loadPlugin(\"bos\", {\n variables: {\n configPath: configPath ?? undefined,\n configDir: cwdConfigPath ? dirname(cwdConfigPath) : undefined,\n },\n secrets: {},\n });\n\n const client = plugin.createClient();\n\n const outdatedWarning = warnIfOutdated(client, command);\n\n try {\n const input = parsedInput;\n const ctx: CommandContext = {\n client,\n input,\n descriptor,\n projectDir,\n configPath,\n outdatedWarning,\n };\n\n await preCalls[descriptor.key]?.(ctx);\n\n const custom = customRunners[descriptor.key];\n if (custom) {\n await custom(ctx);\n return;\n }\n\n const result = await client[descriptor.key](input);\n\n if (\n result?.status === \"error\" &&\n descriptor.key !== \"publish\" &&\n descriptor.key !== \"deploy\"\n ) {\n console.error(`[CLI] ${formatUnknownError(result.error)}`);\n process.exit(1);\n }\n\n await renderers[descriptor.key]?.(result, ctx);\n } catch (error) {\n throw new CliError({ message: formatUnknownError(error) });\n }\n },\n catch: (error) => new CliError({ message: formatUnknownError(error) }),\n});\n\nexport const runCli = async (): Promise<void> => {\n const exit = await Effect.runPromiseExit(cliProgram);\n if (Exit.isFailure(exit)) {\n const reasons = exit.cause.reasons ?? [];\n for (const reason of reasons) {\n if (reason?._tag !== \"Fail\") continue;\n const failure = (reason as { error?: unknown }).error;\n console.error(`[CLI] ${formatUnknownError(failure)}`);\n }\n process.exit(1);\n }\n};\n"],"mappings":"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"}