UNPKG

@redocly/openapi-core

Version:

See https://github.com/Redocly/openapi-cli

67 lines (66 loc) 2.26 kB
import type { YAMLNode, LoadOptions } from 'yaml-ast-parser'; import { NormalizedNodeType } from './types'; import { ResolveConfig } from './config/config'; export declare type CollectedRefs = Map<string, Document>; export declare class Source { absoluteRef: string; body: string; mimeType?: string | undefined; constructor(absoluteRef: string, body: string, mimeType?: string | undefined); private _ast; private _lines; getAst(safeLoad: (input: string, options?: LoadOptions | undefined) => YAMLNode): YAMLNode; getLines(): string[]; } export declare class ResolveError extends Error { originalError: Error; constructor(originalError: Error); } export declare class YamlParseError extends Error { originalError: Error; source: Source; col: number; line: number; constructor(originalError: Error, source: Source); } export declare type Document = { source: Source; parsed: any; }; export declare function makeRefId(absoluteRef: string, pointer: string): string; export declare function makeDocumentFromString(sourceString: string, absoluteRef: string): { source: Source; parsed: unknown; }; export declare class BaseResolver { private config; cache: Map<string, Promise<Document | ResolveError>>; constructor(config?: ResolveConfig); getFiles(): Set<string>; resolveExternalRef(base: string | null, ref: string): string; loadExternalRef(absoluteRef: string): Promise<Source>; parseDocument(source: Source, isRoot?: boolean): Document; resolveDocument(base: string | null, ref: string, isRoot?: boolean): Promise<Document | ResolveError | YamlParseError>; } export declare type ResolvedRef = { resolved: false; isRemote: boolean; nodePointer?: string; document?: Document; source?: Source; error?: ResolveError | YamlParseError; node?: any; } | { resolved: true; node: any; document: Document; nodePointer: string; isRemote: boolean; error?: undefined; }; export declare type ResolvedRefMap = Map<string, ResolvedRef>; export declare function resolveDocument(opts: { rootDocument: Document; externalRefResolver: BaseResolver; rootType: NormalizedNodeType; }): Promise<ResolvedRefMap>;