fumadocs-openapi
Version:
Generate MDX docs for your OpenAPI spec
65 lines (64 loc) • 1.98 kB
TypeScript
import { OpenAPIServer } from "./server/create.js";
import { OutputEntry } from "./utils/pages/builder.js";
import { SchemaToPagesOptions } from "./utils/pages/preset-auto.js";
import "./server/index.js";
import { ProcessedDocument } from "./utils/process-document.js";
import { PagesToTextOptions } from "./utils/pages/to-text.js";
//#region src/generate-file.d.ts
interface OutputFile {
path: string;
content: string;
}
interface IndexConfig {
items: IndexItem[] | ((ctx: BeforeWriteContext) => IndexItem[]);
/**
* Generate URLs for cards
*/
url: ((filePath: string) => string) | {
baseUrl: string;
/**
* Base content directory
*/
contentDir: string;
};
}
interface IndexItem {
path: string;
title?: string;
description?: string;
/**
* Specify linked pages:
* - items in `inputs` to include all generated pages of a specific schema.
* - specific Markdown/MDX files.
*/
only?: string[];
}
interface GenerateFilesConfig extends PagesToTextOptions {
/**
* the OpenAPI server object
*/
input: OpenAPIServer;
/**
* Output directory
*/
output: string;
/**
* Generate index files with cards linking to generated pages.
*/
index?: IndexConfig;
/**
* Can add/change/remove output files before writing to file system
**/
beforeWrite?: (this: BeforeWriteContext, files: OutputFile[]) => void | Promise<void>;
}
type Config = SchemaToPagesOptions & GenerateFilesConfig;
interface BeforeWriteContext {
readonly generated: Record<string, OutputFile[]>;
readonly generatedEntries: Record<string, OutputEntry[]>;
readonly documents: Record<string, ProcessedDocument>;
}
declare function generateFiles(options: Config): Promise<void>;
declare function generateFilesOnly(options: SchemaToPagesOptions & Omit<GenerateFilesConfig, 'output'>): Promise<OutputFile[]>;
//#endregion
export { Config, OutputFile, generateFiles, generateFilesOnly };
//# sourceMappingURL=generate-file.d.ts.map