Skip to content

Commit 9c92c09

Browse files
committed
Convert all packages to ESM with type: module
BREAKING CHANGE: All packages now use `"type": "module"` and emit ESM output instead of CommonJS. The tsconfig base has been updated to use `module: NodeNext` and `moduleResolution: NodeNext`. Changes include: - Add `"type": "module"` to all publishable package.json files - Replace `main`/`types` with proper `exports` fields - Update tsconfig base to NodeNext module/moduleResolution - Add .js extensions to all relative imports (required by NodeNext) - Fix CommonJS-specific code in proxy package (require -> createRequire) - Align get-uri tsconfig to extend shared base - Add changeset for semver major bump on all packages
1 parent 0b77ac7 commit 9c92c09

36 files changed

Lines changed: 153 additions & 90 deletions

File tree

.changeset/esm-migration.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
"agent-base": major
3+
"http-proxy-agent": major
4+
"https-proxy-agent": major
5+
"proxy-agent": major
6+
"socks-proxy-agent": major
7+
"pac-proxy-agent": major
8+
"pac-resolver": major
9+
"degenerator": major
10+
"get-uri": major
11+
"data-uri-to-buffer": major
12+
"proxy": major
13+
---
14+
15+
Convert to ESM. All packages now use `"type": "module"` and compile to ESM output instead of CommonJS.

packages/agent-base/package.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
{
22
"name": "agent-base",
33
"version": "7.1.4",
4+
"type": "module",
45
"description": "Turn a function into an `http.Agent` instance",
5-
"main": "./dist/index.js",
6-
"types": "./dist/index.d.ts",
6+
"exports": {
7+
"import": {
8+
"types": "./dist/index.d.ts",
9+
"default": "./dist/index.js"
10+
}
11+
},
712
"files": [
813
"dist"
914
],

packages/agent-base/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as http from 'http';
44
import { Agent as HttpsAgent } from 'https';
55
import type { Duplex } from 'stream';
66

7-
export * from './helpers';
7+
export * from './helpers.js';
88

99
interface HttpConnectOpts extends net.TcpNetConnectOpts {
1010
secureEndpoint: false;

packages/data-uri-to-buffer/package.json

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
{
22
"name": "data-uri-to-buffer",
33
"version": "6.0.2",
4+
"type": "module",
45
"description": "Create an ArrayBuffer instance from a Data URI string",
5-
"main": "./dist/index.js",
6-
"types": "./dist/index.d.ts",
76
"exports": {
8-
"node": "./dist/node.js",
9-
"default": "./dist/index.js"
7+
"node": {
8+
"types": "./dist/node.d.ts",
9+
"default": "./dist/node.js"
10+
},
11+
"default": {
12+
"types": "./dist/index.d.ts",
13+
"default": "./dist/index.js"
14+
}
1015
},
1116
"files": [
1217
"dist"

packages/data-uri-to-buffer/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { makeDataUriToBuffer } from './common';
1+
import { makeDataUriToBuffer } from './common.js';
22

3-
export type { ParsedDataURI } from './common';
3+
export type { ParsedDataURI } from './common.js';
44

55
function base64ToArrayBuffer(base64: string) {
66
const chars =

packages/data-uri-to-buffer/src/node.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { makeDataUriToBuffer } from './common';
1+
import { makeDataUriToBuffer } from './common.js';
22

3-
export type { ParsedDataURI } from './common';
3+
export type { ParsedDataURI } from './common.js';
44

55
function nodeBuffertoArrayBuffer(nodeBuf: Buffer): ArrayBuffer {
66
if (nodeBuf.byteLength === nodeBuf.buffer.byteLength) {

packages/degenerator/package.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
{
22
"name": "degenerator",
33
"version": "5.0.1",
4+
"type": "module",
45
"description": "Compiles sync functions into async generator functions",
5-
"main": "./dist/index.js",
6-
"types": "./dist/index.d.ts",
6+
"exports": {
7+
"import": {
8+
"types": "./dist/index.d.ts",
9+
"default": "./dist/index.js"
10+
}
11+
},
712
"files": [
813
"dist"
914
],

packages/degenerator/src/compile.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { types } from 'util';
2-
import { degenerator } from './degenerator';
2+
import { degenerator } from './degenerator.js';
33
import type { Context } from 'vm';
44
import type {
55
QuickJSContext,
66
QuickJSHandle,
77
QuickJSWASMModule,
88
} from '@tootallnate/quickjs-emscripten';
9-
import type { DegeneratorNames } from './degenerator';
9+
import type { DegeneratorNames } from './degenerator.js';
1010

1111
export interface CompileOptions {
1212
names?: DegeneratorNames;

packages/degenerator/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
export * from './degenerator';
2-
export * from './compile';
1+
export * from './degenerator.js';
2+
export * from './compile.js';

packages/get-uri/package.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
{
22
"name": "get-uri",
33
"version": "6.0.5",
4+
"type": "module",
45
"description": "Returns a `stream.Readable` from a URI string",
5-
"main": "./dist/index.js",
6-
"types": "./dist/index.d.ts",
6+
"exports": {
7+
"import": {
8+
"types": "./dist/index.d.ts",
9+
"default": "./dist/index.js"
10+
}
11+
},
712
"files": [
813
"dist"
914
],

0 commit comments

Comments
 (0)