diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9e3aaf9..59718c5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,11 +10,10 @@ jobs: fail-fast: false matrix: node-version: - - 24 - - 20 + - 26 steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v5 + - uses: actions/setup-node@v6 with: node-version: ${{ matrix.node-version }} - run: npm install diff --git a/package.json b/package.json index 9c31e5a..efc25cf 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "sideEffects": false, "engines": { - "node": ">=20" + "node": ">=25" }, "scripts": { "build": "del-cli dist && tsc", diff --git a/source/index.ts b/source/index.ts index 7859e7d..dacd64a 100644 --- a/source/index.ts +++ b/source/index.ts @@ -1,4 +1,3 @@ -import {EventEmitter} from 'eventemitter3'; import pTimeout from 'p-timeout'; import {type Queue, type RunFunction} from './queue.js'; import PriorityQueue from './priority-queue.js'; @@ -13,7 +12,7 @@ type EventName = 'active' | 'idle' | 'empty' | 'add' | 'next' | 'completed' | 'e /** Promise queue with concurrency control. */ -export default class PQueue = PriorityQueue, EnqueueOptionsType extends QueueAddOptions = QueueAddOptions> extends EventEmitter { // eslint-disable-line @typescript-eslint/naming-convention +export default class PQueue = PriorityQueue, EnqueueOptionsType extends QueueAddOptions = QueueAddOptions> extends EventTarget { // eslint-disable-line @typescript-eslint/naming-convention readonly #carryoverIntervalCount: boolean; readonly #isIntervalIgnored: boolean; @@ -201,11 +200,11 @@ export default class PQueue { + this.addEventListener('add', () => { if (this.#queue.size > 0) { this.#scheduleRateLimitUpdate(); } }); - this.on('next', () => { + this.addEventListener('next', () => { this.#scheduleRateLimitUpdate(); }); } @@ -878,7 +877,7 @@ export default class PQueue