Skip to content

Commit 0562f4c

Browse files
committed
Upgrade to AVA 4 and switch to ES modules
1 parent 0db80e4 commit 0562f4c

File tree

8 files changed

+18
-38
lines changed

8 files changed

+18
-38
lines changed

.xo-config.cjs

Lines changed: 0 additions & 5 deletions
This file was deleted.

README.md

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,17 @@
11
# @ava/get-port
22

3-
Experimental AVA plugin which works like [`get-port`](https://github.com/sindresorhus/get-port), but ensures the port is locked across all test files.
3+
AVA 4 plugin which works like [`get-port`](https://github.com/sindresorhus/get-port), but ensures the port is locked across all test files.
44

55
Install this as a development dependency alongside AVA itself:
66

77
```console
88
npm install --save-dev @ava/get-port
99
```
1010

11-
Then make sure you've enabled the shared workers experiment:
12-
13-
`ava.config.js`:
14-
15-
```js
16-
export default {
17-
nonSemVerExperiments: {
18-
sharedWorkers: true
19-
}
20-
};
21-
```
22-
2311
## Usage
2412

2513
```ts
26-
const {default: getPort} = require('@ava/get-port');
14+
import getPort from '@ava/get-port';
2715

2816
test.before('get port', async t => {
2917
t.context.port = await getPort();

ava.config.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
export default { // eslint-disable-line import/no-anonymous-default-export
22
files: ['!dist/**'],
3-
nonSemVerExperiments: {
4-
sharedWorkers: true,
5-
},
63
typescript: {
4+
compile: false,
75
rewritePaths: {
86
'test/': 'dist/test/',
97
},

package.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88
"files": [
99
"dist/source"
1010
],
11-
"main": "dist/source",
11+
"type": "module",
12+
"exports": {
13+
".": "./dist/source/index.js"
14+
},
1215
"types": "dist/source/index.d.ts",
1316
"scripts": {
1417
"build": "del-cli dist && tsc",
@@ -26,17 +29,17 @@
2629
"repository": "avajs/get-port",
2730
"license": "MIT",
2831
"devDependencies": {
29-
"@ava/typescript": "^1.1.1",
30-
"@sindresorhus/tsconfig": "^0.7.0",
31-
"ava": "^3.13.0",
32+
"@ava/typescript": "^3.0.0",
33+
"@sindresorhus/tsconfig": "^2.0.0",
34+
"ava": "4.0.0-rc.1",
3235
"c8": "^7.10.0",
3336
"del-cli": "^4.0.1",
3437
"tsd": "^0.18.0",
3538
"typescript": "^4.4.4",
3639
"xo": "^0.46.4"
3740
},
3841
"dependencies": {
39-
"@ava/cooperate": "^0.1.0"
42+
"@ava/cooperate": "^1.0.0"
4043
},
4144
"peerDependencies": {
4245
"ava": "*"

source/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import crypto from 'node:crypto';
22
import net from 'node:net';
33
import {SharedContext} from '@ava/cooperate';
44

5-
const context = new SharedContext(__filename);
5+
const context = new SharedContext(import.meta.url);
66

77
// Reserve a range of 16 addresses at a random offset.
88
const reserveRange = async (): Promise<number[]> => {

test-d/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import {expectError} from 'tsd';
2-
import getPort from '..';
2+
import getPort from '../source/index.js';
33

44
expectError(await getPort({port: 1024}));

test/test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import net from 'node:net';
22
import {promisify} from 'node:util';
33
import test from 'ava';
4-
import getPort from '../source';
4+
import getPort from '../source/index.js';
55

66
test('gets up to 16 ports in a block', async t => {
77
const first = await getPort();
@@ -28,8 +28,9 @@ test('port can be bound', async t => {
2828
t.teardown(() => server.close());
2929

3030
const port = await getPort();
31-
await promisify(server.listen.bind(server))(port);
32-
t.is((server.address() as any).port, port);
31+
const listen: (port: number) => Promise<void> = promisify(server.listen.bind(server));
32+
await listen(port);
33+
t.is((server.address() as net.AddressInfo).port, port);
3334
});
3435

3536
test('can get ports simultaneously', async t => {

tsconfig.json

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
{
2-
"extends": "@sindresorhus/tsconfig",
2+
"extends": "@sindresorhus/tsconfig/tsconfig.json",
33
"compilerOptions": {
44
"outDir": "dist",
5-
"target": "es2019", // Node.js 12
6-
"lib": [
7-
"es2019"
8-
],
9-
"esModuleInterop": true,
105
"sourceMap": true
116
},
127
"include": [

0 commit comments

Comments
 (0)