Skip to content

Add function to merge subscriptions #43

@atheck

Description

@atheck
function mergeSubscriptions<TProps, TModel, TMessage extends Message> (...subscriptions: (Subscription<TProps, TModel, TMessage> | undefined)[]): Subscription<TProps, TModel, TMessage> {
  return function mergedSubscription(model, props) {
    const results = subscriptions.map((sub) => sub?.(model, props));

    const commands = results.map((sub) => sub?.[0]);
    const disposers = results.map((sub) => sub?.[1]);

    return [cmd.batch(...commands), () => disposers.forEach((dispose) => dispose?.())];
  };
}
{
  subscription: mergeSubscription(baseSub, subscription, ...),
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions