{"_id":"catering","_rev":"5-9a2cccec97b968e6a5340fcfaebc03cb","name":"catering","dist-tags":{"latest":"2.1.1"},"versions":{"1.0.0":{"name":"catering","version":"1.0.0","description":"Cater to callback and promise crowds, internally use callbacks.","license":"MIT","author":{"name":"Vincent Weevers"},"scripts":{"test":"standard && node test.js"},"dependencies":{},"devDependencies":{"standard":"~12.0.1","tape":"~4.9.1"},"keywords":["callback","promise","promisify"],"engines":{"node":">=6"},"repository":{"type":"git","url":"git+https://github.com/vweevers/catering.git"},"bugs":{"url":"https://github.com/vweevers/catering/issues"},"homepage":"https://github.com/vweevers/catering","gitHead":"89c9e3df2ce13d0ae7ab72fa59d7bda7e803c59d","_id":"catering@1.0.0","_shasum":"177f69586fbd21fd5d117c529eea288b0fe433ae","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.8.0","_npmUser":{"name":"vweevers","email":"dev@vincentweevers.nl"},"maintainers":[{"name":"vweevers","email":"dev@vincentweevers.nl"}],"dist":{"shasum":"177f69586fbd21fd5d117c529eea288b0fe433ae","tarball":"https://registry.npmjs.org/catering/-/catering-1.0.0.tgz","integrity":"sha512-0qJ51/FBaYfyubOualuG/41mCK3+flFzHUATyeHDCJP0z6pGOaXcb/EPQOgOmrdcuGelEbjm/c41eH17gFx9HA==","fileCount":4,"unpackedSize":4536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbimHmCRA9TVsSAnZWagAAaQIP+QB1bLy5CP3m3ci4btvO\nuhc6M1ibG1w9IwicTPRHZ0qNXlw4qONLVBuazQhnK6d9d5tLB49fQLwF6uvn\nt3L1CAYSKyhxt6c4DWA+txJ1zmGYptp5dETAO57dCMJ3x0u6/0fOBrPC/vb2\nDnol2tuOqVSwUQyoUz1qX8MD/27Hai8bEkZQJrv2RjC8b7D4R5NxfHRiOHzH\nIzQ/sfeB3/+KiGPGR/LZTxkEDURjboWWpjB7mWUoC4l4v5OWThXfRGhV3MSx\njqJa5T0o1GlmDRJwyJQmlD75kov/t0o023eDkLx13tdSz1ncVBtGws5CdVc5\n+kXjkXAL8N4Xpgcd2JQs8FrhsiazVLKIX8mrOpnXjlODjNhvloDwFCZDy8eb\n8/Q/ogsDaS6miTp4IX79hKBLFGW9c/e75/8g30C/SV4KNdQWHKBDqC2hrpzL\nCnjNtX80Y0+xr88Y47vhntB+E4gtPeX9YV0MsgSeMqsp4L6JRJzVkL2xvALg\nl0pXBhfS8yar4TEZDpIpmo5HJ5fZPJAeNj3bp2zNROCL4Cv7nnPRtUmYcUNY\n0CmF0JB5IN8UMdaq5ciQz/vOizc+zuZc47G0Z7JynhYVJ7hTI8LAYBX3AuL+\nvmggsU+X6hlaP66TZinKMTs1P5U081Mq8mGX51s6jAmHScEYkufA2fpLD8xL\nvk36\r\n=r8QV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvbIZG80bjfCoV+mG5W41n9vu1CjU9SfP4+uflZaHzhgIhALg5Sw5LfM1C4KDzxMex+DDwu/ntsjGnPNyqgIY4tKfs"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/catering_1.0.0_1535795685819_0.3280874203749493"},"_hasShrinkwrap":false},"2.0.0":{"name":"catering","version":"2.0.0","description":"Simple utility to allow your module to be consumed with a callback or promise","license":"MIT","author":{"name":"Vincent Weevers"},"scripts":{"test":"standard && node test.js"},"dependencies":{},"devDependencies":{"standard":"^14.0.0","tape":"^4.10.1"},"keywords":["callback","promise","promisify"],"engines":{"node":">=6"},"repository":{"type":"git","url":"git+https://github.com/vweevers/catering.git"},"bugs":{"url":"https://github.com/vweevers/catering/issues"},"homepage":"https://github.com/vweevers/catering","gitHead":"aa67ab87ae7f0baf55bba315f3dd6bc33edbad2f","_id":"catering@2.0.0","_nodeVersion":"12.11.1","_npmVersion":"6.11.3","_npmUser":{"name":"vweevers","email":"dev@vincentweevers.nl"},"maintainers":[{"name":"vweevers","email":"dev@vincentweevers.nl"}],"dist":{"integrity":"sha512-aD/WmxhGwUGsVPrj8C80vH7C7GphJilYVSdudoV4u16XdrLF7CVyfBmENsc4tLTVsJJzCRid8GbwJ7mcPLee6Q==","shasum":"15ce31bcbffafbf62855ea7677b0e5d23581233d","tarball":"https://registry.npmjs.org/catering/-/catering-2.0.0.tgz","fileCount":4,"unpackedSize":4153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefddyCRA9TVsSAnZWagAAWK8P/3kn7woHhVEzvoXROdJb\n3EHQlGDTHM5zPCPla2Z1S6VotQslPDrZLmRjxxZ3cXaG3SZ6D820cBqxHp9z\nTTcK0LVm04qtzZgL3zRG1l6xkMBZrakh8ebDCo5+wAsAfplwYbs7hLo/qnrQ\ng25Ev51sh7v5tSGM6tsvJDmR2P+KirvhZAHuEKuVVyRYVG3eliNItNGqzo58\nUXsghxRDgfjiuchoVgCAzrEisCjlpjL0I6+FLibuaZj9eo614pvoiuH0YXs2\nkVqf+JjTCRIL1mt4tTtDTT3KKqWOJVqzERymE289ai1QpHg5vfHvZL+KDY8D\n4NyDcuX76VlVKlLaH8NDGQIUoOKHafdHsHMnZyRU84LT3ZYyPkZ7pPg3jAH5\nazo6AobVBFUmH37Rj+6hsON03np1ByIz1RQhhqdXeiriiQUJkr9j0UEWJhxS\nF/XvKSlaTNAw5dDrAKaoTwT2jK7wMXtwJWqa1q3o90Lg/91PBWfukps9e+3i\nMmNu2cVy3HXPP5WPkdmCHXnFbzwOM8B/znq6LJmWvm+ro+oOGi5KzN7czni0\nlTFSAJtVWWJ1RdOV2CKiK+cqOoPJLhCa1SIAoxasANnmMkoKpEX3JS2VQOtb\njtG8WjU7YnFYveutjku/0BKigW6jNW0C2SEupbbHJ1FUFOih+OpdDBWU1IS0\nM1kV\r\n=lG/y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHVDXhTnzo1TrsZo/hjKbc0oiPL/xPYM5VHW2cUa0VCuAiEAi7DuvNhOxOq1hxjK2jp4rgay05khrsS+x4iNXWIQwjQ="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/catering_2.0.0_1585305457707_0.5765510164369574"},"_hasShrinkwrap":false},"2.1.0":{"name":"catering","version":"2.1.0","description":"Simple utility to allow your module to be consumed with a callback or promise","license":"MIT","author":{"name":"Vincent Weevers"},"scripts":{"test":"standard && node test.js"},"types":"index.d.ts","dependencies":{"queue-tick":"^1.0.0"},"devDependencies":{"standard":"^14.0.0","tape":"^5.0.0"},"keywords":["callback","promise","promisify"],"engines":{"node":">=6"},"repository":{"type":"git","url":"git+https://github.com/vweevers/catering.git"},"bugs":{"url":"https://github.com/vweevers/catering/issues"},"homepage":"https://github.com/vweevers/catering","gitHead":"4aea5492e433d615b700850bcd0d82ac703fab04","_id":"catering@2.1.0","_nodeVersion":"16.9.1","_npmVersion":"7.21.1","dist":{"integrity":"sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==","shasum":"1354f5e8e231a5b80309302bb23b40624d3212c5","tarball":"https://registry.npmjs.org/catering/-/catering-2.1.0.tgz","fileCount":5,"unpackedSize":4794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2lkxCRA9TVsSAnZWagAAYcwQAJCR6qhqOF+lKN9OEpRq\nfAx/9IIuEXTBKH0Qq4UOb/c8Qe/O0J0BLz15GWitUhQrSbFt9/hkkh1qcbuK\ntgvl/0wCxGbNoXLOkd4z34s4MVuBHTcDxoRS7/Y6/JwCrGy993gAXu3eIxGO\nsM8LieF+Xbo7sKAXQEzhxinVAb+WoP+GDHFPMMPJ5KsxXrw5OZRsSNF0nJQE\nLupRMXQZJL/Q793zizIGY7gDImboUmKSMpwygqccGEGXs21jMb1e3bQf3Vu/\nYnRhfjqdjn7fGm9j4UMUutnBxZyZoynGe02r6Hvl+pqWYXTsQCOw1FwDa9aO\nIoMQYn9NEikLOD7kIrLL+u2yeOXa5nBWFoV+CsHosycaqhwwwnfGPbsX0bPp\nf9mNJX1a+I8v7nHo7EYjxOpOC15Yzd9ZhB7HOjwWN0KlLRFeU7gaRewRRWC4\nDotXQFSmLVRxqsc8mIB1eu/QvIDMRZvfhet2YeAtKuZb4IYDUi0MYd2P+fpm\nJwlJjkap4A6eDJI79U4JOZ1PgRPqTlZsQIFGbmFvGHx4pAO1xbWijgkndQBV\np94Z6oFaF8eiKECWQOybaG2ic6eV/DHh8l/6zGDc8FyBSvhWePkoKAL302Gf\nuLCC8Ebfn41LGtOfcA/w34NZX/Z1XbAIorzJ4LcmQu2RVytxydOnKKZM7oH4\ngxSQ\r\n=lcAz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGF4yjGuR9nwNF9GUz09Rq0TFjCvIc3+MRV5zf47n4tUAiEAhriCZr2ltj3gKOcYVRThUprpRkQi5jXUc/VHZpxT4xo="}]},"_npmUser":{"name":"vweevers","email":"dev@vincentweevers.nl"},"directories":{},"maintainers":[{"name":"vweevers","email":"dev@vincentweevers.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/catering_2.1.0_1633215516232_0.3418503251640026"},"_hasShrinkwrap":false},"2.1.1":{"name":"catering","version":"2.1.1","description":"Simple utility to allow your module to be consumed with a callback or promise","license":"MIT","author":{"name":"Vincent Weevers"},"scripts":{"test":"standard && node test.js","test-browsers-local":"airtap test.js"},"types":"index.d.ts","browser":{"./next-tick.js":"./next-tick-browser.js"},"devDependencies":{"airtap":"^4.0.4","airtap-playwright":"^1.0.1","standard":"^16.0.4","tape":"^5.4.0"},"keywords":["callback","promise","promisify"],"engines":{"node":">=6"},"repository":{"type":"git","url":"git+https://github.com/vweevers/catering.git"},"bugs":{"url":"https://github.com/vweevers/catering/issues"},"homepage":"https://github.com/vweevers/catering","gitHead":"48fe5fc47c44c9fc9ab76ebd855d8a7ff8f1768a","_id":"catering@2.1.1","_nodeVersion":"16.9.1","_npmVersion":"7.21.1","dist":{"integrity":"sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==","shasum":"66acba06ed5ee28d5286133982a927de9a04b510","tarball":"https://registry.npmjs.org/catering/-/catering-2.1.1.tgz","fileCount":7,"unpackedSize":5001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4T5ACRA9TVsSAnZWagAAtYoP/3xr5qj71Xtw6wWs9YSh\npifnd9rB6JJkyOsZnDRZHsRBG5FP7LJoa693zWUtNZDBhKaG0P4ucAN+r+FA\nRm3Di3tvXDiGdH52M2kAz4g56xNAb24oq48A0fDs069liU5mN6721yjcVX/s\ndRrLYzi7lEhiAHhxDGj9jEmLu7KdvH6WZDwrcdtCuAr6cbl9rLtK7TPFNi0w\n71otoA1xBeJd1LvWtzvadP/sWF7qSqHmC0P7eNvb3uvXIIKmMVUR+UCR3hAF\nvyzf+LUYRCcd38m4OPlfy46DtZ8FP63UoIW4ceah+E3jLCDE+kDaAI3AzWsu\nZm9/J3gRcsrBNw7ad8GX4I5GjTfXbpwGpUUlDmo3eTkGsHM9pH/H+XqJOFhc\nM9lZ+Poi8XGsF/LFqpqPVHjM1TtTP0jQR5gKP90WJCeQNaAdzSwiWzgtu6XJ\ndihLoCYcIXFgH0tQnQHzcyKCRkZwj27VDh2PIw/tffAytHPGfe63Lhv9rhBg\nN9z20+mf9H7eU0sc2Qcfhxr0pA8LFaDfTuCSeSMNgCO70FtvjqW9lfF6c0HI\nsCUnbr6aVWXplUaVzIu256pbEw0OF7oNVbIYf8opH9sezynZFtlfAevSNuaq\nTiemG0vdeuXt8dMDwulDO7NeYDMiBcrjMNPhirY2ENDfykzr8v5cNmazZT/t\nt2jW\r\n=19GF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICZNd0gZJS6Ow6cjthuQsTjtNP2XQoiFKVzpth6uyo9gAiEAxXJYK5J2ZJDWKGsNDMu+Hp2j3EtgujBFDk7a8OCdCrY="}]},"_npmUser":{"name":"vweevers","email":"dev@vincentweevers.nl"},"directories":{},"maintainers":[{"name":"vweevers","email":"dev@vincentweevers.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/catering_2.1.1_1642151488579_0.8179611008071046"},"_hasShrinkwrap":false}},"time":{"created":"2018-09-01T09:54:45.818Z","1.0.0":"2018-09-01T09:54:45.956Z","modified":"2022-04-12T05:27:45.328Z","2.0.0":"2020-03-27T10:37:37.871Z","2.1.0":"2021-10-02T22:58:36.346Z","2.1.1":"2022-01-14T09:11:28.750Z"},"maintainers":[{"name":"vweevers","email":"dev@vincentweevers.nl"}],"description":"Simple utility to allow your module to be consumed with a callback or promise","homepage":"https://github.com/vweevers/catering","keywords":["callback","promise","promisify"],"repository":{"type":"git","url":"git+https://github.com/vweevers/catering.git"},"author":{"name":"Vincent Weevers"},"bugs":{"url":"https://github.com/vweevers/catering/issues"},"license":"MIT","readme":"# catering\n\n**Cater to callback and promise crowds.**  \nSimple utility to allow your module to be consumed with a callback or promise. For Node.js and browsers.\n\n[![npm status](https://img.shields.io/npm/v/catering.svg)](https://www.npmjs.com/package/catering)\n[![Node version](https://img.shields.io/node/v/catering.svg)](https://www.npmjs.com/package/catering)\n[![Test](https://img.shields.io/github/workflow/status/vweevers/catering/Test?label=test)](https://github.com/vweevers/catering/actions/workflows/test.yml)\n[![Standard](https://img.shields.io/badge/standard-informational?logo=javascript&logoColor=fff)](https://standardjs.com)\n\n## Menu\n\nIf your module internally uses callbacks:\n\n```js\nconst { fromCallback } = require('catering')\nconst kPromise = Symbol('promise')\n\nmodule.exports = function (callback) {\n  callback = fromCallback(callback, kPromise)\n  queueMicrotask(() => callback(null, 'example'))\n  return callback[kPromise]\n}\n```\n\nIf your module internally uses promises:\n\n```js\nconst { fromPromise } = require('catering')\n\nmodule.exports = function (callback) {\n  return fromPromise(Promise.resolve('example'), callback)\n}\n```\n\nEither way your module can now be consumed in two ways:\n\n```js\nexample((err, result) => {})\nconst result = await example()\n```\n\nWhen converting from a promise to a callback, `fromPromise` calls the callback in a next tick to escape the promise chain and not let it steal your beautiful errors.\n\n## Install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install catering\n```\n\n## License\n\n[MIT](LICENSE) © 2018-present Vincent Weevers. Originally extracted from [`levelup`](https://github.com/Level/levelup/blob/37e0270c8c29d5086904e29e247e918dddcce6e2/lib/promisify.js).\n","readmeFilename":"readme.md"}