@autobe/agent
Version:
AI backend server code generator
44 lines (41 loc) • 1.55 kB
text/typescript
import {
AutoBeProgressEventBase,
AutoBeRealizeCollectorFunction,
} from "@autobe/interface";
import { AutoBeContext } from "../../context/AutoBeContext";
import { orchestrateRealizeCorrectCasting } from "./correct/orchestrateRealizeCorrectCasting";
import { AutoBeRealizeCollectorProgrammer } from "./programmers/AutoBeRealizeCollectorProgrammer";
export const orchestrateRealizeCollectorCorrectCasting = (
ctx: AutoBeContext,
props: {
functions: AutoBeRealizeCollectorFunction[];
progress: AutoBeProgressEventBase;
},
): Promise<AutoBeRealizeCollectorFunction[]> =>
orchestrateRealizeCorrectCasting(ctx, {
programmer: {
template: (func) =>
AutoBeRealizeCollectorProgrammer.writeTemplate({
plan: func.plan,
body: ctx.state().interface!.document.components.schemas[
func.plan.dtoTypeName
],
model: ctx
.state()
.database!.result.data.files.map((f) => f.models)
.flat()
.find((m) => m.name === func.plan.databaseSchemaName)!,
application: ctx.state().database!.result.data,
}),
replaceImportStatements: (next) =>
AutoBeRealizeCollectorProgrammer.replaceImportStatements(ctx, {
dtoTypeName: next.function.plan.dtoTypeName,
schemas: ctx.state().interface!.document.components.schemas,
code: next.code,
}),
additional: () => ({}),
location: "src/collectors",
},
functions: props.functions,
progress: props.progress,
});