1.0.3 • Published 8 years ago

mori-fluent v1.0.3

Weekly downloads
1
License
EPL-1.0
Repository
github
Last release
8 years ago

mori-fluent

mixins for mori's collection prototypes.

What it does is really monkey patching the prototypes of each collection, so that they can be used as "methods".

basic usage

use the value in the mori property of the object returned by the module:

const mori = require('mori-fluent').mori;

After that, you can do as shown in the examples below.

Until these docs are completed, you can see some examples in the mori-ext repository, because it works in the same way, except does not require the function bind syntax.

examples

given that we import as follows:

const mori = require('mori-fluent').mori;
const {
  vector,
  hashMap
} = mori;

we can do stuff fluently

const v1 = vector(1, 2);
const v2 = v1
  .assoc(0, 10)
  .map(mori.inc)
  .conj(5)

console.log(v2.equals(vector(5, 11, 3)));
const map1 = hashMap('foo', vector(8, 9))
               .updateIn(['foo', 1], mori.inc);
console.log(map1.equals(hashMap('foo', vector(8, 10))));

Custom methods

If you want, you can monkey patch the prototypes with your own methods, by using require('mori-fluent').extend which is a function accepting an object hash whose property names are mapped to method names and the corresponding function is mapped as the method. Example:

const moriExtender = require('mori-fluent').extend;
const mori = moriExtender({
    prettyJSON: function myPretty() {
        return JSON.stringify(this.toJs(), null, 2);
    }
})

const result = mori.vector(1, 3, 5).prettyJSON();

// also good to know, that there is only one mori instance:
console.log(mori === require('mori-fluent'));
1.0.3

8 years ago

1.0.1

8 years ago

0.0.10

8 years ago

0.0.9

8 years ago

0.0.7

8 years ago

0.0.5

8 years ago