🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

awaitqueue

Package Overview
Dependencies
Maintainers
2
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

awaitqueue - npm Package Compare versions

Comparing version

to
2.3.3

12

lib/index.d.ts

@@ -14,2 +14,8 @@ export declare type AwaitQueueOptions = {

export declare type AwaitQueueTask<T> = () => (Promise<T> | T);
export declare type AwaitQueueDumpItem = {
task: AwaitQueueTask<unknown>;
name?: string;
enqueuedTime: number;
executingTime: number;
};
export declare class AwaitQueue {

@@ -44,7 +50,3 @@ private closed;

stop(): void;
dump(): {
task: AwaitQueueTask<unknown>;
name?: string;
stopped: boolean;
}[];
dump(): AwaitQueueDumpItem[];
private next;

@@ -51,0 +53,0 @@ private executeTask;

@@ -74,3 +74,5 @@ "use strict";

reject,
stopped: false
stopped: false,
enqueuedAt: new Date(),
executedAt: undefined
};

@@ -101,2 +103,3 @@ // Append task to the queue.

dump() {
const now = new Date();
return this.pendingTasks.map((pendingTask) => {

@@ -106,3 +109,8 @@ return {

name: pendingTask.name,
stopped: pendingTask.stopped
enqueuedTime: pendingTask.executedAt
? pendingTask.executedAt.getTime() - pendingTask.enqueuedAt.getTime()
: now.getTime() - pendingTask.enqueuedAt.getTime(),
executingTime: pendingTask.executedAt
? now.getTime() - pendingTask.executedAt.getTime()
: 0
};

@@ -130,2 +138,3 @@ });

return;
pendingTask.executedAt = new Date();
try {

@@ -132,0 +141,0 @@ const result = yield pendingTask.task();

{
"name": "awaitqueue",
"version": "2.3.2",
"version": "2.3.3",
"description": "JavaScript utility to enqueue async tasks for Node.js and the browser",

@@ -5,0 +5,0 @@ "author": "Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",

@@ -17,3 +17,3 @@ # AwaitQueue

```js
const { AwaitQueue } = require('awaitqueue');
const { AwaitQueue, AwaitQueueTask, AwaitQueueDumpItem } = require('awaitqueue');
```

@@ -24,3 +24,3 @@

```js
import { AwaitQueue } from 'awaitqueue';
import { AwaitQueue, AwaitQueueTask, AwaitQueueDumpItem } from 'awaitqueue';
```

@@ -31,4 +31,31 @@

### new AwaitQueue({ ClosedErrorClass = Error, StoppedErrorClass = Error })
### type AwaitQueueDumpItem
```typescript
type AwaitQueueDumpItem =
{
task: AwaitQueueTask<unknown>;
name?: string;
enqueuedTime: number;
executingTime: number;
};
```
TypeScript type representing an item in the array returned by the `awaitQueue.dump()` method.
* `task`: The function to be executed.
* `name`: The name of the given `function` (if any) or the `name` argument given to `awaitQueue.push()` method (if any).
* `enqueuedTime`: Time in milliseconds since the task was enqueued, this is, since `awaitQueue.push()` was called until its execution started or until now if not yet started.
* `executingTime`: Time in milliseconds since the task execution started (or 0 if not yet started).
### type AwaitQueueTask
```typescript
type AwaitQueueTask<T> = () => (Promise<T> | T)
```
TypeScript type representing a function that returns a value `T` or a Promise that resolves with `T`.
### new AwaitQueue({ ClosedErrorClass? = Error, StoppedErrorClass? = Error })
Creates an `AwaitQueue` instance.

@@ -39,25 +66,26 @@

### async awaitQueue.push(task: AwaitQueueTask<T>, name?: string): Promise<T>
### async awaitQueue.push(task)
Accepts a task as argument and enqueues it after pending tasks. Once processed, the `push()` method resolves (or rejects) with the result returned by the given task.
* `@param {Function} task`: Function that must return a `Promise` or a directly a value.
* `@param task`: Function that must return a `Promise` or a directly a value.
* `@param name`: Optional task name (useful for `awaitQueue.dump()` method).
### awaitQueue.size: number
### awaitQueue.size
The number of ongoing enqueued tasks.
### awaitQueue.close(): void
### awaitQueue.close()
Closes the queue. Pending tasks will be rejected with the given `ClosedErrorClass` error. The `AwaitQueue` instance is no longer usable (this method is terminal).
### awaitQueue.stop(): void
### awaitQueue.stop()
Make ongoing pending tasks reject with the given `StoppedErrorClass` error. The `AwaitQueue` instance is still usable for future tasks added via `push()` method.
### awaitQueue.dump(): AwaitQueueDumpItem[]
Returns an array with information about pending tasks in the queue. See the `AwaitQueueDumpItem` type above.
## Usage example

@@ -64,0 +92,0 @@

@@ -17,2 +17,10 @@ export type AwaitQueueOptions =

export type AwaitQueueDumpItem =
{
task: AwaitQueueTask<unknown>;
name?: string;
enqueuedTime: number;
executingTime: number;
};
type PendingTask =

@@ -24,2 +32,4 @@ {

reject: (error: Error) => void;
enqueuedAt: Date;
executedAt?: Date;
stopped: boolean;

@@ -119,3 +129,5 @@ }

reject,
stopped : false
stopped : false,
enqueuedAt : new Date(),
executedAt : undefined
};

@@ -152,10 +164,17 @@

dump(): { task: AwaitQueueTask<unknown>; name?: string; stopped: boolean }[]
dump(): AwaitQueueDumpItem[]
{
const now = new Date();
return this.pendingTasks.map((pendingTask) =>
{
return {
task : pendingTask.task,
name : pendingTask.name,
stopped : pendingTask.stopped
task : pendingTask.task,
name : pendingTask.name,
enqueuedTime : pendingTask.executedAt
? pendingTask.executedAt.getTime() - pendingTask.enqueuedAt.getTime()
: now.getTime() - pendingTask.enqueuedAt.getTime(),
executingTime : pendingTask.executedAt
? now.getTime() - pendingTask.executedAt.getTime()
: 0
};

@@ -189,2 +208,4 @@ });

pendingTask.executedAt = new Date();
try

@@ -191,0 +212,0 @@ {

Sorry, the diff of this file is not supported yet