1.0.0 • Published 9 years ago

mux-arguments v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
9 years ago

mux-arguments

NPM version build status Test coverage Downloads js-standard-style

Function argument multiplexer.

Installation

$ npm install mux-arguments

Usage

const mux = require('mux-arguments')

function muxDemux (arg1, arg2, arg3) {
  mux(obj => {
    arguments.length === 1 // true
    demux.apply(null, arguments)
  }).apply(null, arguments)

  function demux () {
    mux((arg1, arg2, arg3) => {
      arguments.length === 3 // true
    }).apply(null, arguments)
  }
}

muxDemux('foo', 'bar', 'baz')

API

mux(fn(obj)(arg1, arg2, ...)

Multiplex function arguments into an object and pass the object into a function. Alias: mux.mux.

mux(fn(arg1, arg2, ...)(obj)

Demultiplex a multiplexed object and pass the arguments into a function. Alias: mux.demux.

FAQ?

What is muxing / demuxing?

Multiplexing (or muxing) is bundling several things together into one so it can be transmitted efficiently. Demultiplexing (or demuxing) is unwrapping that bundle into its original state. In this module we're multiplexing function arguments.

Why did you write this module?

When building event emitters it's easier to deal with a single data object than writing code to apply n arguments. This module makes it easy to wrap and unwrap function arguments for easy transmission.

License

MIT