@deep-foundation/deeplinks
Version:
[](https://www.npmjs.com/package/@deep-foundation/deeplinks) [](https://gitpod.io/#https://github.com/deep-fo
48 lines (47 loc) • 1.89 kB
TypeScript
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 {};