@takeshape/streams 10.43.1 → 10.43.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/streams.d.ts CHANGED
@@ -16,4 +16,5 @@ export declare function tee(...args: NodeJS.WritableStream[] | [NodeJS.WritableS
16
16
  export declare function readableFromArray(array: any[], options?: Partial<ReadableOptions>): Readable;
17
17
  export declare function collectStreamIntoArray(array?: any[], options?: Partial<WritableOptions>): Writable;
18
18
  export declare function readStreamToBuffer(stream: NodeJS.ReadableStream): Promise<Buffer>;
19
+ export declare function batch(size: number): Transform;
19
20
  //# sourceMappingURL=streams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/streams.ts"],"names":[],"mappings":";;;;AAAA,OAAO,EAAc,QAAQ,EAAE,KAAK,eAAe,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AACnH,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAK9C,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AAEpC,eAAO,MAAM,IAAI,iBAAW,CAAC;AAE7B,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1G;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,aAY5D;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,aAc1E;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,aAe7D;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,aAQjE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,SAAK,YAcxF;AAED,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,YA0B/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,YAEjF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,GAAE,GAAG,EAAO,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,YAS/F;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,mBAMrE"}
1
+ {"version":3,"file":"streams.d.ts","sourceRoot":"","sources":["../../src/streams.ts"],"names":[],"mappings":";;;;AAAA,OAAO,EAAc,QAAQ,EAAE,KAAK,eAAe,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,SAAS,EAAC,MAAM,aAAa,CAAC;AACnH,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAK9C,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AAEpC,eAAO,MAAM,IAAI,iBAAW,CAAC;AAE7B,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1G;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,aAY5D;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,aAc1E;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,aAe7D;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,aAQjE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,SAAK,YAcxF;AAED,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,YA0B/E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,YAEjF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,GAAE,GAAG,EAAO,EAAE,OAAO,GAAE,OAAO,CAAC,eAAe,CAAM,YAY/F;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,mBAMrE;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,aAyBjC"}
package/dist/streams.js CHANGED
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.batch = batch;
6
7
  exports.collectStreamIntoArray = collectStreamIntoArray;
7
8
  Object.defineProperty(exports, "compose", {
8
9
  enumerable: true,
@@ -131,9 +132,11 @@ function collectStreamIntoArray(array = [], options = {}) {
131
132
  return new _nodeStream.Writable({
132
133
  objectMode: true,
133
134
  writev(chunks, callback) {
134
- chunks.forEach(({
135
+ for (const {
135
136
  chunk
136
- }) => array.push(chunk));
137
+ } of chunks) {
138
+ array.push(chunk);
139
+ }
137
140
  callback(null);
138
141
  },
139
142
  ...options
@@ -145,4 +148,24 @@ async function readStreamToBuffer(stream) {
145
148
  writeStream.on('data', chunk => chunks.push(chunk));
146
149
  await pump(stream, writeStream);
147
150
  return Buffer.concat(chunks);
151
+ }
152
+ function batch(size) {
153
+ let buffer = [];
154
+ return new _nodeStream.Transform({
155
+ objectMode: true,
156
+ transform(obj, _, next) {
157
+ buffer.push(obj);
158
+ if (buffer.length === size) {
159
+ this.push(buffer);
160
+ buffer = [];
161
+ }
162
+ next();
163
+ },
164
+ flush(done) {
165
+ if (buffer.length > 0) {
166
+ this.push(buffer);
167
+ }
168
+ done();
169
+ }
170
+ });
148
171
  }
package/es/streams.js CHANGED
@@ -109,9 +109,11 @@ export function collectStreamIntoArray(array = [], options = {}) {
109
109
  return new Writable({
110
110
  objectMode: true,
111
111
  writev(chunks, callback) {
112
- chunks.forEach(({
112
+ for (const {
113
113
  chunk
114
- }) => array.push(chunk));
114
+ } of chunks) {
115
+ array.push(chunk);
116
+ }
115
117
  callback(null);
116
118
  },
117
119
  ...options
@@ -123,4 +125,24 @@ export async function readStreamToBuffer(stream) {
123
125
  writeStream.on('data', chunk => chunks.push(chunk));
124
126
  await pump(stream, writeStream);
125
127
  return Buffer.concat(chunks);
128
+ }
129
+ export function batch(size) {
130
+ let buffer = [];
131
+ return new Transform({
132
+ objectMode: true,
133
+ transform(obj, _, next) {
134
+ buffer.push(obj);
135
+ if (buffer.length === size) {
136
+ this.push(buffer);
137
+ buffer = [];
138
+ }
139
+ next();
140
+ },
141
+ flush(done) {
142
+ if (buffer.length > 0) {
143
+ this.push(buffer);
144
+ }
145
+ done();
146
+ }
147
+ });
126
148
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takeshape/streams",
3
- "version": "10.43.1",
3
+ "version": "10.43.4",
4
4
  "description": "Stream helpers",
5
5
  "homepage": "https://www.takeshape.io",
6
6
  "repository": {