promwrap
v2.1.0
Published
Proxy-Powered Promisification for your Pleasure
Downloads
27
Readme
promwrap
Wraps modules, and other objects, full of callback functions in promises.
let fun = (x, cb) => cb(null, x)
let _module = {fun, prop: 'test'}
test('test basics', async t => {
t.plan(4)
let mod = promwrap(_module)
t.same(mod.prop, 'test')
t.same(mod.prop, 'test')
t.same(await mod.fun('test1'), 'test1')
t.same(await promwrap(fun)('test2'), 'test2')
})
API
promwrap(value<T>, {exclude: string[]|string, excludeMain: bool, own: bool}): T
Promisify all function properties of value
. If value
is a Function
,
it will be promisified instead. Members of Object.prototype
are not
promisified.
Returns value
, wrapped by a Proxy
.
- If
exclude
is supplied, do not promisify this prop/list of props. - If
excludeMain
is truthy andvalue
is aFunction
, treatvalue
like a plainObject
and promisify its props instead ofvalue
itself. In addition, members ofFunction.prototype
will not be promisified. - If
own
is truthy, only promisify theObject
's "own" (in theObject.hasOwnProperty()
sense) props