Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(swc-info): Add a CLI to help issue reporting (#7871)
- Loading branch information
Showing
10 changed files
with
185 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
yarn.lock | ||
node_modules | ||
_/ | ||
*.tgz | ||
lib/*.js | ||
tests/*.js | ||
*.d.ts | ||
*.map |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
examples/ | ||
node_modules/ | ||
package-lock.json | ||
*.log | ||
.swcrc | ||
.yarn | ||
*.tgz | ||
.dprint.json | ||
out/ | ||
tests/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# swc-info | ||
|
||
## Usage | ||
|
||
```sh | ||
npx -y swc-info@latest | ||
``` | ||
|
||
then copy the output to the issue;. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
#!/usr/bin/env node | ||
require("../lib/index.js"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
import os from "node:os"; | ||
import process from "node:process"; | ||
import childProcess from "child_process"; | ||
|
||
function getUniqueCpuNames(): string { | ||
return os | ||
.cpus() | ||
.map((cpu) => cpu.model) | ||
.filter((model, index, models) => models.indexOf(model) === index) | ||
.join(", "); | ||
} | ||
|
||
function getBinaryVersion(binaryName: string): string { | ||
try { | ||
return childProcess | ||
.execFileSync(binaryName, ["--version"]) | ||
.toString() | ||
.trim(); | ||
} catch { | ||
return "N/A"; | ||
} | ||
} | ||
|
||
function getPackageVersion(packageName: string) { | ||
try { | ||
return require(`${packageName}/package.json`).version; | ||
} catch { | ||
return null; | ||
} | ||
} | ||
|
||
function interestingPackage(name: string): string | null { | ||
const version = getPackageVersion(name); | ||
if (version) { | ||
return `${name}: ${version}`; | ||
} else { | ||
return null; | ||
} | ||
} | ||
function interestingPackages(names: string[]): string { | ||
return names.map(interestingPackage).filter(Boolean).join("\n "); | ||
} | ||
|
||
console.log(` | ||
Operating System: | ||
Platform: ${os.platform()} | ||
Arch: ${os.arch()} | ||
Machine Type: ${os.machine()} | ||
Version: ${os.version()} | ||
CPU: (${os.cpus().length} cores) | ||
Models: ${getUniqueCpuNames()} | ||
Binaries: | ||
Node: ${process.versions.node} | ||
npm: ${getBinaryVersion("npm")} | ||
Yarn: ${getBinaryVersion("yarn")} | ||
pnpm: ${getBinaryVersion("pnpm")} | ||
Relevant Packages: | ||
@swc/core: ${getPackageVersion("@swc/core") ?? "N/A"} | ||
@swc/helpers: ${getPackageVersion("@swc/helpers") ?? "N/A"} | ||
@swc/types: ${getPackageVersion("@swc/types") ?? "N/A"} | ||
${interestingPackages(["typescript", "next"])} | ||
SWC Config: | ||
output: N/A | ||
.swcrc path: N/A | ||
Next.js info: | ||
output: N/A | ||
`); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
{ | ||
"name": "swc-info", | ||
"packageManager": "yarn@3.2.3", | ||
"version": "0.1.11", | ||
"description": "CLI tool to help issue reporting for swc", | ||
"sideEffects": false, | ||
"scripts": { | ||
"build": "tsc", | ||
"prepublishOnly": "yarn build", | ||
"prepack": "yarn build" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/swc-project/swc.git" | ||
}, | ||
"publishConfig": { | ||
"registry": "https://registry.npmjs.org/", | ||
"access": "public" | ||
}, | ||
"keywords": [ | ||
"swc", | ||
"info", | ||
"cli" | ||
], | ||
"author": "강동윤 <kdy1997.dev@gmail.com>", | ||
"license": "Apache-2.0", | ||
"bugs": { | ||
"url": "https://github.com/swc-project/swc/issues" | ||
}, | ||
"homepage": "https://swc.rs", | ||
"devDependencies": { | ||
"typescript": "^5.2.2" | ||
}, | ||
"bin": { | ||
"swc-info": "bin/swc-info.js" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
{ | ||
"compilerOptions": { | ||
"target": "es2019", | ||
"useDefineForClassFields": true, | ||
"module": "commonjs", | ||
"baseUrl": "./", | ||
"paths": {}, | ||
"resolveJsonModule": true, | ||
"declaration": true, | ||
"sourceMap": true, | ||
"downlevelIteration": true, | ||
"esModuleInterop": true, | ||
"forceConsistentCasingInFileNames": true, | ||
"strict": true, | ||
"skipLibCheck": true, | ||
"rootDir": "." | ||
}, | ||
"include": [ | ||
"lib", | ||
"tests" | ||
], | ||
"exclude": [ | ||
"examples" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
d6952ea
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark
es/full/bugs-1
280619
ns/iter (± 5371
)294741
ns/iter (± 17799
)0.95
es/full/minify/libraries/antd
1298374692
ns/iter (± 14178530
)1353774624
ns/iter (± 19709215
)0.96
es/full/minify/libraries/d3
274144366
ns/iter (± 3711679
)282776418
ns/iter (± 7034123
)0.97
es/full/minify/libraries/echarts
1044609969
ns/iter (± 9518734
)1084848269
ns/iter (± 14523627
)0.96
es/full/minify/libraries/jquery
83595233
ns/iter (± 186091
)83769748
ns/iter (± 370697
)1.00
es/full/minify/libraries/lodash
96321253
ns/iter (± 638953
)97537042
ns/iter (± 895677
)0.99
es/full/minify/libraries/moment
49349460
ns/iter (± 100280
)49591857
ns/iter (± 509105
)1.00
es/full/minify/libraries/react
17872849
ns/iter (± 131613
)17862445
ns/iter (± 79443
)1.00
es/full/minify/libraries/terser
215683804
ns/iter (± 2435229
)219931785
ns/iter (± 2745553
)0.98
es/full/minify/libraries/three
381734046
ns/iter (± 2271046
)393541517
ns/iter (± 5484319
)0.97
es/full/minify/libraries/typescript
2598229586
ns/iter (± 7781357
)2667322670
ns/iter (± 21574738
)0.97
es/full/minify/libraries/victory
557996193
ns/iter (± 3490993
)592135605
ns/iter (± 16351602
)0.94
es/full/minify/libraries/vue
118201585
ns/iter (± 160980
)119677614
ns/iter (± 843292
)0.99
es/full/codegen/es3
35022
ns/iter (± 120
)35124
ns/iter (± 113
)1.00
es/full/codegen/es5
34980
ns/iter (± 103
)35154
ns/iter (± 99
)1.00
es/full/codegen/es2015
34883
ns/iter (± 187
)35248
ns/iter (± 108
)0.99
es/full/codegen/es2016
34934
ns/iter (± 115
)35032
ns/iter (± 96
)1.00
es/full/codegen/es2017
34980
ns/iter (± 176
)35104
ns/iter (± 149
)1.00
es/full/codegen/es2018
34829
ns/iter (± 132
)34967
ns/iter (± 170
)1.00
es/full/codegen/es2019
35039
ns/iter (± 152
)35065
ns/iter (± 401
)1.00
es/full/codegen/es2020
34915
ns/iter (± 204
)35149
ns/iter (± 123
)0.99
es/full/all/es3
167650525
ns/iter (± 1198731
)167713213
ns/iter (± 462897
)1.00
es/full/all/es5
160606367
ns/iter (± 811537
)161345203
ns/iter (± 754336
)1.00
es/full/all/es2015
120620423
ns/iter (± 766447
)120269261
ns/iter (± 506742
)1.00
es/full/all/es2016
119306522
ns/iter (± 737421
)119455138
ns/iter (± 367072
)1.00
es/full/all/es2017
118650721
ns/iter (± 1035784
)118849745
ns/iter (± 665869
)1.00
es/full/all/es2018
116101359
ns/iter (± 1046308
)116323980
ns/iter (± 890309
)1.00
es/full/all/es2019
115392605
ns/iter (± 766987
)115507936
ns/iter (± 1512163
)1.00
es/full/all/es2020
111576278
ns/iter (± 632941
)112397217
ns/iter (± 1295562
)0.99
es/full/parser
489291
ns/iter (± 5634
)499280
ns/iter (± 6986
)0.98
es/full/base/fixer
18789
ns/iter (± 514
)18316
ns/iter (± 44
)1.03
es/full/base/resolver_and_hygiene
80317
ns/iter (± 257
)80063
ns/iter (± 240
)1.00
serialization of serde
299
ns/iter (± 0
)295
ns/iter (± 2
)1.01
css/minify/libraries/bootstrap
28520582
ns/iter (± 126077
)28557242
ns/iter (± 54920
)1.00
css/visitor/compare/clone
1628869
ns/iter (± 2843
)1629298
ns/iter (± 2596
)1.00
css/visitor/compare/visit_mut_span
1775438
ns/iter (± 3812
)1757160
ns/iter (± 1857
)1.01
css/visitor/compare/visit_mut_span_panic
1828205
ns/iter (± 7917
)1838396
ns/iter (± 3476
)0.99
css/visitor/compare/fold_span
2564354
ns/iter (± 5668
)2551501
ns/iter (± 9886
)1.01
css/visitor/compare/fold_span_panic
2757153
ns/iter (± 17094
)2744024
ns/iter (± 9953
)1.00
css/lexer/bootstrap_5_1_3
4519492
ns/iter (± 16795
)4518565
ns/iter (± 3038
)1.00
css/lexer/foundation_6_7_4
3808347
ns/iter (± 8483
)3805691
ns/iter (± 2383
)1.00
css/lexer/tailwind_3_1_1
725380
ns/iter (± 785
)720948
ns/iter (± 506
)1.01
css/parser/bootstrap_5_1_3
20421693
ns/iter (± 41195
)19057353
ns/iter (± 33622
)1.07
css/parser/foundation_6_7_4
16378288
ns/iter (± 18615
)15466972
ns/iter (± 15570
)1.06
css/parser/tailwind_3_1_1
3088678
ns/iter (± 4968
)2983734
ns/iter (± 2861
)1.04
es/codegen/colors
737687
ns/iter (± 402963
)738781
ns/iter (± 402960
)1.00
es/codegen/large
3141051
ns/iter (± 1667538
)2891289
ns/iter (± 1524342
)1.09
es/codegen/with-parser/colors
45137
ns/iter (± 515
)45203
ns/iter (± 663
)1.00
es/codegen/with-parser/large
483459
ns/iter (± 626
)487504
ns/iter (± 826
)0.99
es/minify/libraries/antd
1115486653
ns/iter (± 8354504
)1152245650
ns/iter (± 11885588
)0.97
es/minify/libraries/d3
237542062
ns/iter (± 679763
)238716261
ns/iter (± 781809
)1.00
es/minify/libraries/echarts
877299356
ns/iter (± 7015934
)906320765
ns/iter (± 8264284
)0.97
es/minify/libraries/jquery
72861329
ns/iter (± 187144
)72544205
ns/iter (± 167978
)1.00
es/minify/libraries/lodash
86427551
ns/iter (± 189342
)86481074
ns/iter (± 216918
)1.00
es/minify/libraries/moment
43139017
ns/iter (± 71417
)43100624
ns/iter (± 60010
)1.00
es/minify/libraries/react
15918351
ns/iter (± 43120
)15950270
ns/iter (± 57231
)1.00
es/minify/libraries/terser
183825152
ns/iter (± 342827
)184596320
ns/iter (± 997584
)1.00
es/minify/libraries/three
317706317
ns/iter (± 1013083
)320538123
ns/iter (± 1950571
)0.99
es/minify/libraries/typescript
2209305961
ns/iter (± 7457249
)2235114049
ns/iter (± 9924833
)0.99
es/minify/libraries/victory
463207547
ns/iter (± 2627291
)480677564
ns/iter (± 9346096
)0.96
es/minify/libraries/vue
104965089
ns/iter (± 208612
)105556035
ns/iter (± 259560
)0.99
es/visitor/compare/clone
1965800
ns/iter (± 6956
)1957097
ns/iter (± 4260
)1.00
es/visitor/compare/visit_mut_span
2267856
ns/iter (± 5192
)2273498
ns/iter (± 9579
)1.00
es/visitor/compare/visit_mut_span_panic
2322029
ns/iter (± 3782
)2346508
ns/iter (± 5142
)0.99
es/visitor/compare/fold_span
3372421
ns/iter (± 5633
)3388515
ns/iter (± 7157
)1.00
es/visitor/compare/fold_span_panic
3481872
ns/iter (± 5448
)3491631
ns/iter (± 5873
)1.00
es/lexer/colors
12895
ns/iter (± 52
)12984
ns/iter (± 24
)0.99
es/lexer/angular
6015144
ns/iter (± 24692
)6012272
ns/iter (± 8122
)1.00
es/lexer/backbone
770729
ns/iter (± 1062
)772660
ns/iter (± 2110
)1.00
es/lexer/jquery
4397336
ns/iter (± 4885
)4425650
ns/iter (± 5106
)0.99
es/lexer/jquery mobile
6680276
ns/iter (± 3771
)6708183
ns/iter (± 10321
)1.00
es/lexer/mootools
3505647
ns/iter (± 5341
)3513608
ns/iter (± 4535
)1.00
es/lexer/underscore
649918
ns/iter (± 307
)648797
ns/iter (± 1508
)1.00
es/lexer/three
21015807
ns/iter (± 23806
)21011769
ns/iter (± 56317
)1.00
es/lexer/yui
3758545
ns/iter (± 3373
)3770270
ns/iter (± 4575
)1.00
es/parser/colors
27032
ns/iter (± 22
)27055
ns/iter (± 69
)1.00
es/parser/angular
13330624
ns/iter (± 74455
)13550817
ns/iter (± 100727
)0.98
es/parser/backbone
1956214
ns/iter (± 7306
)1985618
ns/iter (± 7238
)0.99
es/parser/jquery
10705150
ns/iter (± 53378
)10805712
ns/iter (± 46826
)0.99
es/parser/jquery mobile
16445822
ns/iter (± 45556
)16622316
ns/iter (± 61318
)0.99
es/parser/mootools
8235806
ns/iter (± 18171
)8303081
ns/iter (± 18014
)0.99
es/parser/underscore
1682280
ns/iter (± 7482
)1698416
ns/iter (± 9777
)0.99
es/parser/three
45879748
ns/iter (± 183188
)47348792
ns/iter (± 962846
)0.97
es/parser/yui
8135051
ns/iter (± 29773
)8232625
ns/iter (± 26337
)0.99
es/preset-env/usage/builtin_type
135365
ns/iter (± 31368
)138136
ns/iter (± 33304
)0.98
es/preset-env/usage/property
17032
ns/iter (± 50
)16983
ns/iter (± 49
)1.00
es/resolver/typescript
86910623
ns/iter (± 1097760
)88781610
ns/iter (± 926469
)0.98
es/fixer/typescript
63337937
ns/iter (± 389764
)64304909
ns/iter (± 634994
)0.98
es/hygiene/typescript
127698027
ns/iter (± 644994
)128949766
ns/iter (± 1185163
)0.99
es/resolver_with_hygiene/typescript
236671625
ns/iter (± 1298979
)240685626
ns/iter (± 1451966
)0.98
es/visitor/base-perf/module_clone
59410
ns/iter (± 321
)58869
ns/iter (± 248
)1.01
es/visitor/base-perf/fold_empty
63675
ns/iter (± 374
)62501
ns/iter (± 283
)1.02
es/visitor/base-perf/fold_noop_impl_all
63652
ns/iter (± 374
)63080
ns/iter (± 208
)1.01
es/visitor/base-perf/fold_noop_impl_vec
64085
ns/iter (± 186
)62905
ns/iter (± 263
)1.02
es/visitor/base-perf/boxing_boxed_clone
57
ns/iter (± 0
)58
ns/iter (± 0
)0.98
es/visitor/base-perf/boxing_unboxed_clone
41
ns/iter (± 0
)46
ns/iter (± 0
)0.89
es/visitor/base-perf/boxing_boxed
109
ns/iter (± 0
)110
ns/iter (± 0
)0.99
es/visitor/base-perf/boxing_unboxed
78
ns/iter (± 0
)80
ns/iter (± 0
)0.97
es/visitor/base-perf/visit_empty
0
ns/iter (± 0
)0
ns/iter (± 0
)NaN
es/visitor/base-perf/visit_contains_this
2618
ns/iter (± 28
)2620
ns/iter (± 34
)1.00
es/base/parallel/resolver/typescript
4234443465
ns/iter (± 269562844
)3887086571
ns/iter (± 271399555
)1.09
es/base/parallel/hygiene/typescript
1447125972
ns/iter (± 12957803
)1442054423
ns/iter (± 13404763
)1.00
misc/visitors/time-complexity/time 5
133
ns/iter (± 3
)133
ns/iter (± 5
)1
misc/visitors/time-complexity/time 10
397
ns/iter (± 6
)305
ns/iter (± 0
)1.30
misc/visitors/time-complexity/time 15
687
ns/iter (± 13
)519
ns/iter (± 2
)1.32
misc/visitors/time-complexity/time 20
1045
ns/iter (± 14
)1049
ns/iter (± 3
)1.00
misc/visitors/time-complexity/time 40
4180
ns/iter (± 298
)3565
ns/iter (± 40
)1.17
misc/visitors/time-complexity/time 60
7246
ns/iter (± 43
)7302
ns/iter (± 26
)0.99
es/full-target/es2016
232871
ns/iter (± 659
)228013
ns/iter (± 358
)1.02
es/full-target/es2017
220794
ns/iter (± 697
)217853
ns/iter (± 986
)1.01
es/full-target/es2018
207680
ns/iter (± 1220
)205911
ns/iter (± 479
)1.01
es2020_nullish_coalescing
70211
ns/iter (± 555
)72388
ns/iter (± 283
)0.97
es2020_optional_chaining
80964
ns/iter (± 642
)82812
ns/iter (± 201
)0.98
es2022_class_properties
115468
ns/iter (± 794
)117005
ns/iter (± 357
)0.99
es2018_object_rest_spread
75276
ns/iter (± 839
)76552
ns/iter (± 225
)0.98
es2019_optional_catch_binding
64225
ns/iter (± 226
)65257
ns/iter (± 243
)0.98
es2017_async_to_generator
63710
ns/iter (± 480
)65240
ns/iter (± 283
)0.98
es2016_exponentiation
68132
ns/iter (± 727
)67370
ns/iter (± 203
)1.01
es2015_arrow
71643
ns/iter (± 259
)73067
ns/iter (± 325
)0.98
es2015_block_scoped_fn
68594
ns/iter (± 484
)70635
ns/iter (± 258
)0.97
es2015_block_scoping
125365
ns/iter (± 624
)122967
ns/iter (± 593
)1.02
This comment was automatically generated by workflow using github-action-benchmark.