Skip to content

Commit 31caac0

Browse files
committed
Add esm support to shared package
Enabled tslib to prevent emitting helpers with top level `this` which does not exist in es modules. For some reason tslib has different and correct helpers. Commonjs artifacts are moved into cjs folder. Added esm folder near it. package.json routes are created for each module via cherry-pick package. Installing typescript via file protocol breaks yarn install. You should just keep the same version for all packages and it will be hoisted to the root.
1 parent bc30678 commit 31caac0

File tree

4 files changed

+111
-6
lines changed

4 files changed

+111
-6
lines changed

packages/shared/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,18 @@
44
"description": "Globals and shared modules",
55
"main": "src/index.ts",
66
"scripts": {
7-
"build": "tsc -p ."
7+
"build": "tsc -p . --outDir dist/cjs && tsc -p . --module ES6 --outDir dist/esm && cherry-pick --cwd=dist ../src --cjs-dir=cjs --esm-dir=esm"
88
},
99
"publishConfig": {
1010
"directory": "dist"
1111
},
1212
"dependencies": {
1313
"@alloc/types": "^1.2.1",
14-
"fluids": "^0.1.6"
14+
"fluids": "^0.1.6",
15+
"tslib": "^1.11.1"
1516
},
1617
"devDependencies": {
18+
"cherry-pick": "^0.5.0",
1719
"typescript": "3.8.3"
1820
}
1921
}

