Skip to content

Commit 80b1477

Browse files
author
pemrouz
committed
always version data
1 parent a0d20e0 commit 80b1477

File tree

4 files changed

+33
-75
lines changed

4 files changed

+33
-75
lines changed

dist/index.js

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ Object.defineProperty(exports, "__esModule", {
55
});
66
exports.default = data;
77

8-
var _emitterify = require('utilise/emitterify');
9-
10-
var _emitterify2 = _interopRequireDefault(_emitterify);
11-
128
var _overwrite = require('utilise/overwrite');
139

1410
var _overwrite2 = _interopRequireDefault(_overwrite);
@@ -25,21 +21,17 @@ var _not = require('utilise/not');
2521

2622
var _not2 = _interopRequireDefault(_not);
2723

28-
var _def = require('utilise/def');
29-
30-
var _def2 = _interopRequireDefault(_def);
31-
3224
var _key = require('utilise/key');
3325

3426
var _key2 = _interopRequireDefault(_key);
3527

36-
var _is = require('utilise/is');
28+
var _set = require('utilise/set');
3729

38-
var _is2 = _interopRequireDefault(_is);
30+
var _set2 = _interopRequireDefault(_set);
3931

40-
var _to = require('utilise/to');
32+
var _is = require('utilise/is');
4133

42-
var _to2 = _interopRequireDefault(_to);
34+
var _is2 = _interopRequireDefault(_is);
4335

