const npm = {
read: require('./read')
};
/**
* @namespace stream
* @description
* Namespace with methods that implement stream operations, and {@link stream.read read} is the only method currently supported.
*
* **Synchronous Stream Processing**
*
* ```js
* const stream = require('spex')(Promise).stream;
* const fs = require('fs');
*
* const rs = fs.createReadStream('values.txt');
*
* function receiver(index, data, delay) {
* console.log('RECEIVED:', index, data, delay);
* }
*
* stream.read(rs, receiver)
* .then(data => {
* console.log('DATA:', data);
* })
* .catch(error => {
* console.log('ERROR:', error);
* });
* ```
*
* **Asynchronous Stream Processing**
*
* ```js
* const stream = require('spex')(Promise).stream;
* const fs = require('fs');
*
* const rs = fs.createReadStream('values.txt');
*
* function receiver(index, data, delay) {
* return new Promise(resolve => {
* console.log('RECEIVED:', index, data, delay);
* resolve();
* });
* }
*
* stream.read(rs, receiver)
* .then(data => {
* console.log('DATA:', data);
* })
* .catch(error => {
* console.log('ERROR:', error);
* });
* ```
*
* @property {function} stream.read
* Consumes and processes data from a $[Readable] stream.
*
*/
module.exports = function (config) {
const res = {
read: npm.read(config)
};
Object.freeze(res);
return res;
};