UNPKG

@shopgate/pwa-common

Version:

Common library for the Shopgate Connect PWA.

14 lines 1.04 kB
/** * A registry for all subscribers. * @type {Array} */var subscriptionRegistry=[];/** * A wrapper for stream$.subscribe() that gets injected into each subscriber. * @param {Observable} stream$ A observable stream. * @param {Function} subscriberFn The subscriber function. */var handleSubscribers=function handleSubscribers(stream$,subscriberFn){subscriptionRegistry.push(stream$.subscribe(subscriberFn));};/** * Unsubscribes all cached subscriptions. */var unsubscribe=function unsubscribe(){subscriptionRegistry.splice(0).forEach(function(subscription){return subscription.unsubscribe();});};/** * Calls each subscriber function and passes the handleSubscribers() to it. * @param {Array} subscribers The subscribers from the theme. * @return {Function} A reference to unsubscribe(). */var initSubscribers=function initSubscribers(subscribers){if(subscriptionRegistry.length){unsubscribe();}subscribers.forEach(function(subscription){return subscription(handleSubscribers);});return unsubscribe;};export default initSubscribers;