@azure-tools/openapi
Version:
OpenAPI common code for Azure Tools.
43 lines • 1.37 kB
TypeScript
import { OpenAPI2Document } from "./v2";
import { OpenAPI3Document } from "./v3";
export interface WorkspaceConfig<T extends OpenAPI2Document | OpenAPI3Document> {
specs: {
[filePath: string]: T;
} | Map<string, T>;
}
export interface ResolveReferenceRelativeTo {
/**
* Reference as it is.
* @example
* #/components/schemas/Foo
* file:///bar.json#/components/schemas/Foo
*/
ref: string;
/**
* File where the reference was defined.
* @example file:///foo.json
*
*/
relativeTo: string;
}
export interface TargetedJsonRef {
/**
* File part of the json ref.
* @example foo.json for "foo.json#/components/schemas/Bar"
*/
file: string;
/**
* Path part of the json ref.
* @example /components/schemas/Bar for "foo.json#/components/schemas/Bar"
*/
path?: string;
}
export type ResolveReferenceArgs = TargetedJsonRef | ResolveReferenceRelativeTo;
export interface OpenAPIWorkspace<T extends OpenAPI2Document | OpenAPI3Document> {
specs: Map<string, T>;
resolveReference<T>(args: ResolveReferenceArgs): T;
}
export declare class InvalidRefError extends Error {
}
export declare function createOpenAPIWorkspace<T extends OpenAPI2Document | OpenAPI3Document>(workspace: WorkspaceConfig<T>): OpenAPIWorkspace<T>;
//# sourceMappingURL=workspace.d.ts.map