Skip to content

Commit adf2e33

Browse files
authored
Workaround TypeScript resolution bug (#7)
* Workaround TypeScript resolution bug * Add entry * Update pages build config
1 parent 20eac5b commit adf2e33

14 files changed

+55
-51
lines changed

Diff for: CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Fixed
11+
12+
- Updated `exports` field to workaround [TypeScript resolution bug](https://github.com/microsoft/TypeScript/issues/50762), by [@compulim](https://github.com/compulim), in PR [#7](https://github.com/compulim/message-port-rpc/pull/7)
13+
1014
## [1.0.0] - 2023-05-14
1115

1216
### Added

Diff for: packages/message-port-rpc/babel.jest.config.json

+2-4
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@
55
"@babel/preset-env",
66
{
77
"modules": "commonjs",
8-
"targets": {
9-
"ie": "11"
10-
}
8+
"targets": { "node": "16" }
119
}
1210
]
1311
],
14-
"sourceMaps": "inline"
12+
"sourceMaps": true
1513
}

Diff for: packages/message-port-rpc/package.json

+24-15
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,34 @@
77
],
88
"exports": {
99
".": {
10-
"import": "./lib/esmodules/index.js",
11-
"require": "./lib/commonjs/index.js",
12-
"types": "./lib/types/index.d.ts"
10+
"import": {
11+
"types": "./lib/esmodules-types/index.d.ts",
12+
"default": "./lib/esmodules/index.js"
13+
},
14+
"require": {
15+
"types": "./lib/commonjs-types/index.d.ts",
16+
"default": "./lib/commonjs/index.js"
17+
}
1318
},
1419
"./messagePortRPC": {
15-
"import": "./lib/esmodules/messagePortRPC.js",
16-
"require": "./lib/commonjs/messagePortRPC.js",
17-
"types": "./lib/types/messagePortRPC.d.ts"
20+
"import": {
21+
"types": "./lib/esmodules-types/messagePortRPC.d.ts",
22+
"default": "./lib/esmodules/messagePortRPC.js"
23+
},
24+
"require": {
25+
"types": "./lib/commonjs-types/messagePortRPC.d.ts",
26+
"default": "./lib/commonjs/messagePortRPC.js"
27+
}
1828
}
1929
},
2030
"main": "./lib/commonjs/index.js",
21-
"typings": "./lib/types/index.d.ts",
31+
"typings": "./lib/commonjs-types/index.d.ts",
2232
"scripts": {
23-
"build": "npm run build:babel && npm run build:typescript",
24-
"build:babel": "npm run build:babel:commonjs && npm run build:babel:esmodules",
33+
"build": "npm run build:babel:commonjs && npm run build:babel:esmodules && npm run build:typescript:commonjs && npm run build:typescript:esmodules",
2534
"build:babel:commonjs": "babel src --config-file ./babel.commonjs.config.json --extensions .ts,.tsx --out-dir ./lib/commonjs/",
2635
"build:babel:esmodules": "babel src --config-file ./babel.esmodules.config.json --extensions .ts,.tsx --out-dir ./lib/esmodules/",
27-
"build:typescript": "tsc --project ./src/tsconfig.declaration.json",
36+
"build:typescript:commonjs": "tsc --project ./src/tsconfig.declaration.commonjs.json",
37+
"build:typescript:esmodules": "tsc --project ./src/tsconfig.declaration.esmodules.json",
2838
"bump": "npm run bump:prod && npm run bump:dev && npm run bump:auditfix && npm run bump:babel",
2939
"bump:auditfix": "npm audit fix || exit 0",
3040
"bump:babel": "npm run bump:babel:commonjs && npm run bump:babel:esmodules",
@@ -35,13 +45,12 @@
3545
"bump:prod": "if [ `cat package.json | jq -r '(.dependencies // {}) | length'` -ne 0 ]; then npm install --save-exact $(cat package.json | jq -r '(.pinDependencies // {}) as $p | ((.dependencies // {}) | keys) | map(. + \"@\" + ($p[.] // [\"latest\"])[0]) | .[]'); fi",
3646
"postbump": "cat package.json | jq '. + (.dependencies = (((.dependencies // {}) + (.localPeerDependencies // {})) | to_entries | sort_by(.key) | from_entries)) | (.devDependencies = (((.devDependencies // {}) + (.localPeerDevDependencies // {})) | to_entries | sort_by(.key) | from_entries))' > package-temp.json && mv package-temp.json package.json",
3747
"prebump": "cat package.json | jq '(((.localPeerDependencies // {}) | keys | map([\"dependencies\", .])) + ((.localPeerDevDependencies // {}) | keys | map([\"devDependencies\", .]))) as $localPeerPaths | delpaths($localPeerPaths)' > package-temp.json && mv package-temp.json package.json",
38-
"precommit": "eslint ./src/",
48+
"precommit": "npm run precommit:eslint && npm run precommit:typescript",
49+
"precommit:eslint": "eslint ./src/",
50+
"precommit:typescript": "tsc --noEmit --project ./src/tsconfig.json",
3951
"prepack": "cp ../../CHANGELOG.md . && cp ../../LICENSE . && cp ../../README.md .",
4052
"start": "esbuild --bundle --outfile=./public/main.js --servedir=./public --sourcemap ./scenarios/index.jsx",
41-
"jest": "jest",
42-
"test": "npm run test:jest && npm run test:typescript",
43-
"test:jest": "npm run jest",
44-
"test:typescript": "tsc --project ./src/tsconfig.test.json"
53+
"test": "jest"
4554
},
4655
"repository": {
4756
"type": "git",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"compilerOptions": {
3+
"declarationDir": "../lib/commonjs-types/",
4+
"module": "CommonJS"
5+
},
6+
"extends": "./tsconfig.declaration.json"
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"compilerOptions": {
3+
"declarationDir": "../lib/esmodules-types/",
4+
"module": "ESNext"
5+
},
6+
"extends": "./tsconfig.declaration.json"
7+
}

