Type alias StreamOutputMap<TStreamMode, TStreamSubgraphs, StreamUpdates, StreamValues, Nodes, NodeReturnType>

StreamOutputMap<TStreamMode, TStreamSubgraphs, StreamUpdates, StreamValues, Nodes, NodeReturnType>: (undefined extends TStreamMode
        ? []
        : (StreamMode | StreamMode[]) extends TStreamMode
            ? TStreamMode extends StreamMode[]
                ? TStreamMode[number]
                : TStreamMode
            : TStreamMode extends StreamMode[]
                ? TStreamMode[number]
                : []) extends infer Multiple extends StreamMode
    ? [TStreamSubgraphs] extends [true]
        ? {
            checkpoints: [string[], "checkpoints", StreamCheckpointsOutput<StreamValues>];
            custom: [string[], "custom", StreamCustomOutput];
            debug: [string[], "debug", StreamDebugOutput];
            messages: [string[], "messages", StreamMessageOutput];
            tasks: [string[], "tasks", StreamTasksOutput<StreamUpdates, StreamValues>];
            updates: [string[], "updates", NodeReturnType extends Record<string, unknown>
                ? {
                    [K in keyof NodeReturnType]?: NodeReturnType[K]
                }
                : Record<Nodes extends string
                    ? Nodes
                    : string, StreamUpdates>];
            values: [string[], "values", StreamValues];
        }[Multiple]
        : {
            checkpoints: ["checkpoints", StreamCheckpointsOutput<StreamValues>];
            custom: ["custom", StreamCustomOutput];
            debug: ["debug", StreamDebugOutput];
            messages: ["messages", StreamMessageOutput];
            tasks: ["tasks", StreamTasksOutput<StreamUpdates, StreamValues, Nodes>];
            updates: ["updates", NodeReturnType extends Record<string, unknown>
                ? {
                    [K in keyof NodeReturnType]?: NodeReturnType[K]
                }
                : Record<Nodes extends string
                    ? Nodes
                    : string, StreamUpdates>];
            values: ["values", StreamValues];
        }[Multiple]
    : (undefined extends TStreamMode
            ? DefaultStreamMode
            : TStreamMode) extends infer Single extends StreamMode
        ? [TStreamSubgraphs] extends [true]
            ? {
                checkpoints: [string[], StreamCheckpointsOutput<StreamValues>];
                custom: [string[], StreamCustomOutput];
                debug: [string[], StreamDebugOutput];
                messages: [string[], StreamMessageOutput];
                tasks: [string[], StreamTasksOutput<StreamUpdates, StreamValues, Nodes>];
                updates: [string[], NodeReturnType extends Record<string, unknown>
                    ? {
                        [K in keyof NodeReturnType]?: NodeReturnType[K]
                    }
                    : Record<Nodes extends string
                        ? Nodes
                        : string, StreamUpdates>];
                values: [string[], StreamValues];
            }[Single]
            : {
                checkpoints: StreamCheckpointsOutput<StreamValues>;
                custom: StreamCustomOutput;
                debug: StreamDebugOutput;
                messages: StreamMessageOutput;
                tasks: StreamTasksOutput<StreamUpdates, StreamValues, Nodes>;
                updates: NodeReturnType extends Record<string, unknown>
                    ? {
                        [K in keyof NodeReturnType]?: NodeReturnType[K]
                    }
                    : Record<Nodes extends string
                        ? Nodes
                        : string, StreamUpdates>;
                values: StreamValues;
            }[Single]
        : never

Type Parameters

  • TStreamMode extends StreamMode | StreamMode[] | undefined
  • TStreamSubgraphs extends boolean
  • StreamUpdates
  • StreamValues
  • Nodes
  • NodeReturnType