@autobe/agent
Version:
AI backend server code generator
88 lines (87 loc) • 3.53 kB
TypeScript
import { AutoBeDatabase, AutoBeOpenApi, AutoBeRealizeTransformerPlan, AutoBeRealizeTransformerSelectMapping, AutoBeRealizeTransformerTransformMapping } from "@autobe/interface";
import { ILlmApplication, IValidation } from "typia";
import { AutoBeContext } from "../../../context/AutoBeContext";
import { writeRealizeTransformerTemplate } from "./internal/writeRealizeTransformerTemplate";
export declare namespace AutoBeRealizeTransformerProgrammer {
function filter(props: {
schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
key: string;
}): boolean;
function getName(dtoTypeName: string): string;
function getNeighbors(code: string): string[];
function getRelationMappingTable(props: {
application: AutoBeDatabase.IApplication;
model: AutoBeDatabase.IModel;
}): Array<{
propertyKey: string;
targetModel: string;
relationType: string;
fkColumns: string;
}>;
function formatRelationMappingTable(props: {
application: AutoBeDatabase.IApplication;
model: AutoBeDatabase.IModel;
}): string;
function getSelectMappingMetadata(props: {
application: AutoBeDatabase.IApplication;
model: AutoBeDatabase.IModel;
}): AutoBeRealizeTransformerSelectMapping.Metadata[];
function getTransformMappingMetadata(props: {
document: AutoBeOpenApi.IDocument;
plan: AutoBeRealizeTransformerPlan;
}): AutoBeRealizeTransformerTransformMapping.Metadata[];
interface INeighborRelation {
dtoProperty: string;
relationKey: string;
transformerName: string;
isArray: boolean;
isNullable: boolean;
}
function computeNeighborRelations(props: {
schema: AutoBeOpenApi.IJsonSchemaDescriptive.IObject;
neighbors: AutoBeRealizeTransformerPlan[];
relations: Array<{
propertyKey: string;
targetModel: string;
relationType: string;
fkColumns: string;
}>;
}): INeighborRelation[];
const writeTemplate: typeof writeRealizeTransformerTemplate;
function writeStructures(ctx: AutoBeContext, dtoTypeName: string): Promise<Record<string, string>>;
function replaceImportStatements(ctx: AutoBeContext, props: {
dtoTypeName: string;
schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
code: string;
}): Promise<string>;
function validate(props: {
application: AutoBeDatabase.IApplication;
document: AutoBeOpenApi.IDocument;
plan: AutoBeRealizeTransformerPlan;
neighbors: AutoBeRealizeTransformerPlan[];
transformMappings: AutoBeRealizeTransformerTransformMapping[];
selectMappings: AutoBeRealizeTransformerSelectMapping[];
draft: string;
revise: {
review: string;
final: string | null;
};
}): IValidation.IError[];
function getRecursiveRelations(props: {
schemas: Record<string, AutoBeOpenApi.IJsonSchema>;
typeName: string;
}): {
parent: string | null;
children: string | null;
};
function getRecursiveProperty(props: {
schemas: Record<string, AutoBeOpenApi.IJsonSchema>;
typeName: string;
}): string | null;
const fixApplication: (props: {
definition: ILlmApplication;
application: AutoBeDatabase.IApplication;
document: AutoBeOpenApi.IDocument;
plan: AutoBeRealizeTransformerPlan;
}) => void;
}