UNPKG

@smarterlabs/norman

Version:

A static data layer for modern web applications

27 lines 622 B
exports.on = function(label, fn) { const els = this.eventListeners if (!(label in els)) { els[label] = [] } els[label].push(fn) return this } exports.emit = function(labels, data, isPromise) { const els = this.eventListeners if (!Array.isArray(labels)) labels = [labels] if (!isPromise) { labels.forEach(label => { if (!els[label]) return els[label].forEach(event => event({ data, ...this })) }) return data } const promises = [] labels.forEach(label => { if (!els[label]) return els[label].forEach(event => { promises.push(event({ data, ...this })) }) }) return Promise.all(promises) }