Awesome
path-source
A readable stream reader for reading files in Node or fetching URLs in browser. For example, to read a file in Node:
var path = require("path-source");
path("README.md")
.then(function read(source) {
return source.read().then(result => {
if (result.done) return;
process.stdout.write(result.value);
return read(source);
});
})
.catch(error => console.error(error.stack));
Similarly, to fetch a resource in a browser (requires array-source if streaming fetch is not supported):
<!DOCTYPE html>
<script src="https://unpkg.com/array-source@0"></script>
<script src="https://unpkg.com/path-source@0"></script>
<script>
sources.path("README.md")
.then(function read(source) {
return source.read().then(result => {
if (result.done) return;
console.log(result.value);
return read(source);
});
})
.catch(error => console.error(error.stack));
</script>
API Reference
<a name="path" href="#path">#</a> <b>path</b>(<i>path</i>[, <i>options</i>]) <>
In Node, returns a Promise that yields a source for the file at the specified path; equivalent to file-source. In a browser, returns a Promise that yields a source for the resource at the specified path URL, using streaming fetch if available, and falling back to a binary data XMLHttpRequest.
In Node, the following options are supported:
highWaterMark
- the stream’s internal buffer size; defaults to 65,536
In a browser, no options are currently supported.
<a name="source_read" href="#source_read">#</a> <i>source</i>.<b>read</b>() <>
Returns a Promise for the next chunk of data from the underlying stream. The yielded result is an object with the following properties:
value
- a Uint8Array (a Buffer), or undefined if the stream endeddone
- a boolean which is true if the stream ended
<a name="source_cancel" href="#source_cancel">#</a> <i>source</i>.<b>cancel</b>() <>
Returns a Promise which is resolved when the underlying stream has been destroyed.