UNPKG

@compas/code-gen

Version:

Generate various boring parts of your server

71 lines (70 loc) 3.82 kB
/** * Resolve the `types.d.ts` output file. * * @param {import("../generate.js").GenerateContext} generateContext * @returns {import("../file/context.js").GenerateFile} */ export function typesTypescriptResolveFile(generateContext: import("../generate.js").GenerateContext): import("../file/context.js").GenerateFile; /** * Create the `types.d.ts` output file. The base settings of the * {@link import("../file/context.js").GenerateFile} align with the Typescript output. * * @param {import("../generate.js").GenerateContext} generateContext * @returns {import("../file/context.js").GenerateFile} */ export function typesTypescriptInitFile(generateContext: import("../generate.js").GenerateContext): import("../file/context.js").GenerateFile; /** * Start a `declare global` block to generate all types in the global namespace. This is * only a good fit in the end result of an application, where TS in JSDoc is used, * preventing a bunch of unnecessary inline imports. * * @param {import("../generate.js").GenerateContext} generateContext * @param {import("../file/context.js").GenerateFile} file */ export function typesTypescriptStartDeclareGlobal(generateContext: import("../generate.js").GenerateContext, file: import("../file/context.js").GenerateFile): void; /** * End global type declarations if necessary. * * @param {import("../generate.js").GenerateContext} generateContext * @param {import("../file/context.js").GenerateFile} file */ export function typesTypescriptEndDeclareGlobal(generateContext: import("../generate.js").GenerateContext, file: import("../file/context.js").GenerateFile): void; /** * Since we always start the types file, we need to check if we declared any types. When * we don't have any types, the type generator will remove this file. * * @param {import("../file/context.js").GenerateFile} file */ export function typesTypescriptHasDeclaredTypes(file: import("../file/context.js").GenerateFile): boolean; /** * Add a named type to the output. * * When generating TS types, we need to make sure that referenced types are resolved * earlier, since references need this to format their reference name. * * @param {import("../generate.js").GenerateContext} generateContext * @param {import("../../types/advanced-types.d.ts").NamedType< * import("../generated/common/types.d.ts").StructureTypeSystemDefinition * >} type * @param {import("./generator.js").GenerateTypeOptions} options */ export function typesTypescriptGenerateNamedType(generateContext: import("../generate.js").GenerateContext, type: import("../../types/advanced-types.d.ts").NamedType<import("../generated/common/types.d.ts").StructureTypeSystemDefinition>, options: import("./generator.js").GenerateTypeOptions): void; /** * Format and write the type. Uses inline writes where possible. * * @param {import("../generate.js").GenerateContext} generateContext * @param {import("../file/context.js").GenerateFile} file * @param {import("../generated/common/types.js").StructureTypeSystemDefinition} type * @param {import("./generator.js").GenerateTypeOptions} options * @returns {void} */ export function typesTypescriptFormatType(generateContext: import("../generate.js").GenerateContext, file: import("../file/context.js").GenerateFile, type: import("../generated/common/types.js").StructureTypeSystemDefinition, options: import("./generator.js").GenerateTypeOptions): void; /** * Use the provided name in Typescript * * @param {import("../generate.js").GenerateContext} generateContext * @param {import("../file/context.js").GenerateFile} file * @param {string} name * @returns {string} */ export function typesTypescriptUseTypeName(generateContext: import("../generate.js").GenerateContext, file: import("../file/context.js").GenerateFile, name: string): string;