Big News: Socket Selected for OpenAI's Cybersecurity Grant Program.Details
Socket
Book a DemoSign in
Socket

batch-tasks

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

batch-tasks - npm Package Compare versions

Comparing version
0.1.1
to
0.1.2
+2
-1
lib/index.d.ts

@@ -7,3 +7,4 @@ interface Batch<T> {

constructor(generator: () => Generator<Batch<T>>);
static fromArray<T>(items: T[], batchSize: number): BatchTasks<T>;
static fromArrayAndSize<T>(items: T[], batchSize: number): BatchTasks<T>;
static fromArrayAndDuration<T>(items: T[], batchDuration: number): BatchTasks<T>;
batches(): Generator<Batch<T>, any, unknown>;

@@ -10,0 +11,0 @@ }

@@ -24,2 +24,22 @@ "use strict";

}
class DurationBatch {
constructor(items, start, duration) {
this.items = items;
this.duration = duration;
this._start = start;
this._end = start;
}
run(action) {
let index = this._start;
const start = Date.now(); // TODO: should use performance.now() but in a browser+NodeJS friendly way.
while (Date.now() < start + this.duration && index < this.items.length) {
action(this.items[index], index);
index += 1;
}
this._end = index;
}
get end() {
return this._end;
}
}
class BatchTasks {

@@ -29,3 +49,3 @@ constructor(generator) {

}
static fromArray(items, batchSize) {
static fromArrayAndSize(items, batchSize) {
return new BatchTasks(function* () {

@@ -39,2 +59,11 @@ for (let i = 0; i < items.length; i += batchSize) {

}
static fromArrayAndDuration(items, batchDuration) {
return new BatchTasks(function* () {
let lastBatch = null;
while (lastBatch === null || lastBatch.end < items.length) {
lastBatch = new DurationBatch(items, lastBatch === null ? 0 : lastBatch.end, batchDuration);
yield lastBatch;
}
});
}
batches() {

@@ -41,0 +70,0 @@ return this._generator();

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAIA,MAAM,UAAU;IAKZ,YAAmB,KAAU,EAAE,KAAa,EAAE,GAAW;QACrD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAEM,GAAG,CAAC,MAAwC;QAC/C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5B;IACL,CAAC;CACJ;AAED,MAAa,UAAU;IAGnB,YAAmB,SAAoC;QACnD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IAEM,MAAM,CAAC,SAAS,CAAI,KAAU,EAAE,SAAiB;QACpD,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE;gBAC9C,MAAM,KAAK,GAAG,CAAC,CAAC;gBAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aAC3C;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;CACJ;AApBD,gCAoBC;AAED,MAAa,UAAU;IACZ,MAAM,CAAO,aAAa,CAAI,OAA4B,EAAE,MAAiC,EAAE,WAAwB;;YAC1H,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBACzB,IAAI,WAAW,CAAC,OAAO,EAAE;oBACrB,MAAM;iBACT;gBACD,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;aAC1D;QACL,CAAC;KAAA;IAEM,MAAM,CAAO,WAAW,CAAI,OAA4B,EAAE,MAAwC,EAAE,WAAwB;;YAC/H,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBACzB,IAAI,WAAW,CAAC,OAAO,EAAE;oBACrB,MAAM;iBACT;gBACD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;aAC1D;QACL,CAAC;KAAA;CACJ;AApBD,gCAoBC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
{
"name": "batch-tasks",
"version": "0.1.1",
"version": "0.1.2",
"description": "Batch CPU bound tasks",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -23,2 +23,30 @@ interface Batch<T> {

class DurationBatch<T> implements Batch<T> {
public readonly items: T[];
public readonly duration: number;
private _start: number;
private _end: number;
public constructor(items: T[], start: number, duration: number) {
this.items = items;
this.duration = duration;
this._start = start;
this._end = start;
}
public run(action: (item: T, index: number) => void) {
let index = this._start;
const start = Date.now(); // TODO: should use performance.now() but in a browser+NodeJS friendly way.
while (Date.now() < start + this.duration && index < this.items.length) {
action(this.items[index], index);
index += 1;
}
this._end = index;
}
public get end() {
return this._end;
}
}
export class BatchTasks<T> {

@@ -31,3 +59,3 @@ private _generator: () => Generator<Batch<T>>;

public static fromArray<T>(items: T[], batchSize: number) {
public static fromArrayAndSize<T>(items: T[], batchSize: number) {
return new BatchTasks(function* () {

@@ -42,2 +70,12 @@ for (let i = 0; i < items.length; i += batchSize) {

public static fromArrayAndDuration<T>(items: T[], batchDuration: number) {
return new BatchTasks(function* () {
let lastBatch: DurationBatch<T> | null = null;
while (lastBatch === null || lastBatch.end < items.length) {
lastBatch = new DurationBatch(items, lastBatch === null ? 0 : lastBatch.end, batchDuration);
yield lastBatch;
}
});
}
public batches() {

@@ -44,0 +82,0 @@ return this._generator();

Sorry, the diff of this file is not supported yet