UNPKG

convex

Version:

Client for the Convex Cloud

46 lines (41 loc) 1.88 kB
import { Command } from "@commander-js/extra-typings"; import { oneoffContext } from "../bundler/context.js"; import { logVerbose } from "../bundler/log.js"; import { deploymentCredentialsOrConfigure } from "./configure.js"; import { getDeploymentSelection } from "./lib/deploymentSelection.js"; import { checkVersion } from "./lib/updates.js"; import { usageStateWarning } from "./lib/usage.js"; // Equivalent to `npx convex dev --once --skip-push`. export const init = new Command("init") .description( "Ensures a Convex project is configured and initialized in the current directory. Does nothing if one is already configured. Unlike `npx convex dev`, it will not push code or typecheck.\nTypically you can skip this and run `npx convex dev` directly which will both initialize and continously deploy code. \n\nTo initialize an agent: `export CONVEX_AGENT_MODE=anonymous && npx convex init && npx convex env set < .env.defaults && npx convex dev`.", ) .summary( "Ensures a Convex project is configured. Does not push code. No-ops if already configured.", ) .allowExcessArguments(false) .action(async () => { const ctx = await oneoffContext({ url: undefined, adminKey: undefined, envFile: undefined, }); process.on("SIGINT", async () => { logVerbose("Received SIGINT, cleaning up..."); await ctx.flushAndExit(-2); }); const deploymentSelection = await getDeploymentSelection(ctx, {}); const credentials = await deploymentCredentialsOrConfigure( ctx, deploymentSelection, null, { prod: false, localOptions: { forceUpgrade: false } }, ); if (credentials.deploymentFields !== null) { await Promise.all([ usageStateWarning(ctx, credentials.deploymentFields.deploymentName), checkVersion(ctx), ]); } await ctx.flushAndExit(0); });