cooperate
Version:
Convention based composition tool that let's you compose a series of objects into a single object quickly.
93 lines (59 loc) • 2.09 kB
Markdown
### 2.0.3
Resolved bug introduced in 2.0.2 which prevented usage of the package due to incorrect main file configuration.
### 2.0.2
Updated dependencies.
### 2.0.1
Updated dependencies.
### 2.0.0
The method signature for compose has been changed from a parameter array to a normal array of objects. This is a **breaking change**.
#### Old Code
```js
const result = compose(a, b);
```
#### New Code
```js
const result = compose([a, b]);
```
As a result of this change, options can now be provided to the compose method. The ```hide``` option in now available.
```js
import { compose } from "cooperate";
import assert from "assert";
// Assume all three capabilities here support a property called isWorking.
import capability1 from "./ capability1";
import capability2 from "./ capability2";
import capability3 from "./ capability3";
const service = compose([capability1, capability2, capability3], { hide: ["isWorking"] });
// no naming collisions and no isWorking property on the resulting object
assert(service.isWorking === undefined);
```
### 1.1.0
Added ```hide()``` method for ```mapMembers()```.
```js
import { compose, mapMembers } from "cooperate";
const genericFeatures = new GenericFeatures(db);
const specificFeatures = new SpecificFeatures(db);
const genericWithMapping = mapMembers(genericFeatures)
.map("findById").to("findSalesById")
.hide("deleteItem");
const repo = compose(genericWithMapping, specificFeatures);
assert(repo.findSalesById);
assert(repo.findById === undefined);
assert(repo.deleteItem === undefined);
```
### 1.0.1
Improved parameter validation.
### 1.0.0
Added ```mapMembers()``` feature.
```js
import { compose, mapMembers } from "cooperate";
const genericFeatures = new GenericFeatures(db);
const specificFeatures = new SpecificFeatures(db);
const genericWithMapping = mapMembers(genericFeatures)
.map("findById").to("findSalesById");
const repo = compose(genericWithMapping, specificFeatures);
// Method is remapped
assert(repo.findSalesById);
assert(repo.findById === undefined);
```
### 0.1.0
First version.