1.0.1 • Published 6 years ago
@nichoth/event-utils v1.0.1
event utils
Event namespacing and stuff
install
$ npm install @nichoth/event-utils
example
namespace
Take an object of event name strings and return an object of namespaced strings.
var namespace = require('@nichoth/event-utils')
var test = require('tape')
var input = {
events: {
update: ['get', 'add', 'delete', 'edit'],
},
foo: {
bar: {
baz: ['a', 'b', 'c']
}
}
}
var expected = {
events: {
update: {
get: 'events.update.get',
add: 'events.update.add',
delete: 'events.update.delete',
edit: 'events.update.edit'
}
},
foo: {
bar: {
baz: {
a: 'foo.bar.baz.a',
b: 'foo.bar.baz.b',
c: 'foo.bar.baz.c'
}
}
}
}
test('namespace', function (t) {
t.plan(1)
t.deepEqual(namespace(input), expected)
})
flatten
Take an object of strings and return an array of the leaf nodes. The object can be any depth.
test('flatten', function (t) {
t.plan(1)
t.deepEqual(flatten(namespace(input)), [
'events.update.get',
'events.update.add',
'events.update.delete',
'events.update.edit',
'foo.bar.baz.a',
'foo.bar.baz.b',
'foo.bar.baz.c'
])
})