Skip to content

Latest commit

 

History

History
124 lines (86 loc) · 6.64 KB

README.md

File metadata and controls

124 lines (86 loc) · 6.64 KB

Returns true if function is a callback. Checks its name is one of common-callback-names - callback, cb, cb_, callback_, next, done, they can be customized, these are default.

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

Install

npm i is-callback-function --save

Usage

For more use-cases see the tests

const isCallbackFunction = require('is-callback-function')

Check if given fn is callback function or not. Notice that "async" functions are not is-callback-function, they are is-async-function - it may be consfusing, but they are different.

Params

  • fn {Function}
  • names {Array}
  • returns {Boolean}

Example

var fs = require('fs')
var isCallback = require('is-callback-function')
var isAsync = require('is-async-function')

console.log(isCallback(fs.readFile)) // => false
console.log(isAsync(fs.readFile)) // => true

console.log(isCallback(function (foo, bar, cb) {})) // => false
console.log(isAsync(function (foo, bar, cb) {})) // => true

console.log(isCallback(function callback (foo, bar) {})) // => true
console.log(isAsync(function callback (foo, bar) {})) // => false

console.log(isCallback(function named (foo, cb) {})) // => false
console.log(isAsync(function named (foo, cb) {})) // => true

console.log(isCallback(function named (foo) {})) // => false
console.log(isAsync(function named (foo) {})) // => false

console.log(isCallback(function foo (bar) {}, ['baz', 'foo', 'qux'])) // => true
console.log(isAsync(function foo (bar, qux) {}, ['baz', 'qux', 'aaa'])) // => true
console.log(isAsync(function foo (bar, qux) {}, ['baz', 'aaa'])) // => false

Whaaat?!

Need clarification? Both signatures are equal.

  • is-callback-function - checks the name of given function
  • is-async-function - checks the arguments names of given function

Related

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