@autobe/agent
Version:
AI backend server code generator
66 lines (65 loc) • 3 kB
TypeScript
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[];
}