Diff for: packages/message-port-rpc/src/tsconfig.declaration.json

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"compilerOptions": {
33
"declaration": true,
4-
"declarationDir": "../lib/types/",
54
"emitDeclarationOnly": true
65
},
76
"exclude": ["**/*.spec.*", "**/*.test.*", "__test__/**/*"],

Diff for: packages/message-port-rpc/src/tsconfig.json

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
"compilerOptions": {
33
"esModuleInterop": true,
44
"jsx": "react",
5-
"moduleResolution": "nodenext",
6-
"skipLibCheck": true, // "@jest/environment" has internal conflicts on their types
7-
"strict": true,
8-
"target": "ESNext"
5+
"module": "NodeNext",
6+
"moduleResolution": "NodeNext",
7+
"strict": true
98
}
109
}

Diff for: packages/message-port-rpc/src/tsconfig.test.json

-8
This file was deleted.

Diff for: packages/pages/.gitignore

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
/node_modules/
22
/package-lock.json
3-
/public/static/css/main.css
4-
/public/static/js/main.js
3+
/public/static/

Diff for: packages/pages/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33
"version": "0.0.0-0",
44
"description": "",
55
"scripts": {
6-
"build": "npm run build:typescript && npm run build:esbuild",
7-
"build:esbuild": "esbuild --bundle --entry-names=[dir]/[ext]/main --minify --outdir=./public/static/ --sourcemap ./src/app/index.tsx ./src/iframe/index.tsx ./src/worker/index.ts",
8-
"build:typescript": "tsc --project ./src/tsconfig.json",
6+
"build": "esbuild --bundle --entry-names=[name]/[ext]/main --minify --outdir=./public/static/ --sourcemap app=./src/app/index.tsx iframe=./src/iframe/index.tsx worker=./src/worker/index.ts",
97
"bump": "npm run bump:prod && npm run bump:dev && npm run bump:auditfix",
108
"bump:auditfix": "npm audit fix || exit 0",
119
"bump:dev": "if [ `cat package.json | jq -r '(.devDependencies // {}) | length'` -ne 0 ]; then npm install $(cat package.json | jq -r '(.pinDependencies // {}) as $p | ((.devDependencies // {}) | keys) | map(. + \"@\" + ($p[.] // [\"latest\"])[0]) | .[]'); fi",
1210
"bump:prod": "if [ `cat package.json | jq -r '(.dependencies // {}) | length'` -ne 0 ]; then npm install --save-exact $(cat package.json | jq -r '(.pinDependencies // {}) as $p | ((.dependencies // {}) | keys) | map(. + \"@\" + ($p[.] // [\"latest\"])[0]) | .[]'); fi",
1311
"postbump": "cat package.json | jq '. + (.dependencies = (((.dependencies // {}) + (.localPeerDependencies // {})) | to_entries | sort_by(.key) | from_entries)) | (.devDependencies = (((.devDependencies // {}) + (.localPeerDevDependencies // {})) | to_entries | sort_by(.key) | from_entries))' > package-temp.json && mv package-temp.json package.json",
1412
"prebump": "cat package.json | jq '(((.localPeerDependencies // {}) | keys | map([\"dependencies\", .])) + ((.localPeerDevDependencies // {}) | keys | map([\"devDependencies\", .]))) as $localPeerPaths | delpaths($localPeerPaths)' > package-temp.json && mv package-temp.json package.json",
13+
"precommit": "npm run precommit:typescript",
14+
"precommit:typescript": "tsc --project ./src/tsconfig.json",
1515
"reinstall": "rm -r node_modules package-lock.json && npm install",
16-
"start": "npm run build:esbuild -- --servedir=./public"
16+
"start": "npm run build -- --servedir=./public"
1717
},
1818
"author": "William Wong (https://github.com/compulim)",
1919
"license": "MIT",

Diff for: packages/pages/public/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<title>message-port-rpc demo</title>
5-
<link href="./static/css/main.css" rel="stylesheet" type="text/css" />
5+
<link href="./static/app/css/main.css" rel="stylesheet" type="text/css" />
66
</head>
77
<body>
88
<main></main>

Diff for: packages/pages/public/static/iframe/js/main.js

-1
This file was deleted.

Diff for: packages/pages/public/static/worker/js/main.js

-8
This file was deleted.

Diff for: packages/pages/src/tsconfig.json

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
"esModuleInterop": true,
44
"jsx": "react",
55
"lib": ["DOM", "ESNext"],
6-
"moduleResolution": "nodenext",
6+
"moduleResolution": "Bundler",
77
"noEmit": true,
88
"strict": true,
99
"target": "ESNext"
10-
},
11-
"exclude": ["**/*.spec.*", "**/*.test.*"]
10+
}
1211
}

0 commit comments

Comments
 (0)