import { IPartialObserver, CallbackId } from "./../types"; import { CallbacksManager } from "../CallbacksManager"; type AnyFunction = (...args: any[]) => any; export function createCallbackFromObserver(callbacksManager: CallbacksManager, observer?: IPartialObserver) { const callbacks: { next?: AnyFunction; nextId?: CallbackId; error?: AnyFunction; errorId?: CallbackId; complete?: AnyFunction; completeId?: CallbackId; } = {}; if (!observer) { return callbacks; } if (observer.next) { [callbacks.nextId, callbacks.next] = callbacksManager.addCallback(observer.next); } if (observer.error) { [callbacks.errorId, callbacks.error] = callbacksManager.addCallback(observer.error); } if (observer.complete) { [callbacks.completeId, callbacks.complete] = callbacksManager.addCallback(observer.complete); } return callbacks; }