node package manager

cruks-lib-function

cruks-lib-function

Utility belt for automating frequent custom operations over native JavaScript Function.

Examples

Listing JavaScript function arguments

var assert = require("assert"),
    MyFunction = require("cruks-lib-function").Function;
 
function Constructor (a, b, c) {
}
 
assert.deepEqual(["a", "b", "c"], new MyFunction(Constructor).parameters;

Using .apply when calling new

var assert = require("assert"),
    Constructor,
    MyFunction = require("cruks-lib-function").Function,
    instance;
 
Constructor = function (a, b, c) {
    this.a = a;
    this.b = b;
    this.c = c;
};
 
Constructor = new MyFunction(Constructor);
 
instance = Constructor.new.apply(Constructor, [1, 2, 3]);
 
assert.strictEqual(1, instance.a);
assert.strictEqual(2, instance.b);
assert.strictEqual(3, instance.c);

Making any function appliable to Array.prototype.map

var assert = require("assert"),
    arr,
    Constructor,
    Mappable = require("cruks-lib-function").Mappable;
 
Constructor = function (a) {
    this.a = a;
};
 
arr = [1, 2, 3].map(new Mappable(Constructor));
 
 
assert.strictEqual(1, arr[0].a);
assert.strictEqual(2, arr[1].a);
assert.strictEqual(3, arr[2].a);

Invoking function with named arguments

var assert = require("assert"),
    Invocable = require("cruks-lib-function").Invocable;
 
function Constructor (a, b) {
    return b - a;
}
 
assert.strictEqual(1, new Invocable(Constructor).invoke({ 
    "a": 4,
    "b:" 5
}));
 
assert.strictEqual(2, new Invocable(Constructor).invoke({ 
    "a": 1, 
    "b:" 3
}));

Build Status Code Climate Dependency Status