Explorar el Código

Added a utility to batch values.

Eugene Lazutkin hace 3 años
padre
commit
c03d791ef7
Se han modificado 1 ficheros con 22 adiciones y 0 borrados
  1. 22 0
      src/utils/batch.js

+ 22 - 0
src/utils/batch.js

@@ -0,0 +1,22 @@
+'use strict';
+
+const {none, flushable} = require('../defs');
+
+const batch = (n = 100) => {
+  let buffer = [];
+  return flushable(value => {
+    if (value === none) {
+      // clean up buffer
+      const result = buffer;
+      buffer = null;
+      return result;
+    }
+    buffer.push(value);
+    if (buffer.length < n) return none;
+    const result = buffer;
+    buffer = [];
+    return result;
+  });
+};
+
+module.exports = batch;