Skip to content

Latest commit

 

History

History
107 lines (74 loc) · 5.74 KB

README.md

File metadata and controls

107 lines (74 loc) · 5.74 KB

Create callback api from synchronous function. Same as make-callback, but won't handle generators and if async function is given returns it.

code climate standard code style travis build status coverage status dependency status

Install

npm i create-callback --save
npm test

Usage

For more use-cases see the tests

var fs = require('fs')
var createCallback = require('create-callback')

var parseJsonAsync = createCallback(JSON.parse)
var readFileAsync = createCallback(fs.readFileSync)
var readAsync = createCallback(fs.readFile)
var readFile = createCallback(fs.readFileSync)

readFileAsync('./package.json') //=> throws TypeError
readAsync('./package.json', 'utf8', function (err, res) {
  console.error(err) //=> null
  console.log(res) //=> content of 'package.json'
})
readFile('./package.json', 'utf8', function (err, res) {
  console.error(err) //=> null
  console.log(res) //=> content of 'package.json'
})
parseJsonAsync('{"foo":"bar"}', function (err, res) {
  console.error(err) //=> null
  console.log(res) //=> {foo: 'bar'}
})

Related

  • always-promise: Create Bluebird Promise from given async or synchronous function. It automatically convert sync functions to async, then to promise.
  • always-callback: Create callback api for given sync function. Guarantee that given function (sync or async, no matter) will always have callback api and will handle errors correctly.
  • make-callback: Make synchronous function or generator to support callback api
  • handle-callback: Make promise to have support for callback api, it returns promise in that same time.
  • handle-arguments: Handles given Arguments object - return separatly last argument (commonly callback) and other arguments as Array. Useful in node-style callback flow.
  • manage-arguments: Prevents arguments leakage - managing arguments. From Optimization killers by Petka Antonov.
  • benz: Compose your control flow with absolute elegance. Support async/await, callbacks, thunks, generators, promises, observables, child processes and streams. Can power applications that need to have plugins. Useful for creating task, test and bench runners.
  • hybridify: Building hybrid APIs. You can use both callback and promise in same time. Like asyncFn(name, cb).then().catch()
  • is-async-function: Check that given function is async (callback) function or not. Trying to guess that based on check if callback, cb, done or next exists as function argument name.

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.

tunnckocore.tk keybase tunnckocore tunnckoCore npm tunnckoCore twitter tunnckoCore github