@autobe/agent
Version:
AI backend server code generator
40 lines (37 loc) • 1.46 kB
text/typescript
import {
AutoBeOpenApi,
AutoBeProgressEventBase,
AutoBeRealizeTransformerFunction,
} from "@autobe/interface";
import { AutoBeContext } from "../../context/AutoBeContext";
import { orchestrateRealizeCorrectCasting } from "./correct/orchestrateRealizeCorrectCasting";
import { AutoBeRealizeTransformerProgrammer } from "./programmers/AutoBeRealizeTransformerProgrammer";
export const orchestrateRealizeTransformerCorrectCasting = (
ctx: AutoBeContext,
props: {
functions: AutoBeRealizeTransformerFunction[];
progress: AutoBeProgressEventBase;
},
): Promise<AutoBeRealizeTransformerFunction[]> =>
orchestrateRealizeCorrectCasting(ctx, {
programmer: {
template: (func) =>
AutoBeRealizeTransformerProgrammer.writeTemplate({
plan: func.plan,
schema: ctx.state().interface!.document.components.schemas[
func.plan.dtoTypeName
] as AutoBeOpenApi.IJsonSchemaDescriptive.IObject,
schemas: ctx.state().interface!.document.components.schemas,
}),
replaceImportStatements: (next) =>
AutoBeRealizeTransformerProgrammer.replaceImportStatements(ctx, {
dtoTypeName: next.function.plan.dtoTypeName,
schemas: ctx.state().interface!.document.components.schemas,
code: next.code,
}),
additional: () => ({}),
location: "src/transformers",
},
functions: props.functions,
progress: props.progress,
});