UNPKG

@autobe/compiler

Version:

AI backend server code generator

43 lines (38 loc) 1.24 kB
import { IAutoBeRealizeCompiler, IAutoBeRealizeCompilerListener, IAutoBeRealizeControllerProps, IAutoBeRealizeTestProps, IAutoBeRealizeTestResult, } from "@autobe/interface"; import { AutoBeCompilerRealizeTemplate } from "../raw/AutoBeCompilerRealizeTemplate"; import { FilePrinter } from "../utils/FilePrinter"; import { testRealizeProject } from "./testRealizeProject"; import { writeRealizeControllers } from "./writeRealizeControllers"; export class AutoBeRealizeCompiler implements IAutoBeRealizeCompiler { public constructor( private readonly listener: IAutoBeRealizeCompilerListener, ) {} public async controller( props: IAutoBeRealizeControllerProps, ): Promise<Record<string, string>> { const result: Record<string, string> = await writeRealizeControllers(props); for (const [key, value] of Object.entries(result)) result[key] = await FilePrinter.beautify(value); return result; } public test( props: IAutoBeRealizeTestProps, ): Promise<IAutoBeRealizeTestResult> { return testRealizeProject( { ...props, files: { ...props.files, ...AutoBeCompilerRealizeTemplate, }, }, this.listener.test, ); } }