All files subscribe.js

100% Statements 6/6
100% Branches 0/0
100% Functions 3/3
100% Lines 6/6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22                    3x 3x     3x 3x     3x 3x    
// @flow
 
export type Subscribe = (cb: Function) => Subscription;
 
export type Subscription = {
    cb: Function,
    unsubscribe: Function
}
 
export function factory(subscriptions: Array<Subscription>) {
    return function subscribe(cb: Function) {
        const subscription: Subscription = {
            cb,
            unsubscribe: () => {
                const index = subscriptions.indexOf(subscription);
                subscriptions.splice(index, 1)
            }
        };
        subscriptions.push(subscription);
        return subscription
    }
}