4436
/* istanbul ignore next */
4537
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -58,20 +50,12 @@ function data(ripple) {
5850
parse: function parse(res) {
5951
var existing = ripple.resources[res.name] || {};
6052

61-
!res.body && (res.body = []);
62-
!res.body.on && (res.body = (0, _emitterify2.default)(res.body, null));
63-
53+
res.body = (0, _set2.default)()(res.body || [], existing.body && existing.body.log);
6454
(0, _extend2.default)(res.headers)(existing.headers);
65-
(0, _overwrite2.default)(res.body.on)(existing.body && existing.body.on || {});
66-
67-
if (logged(existing)) logged(res) ? res.body.log = existing.body.log.reset(res.body) : (0, _def2.default)(res.body, 'log', existing.body.log.reset(res.body), 1);
68-
55+
(0, _overwrite2.default)(res.body.on)(listeners(existing));
6956
res.body.on('change.bubble', function (change) {
7057
return ripple.emit('change', [res.name, change], (0, _not2.default)(_is2.default.in(['data'])));
7158
});
72-
res.body.on('log.bubble', function (change) {
73-
return res.body.emit('change', change);
74-
});
7559

7660
return res;
7761
}
@@ -87,4 +71,4 @@ var trickle = function trickle(ripple) {
8771
};
8872

8973
var log = require('utilise/log')('[ri/types/data]'),
90-
logged = (0, _key2.default)('body.log');
74+
listeners = (0, _key2.default)('body.on');

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"build": "npm run clean && npm run babel && npm run ignore",
1515
"test": "istanbul test ./node_modules/mocha/bin/_mocha --report html -- -R spec",
1616
"coverage": "istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && rm -rf ./coverage",
17+
"cov": "istanbul cover ./node_modules/mocha/bin/_mocha -- -R spec",
1718
"version": "npm run build && git add -A",
1819
"postversion": "git push && git push --tags"
1920
},
@@ -29,8 +30,7 @@
2930
"mocha-lcov-reporter": "*",
3031
"popper": "*",
3132
"rijs.core": "*",
32-
"uglify-js": "*",
33-
"versioned": "*"
33+
"uglify-js": "*"
3434
},
3535
"dependencies": {
3636
"utilise": "*"

src/index.js

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,11 @@ export default function data(ripple){
1010
, parse(res){
1111
const existing = ripple.resources[res.name] || {}
1212

13-
!res.body && (res.body = [])
14-
!res.body.on && (res.body = emitterify(res.body, null))
15-
13+
res.body = set()(res.body || [], existing.body && existing.body.log)
1614
extend(res.headers)(existing.headers)
17-
overwrite(res.body.on)(existing.body && existing.body.on || {})
18-
19-
if (logged(existing)) logged(res)
20-
? (res.body.log = existing.body.log.reset(res.body))
21-
: def(res.body, 'log', existing.body.log.reset(res.body), 1)
22-
15+
overwrite(res.body.on)(listeners(existing))
2316
res.body.on('change.bubble', change => ripple.emit('change', [res.name, change], not(is.in(['data']))))
24-
res.body.on('log.bubble', change => res.body.emit('change', change))
25-
17+
2618
return res
2719
}
2820
}
@@ -36,14 +28,12 @@ const trickle = ripple => (name, change) => header('content-type', 'application/
3628
.body
3729
.emit('change', [change || null], not(is.in(['bubble'])))
3830

39-
import emitterify from 'utilise/emitterify'
4031
import overwrite from 'utilise/overwrite'
4132
import header from 'utilise/header'
4233
import extend from 'utilise/extend'
4334
import not from 'utilise/not'
44-
import def from 'utilise/def'
4535
import key from 'utilise/key'
36+
import set from 'utilise/set'
4637
import is from 'utilise/is'
47-
import to from 'utilise/to'
4838
const log = require('utilise/log')('[ri/types/data]')
49-
, logged = key('body.log')
39+
, listeners = key('body.on')

test.js

Lines changed: 19 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
var versioned = require('versioned').default
2-
, expect = require('chai').expect
3-
, core = require('rijs.core').default
1+
var core = require('rijs.core').default
42
, update = require('utilise/update')
53
, clone = require('utilise/clone')
4+
, expect = require('chai').expect
65
, keys = require('utilise/keys')
76
, data = require('./').default
87
, key = require('utilise/key')
8+
, set = require('utilise/set')
99
, to = require('utilise/to')
1010

1111
describe('Data Type', function() {
@@ -129,41 +129,25 @@ describe('Data Type', function() {
129129

130130
ripple.on('change', function(d, change){ changes.push(clone(change)) })
131131

132-
ripple('foo', versioned(['foo']))
132+
ripple('foo', ['foo'])
133133
update(0, 'bar')(ripple('foo'))
134-
135-
// should not need to explicity reinit version
136-
ripple('foo', ['baz'])
134+
135+
ripple('foo', set()(['baz']))
137136
update(0, 'boo')(ripple('foo'))
138-
expect(keys(ripple('foo'))).to.eql(['0'])
139137

140-
// should work if new object versioned
141-
ripple('foo', versioned(['wat']))
142-
expect(keys(ripple('foo'))).to.eql(['0'])
143-
144-
expect(ripple('foo').log.length).to.eql(5)
145-
expect(ripple('foo').log[0].value.toJS()).to.eql(['foo'])
146-
expect(ripple('foo').log[0].diff).to.eql(undefined)
147-
148-
expect(ripple('foo').log[1].value.toJS()).to.eql(['bar'])
149-
expect(ripple('foo').log[1].diff).to.eql({ key: '0', value: 'bar', type: 'update' })
150-
151-
expect(ripple('foo').log[2].value.toJS()).to.eql(['baz'])
152-
expect(ripple('foo').log[2].diff).to.eql(undefined)
153-
154-
expect(ripple('foo').log[3].value.toJS()).to.eql(['boo'])
155-
expect(ripple('foo').log[3].diff).to.eql({ key: '0', value: 'boo', type: 'update' })
156-
157-
expect(ripple('foo').log[4].value.toJS()).to.eql(['wat'])
158-
expect(ripple('foo').log[4].diff).to.eql(undefined)
159-
160-
expect(changes).to.eql([
161-
{ type: 'update', value: ['foo'] }
162-
, { type: 'update', value: 'bar', key: '0' }
163-
, { type: 'update', value: ['baz'] }
164-
, { type: 'update', value: 'boo', key: '0' }
165-
, { type: 'update', value: ['wat'] }
166-
])
138+
expect(ripple('foo').log)
139+
.to.eql(changes)
140+
.to.eql([
141+
{ time: 0, type: 'update', value: ['foo'] }
142+
, { time: 1, type: 'update', value: 'bar', key: '0' }
143+
, { time: 2, type: 'update', value: ['baz'] }
144+
, { time: 3, type: 'update', value: 'boo', key: '0' }
145+
])
146+
147+
ripple('bar', ripple('foo'))
148+
expect(ripple('foo')).to.not.equal(ripple('bar'))
149+
expect(ripple('foo').log).to.have.lengthOf(4)
150+
expect(ripple('bar').log).to.have.lengthOf(5)
167151
})
168152

169153
it('should not lose existing headers', function(){

0 commit comments

Comments
 (0)