packages/shared/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"include": ["src"],
33
"exclude": ["**/*.test.ts"],
44
"compilerOptions": {
5+
"importHelpers": true,
56
"allowSyntheticDefaultImports": true,
67
"declaration": true,
78
"esModuleInterop": true,
@@ -14,7 +15,6 @@
1415
"noFallthroughCasesInSwitch": true,
1516
"noUnusedLocals": true,
1617
"noUnusedParameters": true,
17-
"outDir": "dist",
1818
"preserveSymlinks": true,
1919
"sourceMap": true,
2020
"strict": true,

scripts/prepare.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ async function prepare() {
5353
// Entry module overrides
5454
const entryOverrides = {
5555
[`${RS}/shared`]: {
56-
main: 'index.js',
56+
main: 'cjs/index.js',
57+
module: 'esm/index.js',
5758
},
5859
}
5960

yarn.lock

Lines changed: 104 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2449,6 +2449,11 @@
24492449
resolved "https://registry.npmjs.org/@types/node/-/node-13.9.3.tgz#6356df2647de9eac569f9a52eda3480fa9e70b4d"
24502450
integrity sha512-01s+ac4qerwd6RHD+mVbOEsraDHSgUaefQlEdBbUolnQFjKwCr7luvAlEwW1RFojh67u0z4OUTjPn9LEl4zIkA==
24512451

2452+
"@types/normalize-package-data@^2.4.0":
2453+
version "2.4.0"
2454+
resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
2455+
integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
2456+
24522457
"@types/prop-types@*":
24532458
version "15.7.3"
24542459
resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
@@ -3433,6 +3438,17 @@ chardet@^0.7.0:
34333438
resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
34343439
integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
34353440

3441+
cherry-pick@^0.5.0:
3442+
version "0.5.0"
3443+
resolved "https://registry.yarnpkg.com/cherry-pick/-/cherry-pick-0.5.0.tgz#c1d96e592a1a1aa3ac7103fcfdec254e57ae02db"
3444+
integrity sha512-fdr+28SKHk1OI+6+pFOT1Qrw8tDpsyiUVgf08hQvVY/dqy7ztsy4lc7qtgFXViParwJ82ElnlVQ2/hgQjNYcww==
3445+
dependencies:
3446+
chalk "^2.4.2"
3447+
read-pkg-up "^6.0.0"
3448+
rimraf "^2.6.3"
3449+
tiny-glob "^0.2.6"
3450+
yargs "^13.2.4"
3451+
34363452
chownr@^1.1.1, chownr@^1.1.2:
34373453
version "1.1.4"
34383454
resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
@@ -5195,6 +5211,11 @@ globals@^11.1.0:
51955211
resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
51965212
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
51975213

5214+
globalyzer@^0.1.0:
5215+
version "0.1.4"
5216+
resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.4.tgz#bc8e273afe1ac7c24eea8def5b802340c5cc534f"
5217+
integrity sha512-LeguVWaxgHN0MNbWC6YljNMzHkrCny9fzjmEUdnF1kQ7wATFD1RHFRqA1qxaX2tgxGENlcxjOflopBwj3YZiXA==
5218+
51985219
globby@^8.0.1:
51995220
version "8.0.2"
52005221
resolved "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d"
@@ -5208,6 +5229,11 @@ globby@^8.0.1:
52085229
pify "^3.0.0"
52095230
slash "^1.0.0"
52105231

5232+
globrex@^0.1.1:
5233+
version "0.1.2"
5234+
resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
5235+
integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
5236+
52115237
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.3:
52125238
version "4.2.3"
52135239
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
@@ -6671,6 +6697,11 @@ levn@~0.3.0:
66716697
prelude-ls "~1.1.2"
66726698
type-check "~0.3.2"
66736699

6700+
lines-and-columns@^1.1.6:
6701+
version "1.1.6"
6702+
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
6703+
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
6704+
66746705
load-json-file@^1.0.0:
66756706
version "1.1.0"
66766707
resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -8154,6 +8185,16 @@ parse-json@^4.0.0:
81548185
error-ex "^1.3.1"
81558186
json-parse-better-errors "^1.0.1"
81568187

8188+
parse-json@^5.0.0:
8189+
version "5.0.0"
8190+
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f"
8191+
integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==
8192+
dependencies:
8193+
"@babel/code-frame" "^7.0.0"
8194+
error-ex "^1.3.1"
8195+
json-parse-better-errors "^1.0.1"
8196+
lines-and-columns "^1.1.6"
8197+
81578198
parse-node-version@^1.0.0:
81588199
version "1.0.1"
81598200
resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
@@ -8854,6 +8895,15 @@ read-pkg-up@^3.0.0:
88548895
find-up "^2.0.0"
88558896
read-pkg "^3.0.0"
88568897

8898+
read-pkg-up@^6.0.0:
8899+
version "6.0.0"
8900+
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-6.0.0.tgz#da75ce72762f2fa1f20c5a40d4dd80c77db969e3"
8901+
integrity sha512-odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw==
8902+
dependencies:
8903+
find-up "^4.0.0"
8904+
read-pkg "^5.1.1"
8905+
type-fest "^0.5.0"
8906+
88578907
read-pkg@^1.0.0:
88588908
version "1.1.0"
88598909
resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
@@ -8890,6 +8940,16 @@ read-pkg@^4.0.1:
88908940
parse-json "^4.0.0"
88918941
pify "^3.0.0"
88928942

8943+
read-pkg@^5.1.1:
8944+
version "5.2.0"
8945+
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
8946+
integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
8947+
dependencies:
8948+
"@types/normalize-package-data" "^2.4.0"
8949+
normalize-package-data "^2.5.0"
8950+
parse-json "^5.0.0"
8951+
type-fest "^0.6.0"
8952+
88938953
read@1, read@~1.0.1:
88948954
version "1.0.7"
88958955
resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
@@ -10251,6 +10311,14 @@ tiny-emitter@^2.1.0:
1025110311
resolved "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
1025210312
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
1025310313

10314+
tiny-glob@^0.2.6:
10315+
version "0.2.6"
10316+
resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.6.tgz#9e056e169d9788fe8a734dfa1ff02e9b92ed7eda"
10317+
integrity sha512-A7ewMqPu1B5PWwC3m7KVgAu96Ch5LA0w4SnEN/LbDREj/gAD0nPWboRbn8YoP9ISZXqeNAlMvKSKoEuhcfK3Pw==
10318+
dependencies:
10319+
globalyzer "^0.1.0"
10320+
globrex "^0.1.1"
10321+
1025410322
tmp@^0.0.33:
1025510323
version "0.0.33"
1025610324
resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@@ -10360,9 +10428,9 @@ [email protected]:
1036010428
semver "^5.5"
1036110429
yargs-parser "10.x"
1036210430

10363-
tslib@^1.9.0, tslib@^1.9.3:
10431+
tslib@^1.11.1, tslib@^1.9.0, tslib@^1.9.3:
1036410432
version "1.11.1"
10365-
resolved "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
10433+
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
1036610434
integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
1036710435

1036810436
tunnel-agent@^0.6.0:
@@ -10394,6 +10462,16 @@ type-fest@^0.11.0:
1039410462
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
1039510463
integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
1039610464

10465+
type-fest@^0.5.0:
10466+
version "0.5.2"
10467+
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2"
10468+
integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==
10469+
10470+
type-fest@^0.6.0:
10471+
version "0.6.0"
10472+
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
10473+
integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
10474+
1039710475
type-fest@^0.7.1:
1039810476
version "0.7.1"
1039910477
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48"
@@ -10948,6 +11026,14 @@ yargs-parser@^11.1.1:
1094811026
camelcase "^5.0.0"
1094911027
decamelize "^1.2.0"
1095011028

11029+
yargs-parser@^13.1.2:
11030+
version "13.1.2"
11031+
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
11032+
integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
11033+
dependencies:
11034+
camelcase "^5.0.0"
11035+
decamelize "^1.2.0"
11036+
1095111037
yargs-parser@^15.0.1:
1095211038
version "15.0.1"
1095311039
resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3"
@@ -10989,6 +11075,22 @@ yargs@^12.0.1:
1098911075
y18n "^3.2.1 || ^4.0.0"
1099011076
yargs-parser "^11.1.1"
1099111077

11078+
yargs@^13.2.4:
11079+
version "13.3.2"
11080+
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
11081+
integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
11082+
dependencies:
11083+
cliui "^5.0.0"
11084+
find-up "^3.0.0"
11085+
get-caller-file "^2.0.1"
11086+
require-directory "^2.1.1"
11087+
require-main-filename "^2.0.0"
11088+
set-blocking "^2.0.0"
11089+
string-width "^3.0.0"
11090+
which-module "^2.0.0"
11091+
y18n "^4.0.0"
11092+
yargs-parser "^13.1.2"
11093+
1099211094
yargs@^14.0.0:
1099311095
version "14.2.3"
1099411096
resolved "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414"

0 commit comments

Comments
 (0)