@compas/code-gen
Version:
Generate various boring parts of your server
71 lines (70 loc) • 3.82 kB
TypeScript
/**
* 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;