Skip to content
This repository was archived by the owner on Feb 3, 2024. It is now read-only.

Commit 3f59d56

Browse files
committed
create a pure version with esm, cjs, and iife builds
1 parent 9a142c3 commit 3f59d56

4 files changed

Lines changed: 148 additions & 6 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const execa = require('execa')
2+
3+
const outputs = [
4+
{ entry: 'src/index.ts', formats: ['iife'] },
5+
{ entry: 'src/pure.ts', formats: ['cjs', 'esm', 'iife'] },
6+
]
7+
8+
const run = async () => {
9+
for (const output of outputs) {
10+
for (const format of output.formats) {
11+
const outputExtension =
12+
output.entry !== 'src/index.ts' ? `.${format}` : ``
13+
const outputFilename = `dist/${output.entry
14+
.replace('src/', '')
15+
.replace('.ts', '')}${outputExtension}.js`
16+
await execa('esbuild', [
17+
'--bundle',
18+
output.entry,
19+
'--platform=browser',
20+
`--outfile=${outputFilename}`,
21+
`--format=${format}`,
22+
'--minify',
23+
'--sourcemap',
24+
])
25+
}
26+
}
27+
}
28+
29+
run()

packages/perfect-dark-mode/package.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@
1313
},
1414
"license": "MIT",
1515
"author": "Dylan Vann <dylan@dylanvann.com> (https://dylanvann.com)",
16-
"main": "dist/index.js",
17-
"typings": "dist/index.d.ts",
16+
"main": "dist/pure.cjs.js",
17+
"module": "dist/pure.esm.js",
18+
"types": "dist/pure.d.ts",
19+
"sideEffects": "false",
1820
"files": [
1921
"dist"
2022
],
2123
"scripts": {
2224
"build": "run-p build:ts build:js",
23-
"build:js": "esbuild --bundle src/index.ts --platform=browser --outdir=dist --format=iife --minify --sourcemap",
25+
"build:js": "node build.js",
2426
"build:ts": "tsc"
2527
},
2628
"prettier": {
@@ -30,6 +32,7 @@
3032
},
3133
"devDependencies": {
3234
"cpx": "^1.5.0",
35+
"execa": "^4.0.3",
3336
"jstransformer-markdown-it": "^2.1.0",
3437
"npm-run-all": "^4.1.5",
3538
"pug": "^3.0.0",
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { PerfectDarkMode } from './createPerfectDarkMode'
2+
export * from './createPerfectDarkMode'
3+
4+
declare global {
5+
interface Window {
6+
__pdm__: PerfectDarkMode
7+
}
8+
}

yarn.lock

Lines changed: 105 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -939,6 +939,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
939939
shebang-command "^1.2.0"
940940
which "^1.2.9"
941941

942+
cross-spawn@^7.0.0:
943+
version "7.0.3"
944+
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
945+
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
946+
dependencies:
947+
path-key "^3.1.0"
948+
shebang-command "^2.0.0"
949+
which "^2.0.1"
950+
942951
css-color-names@0.0.4, css-color-names@^0.0.4:
943952
version "0.0.4"
944953
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
@@ -1276,12 +1285,12 @@ es-to-primitive@^1.2.1:
12761285
is-date-object "^1.0.1"
12771286
is-symbol "^1.0.2"
12781287

1279-
esbuild-linux-64@^0.7.15:
1288+
esbuild-linux-64@^0.7.14, esbuild-linux-64@^0.7.15:
12801289
version "0.7.15"
12811290
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.7.15.tgz#7a1a0d959d432f6ab94a62bb36c5c8c49c77bc05"
12821291
integrity sha512-eksVv0DPf+s9/OJLRPBqiOnUZCIHHlY0jQ1nrKipbrKb0QhyopP8RXRHKi7MhDjMtYUXxCGrretu01B2ygjF1g==
12831292

1284-
esbuild@^0.7.15:
1293+
esbuild@^0.7.14, esbuild@^0.7.15:
12851294
version "0.7.15"
12861295
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.7.15.tgz#b50fe68fa12f41f42afab1c49a2b4524de5b6431"
12871296
integrity sha512-tgvd7miwyQVAzlDIcrs9vwoVEL33NmDRggTwKSkcdTj25BOfSWoIUuFXG4vvHRQTkJDk2uHJSi7bhBdPmMzodA==
@@ -1345,6 +1354,21 @@ execa@^1.0.0:
13451354
signal-exit "^3.0.0"
13461355
strip-eof "^1.0.0"
13471356

1357+
execa@^4.0.3:
1358+
version "4.0.3"
1359+
resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2"
1360+
integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==
1361+
dependencies:
1362+
cross-spawn "^7.0.0"
1363+
get-stream "^5.0.0"
1364+
human-signals "^1.1.1"
1365+
is-stream "^2.0.0"
1366+
merge-stream "^2.0.0"
1367+
npm-run-path "^4.0.0"
1368+
onetime "^5.1.0"
1369+
signal-exit "^3.0.2"
1370+
strip-final-newline "^2.0.0"
1371+
13481372
expand-brackets@^0.1.4:
13491373
version "0.1.5"
13501374
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
@@ -1587,6 +1611,13 @@ get-stream@^4.0.0:
15871611
dependencies:
15881612
pump "^3.0.0"
15891613

1614+
get-stream@^5.0.0:
1615+
version "5.2.0"
1616+
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
1617+
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
1618+
dependencies:
1619+
pump "^3.0.0"
1620+
15901621
get-value@^2.0.3, get-value@^2.0.6:
15911622
version "2.0.6"
15921623
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -1748,6 +1779,11 @@ html-tags@^3.1.0:
17481779
resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140"
17491780
integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
17501781

1782+
human-signals@^1.1.1:
1783+
version "1.1.1"
1784+
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
1785+
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
1786+
17511787
ignore@^5.1.4:
17521788
version "5.1.8"
17531789
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
@@ -2060,6 +2096,11 @@ is-stream@^1.1.0:
20602096
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
20612097
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
20622098

2099+
is-stream@^2.0.0:
2100+
version "2.0.0"
2101+
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
2102+
integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
2103+
20632104
is-svg@^3.0.0:
20642105
version "3.0.0"
20652106
resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
@@ -2354,6 +2395,11 @@ memorystream@^0.3.1:
23542395
resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
23552396
integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI=
23562397

2398+
merge-stream@^2.0.0:
2399+
version "2.0.0"
2400+
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
2401+
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
2402+
23572403
merge2@^1.3.0:
23582404
version "1.4.1"
23592405
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
@@ -2434,6 +2480,11 @@ mime-types@~2.1.24:
24342480
dependencies:
24352481
mime-db "1.44.0"
24362482

2483+
mimic-fn@^2.1.0:
2484+
version "2.1.0"
2485+
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
2486+
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
2487+
24372488
minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4:
24382489
version "3.0.4"
24392490
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -2574,6 +2625,13 @@ npm-run-path@^2.0.0:
25742625
dependencies:
25752626
path-key "^2.0.0"
25762627

2628+
npm-run-path@^4.0.0:
2629+
version "4.0.1"
2630+
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
2631+
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
2632+
dependencies:
2633+
path-key "^3.0.0"
2634+
25772635
nth-check@^1.0.2:
25782636
version "1.0.2"
25792637
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
@@ -2677,6 +2735,13 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
26772735
dependencies:
26782736
wrappy "1"
26792737

2738+
onetime@^5.1.0:
2739+
version "5.1.2"
2740+
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
2741+
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
2742+
dependencies:
2743+
mimic-fn "^2.1.0"
2744+
26802745
p-finally@^1.0.0:
26812746
version "1.0.0"
26822747
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -2761,6 +2826,11 @@ path-key@^2.0.0, path-key@^2.0.1:
27612826
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
27622827
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
27632828

2829+
path-key@^3.0.0, path-key@^3.1.0:
2830+
version "3.1.1"
2831+
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
2832+
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
2833+
27642834
path-parse@^1.0.6:
27652835
version "1.0.6"
27662836
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
@@ -2783,6 +2853,14 @@ path-type@^4.0.0:
27832853
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
27842854
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
27852855

2856+
perfect-dark-mode@0.0.5:
2857+
version "0.0.5"
2858+
resolved "https://registry.yarnpkg.com/perfect-dark-mode/-/perfect-dark-mode-0.0.5.tgz#18b90ec1618335a970044ee0de9368c1d4c0e460"
2859+
integrity sha512-Zv8Xo5c9Sh18/4mSTC8a/tq+2zAuOdVzNio6AX0EI/w/t5vBM0hW/IhFKbNNdxm8q7afnJ7c5oz3UaTF3tZl6A==
2860+
optionalDependencies:
2861+
esbuild "^0.7.14"
2862+
esbuild-linux-64 "^0.7.14"
2863+
27862864
picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1:
27872865
version "2.2.2"
27882866
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
@@ -3778,17 +3856,29 @@ shebang-command@^1.2.0:
37783856
dependencies:
37793857
shebang-regex "^1.0.0"
37803858

3859+
shebang-command@^2.0.0:
3860+
version "2.0.0"
3861+
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
3862+
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
3863+
dependencies:
3864+
shebang-regex "^3.0.0"
3865+
37813866
shebang-regex@^1.0.0:
37823867
version "1.0.0"
37833868
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
37843869
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
37853870

3871+
shebang-regex@^3.0.0:
3872+
version "3.0.0"
3873+
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
3874+
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
3875+
37863876
shell-quote@^1.6.1:
37873877
version "1.7.2"
37883878
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
37893879
integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==
37903880

3791-
signal-exit@^3.0.0:
3881+
signal-exit@^3.0.0, signal-exit@^3.0.2:
37923882
version "3.0.3"
37933883
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
37943884
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
@@ -4014,6 +4104,11 @@ strip-eof@^1.0.0:
40144104
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
40154105
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
40164106

4107+
strip-final-newline@^2.0.0:
4108+
version "2.0.0"
4109+
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
4110+
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
4111+
40174112
strip-json-comments@~2.0.1:
40184113
version "2.0.1"
40194114
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
@@ -4330,6 +4425,13 @@ which@^1.2.9:
43304425
dependencies:
43314426
isexe "^2.0.0"
43324427

4428+
which@^2.0.1:
4429+
version "2.0.2"
4430+
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
4431+
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
4432+
dependencies:
4433+
isexe "^2.0.0"
4434+
43334435
widest-line@^2.0.0:
43344436
version "2.0.1"
43354437
resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc"

0 commit comments

Comments
 (0)