Skip to content

Commit 6bb7e33

Browse files
committed
refactor(change-stream): rename data event to change
1 parent c02d25c commit 6bb7e33

File tree

2 files changed

+109
-107
lines changed

2 files changed

+109
-107
lines changed

lib/change_stream.js

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ var cursorOptionNames = ['maxAwaitTimeMS', 'collation', 'readPreference'];
1818
* @param {object} [options.collation=null] Specify collation settings for operation. See {@link https://docs.mongodb.com/manual/reference/command/aggregate|aggregation documentation}.
1919
* @param {ReadPreference} [options.readPreference=null] The read preference. Defaults to the read preference of the database or collection. See {@link https://docs.mongodb.com/manual/reference/read-preference|read preference documentation}.
2020
* @fires ChangeStream#close
21-
* @fires ChangeStream#data
21+
* @fires ChangeStream#change
2222
* @fires ChangeStream#end
2323
* @fires ChangeStream#error
2424
* @return {ChangeStream} a ChangeStream instance.
@@ -45,23 +45,23 @@ var ChangeStream = function(collection, pipeline, options) {
4545
self.serverConfig = collection.s.db.serverConfig;
4646

4747
// Determine correct read preference
48-
self.options.readPreference = self.options.readPreference || collection.s.readPreference;
48+
// self.options.readPreference = self.options.readPreference || collection.s.readPreference;
4949

5050
// Create contained Change Stream cursor
5151
self.cursor = createChangeStreamCursor(self);
5252

53-
// Listen for any data listeners being added to ChangeStream
53+
// Listen for any `change` listeners being added to ChangeStream
5454
self.on('newListener', function(eventName) {
55-
if (eventName === 'data' && self.cursor && self.cursor.listenerCount('data') === 0) {
55+
if (eventName === 'change' && self.cursor && self.cursor.listenerCount('change') === 0) {
5656
self.cursor.on('data', function (change) {
5757
processNewChange(self, null, change);
5858
});
5959
}
6060
});
6161

62-
// Listen for all data listeners being removed from ChangeStream
62+
// Listen for all `change` listeners being removed from ChangeStream
6363
self.on('removeListener', function(eventName){
64-
if (eventName === 'data' && self.listenerCount('data') === 0 && self.cursor) {
64+
if (eventName === 'change' && self.listenerCount('change') === 0 && self.cursor) {
6565
self.cursor.removeAllListeners('data');
6666
}
6767
});
@@ -78,12 +78,12 @@ var createChangeStreamCursor = function (self) {
7878
buildChangeStreamAggregationCommand(self.serverConfig, self.namespace, self.pipeline, self.resumeToken, self.options);
7979

8080
/**
81-
* Fired for each new matching change in the specified namespace. Attaching a 'data' event listener to a Change Stream will switch the stream into flowing mode. Data will then be passed as soon as it is available.
81+
* Fired for each new matching change in the specified namespace. Attaching a `change` event listener to a Change Stream will switch the stream into flowing mode. Data will then be passed as soon as it is available.
8282
*
83-
* @event ChangeStream#data
83+
* @event ChangeStream#change
8484
* @type {object}
8585
*/
86-
if (self.listenerCount('data') > 0) {
86+
if (self.listenerCount('change') > 0) {
8787
changeStreamCursor.on('data', function (change) {
8888
processNewChange(self, null, change);
8989
});
@@ -123,13 +123,13 @@ var createChangeStreamCursor = function (self) {
123123
};
124124

125125
var buildChangeStreamAggregationCommand = function (serverConfig, namespace, pipeline, resumeToken, options) {
126-
var changeNotificationStageOptions = {};
126+
var changeStreamStageOptions = {};
127127
if (options.fullDocument) {
128-
changeNotificationStageOptions.fullDocument = options.fullDocument;
128+
changeStreamStageOptions.fullDocument = options.fullDocument;
129129
}
130130

131131
if (resumeToken || options.resumeAfter) {
132-
changeNotificationStageOptions.resumeAfter = resumeToken || options.resumeAfter;
132+
changeStreamStageOptions.resumeAfter = resumeToken || options.resumeAfter;
133133
}
134134

135135
// Map cursor options
@@ -141,7 +141,7 @@ var buildChangeStreamAggregationCommand = function (serverConfig, namespace, pip
141141
});
142142

143143
var changeStreamPipeline = [
144-
{ $changeNotification: changeNotificationStageOptions }
144+
{ $changeStream: changeStreamStageOptions }
145145
];
146146

147147
changeStreamPipeline = changeStreamPipeline.concat(pipeline);
@@ -280,6 +280,7 @@ var processNewChange = function (self, err, change, callback) {
280280
if (err) {
281281
// Handle resumable MongoNetworkErrors
282282
if (err instanceof MongoNetworkError && !self.attemptingResume) {
283+
283284
self.attemptingResume = true;
284285
return self.cursor.close(function(closeErr) {
285286
if (closeErr) {
@@ -321,7 +322,7 @@ var processNewChange = function (self, err, change, callback) {
321322

322323
// Return the change
323324
if (typeof callback === 'function') return callback(err, change);
324-
if (self.listenerCount('data')) return self.emit('data', change);
325+
if (self.listenerCount('change')) return self.emit('change', change);
325326
return self.promiseLibrary.resolve(change);
326327
};
327328

0 commit comments

Comments
 (0)