UNPKG

@compas/code-gen

Version:

Generate various boring parts of your server

45 lines (44 loc) 1.68 kB
/** * @typedef {object} OutputFile * @property {string} contents * @property {string} relativePath */ /** * @typedef {object} GenerateContext * @property {import("@compas/stdlib").Logger} log * @property {import("./generated/common/types.d.ts").StructureGenerateOptions} options * @property {import("./generated/common/types.d.ts").StructureStructure} structure * @property {import("./file/context.js").GenerateFileMap} files */ /** * Execute the generators based on de provided Generator instance and included options. * * TODO: expand docs * * - flat structure, no resolved references * - Preprocess everything * - talk about caching * - targetLanguageSwitch & targetCustomSwitch * * @param {import("./generator.js").Generator} generator * @param {import("./generated/common/types.js").StructureGenerateOptions} options * @returns {Array<OutputFile>} */ export function generateExecute(generator: import("./generator.js").Generator, options: import("./generated/common/types.js").StructureGenerateOptions): Array<OutputFile>; /** * Write output files if an output directory is provided * * @param {GenerateContext} generateContext * @param {Array<OutputFile>} outputFiles */ export function generateWriteOutputFiles(generateContext: GenerateContext, outputFiles: Array<OutputFile>): void; export type OutputFile = { contents: string; relativePath: string; }; export type GenerateContext = { log: import("@compas/stdlib").Logger; options: import("./generated/common/types.d.ts").StructureGenerateOptions; structure: import("./generated/common/types.d.ts").StructureStructure; files: import("./file/context.js").GenerateFileMap; };