handle-arguments
v3.1.0 handle-arguments
handle-arguments
Get separately non-callback arguments in
.arguments
and the last argument if it is-callback-function in.callback
. It also works like sliced, but returns object with.arguments
and.callback
properties.
Install
npm i handle-arguments --save
Usage
For more use-cases see the tests
const handleArguments = require('handle-arguments')
handleArguments
Get separately non-callback arguments in
.arguments
, and the last function if it is-callback-function in.callback
. Signature is like sliced, it works almost the same way, but returns object with.arguments
and.callback
properties.
Params
argz
{Array|Arguments}: Arguments object or array to eat.names
{Array|Number}: If array directly passed to is-callback-function, otherwise to sliced.index
{Number}: Passed directly to sliced ifnumber
.returns
{Object}
Example
var handle = require('handle-arguments')
function fixture () {
return handle(arguments)
}
function cb () {}
function noop () {}
console.log(fixture(1, 2, 3, 4).arguments) // => [1, 2, 3, 4]
console.log(fixture(1, 2, 3, 4).callback) // => false
console.log(fixture(1, 2, cb).arguments) // => [1, 2]
console.log(fixture(1, 2, cb).callback) // => [Function: cb]
console.log(fixture(1, 2, noop).arguments) // => [1, 2, noop]
console.log(fixture(1, 2, noop).callback) // => false
// treat functions named `noop` or `foo` as callback
function fn () {
return handle(arguments, ['foo', 'noop'])
}
console.log(fn(1, 2, 3, noop).arguments) // => [1, 2, 3]
console.log(fn(1, 2, 3, noop).callback) // => [Function: noop]
Instead of commonly used and wrong pattern
It is part of "Optiomization Killers" and needed very much, so we need correct pattern to reuse.
function fixture () {
var args = [].slice.call(arguments)
var len = args.length
var callback = args[len - 1]
if (typeof callback === 'function') {
args = args.slice(0, -1)
callback.apply(null, [null].concat(args))
}
return args
}
Related
- arr-includes: Return true if any of passed values exists in array. Using in-array. | homepage
- common-callback-names: List of common callback names - callback, cb, callback_, next, done. | homepage
- function-arguments: Get arguments of a function, useful for and used in dependency injectors.… more | homepage
- get-fn-name: Get function name with strictness and correctness in mind. Also works for… more | homepage
- is-async-function: Is function really asynchronous function? Trying to guess that based on check… more | homepage
- is-callback-function: Returns true if function is a callback. Checks its name is one… more | homepage
- parse-function: Parse a function, arrow function or string to object with name, args,… more | homepage
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.
Charlike Make Reagent
npm i handle-arguments
Metadata
- MIT
- Whatever
- Charlike Mike Reagent
- released 5/4/2016