Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/goto-bus-stop/fs-read-stream-live
fs.createReadStream but it waits for new writes instead of ending
https://github.com/goto-bus-stop/fs-read-stream-live
Last synced: 27 days ago
JSON representation
fs.createReadStream but it waits for new writes instead of ending
- Host: GitHub
- URL: https://github.com/goto-bus-stop/fs-read-stream-live
- Owner: goto-bus-stop
- License: other
- Created: 2018-04-10T13:05:46.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-04-10T13:07:16.000Z (over 6 years ago)
- Last Synced: 2024-10-05T16:01:38.210Z (about 1 month ago)
- Language: JavaScript
- Size: 4.88 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# fs-read-stream-live
`fs.createReadStream` but it waits for new writes instead of ending
When it reaches the end of the file, it kicks off an `fs.watch`er and starts reading again where it left off when it updates.
This works for appending data. Note that it does _not_ work if data is removed from the file. Use this for logs and the like![![npm][npm-image]][npm-url]
[![travis][travis-image]][travis-url]
[![standard][standard-image]][standard-url][npm-image]: https://img.shields.io/npm/v/fs-read-stream-live.svg?style=flat-square
[npm-url]: https://www.npmjs.com/package/fs-read-stream-live
[travis-image]: https://img.shields.io/travis/goto-bus-stop/fs-read-stream-live.svg?style=flat-square
[travis-url]: https://travis-ci.org/goto-bus-stop/fs-read-stream-live
[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square
[standard-url]: http://npm.im/standard## Install
```
npm install fs-read-stream-live
```## Usage
```js
var createLiveReadStream = require('fs-read-stream-live')createLiveReadStream('./chat.txt').pipe(process.stdout)
setInterval(function () {
fs.appendFile('./chat.txt', 'hello world', function(){})
}, 500)
```## API
### `s = createLiveReadStream(path, opts={})`
Create a `ReadStream` for the file at `path`. First it streams the full file contents,
then it starts watching for changes and streaming appended content.- `opts.encoding` - when set, convert read bytes to strings using this encoding; else stream Buffers.
### `s.close()`
Close the file and stop watching for changes. You have to do this manually, else the stream will never end.
### `s.path`
The file path; value of the `path` argument to `createLiveReadStream`.
### `s.bytesRead`
Number of bytes that have been streamed so far.
## License
[Apache-2.0](LICENSE.md)