UNPKG

2.77 kBTypeScriptView Raw
1import { Resolver } from '@stoplight/json-ref-resolver';
2import { IDisposable } from '@stoplight/lifecycle';
3import { Dictionary, IParserResult } from '@stoplight/types';
4import { IGraph } from './graph';
5import { JsonPatch } from './graph/dom';
6import { INodeSelector, Node } from './graph/nodes';
7import { INotifier } from './notifier';
8import { GraphTaskOp, IScheduler } from './scheduler';
9import { TaskHandler } from './scheduler/taskHandler';
10export interface IGraphite extends IDisposable {
11 readonly graph: IGraph;
12 readonly notifier: INotifier;
13 readonly scheduler: IScheduler;
14 readonly resolver: Resolver;
15 registerPlugins: (...plugins: IGraphitePlugin[]) => IDisposable;
16}
17export declare type SourceBackendFactory = (graph: IGraphite, ...args: any) => ISourceBackend;
18export interface ISourceBackend {
19 id: string;
20}
21export interface IPluginTask {
22 operation: GraphTaskOp;
23 handler: TaskHandler;
24}
25export interface IGraphitePlugin {
26 tasks: IPluginTask[];
27 specProvider?: ISpecProvider;
28}
29export interface ISpecProvider {
30 spec: string;
31 path: RegExp;
32 content?: (parsed: any) => number;
33}
34export interface IParser extends INodeSelector {
35 serialize: SerializeFunc;
36 deserialize: DeserializeFunc;
37}
38export declare type SerializeFunc = (parsed: any) => string;
39export declare type DeserializeFunc = (raw: string) => IParserResult;
40export interface ISourceMapPlugin extends INodeSelector {
41 map: ISourceNodeMap[];
42}
43export interface ISourceNodeMap {
44 type: string;
45 noAdd?: boolean;
46 subtype?: string;
47 field?: string;
48 match?: string;
49 notMatch?: string;
50 children?: ISourceNodeMap[];
51}
52export declare enum DiffOp {
53 AddNode = "add_node",
54 ModifyNode = "modify_node",
55 RemoveNode = "remove_node"
56}
57export interface IGraphDiff {
58 [DiffOp.AddNode]: Dictionary<Node, string>;
59 [DiffOp.ModifyNode]: Dictionary<JsonPatch, string>;
60 [DiffOp.RemoveNode]: Dictionary<Node, string>;
61}
62export interface ITraceData {
63 instanceId?: string;
64 sourceOp?: GraphTaskOp;
65}
66export declare type GraphiteError = IPluginError | IGenericError | IUnhandledError;
67export declare enum GraphiteErrorCode {
68 Plugin = 1,
69 Unhandled = 2,
70 Generic = 3
71}
72interface IGraphiteError<D> {
73 code: GraphiteErrorCode;
74 message: string;
75 nodeId?: string;
76 trace?: ITraceData;
77 data?: D;
78}
79export interface IUnhandledError<D = unknown> extends IGraphiteError<D> {
80 code: GraphiteErrorCode.Unhandled;
81}
82export interface IGenericError<D = unknown> extends IGraphiteError<D> {
83 code: GraphiteErrorCode.Generic;
84}
85export interface IPluginError<D = unknown> extends IGraphiteError<D> {
86 code: GraphiteErrorCode.Plugin;
87 nodeId: string;
88 trace: ITraceData;
89}
90export {};