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