Skip to content

Commit 60592ef

Browse files
feat(exports): add bin to publishConfig when devExports is enabled (#911)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
1 parent ded1b9c commit 60592ef

File tree

5 files changed

+143
-15
lines changed

5 files changed

+143
-15
lines changed

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
}
5050
},
5151
"bin": {
52-
"tsdown": "./dist/run.mjs"
52+
"tsdown": "./src/run.ts"
5353
},
5454
"files": [
5555
"client.d.ts",
@@ -66,6 +66,9 @@
6666
"./run": "./dist/run.mjs",
6767
"./package.json": "./package.json",
6868
"./client": "./client.d.ts"
69+
},
70+
"bin": {
71+
"tsdown": "./dist/run.mjs"
6972
}
7073
},
7174
"engines": {

packages/create-tsdown/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
}
3737
},
3838
"bin": {
39-
"create-tsdown": "./dist/run.mjs"
39+
"create-tsdown": "./src/run.ts"
4040
},
4141
"files": [
4242
"dist"
@@ -47,6 +47,9 @@
4747
".": "./dist/index.mjs",
4848
"./run": "./dist/run.mjs",
4949
"./package.json": "./package.json"
50+
},
51+
"bin": {
52+
"create-tsdown": "./dist/run.mjs"
5053
}
5154
},
5255
"engines": {

packages/migrate/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
}
3737
},
3838
"bin": {
39-
"tsdown-migrate": "./dist/run.mjs"
39+
"tsdown-migrate": "./src/run.ts"
4040
},
4141
"files": [
4242
"dist"
@@ -47,6 +47,9 @@
4747
".": "./dist/index.mjs",
4848
"./run": "./dist/run.mjs",
4949
"./package.json": "./package.json"
50+
},
51+
"bin": {
52+
"tsdown-migrate": "./dist/run.mjs"
5053
}
5154
},
5255
"engines": {

src/features/pkg/exports.test.ts

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ describe('generateExports', () => {
4343
"inlinedDependencies": undefined,
4444
"main": undefined,
4545
"module": undefined,
46+
"publishBin": undefined,
4647
"publishExports": undefined,
4748
"types": undefined,
4849
}
@@ -66,6 +67,7 @@ describe('generateExports', () => {
6667
"inlinedDependencies": undefined,
6768
"main": undefined,
6869
"module": undefined,
70+
"publishBin": undefined,
6971
"publishExports": undefined,
7072
"types": undefined,
7173
}
@@ -87,6 +89,7 @@ describe('generateExports', () => {
8789
"inlinedDependencies": undefined,
8890
"main": undefined,
8991
"module": undefined,
92+
"publishBin": undefined,
9093
"publishExports": undefined,
9194
"types": undefined,
9295
}
@@ -108,6 +111,7 @@ describe('generateExports', () => {
108111
"inlinedDependencies": undefined,
109112
"main": undefined,
110113
"module": undefined,
114+
"publishBin": undefined,
111115
"publishExports": undefined,
112116
"types": undefined,
113117
}
@@ -129,6 +133,7 @@ describe('generateExports', () => {
129133
"inlinedDependencies": undefined,
130134
"main": undefined,
131135
"module": undefined,
136+
"publishBin": undefined,
132137
"publishExports": undefined,
133138
"types": undefined,
134139
}
@@ -153,6 +158,7 @@ describe('generateExports', () => {
153158
"inlinedDependencies": undefined,
154159
"main": "./foo.cjs",
155160
"module": "./foo.js",
161+
"publishBin": undefined,
156162
"publishExports": undefined,
157163
"types": undefined,
158164
}
@@ -177,6 +183,7 @@ describe('generateExports', () => {
177183
"inlinedDependencies": undefined,
178184
"main": "./foo.cjs",
179185
"module": "./foo.js",
186+
"publishBin": undefined,
180187
"publishExports": undefined,
181188
"types": "./foo.d.cts",
182189
}
@@ -201,6 +208,7 @@ describe('generateExports', () => {
201208
"inlinedDependencies": undefined,
202209
"main": "./index.cjs",
203210
"module": "./index.mjs",
211+
"publishBin": undefined,
204212
"publishExports": undefined,
205213
"types": "./index.d.cts",
206214
}
@@ -255,6 +263,7 @@ describe('generateExports', () => {
255263
"inlinedDependencies": undefined,
256264
"main": "./index.cjs",
257265
"module": "./index.js",
266+
"publishBin": undefined,
258267
"publishExports": {
259268
".": {
260269
"import": "./index.js",
@@ -351,6 +360,7 @@ describe('generateExports', () => {
351360
"inlinedDependencies": undefined,
352361
"main": undefined,
353362
"module": undefined,
363+
"publishBin": undefined,
354364
"publishExports": undefined,
355365
"types": undefined,
356366
}
@@ -378,6 +388,7 @@ describe('generateExports', () => {
378388
"inlinedDependencies": undefined,
379389
"main": undefined,
380390
"module": undefined,
391+
"publishBin": undefined,
381392
"publishExports": undefined,
382393
"types": undefined,
383394
}
@@ -401,6 +412,7 @@ describe('generateExports', () => {
401412
"inlinedDependencies": undefined,
402413
"main": undefined,
403414
"module": undefined,
415+
"publishBin": undefined,
404416
"publishExports": undefined,
405417
"types": undefined,
406418
}
@@ -427,6 +439,7 @@ describe('generateExports', () => {
427439
"inlinedDependencies": undefined,
428440
"main": "./index.cjs",
429441
"module": "./index.js",
442+
"publishBin": undefined,
430443
"publishExports": undefined,
431444
"types": undefined,
432445
}
@@ -453,6 +466,7 @@ describe('generateExports', () => {
453466
"inlinedDependencies": undefined,
454467
"main": undefined,
455468
"module": undefined,
469+
"publishBin": undefined,
456470
"publishExports": undefined,
457471
"types": undefined,
458472
}
@@ -481,6 +495,7 @@ describe('generateExports', () => {
481495
"inlinedDependencies": undefined,
482496
"main": undefined,
483497
"module": undefined,
498+
"publishBin": undefined,
484499
"publishExports": undefined,
485500
"types": undefined,
486501
}
@@ -509,6 +524,7 @@ describe('generateExports', () => {
509524
"inlinedDependencies": undefined,
510525
"main": undefined,
511526
"module": undefined,
527+
"publishBin": undefined,
512528
"publishExports": undefined,
513529
"types": undefined,
514530
}
@@ -538,6 +554,7 @@ describe('generateExports', () => {
538554
"inlinedDependencies": undefined,
539555
"main": undefined,
540556
"module": undefined,
557+
"publishBin": undefined,
541558
"publishExports": undefined,
542559
"types": undefined,
543560
}
@@ -586,6 +603,7 @@ describe('generateExports', () => {
586603
"inlinedDependencies": undefined,
587604
"main": "./index.cjs",
588605
"module": "./index.js",
606+
"publishBin": undefined,
589607
"publishExports": undefined,
590608
"types": "./index.d.cts",
591609
}
@@ -611,6 +629,7 @@ describe('generateExports', () => {
611629
"inlinedDependencies": undefined,
612630
"main": undefined,
613631
"module": undefined,
632+
"publishBin": undefined,
614633
"publishExports": undefined,
615634
"types": undefined,
616635
}
@@ -637,6 +656,7 @@ describe('generateExports', () => {
637656
"inlinedDependencies": undefined,
638657
"main": undefined,
639658
"module": undefined,
659+
"publishBin": undefined,
640660
"publishExports": undefined,
641661
"types": undefined,
642662
}
@@ -662,6 +682,7 @@ describe('generateExports', () => {
662682
"inlinedDependencies": undefined,
663683
"main": undefined,
664684
"module": undefined,
685+
"publishBin": undefined,
665686
"publishExports": undefined,
666687
"types": undefined,
667688
}
@@ -687,6 +708,7 @@ describe('generateExports', () => {
687708
"inlinedDependencies": undefined,
688709
"main": undefined,
689710
"module": undefined,
711+
"publishBin": undefined,
690712
"publishExports": undefined,
691713
"types": undefined,
692714
}
@@ -866,6 +888,73 @@ describe('generateExports', () => {
866888
})
867889
})
868890

891+
test('bin: object form with devExports', async ({ expect }) => {
892+
const results = generateExports(
893+
{
894+
es: [
895+
genChunk(
896+
'cli.js',
897+
true,
898+
path.resolve('./src/cli.ts'),
899+
'#!/usr/bin/env node\n',
900+
),
901+
],
902+
},
903+
{
904+
exports: {
905+
devExports: true,
906+
bin: {
907+
mycli: './src/cli.ts',
908+
},
909+
},
910+
},
911+
)
912+
await expect(results).resolves.toMatchObject({
913+
bin: { mycli: './src/cli.ts' },
914+
publishBin: { mycli: './cli.js' },
915+
})
916+
})
917+
918+
test('bin: true with devExports', async ({ expect }) => {
919+
const results = generateExports(
920+
{
921+
es: [
922+
genChunk(
923+
'cli.js',
924+
true,
925+
path.resolve('./src/cli.ts'),
926+
'#!/usr/bin/env node\nconsole.log("hello")',
927+
),
928+
],
929+
},
930+
{ exports: { devExports: true, bin: true } },
931+
)
932+
await expect(results).resolves.toMatchObject({
933+
bin: { 'fake-pkg': './src/cli.ts' },
934+
publishBin: { 'fake-pkg': './cli.js' },
935+
})
936+
})
937+
938+
test('bin: string form with devExports', async ({ expect }) => {
939+
const results = generateExports(
940+
{
941+
es: [
942+
genChunk(
943+
'cli.js',
944+
true,
945+
path.resolve('./src/cli.ts'),
946+
'#!/usr/bin/env node\n',
947+
),
948+
],
949+
},
950+
{ exports: { devExports: true, bin: './src/cli.ts' } },
951+
)
952+
await expect(results).resolves.toMatchObject({
953+
bin: { 'fake-pkg': './src/cli.ts' },
954+
publishBin: { 'fake-pkg': './cli.js' },
955+
})
956+
})
957+
869958
test('extensions adds .js to subpath export keys', async ({ expect }) => {
870959
const results = generateExports(
871960
{
@@ -887,6 +976,7 @@ describe('generateExports', () => {
887976
"inlinedDependencies": undefined,
888977
"main": undefined,
889978
"module": undefined,
979+
"publishBin": undefined,
890980
"publishExports": undefined,
891981
"types": undefined,
892982
}
@@ -913,6 +1003,7 @@ describe('generateExports', () => {
9131003
"inlinedDependencies": undefined,
9141004
"main": undefined,
9151005
"module": undefined,
1006+
"publishBin": undefined,
9161007
"publishExports": undefined,
9171008
"types": undefined,
9181009
}
@@ -946,6 +1037,7 @@ describe('generateExports', () => {
9461037
"inlinedDependencies": undefined,
9471038
"main": "./index.cjs",
9481039
"module": "./index.js",
1040+
"publishBin": undefined,
9491041
"publishExports": undefined,
9501042
"types": undefined,
9511043
}
@@ -971,6 +1063,7 @@ describe('generateExports', () => {
9711063
"inlinedDependencies": undefined,
9721064
"main": undefined,
9731065
"module": undefined,
1066+
"publishBin": undefined,
9741067
"publishExports": undefined,
9751068
"types": undefined,
9761069
}
@@ -1044,6 +1137,7 @@ describe('generateExports', () => {
10441137
"inlinedDependencies": undefined,
10451138
"main": undefined,
10461139
"module": undefined,
1140+
"publishBin": undefined,
10471141
"publishExports": {
10481142
".": "./index.js",
10491143
"./package.json": "./package.json",

0 commit comments

Comments
 (0)