UNPKG

vitepress-openapi

Version:

Generate VitePress API Documentation from OpenAPI Specification.

299 lines (298 loc) 11.5 kB
import type { Ref, UnwrapNestedRefs } from 'vue'; import type { OARequest } from '../lib/codeSamples/request'; import type { OperationSlot, ParsedOperation } from '../types'; export interface ThemeConfig { highlighterTheme: { light: any; dark: any; }; } export interface PathConfig { showBaseURL: Ref<boolean>; } export interface RequestConfig { defaultView: Ref<'schema' | 'contentType' | 'autogenerated'>; } export interface JsonViewerConfig { deep: Ref<number>; renderer: Ref<'vue-json-pretty' | 'shiki' | string>; } 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<'tabs' | 'select'>; maxTabs: Ref<number>; body: { defaultView: Ref<'schema' | 'contentType' | 'autogenerated'>; }; } type PlaygroundJsonEditorMode = 'text' | 'tree' | 'table'; export interface PlaygroundConfig { jsonEditor: { mode: Ref<PlaygroundJsonEditorMode>; mainMenuBar: Ref<boolean>; navigationBar: Ref<boolean>; }; } export interface SecurityConfig { defaultScheme: Ref<string | null>; } type OperationBadges = 'deprecated' | 'operationId'; export interface OperationConfig { badges?: Ref<OperationBadges[]>; slots?: Ref<OperationSlot[]>; /** @deprecated Use server.getServers instead */ getServers?: GetServersFunction | null; hiddenSlots?: Ref<OperationSlot[]>; cols?: Ref<1 | 2>; defaultBaseUrl?: string; } export type Languages = 'es' | 'en' | 'ja' | 'pt-BR' | string; export type Messages = Record<Languages, Record<string, 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; } export interface ServerConfig { allowCustomServer: boolean; getServers: GetServersFunction | null; } 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>; } 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?: "schema" | "contentType" | "autogenerated" | 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?: "tabs" | "select" | undefined; maxTabs?: number | undefined; body?: { defaultView: "schema" | "contentType" | "autogenerated"; } | undefined; } | undefined; playground?: { jsonEditor?: { mode: PlaygroundJsonEditorMode; mainMenuBar: boolean; navigationBar: boolean; } | undefined; } | undefined; security?: { defaultScheme?: string | null | undefined; } | undefined; operation?: { badges?: OperationBadges[] | undefined; slots?: OperationSlot[] | undefined; getServers?: {} | null | undefined; hiddenSlots?: OperationSlot[] | undefined; cols?: 1 | 2 | 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; } | 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; }; getLocale: () => Languages; setLocale: (value: Languages) => void; getHighlighterTheme: () => { light: any; dark: any; } | undefined; /** @deprecated Use `getRequestBodyDefaultView` instead. */ getSchemaDefaultView: () => "schema" | "contentType" | "autogenerated" | undefined; getRequestBodyDefaultView: () => "schema" | "contentType" | "autogenerated" | undefined; /** @deprecated Use `setRequestBodyDefaultView` instead. */ setSchemaDefaultView: (value: "schema" | "contentType" | "autogenerated") => void; setRequestBodyDefaultView: (value: "schema" | "contentType" | "autogenerated") => void; getShowBaseURL: () => boolean | undefined; setShowBaseURL: (value: boolean) => void; getJsonViewerDeep: () => number | undefined; setJsonViewerDeep: (value: number) => void; getJsonViewerRenderer: () => "vue-json-pretty" | "shiki" | string; setJsonViewerRenderer: (value: "vue-json-pretty" | "shiki" | string) => 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: () => "tabs" | "select" | undefined; setResponseCodeSelector: (value: "tabs" | "select") => void; getResponseCodeMaxTabs: () => number | undefined; setResponseCodeMaxTabs: (value: number) => void; getResponseBodyDefaultView: () => "schema" | "contentType" | "autogenerated" | undefined; setResponseBodyDefaultView: (value: "schema" | "contentType" | "autogenerated") => void; getPlaygroundJsonEditorMode: () => PlaygroundJsonEditorMode | undefined; setPlaygroundJsonEditorMode: (value: PlaygroundJsonEditorMode) => void; getPlaygroundJsonEditorMainMenuBar: () => boolean | undefined; setPlaygroundJsonEditorMainMenuBar: (value: boolean) => void; getPlaygroundJsonEditorNavigationBar: () => boolean | undefined; setPlaygroundJsonEditorNavigationBar: (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: () => 1 | 2 | undefined; setOperationCols: (value: number) => void; getOperationDefaultBaseUrl: () => string; getOperationServers: () => GetServersFunction | null; getI18nConfig: () => I18nConfig; setI18nConfig: (config: Partial<UnwrapNestedRefs<I18nConfig>>) => void; getSpecConfig: () => Partial<SpecConfig> | undefined; getWrapExamples: () => boolean | undefined; setSpecConfig: (config: Partial<UnwrapNestedRefs<SpecConfig>>) => void; getCodeSamplesLangs: () => string[] | undefined; getCodeSamplesDefaultLang: () => string; getCodeSamplesAvailableLanguages: () => LanguageConfig[] | undefined; getCodeSamplesGenerator: () => GeneratorFunction | undefined; getCodeSamplesDefaultHeaders: () => Record<string, string> | undefined; 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; }; export {};