Skip to content

Commit

Permalink
(#4098) remove deprecated onChange and complete
Browse files Browse the repository at this point in the history
  • Loading branch information
nolanlawson committed Aug 2, 2015
1 parent 43d50f6 commit a9c7990
Show file tree
Hide file tree
Showing 18 changed files with 753 additions and 1,301 deletions.
2 changes: 1 addition & 1 deletion lib/adapters/http/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -950,7 +950,7 @@ function HttpPouch(opts, callback) {
if (returnDocs) {
results.results.push(c);
}
utils.call(opts.onChange, c);
opts.onChange(c);
}
return ret;
});
Expand Down
14 changes: 3 additions & 11 deletions lib/changes.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ function Changes(db, opts, callback) {
var self = this;
this.db = db;
opts = opts ? utils.clone(opts) : {};
var oldComplete = callback || opts.complete || function () {};
var complete = opts.complete = utils.once(function (err, resp) {
if (err) {
self.emit('error', err);
Expand All @@ -24,18 +23,14 @@ function Changes(db, opts, callback) {
self.removeAllListeners();
db.removeListener('destroyed', onDestroy);
});
if (oldComplete) {
if (callback) {
self.on('complete', function (resp) {
oldComplete(null, resp);
callback(null, resp);
});
self.on('error', function (err) {
oldComplete(err);
callback(err);
});
}
var oldOnChange = opts.onChange;
if (oldOnChange) {
self.on('change', oldOnChange);
}
function onDestroy() {
self.cancel();
}
Expand Down Expand Up @@ -70,9 +65,6 @@ function Changes(db, opts, callback) {
};
});
self.once('cancel', function () {
if (oldOnChange) {
self.removeListener('change', oldOnChange);
}
db.removeListener('destroyed', onDestroy);
opts.complete(null, {status: 'cancelled'});
});
Expand Down
5 changes: 0 additions & 5 deletions lib/constructor.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,6 @@ function PouchDB(name, opts, callback) {
}
} catch (err) {
self.taskqueue.fail(err);
self.changes = utils.toPromise(function (opts) {
if (opts.complete) {
opts.complete(err);
}
});
}
}());
if (error) {
Expand Down
4 changes: 1 addition & 3 deletions lib/replicate/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@ function replicateWrapper(src, target, opts, callback) {
if (typeof opts === 'undefined') {
opts = {};
}
if (!opts.complete) {
opts.complete = callback || function () {};
}
opts.complete = callback;
opts = utils.clone(opts);
opts.continuous = opts.continuous || opts.live;
opts.retry = ('retry' in opts) ? opts.retry : false;
Expand Down
4 changes: 0 additions & 4 deletions lib/replicate/replicate.js
Original file line number Diff line number Diff line change
Expand Up @@ -391,10 +391,6 @@ function replicate(src, target, opts, returnValue, result) {
if (!returnValue._addedListeners) {
returnValue.once('cancel', completeReplication);

if (typeof opts.onChange === 'function') {
returnValue.on('change', opts.onChange);
}

if (typeof opts.complete === 'function') {
returnValue.once('error', opts.complete);
returnValue.once('complete', function (result) {
Expand Down
20 changes: 4 additions & 16 deletions lib/sync.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,6 @@ function Sync(src, target, opts, callback) {
var self = this;
this.canceled = false;

var onChange, complete;
if ('onChange' in opts) {
onChange = opts.onChange;
delete opts.onChange;
}
if (typeof callback === 'function' && !opts.complete) {
complete = callback;
} else if ('complete' in opts) {
complete = opts.complete;
delete opts.complete;
}

this.push = replicate(src, target, opts);
this.pull = replicate(target, src, opts);

Expand Down Expand Up @@ -151,16 +139,16 @@ function Sync(src, target, opts, callback) {
pull: resp[1]
};
self.emit('complete', out);
if (complete) {
complete(null, out);
if (callback) {
callback(null, out);
}
self.removeAllListeners();
return out;
}, function (err) {
self.cancel();
self.emit('error', err);
if (complete) {
complete(err);
if (callback) {
callback(err);
}
self.removeAllListeners();
throw err;
Expand Down
161 changes: 76 additions & 85 deletions tests/integration/test.all_docs.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,27 +50,24 @@ adapters.forEach(function (adapter) {
db.allDocs(opts, function (err, raw) {
raw.rows.should.have.length(0, 'raw collation');
var ids = ['0', '3', '1', '2'];
db.changes({
complete: function (err, changes) {
// order of changes is not guaranteed in a
// clustered changes feed
db.changes().on('complete', function (changes) {
// order of changes is not guaranteed in a
// clustered changes feed
changes.results.forEach(function (row, i) {
ids.should.include(row.id, 'seq order');
});
db.changes({
descending: true
}).on('complete', function (changes) {
// again, order is not guaranteed so
// unsure if this is a useful test
ids = ['2', '1', '3', '0'];
changes.results.forEach(function (row, i) {
ids.should.include(row.id, 'seq order');
});
db.changes({
descending: true,
complete: function (err, changes) {
// again, order is not guaranteed so
// unsure if this is a useful test
ids = ['2', '1', '3', '0'];
changes.results.forEach(function (row, i) {
ids.should.include(row.id, 'descending=true');
});
done();
}
ids.should.include(row.id, 'descending=true');
});
}
});
done();
}).on('error', done);
}).on('error', done);
});
});
});
Expand Down Expand Up @@ -142,16 +139,15 @@ adapters.forEach(function (adapter) {
should.exist(deleted.ok);

db.changes({
since: update_seq,
complete: function (err, changes) {
var deleted_ids = changes.results.map(function (c) {
if (c.deleted) { return c.id; }
});
deleted_ids.should.include('1');
since: update_seq
}).on('complete', function (changes) {
var deleted_ids = changes.results.map(function (c) {
if (c.deleted) { return c.id; }
});
deleted_ids.should.include('1');

done();
}
});
done();
}).on('error', done);
});
});
});
Expand All @@ -170,14 +166,13 @@ adapters.forEach(function (adapter) {
doc.updated = 'totally';
db.put(doc, function (err, doc) {
db.changes({
since: update_seq,
complete: function (err, changes) {
var ids = changes.results.map(function (c) { return c.id; });
ids.should.include('3');
since: update_seq
}).on('complete', function (changes) {
var ids = changes.results.map(function (c) { return c.id; });
ids.should.include('3');

done();
}
});
done();
}).on('error', done);
});
});
});
Expand All @@ -189,17 +184,15 @@ adapters.forEach(function (adapter) {
testUtils.writeDocs(db, JSON.parse(JSON.stringify(origDocs)),
function () {
db.changes({
include_docs: true,
complete: function (err, changes) {
changes.results.forEach(function (row, i) {
if (row.id === '0') {
row.doc.a.should.equal(1);
}
});

done();
}
});
include_docs: true
}).on('complete', function (changes) {
changes.results.forEach(function (row, i) {
if (row.id === '0') {
row.doc.a.should.equal(1);
}
});
done();
}).on('error', done);
});
});

