UNPKG

@autobe/agent

Version:

AI backend server code generator

66 lines (65 loc) 3 kB
import { AutoBeOpenApi, AutoBeRealizeAuthorization, AutoBeRealizeCollectorFunction, AutoBeRealizeTransformerFunction } from "@autobe/interface"; import { IValidation } from "typia"; import { AutoBeContext } from "../../../context/AutoBeContext"; import { IAutoBeRealizeScenarioResult } from "../structures/IAutoBeRealizeScenarioResult"; export declare namespace AutoBeRealizeOperationProgrammer { /** * Check if the operation is a public auth operation (login, join, refresh). * These operations must be publicly accessible and should not have auth * decorators. */ function isPublicAuthOperation(operation: AutoBeOpenApi.IOperation): boolean; function getName(operation: AutoBeOpenApi.IOperation): string; function getScenario(props: { authorizations: AutoBeRealizeAuthorization[]; operation: AutoBeOpenApi.IOperation; }): IAutoBeRealizeScenarioResult; function getAdditional(props: { authorizations: AutoBeRealizeAuthorization[]; collectors: AutoBeRealizeCollectorFunction[]; transformers: AutoBeRealizeTransformerFunction[]; }): Record<string, string>; function replaceImportStatements(ctx: AutoBeContext, props: { operation: AutoBeOpenApi.IOperation; schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>; code: string; payload?: string; }): Promise<string>; function writeTemplate(props: { authorizations: AutoBeRealizeAuthorization[]; schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>; operation: AutoBeOpenApi.IOperation; collectors: AutoBeRealizeCollectorFunction[]; transformers: AutoBeRealizeTransformerFunction[]; }): string; function writeStructures(ctx: AutoBeContext, operation: AutoBeOpenApi.IOperation): Promise<Record<string, string>>; /** * Resolves transformers relevant to an operation, including neighbor * transformers for composite response types (e.g., dashboard endpoints). * Falls back to direct top-level match for simple response types. */ function getLocalTransformers(props: { operation: AutoBeOpenApi.IOperation; schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>; transformers: AutoBeRealizeTransformerFunction[]; }): AutoBeRealizeTransformerFunction[]; function validateEmptyCode(props: { functionName: string; draft: string; revise: { final: string | null; }; }): IValidation.IError[]; /** * Validates that Transformer.select() and Transformer.transform() are always * used as a pair in operation code. Using one without the other causes type * mismatches: select() shapes the Prisma payload for transform(), so they * must appear together. */ function validateSelectTransformContract(props: { draft: string; revise: { final: string | null; }; }): IValidation.IError[]; }