Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit b2600d5

Browse filesBrowse files
committed
Require Node.js 20
1 parent 81cbae2 commit b2600d5
Copy full SHA for b2600d5

File tree

Expand file treeCollapse file tree

8 files changed

+1716
-1725
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

8 files changed

+1716
-1725
lines changed
Open diff view settings
Collapse file

‎.github/workflows/main.yml‎

Copy file name to clipboardExpand all lines: .github/workflows/main.yml
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ jobs:
1010
fail-fast: false
1111
matrix:
1212
node-version:
13+
- 24
1314
- 20
14-
- 18
1515
steps:
16-
- uses: actions/checkout@v4
17-
- uses: actions/setup-node@v4
16+
- uses: actions/checkout@v5
17+
- uses: actions/setup-node@v5
1818
with:
1919
node-version: ${{ matrix.node-version }}
2020
- run: npm install
Collapse file

‎bench.ts‎

Copy file name to clipboardExpand all lines: bench.ts
+5-5Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import Benchmark, {type Deferred, type Event} from 'benchmark';
22
import PQueue from './source/index.js';
33

4-
const suite = new Benchmark.Suite();
4+
const suite = new Benchmark.Suite() as Benchmark.Suite;
55

66
// Benchmark typings aren't up to date, let's help out manually
77
type Resolvable = Deferred & {resolve: () => void};
88

9-
suite
9+
(suite as any)
1010
.add('baseline', {
1111
defer: true,
1212

@@ -57,11 +57,11 @@ suite
5757
},
5858
})
5959
.on('cycle', (event: Event) => {
60-
console.log(String(event.target));
60+
console.log(String(event.target as any));
6161
})
62-
.on('complete', function () {
62+
.on('complete', function (this: any) {
6363
// @ts-expect-error benchmark typings incorrect
64-
console.log(`Fastest is ${(this as Benchmark.Suite).filter('fastest').map('name') as string}`);
64+
console.log(`Fastest is ${this.filter('fastest').map('name') as string}`);
6565
})
6666
.run({
6767
async: true,
Collapse file

‎package.json‎

Copy file name to clipboardExpand all lines: package.json
+18-26Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
},
1313
"sideEffects": false,
1414
"engines": {
15-
"node": ">=18"
15+
"node": ">=20"
1616
},
1717
"scripts": {
1818
"build": "del-cli dist && tsc",
19-
"test": "xo && ava && del-cli dist && tsc && tsd",
19+
"test": "xo && node --import=tsx/esm --test test/*.ts && del-cli dist && tsc && tsd",
2020
"bench": "node --import=tsx/esm bench.ts",
2121
"prepublishOnly": "del-cli dist && tsc"
2222
},
@@ -48,42 +48,34 @@
4848
],
4949
"dependencies": {
5050
"eventemitter3": "^5.0.1",
51-
"p-timeout": "^6.1.2"
51+
"p-timeout": "^7.0.0"
5252
},
5353
"devDependencies": {
54-
"@sindresorhus/tsconfig": "^5.0.0",
54+
"@sindresorhus/tsconfig": "^8.0.1",
5555
"@types/benchmark": "^2.1.5",
56-
"@types/node": "^20.10.4",
57-
"ava": "^5.3.1",
56+
"@types/node": "^24.5.1",
5857
"benchmark": "^2.1.4",
59-
"del-cli": "^5.1.0",
58+
"del-cli": "^6.0.0",
6059
"delay": "^6.0.0",
6160
"in-range": "^3.0.0",
62-
"p-defer": "^4.0.0",
63-
"random-int": "^3.0.0",
61+
"p-defer": "^4.0.1",
62+
"random-int": "^3.1.0",
6463
"time-span": "^5.1.0",
65-
"tsd": "^0.29.0",
66-
"tsx": "^4.6.2",
67-
"typescript": "^5.3.3",
68-
"xo": "^0.56.0"
69-
},
70-
"ava": {
71-
"workerThreads": false,
72-
"files": [
73-
"test/**"
74-
],
75-
"extensions": {
76-
"ts": "module"
77-
},
78-
"nodeArguments": [
79-
"--import=tsx/esm"
80-
]
64+
"tsd": "^0.33.0",
65+
"tsx": "^4.20.5",
66+
"typescript": "^5.9.2",
67+
"xo": "^1.2.2"
8168
},
8269
"xo": {
8370
"rules": {
8471
"@typescript-eslint/member-ordering": "off",
8572
"@typescript-eslint/no-floating-promises": "off",
86-
"@typescript-eslint/no-invalid-void-type": "off"
73+
"@typescript-eslint/no-unsafe-call": "off",
74+
"@typescript-eslint/no-unsafe-assignment": "off",
75+
"@typescript-eslint/no-unsafe-return": "off",
76+
"@typescript-eslint/no-unsafe-argument": "off",
77+
"@typescript-eslint/prefer-promise-reject-errors": "off",
78+
"ava/no-import-test-files": "off"
8779
}
8880
}
8981
}
Collapse file

‎source/index.ts‎

Copy file name to clipboardExpand all lines: source/index.ts
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type EventName = 'active' | 'idle' | 'empty' | 'add' | 'next' | 'completed' | 'e
1313
/**
1414
Promise queue with concurrency control.
1515
*/
16-
export default class PQueue<QueueType extends Queue<RunFunction, EnqueueOptionsType> = PriorityQueue, EnqueueOptionsType extends QueueAddOptions = QueueAddOptions> extends EventEmitter<EventName> { // eslint-disable-line @typescript-eslint/naming-convention, unicorn/prefer-event-target
16+
export default class PQueue<QueueType extends Queue<RunFunction, EnqueueOptionsType> = PriorityQueue, EnqueueOptionsType extends QueueAddOptions = QueueAddOptions> extends EventEmitter<EventName> { // eslint-disable-line @typescript-eslint/naming-convention
1717
readonly #carryoverConcurrencyCount: boolean;
1818

1919
readonly #isIntervalIgnored: boolean;
Collapse file

‎source/priority-queue.ts‎

Copy file name to clipboardExpand all lines: source/priority-queue.ts
+2-7Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,7 @@ export default class PriorityQueue implements Queue<RunFunction, PriorityQueueOp
2626
return;
2727
}
2828

29-
const index = lowerBound(
30-
this.#queue, element,
31-
(a: Readonly<PriorityQueueOptions>, b: Readonly<PriorityQueueOptions>) => b.priority! - a.priority!,
32-
);
29+
const index = lowerBound(this.#queue, element, (a: Readonly<PriorityQueueOptions>, b: Readonly<PriorityQueueOptions>) => b.priority! - a.priority!);
3330
this.#queue.splice(index, 0, element);
3431
}
3532

@@ -49,9 +46,7 @@ export default class PriorityQueue implements Queue<RunFunction, PriorityQueueOp
4946
}
5047

5148
filter(options: Readonly<Partial<PriorityQueueOptions>>): RunFunction[] {
52-
return this.#queue.filter(
53-
(element: Readonly<PriorityQueueOptions>) => element.priority === options.priority,
54-
).map((element: Readonly<{run: RunFunction}>) => element.run);
49+
return this.#queue.filter((element: Readonly<PriorityQueueOptions>) => element.priority === options.priority).map((element: Readonly<{run: RunFunction}>) => element.run);
5550
}
5651

5752
get size(): number {

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.