Socket
Socket
Sign inDemoInstall

handle-arguments

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

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.


Version published
Weekly downloads
66
increased by26.92%
Maintainers
1
Weekly downloads
 
Created
Source

handle-arguments npmjs.com The MIT License npm downloads

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.

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

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 if number.
  • 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
}

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 new message to charlike freenode #charlike

tunnckoCore.tk keybase tunnckoCore tunnckoCore npm tunnckoCore twitter tunnckoCore github

Keywords

FAQs

Package last updated on 04 May 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc