UNPKG

@prismatic-io/spectral

Version:

Utility library for building Prismatic connectors and code-native integrations

71 lines (70 loc) 2.99 kB
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; }; }; }; }; };