Fix actions/tour
This commit is contained in:
55
node_modules/catering/readme.md
generated
vendored
Normal file
55
node_modules/catering/readme.md
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
# catering
|
||||
|
||||
**Cater to callback and promise crowds.**
|
||||
Simple utility to allow your module to be consumed with a callback or promise. For Node.js and browsers.
|
||||
|
||||
[](https://www.npmjs.com/package/catering)
|
||||
[](https://www.npmjs.com/package/catering)
|
||||
[](https://github.com/vweevers/catering/actions/workflows/test.yml)
|
||||
[](https://standardjs.com)
|
||||
|
||||
## Menu
|
||||
|
||||
If your module internally uses callbacks:
|
||||
|
||||
```js
|
||||
const { fromCallback } = require('catering')
|
||||
const kPromise = Symbol('promise')
|
||||
|
||||
module.exports = function (callback) {
|
||||
callback = fromCallback(callback, kPromise)
|
||||
queueMicrotask(() => callback(null, 'example'))
|
||||
return callback[kPromise]
|
||||
}
|
||||
```
|
||||
|
||||
If your module internally uses promises:
|
||||
|
||||
```js
|
||||
const { fromPromise } = require('catering')
|
||||
|
||||
module.exports = function (callback) {
|
||||
return fromPromise(Promise.resolve('example'), callback)
|
||||
}
|
||||
```
|
||||
|
||||
Either way your module can now be consumed in two ways:
|
||||
|
||||
```js
|
||||
example((err, result) => {})
|
||||
const result = await example()
|
||||
```
|
||||
|
||||
When 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.
|
||||
|
||||
## Install
|
||||
|
||||
With [npm](https://npmjs.org) do:
|
||||
|
||||
```
|
||||
npm install catering
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
[MIT](LICENSE) © 2018-present Vincent Weevers. Originally extracted from [`levelup`](https://github.com/Level/levelup/blob/37e0270c8c29d5086904e29e247e918dddcce6e2/lib/promisify.js).
|
||||
Reference in New Issue
Block a user