UNPKG

fumadocs-openapi

Version:

Generate MDX docs for your OpenAPI spec

91 lines (90 loc) 2.71 kB
import { NoReference } from "../schema.js"; import { OpenAPIServer } from "../../server/create.js"; import { OperationItem, WebhookItem } from "../../ui/api-page.js"; import "../../server/index.js"; import { OperationObject, PathItemObject, TagObject } from "../../types.js"; import { ProcessedDocument } from "../process-document.js"; //#region src/utils/pages/builder.d.ts interface BaseEntry { path: string; schemaId: string; info: { title: string; description?: string; }; } interface OperationOutput extends BaseEntry { type: 'operation'; item: OperationItem; } interface WebhookOutput extends BaseEntry { type: 'webhook'; item: WebhookItem; } interface TagOutput extends BaseEntry { type: 'tag'; tag: string; rawTag: TagObject; operations: OperationItem[]; webhooks: WebhookItem[]; } interface OutputGroup extends BaseEntry { type: 'group'; operations: OperationItem[]; webhooks: WebhookItem[]; } type OutputEntry = TagOutput | OperationOutput | WebhookOutput | OutputGroup; interface PagesBuilderConfig { toPages: (builder: PagesBuilder) => void; } interface PagesBuilder { /** * the input ID in OpenAPI server */ id: string; document: ProcessedDocument; /** * add output entry. * * When the `path` property is unspecified, it will generate one. */ create: (entry: OutputEntry) => void; /** * get file path from operation path, useful for generating output paths. */ routePathToFilePath: (path: string) => string; /** * Extract useful info for rendering */ extract: () => ExtractedInfo; fromExtractedWebhook: (item: WebhookItem) => { get displayName(): string; pathItem: NoReference<PathItemObject>; operation: NoReference<OperationObject>; } | undefined; fromExtractedOperation: (item: OperationItem) => { get displayName(): string; pathItem: NoReference<PathItemObject>; operation: NoReference<OperationObject>; } | undefined; fromTag: (tag: TagObject) => { get displayName(): string; }; fromTagName: (tag: string) => { info: TagObject; get displayName(): string; } | undefined; } interface ExtractedInfo { webhooks: (WebhookItem & { tags?: string[]; })[]; operations: (OperationItem & { tags?: string[]; })[]; } declare function fromServer(server: OpenAPIServer, config: PagesBuilderConfig): Promise<Record<string, OutputEntry[]>>; declare function fromSchema(schemaId: string, processed: ProcessedDocument, config: PagesBuilderConfig): OutputEntry[]; //#endregion export { OperationOutput, OutputEntry, OutputGroup, PagesBuilder, PagesBuilderConfig, TagOutput, WebhookOutput, fromSchema, fromServer }; //# sourceMappingURL=builder.d.ts.map