UNPKG

@redocly/openapi-core

Version:

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

57 lines 2.1 kB
import { YamlParseError } from './errors/yaml-parse-error.js'; import type { YAMLNode, LoadOptions } from 'yaml-ast-parser'; import type { NormalizedNodeType } from './types/index.js'; import type { ResolveConfig } from './config/types.js'; export 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 type Document<T = unknown> = { source: Source; parsed: T; }; export declare function makeDocumentFromString<T = unknown>(sourceString: string, absoluteRef: string): Document<T>; export declare class BaseResolver { protected config: ResolveConfig; 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<T = unknown>(base: string | null, ref: string, isRoot?: boolean): Promise<Document<T> | ResolveError | YamlParseError>; } export 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 type ResolvedRefMap = Map<string, ResolvedRef>; export declare function resolveDocument(opts: { rootDocument: Document; externalRefResolver: BaseResolver; rootType: NormalizedNodeType; }): Promise<ResolvedRefMap>; //# sourceMappingURL=resolve.d.ts.map