UNPKG

@lunora/cli

Version:

The Lunora CLI: init, dev, deploy, codegen, run, reset, and migrate commands

95 lines (92 loc) 3.47 kB
import { d as defineHandler } from '../packem_shared/command-lYnl4QyF.mjs'; import { e as execArgsFor, d as detectPackageManager } from '../packem_shared/detect-package-manager-v4hHpQd0.mjs'; import { defaultSpawner } from '../packem_shared/createRecordingSpawner-WuSn20kb.mjs'; const withEnv = (args, env) => { if (env !== void 0) { args.push("--env", env); } return args; }; const buildListArgs = (options) => { const args = withEnv(["deployments", "list"], options.env); if (options.json) { args.push("--json"); } return args; }; const buildArgs = (options) => { switch (options.subcommand) { case "inspect": { if (options.versionId === void 0) { return { error: "deployments inspect requires a version id. Usage: lunora deployments inspect <version-id>" }; } return { args: withEnv(["versions", "view", options.versionId], options.env) }; } case "list": { return { args: buildListArgs(options) }; } case "promote": { if (options.versionId === void 0) { return { error: "deployments promote requires a version id. Usage: lunora deployments promote <version-id> --yes" }; } if (!options.yes) { return { error: "deployments promote shifts 100% of live traffic. Re-run with --yes to confirm." }; } const args = withEnv(["versions", "deploy", `${options.versionId}@100%`, "--yes"], options.env); if (options.message !== void 0) { args.push("--message", options.message); } return { args }; } case "rollback": { if (!options.yes) { return { error: "deployments rollback changes the live version. Re-run with --yes to confirm." }; } const args = withEnv(["rollback"], options.env); if (options.versionId !== void 0) { args.push(options.versionId); } args.push("--yes"); if (options.message !== void 0) { args.push("--message", options.message); } return { args }; } default: { return { error: `deployments: unknown subcommand "${options.subcommand}"` }; } } }; const runDeploymentsCommand = async (options) => { const { args, error } = buildArgs(options); if (error !== void 0 || args === void 0) { options.logger.error(error ?? "deployments: nothing to run"); return { code: 1, descriptor: void 0, error }; } const cwd = options.cwd ?? process.cwd(); const exec = execArgsFor(detectPackageManager(cwd), "wrangler", args); const descriptor = { args: exec.args, command: exec.command, cwd }; options.logger.info(`${descriptor.command} ${descriptor.args.join(" ")}`); const spawner = options.spawner ?? defaultSpawner; const result = await spawner(descriptor); return { code: result.code, descriptor }; }; const isDeploymentsSubcommand = (value) => value === "list" || value === "inspect" || value === "rollback" || value === "promote"; const execute = defineHandler(({ argument, cwd, logger, options }) => { const sub = argument[0]; if (!isDeploymentsSubcommand(sub)) { logger.error(`deployments: unknown subcommand "${sub ?? ""}" — expected list | inspect | rollback | promote`); return { code: 1 }; } return runDeploymentsCommand({ cwd, env: options.env, json: options.json === true, logger, message: options.message, subcommand: sub, versionId: argument[1], yes: options.yes === true }); }); export { execute, runDeploymentsCommand };