xbind

    2.0.0 • Public • Published

    xbind

    Sugar way to adapt the arguments signature of functions.

    Usage

    var xbind = require('xbind');
    var path = require('path');
     
    function arrayify() {
        var ret = [];
        for (var i = 0, len = arguments.length; i < len; i++) {
            ret.push(arguments[i]);
        }
        return ret;
    }
     
    console.log(
        '`arrayify` just make an array from arguments',
        arrayify(0,1,2,3)
    )
    // `arrayify` just make an array from arguments [ 0, 1, 2, 3  ]
     
    console.log(
        'use the first argument',
        xbind(arrayify).xargs(0)(0,1,2,3)
    )
    // use the first argument [ 0  ]
     
    console.log(
        'use the first argument',
        xbind(arrayify).first()(0,1,2,3)
    )
    // use the first argument [ 0  ]
     
    console.log(
        'use the last argument',
        xbind(arrayify).last()(0,1,2,3)
    )
    // use the last argument [ 3  ]
     
    console.log(
        'use the first and third arguments',
        xbind(arrayify).xargs(0,2)(0,1,2,3),
        xbind(arrayify).xargs([0,2])(0,1,2,3)
    )
    // use the first and third arguments [ 0, 2  ] [ 0, 2  ]
     
    console.log(
        'append arguments 4,5',
        xbind(arrayify).push(4,5)(0,1,2,3)
    )
    // append arguments 4,5 [ 0, 1, 2, 3, 4, 5  ]
     
    console.log(
        'prepend arguments 4,5',
        xbind(arrayify).unshift(4,5)(0,1,2,3)
    )
    // prepend arguments 4,5 [ 4, 5, 0, 1, 2, 3  ]
     
    console.log(
        'slice arguments 1,3',
        xbind(arrayify).slice(1,3)(0,1,2,3)
    )
    // slice arguments 1,3 [ 1, 2  ]
     
    console.log(
        'filter arguments',
        xbind(arrayify).xargs(1,5).filter(Boolean)(0,1,2,3)
    )
    // filter arguments [ 1  ]
     

    xfn = xbind(fn, ctx)

    Return a new function with a xargs property, through which arguments can be changed.

    fn

    Type: Function, String

    Function to be bound. If String, it will be treated as a method name of ctx

    ctx

    Type: Object Optional

    this value of fn when called. If not specified, this will be this of xfn.

    operations

    xfn.xargs(index1, index2)

    Select arguments with index1, index2

    xfn.first()

    Select the first argument

    xfn.last()

    Select the last argument

    Array methods

    You can operate the argument list using .push, .pop, .shift, .unshift, .slice, .splice, .filter, .map, .reduce, as the argument list is Array.

    xbind.identity(o)

    Just return a function that returns o

    Install

    npm i xbind

    DownloadsWeekly Downloads

    74

    Version

    2.0.0

    License

    MIT

    Last publish

    Collaborators

    • zoubin