UNPKG

@odata2ts/odata2ts

Version:

Flexible generator to produce various TypeScript artefacts (from simple model interfaces to complete odata clients) from OData metadata files

53 lines (52 loc) 2.46 kB
import { CompilerOptions, SourceFile } from "ts-morph"; import { DataModel } from "../data-model/DataModel.js"; import { NamingHelper } from "../data-model/NamingHelper.js"; import { EmitModes } from "../OptionModel.js"; import { FileHandler } from "./FileHandler.js"; import { FileFormatter } from "./formatter/FileFormatter.js"; export interface ProjectManagerOptions { usePrettier?: boolean; tsConfigPath?: string; bundledFileGeneration?: boolean; /** * for testing purposes, turn this on and retrieve all generated files via getCachedFiles */ noOutput?: boolean; allowTypeChecking?: boolean; } export declare function createProjectManager(outputDir: string, emitMode: EmitModes, namingHelper: NamingHelper, dataModel: DataModel, options: ProjectManagerOptions): Promise<ProjectManager>; export declare class ProjectManager { protected outputDir: string; protected emitMode: EmitModes; protected namingHelper: NamingHelper; protected dataModel: DataModel; protected formatter: FileFormatter | undefined; protected options: ProjectManagerOptions; private project; private mainServiceFile; private mainModelFile; private mainQFile; private readonly cachedFiles; constructor(outputDir: string, emitMode: EmitModes, namingHelper: NamingHelper, dataModel: DataModel, formatter: FileFormatter | undefined, compilerOptions: CompilerOptions | undefined, options: ProjectManagerOptions); getDataModel(): DataModel; /** * Only filled when noOutput=true */ getCachedFiles(): Map<string, SourceFile>; private writeFile; private createFile; init(): Promise<void>; initModels(): void; finalizeModels(): Promise<void>; initQObjects(): void; finalizeQObjects(): Promise<void>; initServices(): void; finalizeServices(): Promise<void>; getMainServiceFile(): FileHandler; createOrGetMainModelFile(reservedNames?: Array<string>): FileHandler; createOrGetMainQObjectFile(reservedNames?: Array<string>): FileHandler; createOrGetModelFile(folderPath: string, name: string, reservedNames?: Array<string> | undefined): FileHandler; createOrGetQObjectFile(folderPath: string, name: string, reservedNames?: Array<string> | undefined): FileHandler; createOrGetServiceFile(folderPath: string, name: string, reservedNames?: Array<string> | undefined): FileHandler; finalizeFile(file: FileHandler): Promise<void>; }