api-ref-bundler
Version:
Bundle all external $ref in Json based API document into single document
28 lines (27 loc) • 1.12 kB
TypeScript
import { CloneHook, CloneState, CrawlContext } from "json-crawl";
import { RefResolver, Resolver } from "./resolver";
export interface RefNode {
pointer: string;
ref: string;
sibling?: any;
}
export interface DereferenceState {
refNodes: RefNode[];
baseFile: string;
}
export type DereferenceContext = CrawlContext<CloneState<DereferenceState>>;
export interface DereferenceOptions {
ignoreSibling?: boolean;
fullCrawl?: boolean;
enableCircular?: boolean;
parallelCrawl?: boolean;
hooks?: {
onError?: (message: string, ctx: DereferenceContext) => void;
onRef?: (ref: string, ctx: DereferenceContext) => void;
onCrawl?: (value: any, ctx: DereferenceContext) => void;
onExit?: (value: any, ctx: DereferenceContext) => void;
onCycle?: (ref: string, ctx: DereferenceContext) => void;
};
}
export declare const dereferenceHook: (refResolver: RefResolver, options?: DereferenceOptions) => CloneHook<DereferenceState>;
export declare const dereference: (basePath: string, resolver: Resolver, options?: DereferenceOptions) => Promise<any>;