diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 346585c..beb1265 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,8 +10,7 @@ jobs: fail-fast: false matrix: node-version: - - 20 - - 18 + - 25 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 diff --git a/package.json b/package.json index 543638c..bbd8ccb 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "sideEffects": false, "engines": { - "node": ">=18" + "node": ">=25" }, "scripts": { "build": "del-cli dist && tsc", diff --git a/source/index.ts b/source/index.ts index 9a16cdb..85d57ec 100644 --- a/source/index.ts +++ b/source/index.ts @@ -1,4 +1,3 @@ -import {EventEmitter} from 'eventemitter3'; import pTimeout, {TimeoutError} 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, unicorn/prefer-event-target +export default class PQueue = PriorityQueue, EnqueueOptionsType extends QueueAddOptions = QueueAddOptions> extends EventTarget { // eslint-disable-line @typescript-eslint/naming-convention readonly #carryoverConcurrencyCount: boolean; readonly #isIntervalIgnored: boolean; @@ -99,7 +98,7 @@ export default class PQueue { test('should be an event emitter', t => { const queue = new PQueue(); - t.true(queue instanceof EventEmitter); + t.true(queue instanceof EventTarget); }); test('should emit active event per item', async t => { @@ -841,7 +840,7 @@ test('should emit active event per item', async t => { const queue = new PQueue(); let eventCount = 0; - queue.on('active', () => { + queue.addEventListener('active', () => { eventCount++; }); @@ -858,7 +857,7 @@ test('should emit idle event when idle', async t => { const queue = new PQueue({concurrency: 1}); let timesCalled = 0; - queue.on('idle', () => { + queue.addEventListener('idle', () => { timesCalled++; }); @@ -897,7 +896,7 @@ test('should emit empty event when empty', async t => { const queue = new PQueue({concurrency: 1}); let timesCalled = 0; - queue.on('empty', () => { + queue.addEventListener('empty', () => { timesCalled++; }); @@ -929,7 +928,7 @@ test('should emit add event when adding task', async t => { const queue = new PQueue({concurrency: 1}); let timesCalled = 0; - queue.on('add', () => { + queue.addEventListener('add', () => { timesCalled++; }); @@ -973,7 +972,7 @@ test('should emit next event when completing task', async t => { const queue = new PQueue({concurrency: 1}); let timesCalled = 0; - queue.on('next', () => { + queue.addEventListener('next', () => { timesCalled++; }); @@ -1018,10 +1017,10 @@ test('should emit completed / error events', async t => { let errorEvents = 0; let completedEvents = 0; - queue.on('error', () => { + queue.addEventListener('error', () => { errorEvents++; }); - queue.on('completed', () => { + queue.addEventListener('completed', () => { completedEvents++; });