convex
Version:
Client for the Convex Cloud
39 lines (35 loc) • 1.09 kB
text/typescript
import chalk from "chalk";
import { logOutput } from "../../bundler/log.js";
import { runSystemQuery } from "./run.js";
import { Context } from "../../bundler/context.js";
export async function functionSpecForDeployment(
ctx: Context,
options: {
deploymentUrl: string;
adminKey: string;
file: boolean;
},
) {
const functions = (await runSystemQuery(ctx, {
deploymentUrl: options.deploymentUrl,
adminKey: options.adminKey,
functionName: "_system/cli/modules:apiSpec",
componentPath: undefined,
args: {},
})) as any[];
const url = (await runSystemQuery(ctx, {
deploymentUrl: options.deploymentUrl,
adminKey: options.adminKey,
functionName: "_system/cli/convexUrl:cloudUrl",
componentPath: undefined,
args: {},
})) as string;
const output = JSON.stringify({ url, functions }, null, 2);
if (options.file) {
const fileName = `function_spec_${Date.now().valueOf()}.json`;
ctx.fs.writeUtf8File(fileName, output);
logOutput(chalk.green(`Wrote function spec to ${fileName}`));
} else {
logOutput(output);
}
}