@prismatic-io/spectral
Version:
Utility library for building Prismatic connectors and code-native integrations
71 lines (70 loc) • 2.99 kB
TypeScript
import type { Action, Component, DataSource, Trigger, TriggerPayload } from "../../serverTypes";
import type { ConfigVarResultCollection, Inputs } from "../../types";
import type { TriggerResult } from "../../types/TriggerResult";
export interface ComponentNode {
id: string;
label: string;
description: string;
signature: string;
key: string;
public: boolean;
actions: {
nodes: ActionNode[];
};
connections: {
nodes: ConnectionNode[];
};
}
export interface ActionNode {
isDataSource: boolean;
isDetailDataSource: boolean;
dataSourceType: string | null;
isTrigger: boolean;
isCommonTrigger: boolean;
key: string;
label: string;
description: string;
inputs: {
nodes: InputNode[];
};
examplePayload: string | null;
}
export interface ConnectionNode {
key: string;
label: string;
comments: string;
inputs: {
nodes: InputNode[];
};
}
export interface InputNode {
key: string;
label: string;
type: string;
required: boolean;
default: any;
collection: string;
shown: boolean;
onPremiseControlled: boolean;
}
export type FormattedAction = Pick<Action, "key" | "display" | "inputs" | "examplePayload">;
export type FormattedTrigger<TInputs extends Inputs, TActionInputs extends Inputs, TConfigVars extends ConfigVarResultCollection = ConfigVarResultCollection, TPayload extends TriggerPayload = TriggerPayload, TAllowsBranching extends boolean = boolean, TResult extends TriggerResult<TAllowsBranching, TPayload> = TriggerResult<TAllowsBranching, TPayload>> = Pick<Trigger<TInputs, TActionInputs, TConfigVars, TPayload, TAllowsBranching, TResult>, "key" | "display" | "inputs">;
export type FormattedDataSource = Pick<DataSource, "key" | "display" | "inputs" | "dataSourceType" | "examplePayload">;
export type ComponentForManifest<TInputs extends Inputs, TActionInputs extends Inputs, TConfigVars extends ConfigVarResultCollection = ConfigVarResultCollection, TPayload extends TriggerPayload = TriggerPayload, TAllowsBranching extends boolean = boolean, TResult extends TriggerResult<TAllowsBranching, TPayload> = TriggerResult<TAllowsBranching, TPayload>> = Pick<Component<TInputs, TActionInputs, TConfigVars, TPayload, TAllowsBranching, TResult>, "key" | "public" | "display" | "connections"> & {
actions: Record<string, Action | FormattedAction>;
triggers: Record<string, Trigger<TInputs, TActionInputs, TConfigVars, TPayload, TAllowsBranching, TResult> | FormattedTrigger<TInputs, TActionInputs, TConfigVars, TPayload, TAllowsBranching, TResult>>;
dataSources: Record<string, DataSource | FormattedDataSource>;
};
export type ComponentActionsQueryResponse = {
data: {
data: {
actions: {
nodes: Array<ActionNode>;
pageInfo: {
hasNextPage: boolean;
endCursor: string;
};
};
};
};
};