index.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. const npm = {
  2. read: require('./read')
  3. };
  4. /**
  5. * @namespace stream
  6. * @description
  7. * Namespace with methods that implement stream operations, and {@link stream.read read} is the only method currently supported.
  8. *
  9. * **Synchronous Stream Processing**
  10. *
  11. * ```js
  12. * const stream = require('spex')(Promise).stream;
  13. * const fs = require('fs');
  14. *
  15. * const rs = fs.createReadStream('values.txt');
  16. *
  17. * function receiver(index, data, delay) {
  18. * console.log('RECEIVED:', index, data, delay);
  19. * }
  20. *
  21. * stream.read(rs, receiver)
  22. * .then(data => {
  23. * console.log('DATA:', data);
  24. * })
  25. * .catch(error => {
  26. * console.log('ERROR:', error);
  27. * });
  28. * ```
  29. *
  30. * **Asynchronous Stream Processing**
  31. *
  32. * ```js
  33. * const stream = require('spex')(Promise).stream;
  34. * const fs = require('fs');
  35. *
  36. * const rs = fs.createReadStream('values.txt');
  37. *
  38. * function receiver(index, data, delay) {
  39. * return new Promise(resolve => {
  40. * console.log('RECEIVED:', index, data, delay);
  41. * resolve();
  42. * });
  43. * }
  44. *
  45. * stream.read(rs, receiver)
  46. * .then(data => {
  47. * console.log('DATA:', data);
  48. * })
  49. * .catch(error => {
  50. * console.log('ERROR:', error);
  51. * });
  52. * ```
  53. *
  54. * @property {function} stream.read
  55. * Consumes and processes data from a $[Readable] stream.
  56. *
  57. */
  58. module.exports = function (config) {
  59. const res = {
  60. read: npm.read(config)
  61. };
  62. Object.freeze(res);
  63. return res;
  64. };