Skip to content

Commit

Permalink
fs: rename event to eventType in fs.watch listener
Browse files Browse the repository at this point in the history
The name 'event' for the argument of the listener in
fs.watch was confusing considering FSWatcher also had
events. This changes the name of the argument to
eventType.

Fixes: #7504
PR-URL: #7506
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
  • Loading branch information
claudiorodriguez authored and evanlucas committed Jul 20, 2016
1 parent 432cb35 commit 11d6f1a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
21 changes: 15 additions & 6 deletions doc/api/fs.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,19 @@ non-UTF-8 encoded Buffers to `fs` functions will not work as expected.
added: v0.5.8
-->

Objects returned from `fs.watch()` are of this type.
Objects returned from [`fs.watch()`][] are of this type.

The `listener` callback provided to `fs.watch()` receives the returned FSWatcher's
`change` events.

The object itself emits these events:

### Event: 'change'
<!-- YAML
added: v0.5.8
-->

* `event` {String} The type of fs change
* `eventType` {String} The type of fs change
* `filename` {String | Buffer} The filename that changed (if relevant/available)

Emitted when something changes in a watched directory or file.
Expand All @@ -128,7 +133,8 @@ support. If `filename` is provided, it will be provided as a `Buffer` if
`filename` will be a string.

```js
fs.watch('./tmp', {encoding: 'buffer'}, (event, filename) => {
// Example when handled through fs.watch listener
fs.watch('./tmp', {encoding: 'buffer'}, (eventType, filename) => {
if (filename)
console.log(filename);
// Prints: <Buffer ...>
Expand Down Expand Up @@ -1443,10 +1449,13 @@ directory. The returned object is a [`fs.FSWatcher`][].
The second argument is optional. If `options` is provided as a string, it
specifies the `encoding`. Otherwise `options` should be passed as an object.

The listener callback gets two arguments `(event, filename)`. `event` is either
The listener callback gets two arguments `(eventType, filename)`. `eventType` is either
`'rename'` or `'change'`, and `filename` is the name of the file which triggered
the event.

Please note the listener callback is attached to the `'change'` event
fired by [`fs.FSWatcher`][], but they are not the same thing.

### Caveats

<!--type=misc-->
Expand Down Expand Up @@ -1499,8 +1508,8 @@ be provided. Therefore, don't assume that `filename` argument is always
provided in the callback, and have some fallback logic if it is null.

```js
fs.watch('somedir', (event, filename) => {
console.log(`event is: ${event}`);
fs.watch('somedir', (eventType, filename) => {
console.log(`event type is: ${eventType}`);
if (filename) {
console.log(`filename provided: ${filename}`);
} else {
Expand Down
4 changes: 2 additions & 2 deletions lib/fs.js
Original file line number Diff line number Diff line change
Expand Up @@ -1399,7 +1399,7 @@ function FSWatcher() {
this._handle = new FSEvent();
this._handle.owner = this;

this._handle.onchange = function(status, event, filename) {
this._handle.onchange = function(status, eventType, filename) {
if (status < 0) {
self._handle.close();
const error = !filename ?
Expand All @@ -1409,7 +1409,7 @@ function FSWatcher() {
error.filename = filename;
self.emit('error', error);
} else {
self.emit('change', event, filename);
self.emit('change', eventType, filename);
}
};
}
Expand Down

0 comments on commit 11d6f1a

Please sign in to comment.