index.js 655 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. 'use strict';
  2. var from = require('from2');
  3. module.exports = function (x) {
  4. if (Array.isArray(x)) {
  5. x = x.slice();
  6. }
  7. return from(function (size, cb) {
  8. if (x.length === 0) {
  9. cb(null, null);
  10. return;
  11. }
  12. if (Array.isArray(x)) {
  13. cb(null, x.shift());
  14. return;
  15. }
  16. var chunk = x.slice(0, size);
  17. x = x.slice(size);
  18. cb(null, chunk);
  19. });
  20. };
  21. module.exports.obj = function (x) {
  22. if (Array.isArray(x)) {
  23. x = x.slice();
  24. }
  25. return from.obj(function (size, cb) {
  26. if (Array.isArray(x)) {
  27. if (x.length === 0) {
  28. cb(null, null);
  29. return;
  30. }
  31. cb(null, x.shift());
  32. return;
  33. }
  34. this.push(x);
  35. cb(null, null);
  36. });
  37. };