@shopgate/pwa-common
Version:
Common library for the Shopgate Connect PWA.
14 lines • 1.04 kB
JavaScript
/**
* 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;