{"_id":"@gar/promisify","_rev":"2766024","name":"@gar/promisify","description":"Promisify an entire class or object","dist-tags":{"latest":"1.1.3","test":"1.0.0"},"maintainers":[{"name":"gar","email":""},{"name":"npm:gar","email":""}],"time":{"modified":"2022-09-06T14:07:21.000Z","created":"2020-05-26T01:40:16.839Z","1.1.3":"2022-02-16T15:26:17.450Z","1.1.2":"2021-07-21T21:06:46.093Z","1.1.1":"2021-07-21T19:57:30.841Z","1.1.0":"2021-07-21T19:42:42.076Z","1.0.1":"2020-05-26T01:47:37.063Z","1.0.0":"2020-05-26T01:40:16.839Z"},"users":{},"author":{"name":"Gar","email":"gar+npm@danger.computer"},"repository":{"type":"git","url":"git+https://github.com/wraithgar/gar-promisify.git"},"versions":{"1.1.3":{"name":"@gar/promisify","version":"1.1.3","description":"Promisify an entire class or object","main":"index.js","repository":{"type":"git","url":"git+https://github.com/wraithgar/gar-promisify.git"},"scripts":{"lint":"standard","lint:fix":"standard --fix","test":"lab -a @hapi/code -t 100","posttest":"npm run lint"},"keywords":["promisify","all","class","object"],"author":{"name":"Gar","email":"gar+npm@danger.computer"},"license":"MIT","devDependencies":{"@hapi/code":"^8.0.1","@hapi/lab":"^24.1.0","standard":"^16.0.3"},"gitHead":"c926d3f3b735f368276cf6a818a2cc50bb28ff7a","bugs":{"url":"https://github.com/wraithgar/gar-promisify/issues"},"homepage":"https://github.com/wraithgar/gar-promisify#readme","_id":"@gar/promisify@1.1.3","_nodeVersion":"16.14.0","_npmVersion":"8.4.1","dist":{"shasum":"555193ab2e3bb3b6adc3d551c9c030d9e860daf6","size":2120,"noattachment":false,"key":"/@gar/promisify/-/@gar/promisify-1.1.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/@gar/promisify/download/@gar/promisify-1.1.3.tgz"},"_npmUser":{"name":"gar","email":"gar+npm@danger.computer"},"directories":{},"maintainers":[{"name":"gar","email":""},{"name":"npm:gar","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promisify_1.1.3_1645025177265_0.7938210049798706"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2022-02-16T15:26:24.584Z","publish_time":1645025177450,"_cnpm_publish_time":1645025177450},"1.1.2":{"name":"@gar/promisify","version":"1.1.2","description":"Promisify an entire class or object","main":"index.js","repository":{"type":"git","url":"git+https://github.com/wraithgar/gar-promisify.git"},"scripts":{"lint":"standard","lint:fix":"standard --fix","test":"lab -a @hapi/code -t 100","posttest":"npm run lint"},"keywords":["promisify","all","class","object"],"author":{"name":"Gar","email":"gar+npm@danger.computer"},"license":"MIT","devDependencies":{"@hapi/code":"^8.0.1","@hapi/lab":"^24.1.0","standard":"^16.0.3"},"gitHead":"5e8418e14128ede05ceba63db0f9baa60a2e1bad","bugs":{"url":"https://github.com/wraithgar/gar-promisify/issues"},"homepage":"https://github.com/wraithgar/gar-promisify#readme","_id":"@gar/promisify@1.1.2","_nodeVersion":"14.17.1","_npmVersion":"7.20.0","dist":{"shasum":"30aa825f11d438671d585bd44e7fd564535fc210","size":1426,"noattachment":false,"key":"/@gar/promisify/-/@gar/promisify-1.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/@gar/promisify/download/@gar/promisify-1.1.2.tgz"},"_npmUser":{"name":"gar","email":"gar+npm@danger.computer"},"directories":{},"maintainers":[{"name":"gar","email":""},{"name":"npm:gar","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promisify_1.1.2_1626901605936_0.47117714217546713"},"_hasShrinkwrap":false,"publish_time":1626901606093,"_cnpm_publish_time":1626901606093},"1.1.1":{"name":"@gar/promisify","version":"1.1.1","description":"Promisify an entire class or object","main":"index.js","repository":{"type":"git","url":"git+https://github.com/wraithgar/gar-promisify.git"},"scripts":{"lint":"standard","lint:fix":"standard --fix","test":"lab -a @hapi/code -t 100","posttest":"npm run lint"},"keywords":["promisify","all","class","object"],"author":{"name":"Gar","email":"gar+npm@danger.computer"},"license":"MIT","devDependencies":{"@hapi/code":"^8.0.1","@hapi/lab":"^24.1.0","standard":"^16.0.3"},"gitHead":"da4b9c711ab4011d3bbea9a892cd46a0306c44a7","bugs":{"url":"https://github.com/wraithgar/gar-promisify/issues"},"homepage":"https://github.com/wraithgar/gar-promisify#readme","_id":"@gar/promisify@1.1.1","_nodeVersion":"14.17.1","_npmVersion":"7.20.0","dist":{"shasum":"42dd036a9ab8c0ef25753a0be9540e53200c7f8e","size":1426,"noattachment":false,"key":"/@gar/promisify/-/@gar/promisify-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@gar/promisify/download/@gar/promisify-1.1.1.tgz"},"_npmUser":{"name":"gar","email":"gar+npm@danger.computer"},"directories":{},"maintainers":[{"name":"gar","email":""},{"name":"npm:gar","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promisify_1.1.1_1626897450513_0.18699834645972735"},"_hasShrinkwrap":false,"publish_time":1626897450841,"_cnpm_publish_time":1626897450841},"1.1.0":{"name":"@gar/promisify","version":"1.1.0","description":"Promisify an entire class or object","main":"index.js","repository":{"type":"git","url":"git+https://github.com/wraithgar/gar-promisify.git"},"scripts":{"lint":"standard","lint:fix":"standard --fix","test":"lab -a @hapi/code -t 100","posttest":"npm run lint"},"keywords":["promisify","all","class","object"],"author":{"name":"Gar","email":"gar+npm@danger.computer"},"license":"MIT","devDependencies":{"@hapi/code":"^8.0.1","@hapi/lab":"^24.1.0","standard":"^16.0.3"},"gitHead":"adb0ee07489f06b0368a8bd38ba25b1b8f54b74d","bugs":{"url":"https://github.com/wraithgar/gar-promisify/issues"},"homepage":"https://github.com/wraithgar/gar-promisify#readme","_id":"@gar/promisify@1.1.0","_nodeVersion":"14.17.1","_npmVersion":"7.20.0","dist":{"shasum":"ec6d35d9f2d91a7415a2bcfc815235488f9103cf","size":1411,"noattachment":false,"key":"/@gar/promisify/-/@gar/promisify-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@gar/promisify/download/@gar/promisify-1.1.0.tgz"},"_npmUser":{"name":"gar","email":"gar+npm@danger.computer"},"directories":{},"maintainers":[{"name":"gar","email":""},{"name":"npm:gar","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promisify_1.1.0_1626896561921_0.7174857668707793"},"_hasShrinkwrap":false,"publish_time":1626896562076,"_cnpm_publish_time":1626896562076},"1.0.1":{"name":"@gar/promisify","version":"1.0.1","description":"Promisify an entire class or object","main":"index.js","repository":{"type":"git","url":"git+https://github.com/wraithgar/gar-promisify.git"},"scripts":{"lint":"standard","lint:fix":"standard --fix","test":"lab -a @hapi/code -L -t 100"},"keywords":["promisify","all","class","object"],"author":{"name":"Gar","email":"gar+npm@danger.computer"},"license":"MIT","devDependencies":{"@hapi/code":"^8.0.1","@hapi/lab":"^22.0.4","eslint":"^7.1.0","eslint-config-standard":"^14.1.1","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.1"},"gitHead":"f71efcd76c079f57e3e1236d25064b73cb9e1ea2","bugs":{"url":"https://github.com/wraithgar/gar-promisify/issues"},"homepage":"https://github.com/wraithgar/gar-promisify#readme","_id":"@gar/promisify@1.0.1","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","_npmUser":{"name":"gar","email":"gar+npm@danger.computer"},"dist":{"shasum":"424fd555ff15c09e010341d19f3cfe1d07bcbf72","size":1616,"noattachment":false,"key":"/@gar/promisify/-/@gar/promisify-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@gar/promisify/download/@gar/promisify-1.0.1.tgz"},"maintainers":[{"name":"gar","email":""},{"name":"npm:gar","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promisify_1.0.1_1590457656952_0.9078783976641998"},"_hasShrinkwrap":false,"publish_time":1590457657063,"_cnpm_publish_time":1590457657063},"1.0.0":{"name":"@gar/promisify","version":"1.0.0","description":"Promisify an entire class or object","main":"index.js","scripts":{"lint":"standard","lint:fix":"standard --fix","test":"lab -a @hapi/code -L -t 100"},"keywords":["promisify","all","class","object"],"author":{"name":"Gar","email":"gar+npm@danger.computer"},"license":"MIT","devDependencies":{"@hapi/code":"^8.0.1","@hapi/lab":"^22.0.4","eslint":"^7.1.0","eslint-config-standard":"^14.1.1","eslint-plugin-import":"^2.20.2","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.1"},"dependencies":{"standard":"^14.3.4"},"gitHead":"796051ccdbe17d880f341d13928456f1a9190e20","_id":"@gar/promisify@1.0.0","_nodeVersion":"10.20.1","_npmVersion":"6.14.4","_npmUser":{"name":"gar","email":"gar+npm@danger.computer"},"dist":{"shasum":"949920a3727b1bb993d39b0908d3ceb94585d4bb","size":1520,"noattachment":false,"key":"/@gar/promisify/-/@gar/promisify-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@gar/promisify/download/@gar/promisify-1.0.0.tgz"},"maintainers":[{"name":"gar","email":""},{"name":"npm:gar","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/promisify_1.0.0_1590457216742_0.058290546409966115"},"_hasShrinkwrap":false,"publish_time":1590457216839,"_cnpm_publish_time":1590457216839}},"readme":"# @gar/promisify\n\n### Promisify an entire object or class instance\n\nThis module leverages es6 Proxy and Reflect to promisify every function in an\nobject or class instance.\n\nIt assumes the callback that the function is expecting is the last\nparameter, and that it is an error-first callback with only one value,\ni.e. `(err, value) => ...`. This mirrors node's `util.promisify` method.\n\nIn order that you can use it as a one-stop-shop for all your promisify\nneeds, you can also pass it a function.  That function will be\npromisified as normal using node's built-in `util.promisify` method.\n\n[node's custom promisified\nfunctions](https://nodejs.org/api/util.html#util_custom_promisified_functions)\nwill also be mirrored, further allowing this to be a drop-in replacement\nfor the built-in `util.promisify`.\n\n### Examples\n\nPromisify an entire object\n\n```javascript\n\nconst promisify = require('@gar/promisify')\n\nclass Foo {\n  constructor (attr) {\n    this.attr = attr\n  }\n\n  double (input, cb) {\n    cb(null, input * 2)\n  }\n\nconst foo = new Foo('baz')\nconst promisified = promisify(foo)\n\nconsole.log(promisified.attr)\nconsole.log(await promisified.double(1024))\n```\n\nPromisify a function\n\n```javascript\n\nconst promisify = require('@gar/promisify')\n\nfunction foo (a, cb) {\n  if (a !== 'bad') {\n    return cb(null, 'ok')\n  }\n  return cb('not ok')\n}\n\nconst promisified = promisify(foo)\n\n// This will resolve to 'ok'\npromisified('good')\n\n// this will reject\npromisified('bad')\n```\n","_attachments":{},"homepage":"https://github.com/wraithgar/gar-promisify#readme","bugs":{"url":"https://github.com/wraithgar/gar-promisify/issues"},"license":"MIT"}