UNPKG

vitepress-openapi

Version:

Generate VitePress API Documentation from OpenAPI Specification.

333 lines (332 loc) 12.8 kB
import type MarkdownIt from 'markdown-it'; import type { Ref, UnwrapNestedRefs } from 'vue'; import type { OARequest } from '../lib/codeSamples/request'; import type { OperationSlot, ParsedOperation } from '../types'; export type BodyViewType = 'schema' | 'contentType' | 'autogenerated'; export type JsonRendererType = 'vue-json-pretty' | 'shiki' | string; export type ResponseCodeSelectorType = 'tabs' | 'select'; export type OperationColsType = 1 | 2; export type OperationBadges = 'deprecated' | 'operationId'; export type PlaygroundJsonEditorMode = 'text' | 'tree' | 'table'; export type Languages = 'es' | 'en' | 'ja' | 'pt-BR' | 'zh' | string; export type Messages = Record<Languages, Record<string, string>>; export interface ThemeConfig { highlighterTheme?: { light?: any; dark?: any; }; } export interface PathConfig { showBaseURL?: Ref<boolean>; } export interface RequestConfig { defaultView?: Ref<BodyViewType>; } export interface JsonViewerConfig { deep?: Ref<number>; renderer?: Ref<JsonRendererType>; } export interface SchemaViewerConfig { deep?: Ref<number>; } export interface HeadingLevels { h1?: number; h2?: number; h3?: number; h4?: number; h5?: number; h6?: number; } export interface ResponseConfig { responseCodeSelector?: Ref<ResponseCodeSelectorType>; maxTabs?: Ref<number>; body?: { defaultView?: Ref<BodyViewType>; }; } export interface PlaygroundConfig { jsonEditor?: { mode?: Ref<PlaygroundJsonEditorMode>; mainMenuBar?: Ref<boolean>; navigationBar?: Ref<boolean>; statusBar?: Ref<boolean>; }; } export interface SecurityConfig { defaultScheme?: Ref<string | null>; } export interface OperationConfig { badges?: Ref<OperationBadges[]>; slots?: Ref<OperationSlot[]>; /** @deprecated Use server.getServers instead */ getServers?: GetServersFunction | null; hiddenSlots?: Ref<OperationSlot[]>; cols?: Ref<OperationColsType>; defaultBaseUrl?: string; } export interface AvailableLocale { code: string; label: string; } export interface I18nConfig { locale?: Ref<Languages>; fallbackLocale?: Ref<Languages>; messages?: Messages; availableLocales?: AvailableLocale[]; } export interface SpecConfig { groupByTags?: Ref<boolean>; collapsePaths?: Ref<boolean>; showPathsSummary?: Ref<boolean>; avoidCirculars?: Ref<boolean>; lazyRendering?: Ref<boolean>; defaultTag?: string; defaultTagDescription?: string; wrapExamples?: boolean; disableDownload?: Ref<boolean>; } export interface ServerConfig { allowCustomServer?: boolean; getServers?: GetServersFunction | null; } export interface OperationLinkConfig { linkPrefix?: string; transformHref?: (href: string) => string; } export interface MarkdownConfig { operationLink?: OperationLinkConfig | false; externalLinksNewTab?: boolean; config?: (md: MarkdownIt) => MarkdownIt | undefined; } export interface UseThemeConfig { theme?: Partial<ThemeConfig>; path?: Partial<PathConfig>; requestBody?: Partial<RequestConfig>; jsonViewer?: Partial<JsonViewerConfig>; schemaViewer?: Partial<SchemaViewerConfig>; headingLevels?: Partial<HeadingLevels>; response?: Partial<ResponseConfig>; playground?: Partial<PlaygroundConfig>; security?: Partial<SecurityConfig>; operation?: Partial<OperationConfig>; i18n?: Partial<I18nConfig>; spec?: Partial<SpecConfig>; codeSamples?: Partial<CodeSamplesConfig>; linksPrefixes?: Partial<LinksPrefixesConfig>; server?: Partial<ServerConfig>; markdown?: Partial<MarkdownConfig>; } export interface CodeSamplesConfig { langs: string[]; defaultLang: string; availableLanguages: LanguageConfig[]; generator: GeneratorFunction; defaultHeaders: Record<string, string>; } export interface LinksPrefixesConfig { tags: string; operations: string; } interface LanguageConfig { lang: string; label: string; highlighter: string; icon?: string; } export type PartialUseThemeConfig = Partial<UnwrapNestedRefs<UseThemeConfig>>; type GeneratorFunction = (lang: string, request: OARequest) => Promise<string>; type GetServersFunction = ({ method, path, operation }: { method: string; path: string; operation: ParsedOperation; }) => string[] | null; export declare const DEFAULT_OPERATION_SLOTS: OperationSlot[]; export declare const DEFAULT_BASE_URL = "http://localhost"; export declare const availableLanguages: LanguageConfig[]; export declare function useTheme(initialConfig?: PartialUseThemeConfig): { isDark: import("vue").WritableComputedRef<boolean, boolean>; schemaConfig: Partial<RequestConfig> | undefined; reset: () => void; getState: () => { theme?: { highlighterTheme?: { light?: any; dark?: any; } | undefined; } | undefined; path?: { showBaseURL?: boolean | undefined; } | undefined; requestBody?: { defaultView?: BodyViewType | undefined; } | undefined; jsonViewer?: { deep?: number | undefined; renderer?: string | undefined; } | undefined; schemaViewer?: { deep?: number | undefined; } | undefined; headingLevels?: { h1?: number | undefined; h2?: number | undefined; h3?: number | undefined; h4?: number | undefined; h5?: number | undefined; h6?: number | undefined; } | undefined; response?: { responseCodeSelector?: ResponseCodeSelectorType | undefined; maxTabs?: number | undefined; body?: { defaultView?: BodyViewType | undefined; } | undefined; } | undefined; playground?: { jsonEditor?: { mode?: PlaygroundJsonEditorMode | undefined; mainMenuBar?: boolean | undefined; navigationBar?: boolean | undefined; statusBar?: boolean | undefined; } | undefined; } | undefined; security?: { defaultScheme?: string | null | undefined; } | undefined; operation?: { badges?: OperationBadges[] | undefined; slots?: OperationSlot[] | undefined; getServers?: {} | null | undefined; hiddenSlots?: OperationSlot[] | undefined; cols?: OperationColsType | undefined; defaultBaseUrl?: string | undefined; } | undefined; i18n?: { locale?: string | undefined; fallbackLocale?: string | undefined; messages?: { [x: string]: { [x: string]: string; }; } | undefined; availableLocales?: { code: string; label: string; }[] | undefined; } | undefined; spec?: { groupByTags?: boolean | undefined; collapsePaths?: boolean | undefined; showPathsSummary?: boolean | undefined; avoidCirculars?: boolean | undefined; lazyRendering?: boolean | undefined; defaultTag?: string | undefined; defaultTagDescription?: string | undefined; wrapExamples?: boolean | undefined; disableDownload?: boolean | undefined; } | undefined; codeSamples?: { langs?: string[] | undefined; defaultLang?: string | undefined; availableLanguages?: { lang: string; label: string; highlighter: string; icon?: string | undefined; }[] | undefined; generator?: {} | undefined; defaultHeaders?: { [x: string]: string; } | undefined; } | undefined; linksPrefixes?: { tags?: string | undefined; operations?: string | undefined; } | undefined; server?: { allowCustomServer?: boolean | undefined; getServers?: {} | null | undefined; } | undefined; markdown?: { operationLink?: false | { linkPrefix?: string | undefined; transformHref?: {} | undefined; } | undefined; externalLinksNewTab?: boolean | undefined; config?: {} | undefined; } | undefined; }; getLocale: () => Languages; setLocale: (value: Languages) => void; getHighlighterTheme: () => { light?: any; dark?: any; } | undefined; /** @deprecated Use `getRequestBodyDefaultView` instead. */ getSchemaDefaultView: () => BodyViewType | undefined; getRequestBodyDefaultView: () => BodyViewType | undefined; /** @deprecated Use `setRequestBodyDefaultView` instead. */ setSchemaDefaultView: (value: BodyViewType) => void; setRequestBodyDefaultView: (value: BodyViewType) => void; getShowBaseURL: () => boolean | undefined; setShowBaseURL: (value: boolean) => void; getJsonViewerDeep: () => number | undefined; setJsonViewerDeep: (value: number) => void; getJsonViewerRenderer: () => JsonRendererType; setJsonViewerRenderer: (value: JsonRendererType) => void; getSchemaViewerDeep: () => number | undefined; setSchemaViewerDeep: (value: number) => void; getHeadingLevels: () => Partial<HeadingLevels> | undefined; getHeadingLevel: (level: keyof HeadingLevels) => `h${1 | 2 | 3 | 4 | 5 | 6}`; setHeadingLevels: (levels: Partial<UnwrapNestedRefs<HeadingLevels>>) => void; getResponseCodeSelector: () => ResponseCodeSelectorType | undefined; setResponseCodeSelector: (value: ResponseCodeSelectorType) => void; getResponseCodeMaxTabs: () => number | undefined; setResponseCodeMaxTabs: (value: number) => void; getResponseBodyDefaultView: () => BodyViewType | undefined; setResponseBodyDefaultView: (value: BodyViewType) => void; getPlaygroundJsonEditorMode: () => PlaygroundJsonEditorMode | undefined; setPlaygroundJsonEditorMode: (value: PlaygroundJsonEditorMode) => void; getPlaygroundJsonEditorMainMenuBar: () => boolean | undefined; setPlaygroundJsonEditorMainMenuBar: (value: boolean) => void; getPlaygroundJsonEditorNavigationBar: () => boolean | undefined; setPlaygroundJsonEditorNavigationBar: (value: boolean) => void; getPlaygroundJsonEditorStatusBar: () => boolean | undefined; setPlaygroundJsonEditorStatusBar: (value: boolean) => void; getSecurityDefaultScheme: () => string | null | undefined; setSecurityDefaultScheme: (value: string | null) => void; getOperationBadges: () => OperationBadges[]; setOperationBadges: (value: OperationBadges[]) => void; getOperationSlots: () => OperationSlot[] | undefined; setOperationSlots: (value: OperationSlot[]) => void; getOperationHiddenSlots: () => OperationSlot[] | undefined; setOperationHiddenSlots: (value: OperationSlot[]) => void; getOperationCols: () => OperationColsType | undefined; setOperationCols: (value: OperationColsType) => void; getOperationDefaultBaseUrl: () => string; getOperationServers: () => GetServersFunction | null; getI18nConfig: () => I18nConfig; setI18nConfig: (config: Partial<UnwrapNestedRefs<I18nConfig>>) => void; getSpecConfig: () => Partial<SpecConfig> | undefined; getWrapExamples: () => boolean | undefined; getSpecDisableDownload: () => boolean | undefined; setSpecConfig: (config: Partial<UnwrapNestedRefs<SpecConfig>>) => void; getCodeSamplesLangs: () => string[]; getCodeSamplesDefaultLang: () => string; getCodeSamplesAvailableLanguages: () => LanguageConfig[] | undefined; getCodeSamplesGenerator: () => GeneratorFunction; getCodeSamplesDefaultHeaders: () => Record<string, string>; setCodeSamplesConfig: (config: Partial<UnwrapNestedRefs<CodeSamplesConfig>>) => void; getLinksPrefixesConfig: () => Partial<LinksPrefixesConfig> | undefined; setLinksPrefixesConfig: (config: Partial<UnwrapNestedRefs<LinksPrefixesConfig>>) => void; getTagsLinkPrefix: () => string | undefined; getOperationsLinkPrefix: () => string | undefined; getServerConfig: () => ServerConfig; setServerConfig: (config: Partial<UnwrapNestedRefs<ServerConfig>>) => void; getServerAllowCustomServer: () => boolean; getMarkdownConfig: () => MarkdownConfig; getExternalLinksNewTab: () => boolean; setMarkdownConfig: (config: Partial<UnwrapNestedRefs<MarkdownConfig>>) => void; getOperationLinkConfig: () => OperationLinkConfig | false | undefined; }; export {};