Expand All @@ -225,45 +218,43 @@ adapters.forEach(function (adapter) {
db.changes({
include_docs: true,
conflicts: true,
style: 'all_docs',
complete: function (err, changes) {

changes.results.map(function (x) { return x.id; }).sort()
.should.deep.equal(['0', '1', '2', '3'],
'all ids are in _changes');

var result = changes.results.filter(function (row, i) {
return row.id === '3';
})[0];

result.changes.should.have
.length(3, 'correct number of changes');
result.doc._rev.should.equal(conflictDoc2._rev);
result.doc._id.should.equal('3', 'correct doc id');
winRev._rev.should.equal(result.doc._rev);
result.doc._conflicts.should.be.instanceof(Array);
result.doc._conflicts.should.have.length(2);
conflictDoc1._rev.should.equal(result.doc._conflicts[0]);

db.allDocs({
include_docs: true,
conflicts: true
}, function (err, res) {
var row = res.rows[3];
res.rows.should.have.length(4, 'correct number of changes');
row.key.should.equal('3', 'correct key');
row.id.should.equal('3', 'correct id');
row.value.rev.should.equal(winRev._rev, 'correct rev');
row.doc._rev.should.equal(winRev._rev, 'correct rev');
row.doc._id.should.equal('3', 'correct order');
row.doc._conflicts.should.be.instanceof(Array);
row.doc._conflicts.should.have.length(2);
conflictDoc1._rev.should
.equal(res.rows[3].doc._conflicts[0]);
done();
});
}
});
style: 'all_docs'
}).on('complete', function (changes) {
changes.results.map(function (x) { return x.id; }).sort()
.should.deep.equal(['0', '1', '2', '3'],
'all ids are in _changes');

var result = changes.results.filter(function (row, i) {
return row.id === '3';
})[0];

result.changes.should.have
.length(3, 'correct number of changes');
result.doc._rev.should.equal(conflictDoc2._rev);
result.doc._id.should.equal('3', 'correct doc id');
winRev._rev.should.equal(result.doc._rev);
result.doc._conflicts.should.be.instanceof(Array);
result.doc._conflicts.should.have.length(2);
conflictDoc1._rev.should.equal(result.doc._conflicts[0]);

db.allDocs({
include_docs: true,
conflicts: true
}, function (err, res) {
var row = res.rows[3];
res.rows.should.have.length(4, 'correct number of changes');
row.key.should.equal('3', 'correct key');
row.id.should.equal('3', 'correct id');
row.value.rev.should.equal(winRev._rev, 'correct rev');
row.doc._rev.should.equal(winRev._rev, 'correct rev');
row.doc._id.should.equal('3', 'correct order');
row.doc._conflicts.should.be.instanceof(Array);
row.doc._conflicts.should.have.length(2);
conflictDoc1._rev.should
.equal(res.rows[3].doc._conflicts[0]);
done();
});
}).on('error', done);
});
});
});
Expand Down

0 comments on commit a9c7990

Please sign in to comment.