UNPKG

@deep-foundation/deeplinks

Version:

[![npm](https://img.shields.io/npm/v/@deep-foundation/deeplinks.svg)](https://www.npmjs.com/package/@deep-foundation/deeplinks) [![Gitpod](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/deep-fo

48 lines (47 loc) 1.89 kB
import { DeepClient, DeepClientResult, Table } from "../client"; import { MutationInputLink } from "../client_types"; import { IGenerateMutationBuilder, ISerialOptions } from "../gql"; import { Id } from "../minilinks"; export declare class SerialTransitionsBuilder { private deep; private serialActions; private defaultTable; private executeOptions; constructor(options: SerialTransitionsBuilderOptions); append(options: AppendTransitionOptions): this; appendMultiple(options: AppendTransitionOptions[]): this; clear(): this; execute(options?: ExecuteOptions): Promise<DeepClientResult<Record<string, { id: Id; }>>>; actions(): SerialAction[]; getTransitionType(transition: Transition): TransitionType; setDefaultTable(table: Table<'insert' | 'update' | 'delete'>): this; getDefaultTable(): Table<"insert" | "update" | "delete">; setDeep(deep: DeepClient): this; getDeep(): DeepClient<import("../minilinks").Link<Id>>; setExecuteOptions(options: ExecuteOptions): this; getExecuteOptions(): ExecuteOptions; } export interface AppendTransitionOptions { transition: Transition; table?: Table<Transition[0] extends null ? 'insert' : Transition[1] extends null ? 'delete' : 'update'>; alias?: string; } export type TransitionType = 'insert' | 'update' | 'delete'; export type TransitionItem = MutationInputLink | null; export type Transition = Array<TransitionItem>; export type ExecuteOptions = Omit<ISerialOptions, 'actions'>; export type SerialTransitionsBuilderOptions = { deep: DeepClient; defaultTable?: Table<'insert' | 'update' | 'delete'>; executeOptions?: ExecuteOptions; }; type SerialAction = { mutation: IGenerateMutationBuilder; alias?: string; index: number; transitionType: TransitionType; table: Table<'insert' | 'update' | 'delete'>; }; export {};