Neurotic Pumpkin Murderer

    util-mix

    3.0.2 • Public • Published

    util-mix

    Object mixing methods

    Usage

    var mix = require('util-mix');
    var Mixer = require('util-mix/Mixer');
     
    var o = mix({ a: 1 }, { b: 2 }); // { a: 1, b: 2 }
     
    var mixer = Mixer({ a: 0, b: 0 });
    = mixer.mix({}); // { a: 0, b: 0 }
    = mixer.mix({ c: 1 }); // { a: 0, b: 0, c: 1 }

    mix(receiver, src1, src2,...)

    Mix own properties supplied by src1, src2,..., into receiver, which must be a non-null object.

    Same key causes overwriting, the later appearance in arguments the winner.

    The receiver will be returned.

    var r = {};
    var o = mix(r, { x:1, y:1 }, { y:2 });
     
    === r; // true
    o; // { x:1, y:2 }

    mix-undef(receiver, src1, src2,...)

    Same with mix, except that properties are only mixed when not defined in receiver.

    var mix = require('util-mix/mix-undef');
    var o = { x: 1 };
    mix(o, { x: 2 }, { y: 2 }, { z: 3 }, { x: 3 });
     
    o; // { x: 1, y: 2, z: 3 }

    merge(src1, src2,...)

    Same as mix({}, src1, src2,...).

    var r = {};
    var o = merge(r, { x:1, y:1 }, { y:2 });
     
    r; // {}
    o; // { x:1, y:2 }

    copy(src)

    Same as merge.

    pick(filter, src1, src2,...)

    filter

    Type: String, Array

    Same as merge(src1, src2,...), but only keys specified in filter appear in the result.

    var o = pick(['x', 'y'], { x:1, y:1 }, { y:2 }, { z:3 });
     
    o; // { x:1, y:2 }

    unpick(filter, src1, src2,...)

    filter

    Type: String, Array

    Merge all properties from src1, src2,... except those appear in filter

    var o = unpick(['x', 'y'], { x:1, y:1 }, { y:2 }, { z:3 });
     
    o; // { z:3 }

    chop(filter, o)

    filter

    Type: String, Array

    pick keys specified by filter from o, and delete them from o.

    var o = { x:1, y:2, z:3 };
    var chopped = chop(['x', 'y'], o);
     
    chopped; // { x:1, y:2 }
    o; // { z:3 }

    Class: Mixer

    methods

    mix(receiver, src1, src2,...)

    merge(src1, src2,...)

    mixer = Mixer(filter, defaults)

    filter

    Type: Array

    Only mix keys contained in filter.

    defaults

    Type: Object

    Always mix defaults, and it will always be overwritten.

    var mixer = Mixer(['x', 'y'], { x:1 });
    var opts = {};
    var o = mixer.mix(opts, { y:2, z:3 });
     
    === opts; // true
    o; // { x:1, y:2 }

    mixer = Mixer(o)

    o

    Type: Object

    Same as Mixer(Object.keys(o), o)

    var mixer = Mixer({ x:1, y:1 });
    var o = mixer.merge({ y:2 }, { z:3 });
     
    === opts; // true
    o; // { x:1, y:2 }

    Install

    npm i util-mix

    DownloadsWeekly Downloads

    1,559

    Version

    3.0.2

    License

    MIT

    Last publish

    Collaborators

    • zoubin