co-dash
Version:
Lodash inspired library for generator functions
80 lines (62 loc) • 1.44 kB
Markdown
# co-dash
Lodash-inspired library for generators
## Install
Install the [package](https://npmjs.org/package/co-dash) with [npm](http://npmjs.org):
```sh
$ npm install co-dash
```
## Usage
### `codash.once(fn)`
```js
const co = require('co');
const { once } = require('co-dash');
let getData = once(getData);
co(function*(){
let data1 = yield getData();
let data2 = yield getData();
// result is cached, getData is only called once
})
```
### `codash.filter(arr, fn)`
```js
const co = require('co');
const fs = require('co-fs');
const { filter } = require('co-dash');
co(function*(){
yield filter(['test1.log','test2.log'], fs.exists);
})
```
### `codash.map(arr, fn)`
```js
const co = require('co');
const fs = require('co-fs');
const { map } = require('co-dash');
co(function*(){
let files = yield map(['test1.log','test2.log'], fs.readFile);
//returns [ '...', '...' ]; array of files data
})
```
### `codash.each(arr, fn)`
```js
const co = require('co');
const fs = require('co-fs');
const { each } = require('co-dash');
co(function*(){
yield each(['test1.log','test2.log'], *function(fileName){
console.log(yield fs.stat(fileName))
});
})
```
### `codash.reduce(arr, fn, init)`
```js
const co = require('co');
const fs = require('co-fs');
const { reduce } = require('co-dash');
co(function*(){
let sum = yield reduce(['test1.log','test2.log'], *function(a, b){
return a + b
});
})
```
## License
MIT