modestbench 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cli/builder.cjs +259 -0
  3. package/dist/cli/builder.cjs.map +1 -0
  4. package/dist/cli/builder.d.cts +37 -0
  5. package/dist/cli/builder.d.cts.map +1 -0
  6. package/dist/cli/builder.d.ts +37 -0
  7. package/dist/cli/builder.d.ts.map +1 -0
  8. package/dist/cli/builder.js +255 -0
  9. package/dist/cli/builder.js.map +1 -0
  10. package/dist/cli/commands/baseline.cjs +4 -33
  11. package/dist/cli/commands/baseline.cjs.map +1 -1
  12. package/dist/cli/commands/baseline.d.cts.map +1 -1
  13. package/dist/cli/commands/baseline.d.ts.map +1 -1
  14. package/dist/cli/commands/baseline.js +2 -31
  15. package/dist/cli/commands/baseline.js.map +1 -1
  16. package/dist/cli/commands/history.cjs +2 -14
  17. package/dist/cli/commands/history.cjs.map +1 -1
  18. package/dist/cli/commands/history.d.cts.map +1 -1
  19. package/dist/cli/commands/history.d.ts.map +1 -1
  20. package/dist/cli/commands/history.js +1 -13
  21. package/dist/cli/commands/history.js.map +1 -1
  22. package/dist/cli/commands/init.cjs +2 -2
  23. package/dist/cli/commands/init.cjs.map +1 -1
  24. package/dist/cli/commands/init.js +2 -2
  25. package/dist/cli/commands/init.js.map +1 -1
  26. package/dist/cli/commands/run.cjs +3 -3
  27. package/dist/cli/commands/run.cjs.map +1 -1
  28. package/dist/cli/commands/run.d.cts +0 -13
  29. package/dist/cli/commands/run.d.cts.map +1 -1
  30. package/dist/cli/commands/run.d.ts +0 -13
  31. package/dist/cli/commands/run.d.ts.map +1 -1
  32. package/dist/cli/commands/run.js +1 -1
  33. package/dist/cli/commands/run.js.map +1 -1
  34. package/dist/cli/commands/test.cjs +1 -1
  35. package/dist/cli/commands/test.cjs.map +1 -1
  36. package/dist/cli/commands/test.js +1 -1
  37. package/dist/cli/commands/test.js.map +1 -1
  38. package/dist/cli/context.cjs +60 -0
  39. package/dist/cli/context.cjs.map +1 -0
  40. package/dist/cli/context.d.cts +28 -0
  41. package/dist/cli/context.d.cts.map +1 -0
  42. package/dist/cli/context.d.ts +28 -0
  43. package/dist/cli/context.d.ts.map +1 -0
  44. package/dist/cli/context.js +56 -0
  45. package/dist/cli/context.js.map +1 -0
  46. package/dist/cli/handlers.cjs +74 -0
  47. package/dist/cli/handlers.cjs.map +1 -0
  48. package/dist/cli/handlers.d.cts +13 -0
  49. package/dist/cli/handlers.d.cts.map +1 -0
  50. package/dist/cli/handlers.d.ts +13 -0
  51. package/dist/cli/handlers.d.ts.map +1 -0
  52. package/dist/cli/handlers.js +70 -0
  53. package/dist/cli/handlers.js.map +1 -0
  54. package/dist/cli/index.cjs +45 -978
  55. package/dist/cli/index.cjs.map +1 -1
  56. package/dist/cli/index.d.cts +6 -31
  57. package/dist/cli/index.d.cts.map +1 -1
  58. package/dist/cli/index.d.ts +6 -31
  59. package/dist/cli/index.d.ts.map +1 -1
  60. package/dist/cli/index.js +43 -974
  61. package/dist/cli/index.js.map +1 -1
  62. package/dist/cli/parsers/analyze.cjs +54 -0
  63. package/dist/cli/parsers/analyze.cjs.map +1 -0
  64. package/dist/cli/parsers/analyze.d.cts +37 -0
  65. package/dist/cli/parsers/analyze.d.cts.map +1 -0
  66. package/dist/cli/parsers/analyze.d.ts +37 -0
  67. package/dist/cli/parsers/analyze.d.ts.map +1 -0
  68. package/dist/cli/parsers/analyze.js +51 -0
  69. package/dist/cli/parsers/analyze.js.map +1 -0
  70. package/dist/cli/parsers/baseline.cjs +75 -0
  71. package/dist/cli/parsers/baseline.cjs.map +1 -0
  72. package/dist/cli/parsers/baseline.d.cts +59 -0
  73. package/dist/cli/parsers/baseline.d.cts.map +1 -0
  74. package/dist/cli/parsers/baseline.d.ts +59 -0
  75. package/dist/cli/parsers/baseline.d.ts.map +1 -0
  76. package/dist/cli/parsers/baseline.js +72 -0
  77. package/dist/cli/parsers/baseline.js.map +1 -0
  78. package/dist/cli/parsers/global.cjs +49 -0
  79. package/dist/cli/parsers/global.cjs.map +1 -0
  80. package/dist/cli/parsers/global.d.cts +45 -0
  81. package/dist/cli/parsers/global.d.cts.map +1 -0
  82. package/dist/cli/parsers/global.d.ts +45 -0
  83. package/dist/cli/parsers/global.d.ts.map +1 -0
  84. package/dist/cli/parsers/global.js +46 -0
  85. package/dist/cli/parsers/global.js.map +1 -0
  86. package/dist/cli/parsers/history.cjs +138 -0
  87. package/dist/cli/parsers/history.cjs.map +1 -0
  88. package/dist/cli/parsers/history.d.cts +108 -0
  89. package/dist/cli/parsers/history.d.cts.map +1 -0
  90. package/dist/cli/parsers/history.d.ts +108 -0
  91. package/dist/cli/parsers/history.d.ts.map +1 -0
  92. package/dist/cli/parsers/history.js +135 -0
  93. package/dist/cli/parsers/history.js.map +1 -0
  94. package/dist/cli/parsers/index.cjs +35 -0
  95. package/dist/cli/parsers/index.cjs.map +1 -0
  96. package/dist/cli/parsers/index.d.cts +15 -0
  97. package/dist/cli/parsers/index.d.cts.map +1 -0
  98. package/dist/cli/parsers/index.d.ts +15 -0
  99. package/dist/cli/parsers/index.d.ts.map +1 -0
  100. package/dist/cli/parsers/index.js +15 -0
  101. package/dist/cli/parsers/index.js.map +1 -0
  102. package/dist/cli/parsers/init.cjs +39 -0
  103. package/dist/cli/parsers/init.cjs.map +1 -0
  104. package/dist/cli/parsers/init.d.cts +32 -0
  105. package/dist/cli/parsers/init.d.cts.map +1 -0
  106. package/dist/cli/parsers/init.d.ts +32 -0
  107. package/dist/cli/parsers/init.d.ts.map +1 -0
  108. package/dist/cli/parsers/init.js +36 -0
  109. package/dist/cli/parsers/init.js.map +1 -0
  110. package/dist/cli/parsers/run.cjs +99 -0
  111. package/dist/cli/parsers/run.cjs.map +1 -0
  112. package/dist/cli/parsers/run.d.cts +62 -0
  113. package/dist/cli/parsers/run.d.cts.map +1 -0
  114. package/dist/cli/parsers/run.d.ts +62 -0
  115. package/dist/cli/parsers/run.d.ts.map +1 -0
  116. package/dist/cli/parsers/run.js +96 -0
  117. package/dist/cli/parsers/run.js.map +1 -0
  118. package/dist/cli/parsers/test.cjs +42 -0
  119. package/dist/cli/parsers/test.cjs.map +1 -0
  120. package/dist/cli/parsers/test.d.cts +31 -0
  121. package/dist/cli/parsers/test.d.cts.map +1 -0
  122. package/dist/cli/parsers/test.d.ts +31 -0
  123. package/dist/cli/parsers/test.d.ts.map +1 -0
  124. package/dist/cli/parsers/test.js +39 -0
  125. package/dist/cli/parsers/test.js.map +1 -0
  126. package/dist/cli/theme.cjs +35 -0
  127. package/dist/cli/theme.cjs.map +1 -0
  128. package/dist/cli/theme.d.cts +31 -0
  129. package/dist/cli/theme.d.cts.map +1 -0
  130. package/dist/cli/theme.d.ts +31 -0
  131. package/dist/cli/theme.d.ts.map +1 -0
  132. package/dist/cli/theme.js +32 -0
  133. package/dist/cli/theme.js.map +1 -0
  134. package/dist/config/budget-schema.cjs +1 -1
  135. package/dist/config/budget-schema.cjs.map +1 -1
  136. package/dist/config/budget-schema.js +1 -1
  137. package/dist/config/budget-schema.js.map +1 -1
  138. package/dist/core/engines/accurate-engine.cjs +1 -1
  139. package/dist/core/engines/accurate-engine.cjs.map +1 -1
  140. package/dist/core/engines/accurate-engine.d.cts.map +1 -1
  141. package/dist/core/engines/accurate-engine.d.ts.map +1 -1
  142. package/dist/core/engines/accurate-engine.js +1 -1
  143. package/dist/core/engines/accurate-engine.js.map +1 -1
  144. package/dist/errors/base.cjs +3 -12
  145. package/dist/errors/base.cjs.map +1 -1
  146. package/dist/errors/base.d.cts +0 -7
  147. package/dist/errors/base.d.cts.map +1 -1
  148. package/dist/errors/base.d.ts +0 -7
  149. package/dist/errors/base.d.ts.map +1 -1
  150. package/dist/errors/base.js +1 -9
  151. package/dist/errors/base.js.map +1 -1
  152. package/dist/formatters/history/compare.cjs +6 -6
  153. package/dist/formatters/history/compare.cjs.map +1 -1
  154. package/dist/formatters/history/compare.js +6 -6
  155. package/dist/formatters/history/compare.js.map +1 -1
  156. package/dist/formatters/history/show.cjs +2 -2
  157. package/dist/formatters/history/show.cjs.map +1 -1
  158. package/dist/formatters/history/show.js +2 -2
  159. package/dist/formatters/history/show.js.map +1 -1
  160. package/dist/formatters/history/trends.cjs +1 -1
  161. package/dist/formatters/history/trends.cjs.map +1 -1
  162. package/dist/formatters/history/trends.js +1 -1
  163. package/dist/formatters/history/trends.js.map +1 -1
  164. package/dist/reporters/human.cjs +3 -3
  165. package/dist/reporters/human.cjs.map +1 -1
  166. package/dist/reporters/human.d.cts.map +1 -1
  167. package/dist/reporters/human.d.ts.map +1 -1
  168. package/dist/reporters/human.js +3 -3
  169. package/dist/reporters/human.js.map +1 -1
  170. package/dist/reporters/nyan.cjs +1 -1
  171. package/dist/reporters/nyan.cjs.map +1 -1
  172. package/dist/reporters/nyan.js +1 -1
  173. package/dist/reporters/nyan.js.map +1 -1
  174. package/dist/services/budget-evaluator.cjs +2 -2
  175. package/dist/services/budget-evaluator.cjs.map +1 -1
  176. package/dist/services/budget-evaluator.js +2 -2
  177. package/dist/services/budget-evaluator.js.map +1 -1
  178. package/dist/services/config-manager.cjs +2 -2
  179. package/dist/services/config-manager.cjs.map +1 -1
  180. package/dist/services/config-manager.js +2 -2
  181. package/dist/services/config-manager.js.map +1 -1
  182. package/dist/services/profiler/profile-runner.cjs +11 -0
  183. package/dist/services/profiler/profile-runner.cjs.map +1 -1
  184. package/dist/services/profiler/profile-runner.d.cts +2 -0
  185. package/dist/services/profiler/profile-runner.d.cts.map +1 -1
  186. package/dist/services/profiler/profile-runner.d.ts +2 -0
  187. package/dist/services/profiler/profile-runner.d.ts.map +1 -1
  188. package/dist/services/profiler/profile-runner.js +11 -0
  189. package/dist/services/profiler/profile-runner.js.map +1 -1
  190. package/dist/services/reporter-registry.cjs +8 -8
  191. package/dist/services/reporter-registry.cjs.map +1 -1
  192. package/dist/services/reporter-registry.js +8 -8
  193. package/dist/services/reporter-registry.js.map +1 -1
  194. package/package.json +7 -9
  195. package/src/cli/builder.ts +387 -0
  196. package/src/cli/commands/baseline.ts +7 -33
  197. package/src/cli/commands/history.ts +1 -16
  198. package/src/cli/commands/init.ts +2 -2
  199. package/src/cli/commands/run.ts +1 -1
  200. package/src/cli/commands/test.ts +1 -1
  201. package/src/cli/context.ts +117 -0
  202. package/src/cli/handlers.ts +76 -0
  203. package/src/cli/index.ts +49 -1194
  204. package/src/cli/parsers/analyze.ts +61 -0
  205. package/src/cli/parsers/baseline.ts +92 -0
  206. package/src/cli/parsers/global.ts +51 -0
  207. package/src/cli/parsers/history.ts +168 -0
  208. package/src/cli/parsers/index.ts +28 -0
  209. package/src/cli/parsers/init.ts +45 -0
  210. package/src/cli/parsers/run.ts +118 -0
  211. package/src/cli/parsers/test.ts +46 -0
  212. package/src/cli/theme.ts +33 -0
  213. package/src/config/budget-schema.ts +1 -1
  214. package/src/core/engines/accurate-engine.ts +1 -1
  215. package/src/errors/base.ts +1 -10
  216. package/src/formatters/history/compare.ts +6 -6
  217. package/src/formatters/history/show.ts +2 -2
  218. package/src/formatters/history/trends.ts +1 -1
  219. package/src/reporters/human.ts +5 -3
  220. package/src/reporters/nyan.ts +1 -1
  221. package/src/services/budget-evaluator.ts +2 -2
  222. package/src/services/config-manager.ts +2 -2
  223. package/src/services/profiler/profile-runner.ts +15 -0
  224. package/src/services/reporter-registry.ts +8 -8
@@ -25,14 +25,14 @@ class BaseReporter {
25
25
  if (nanoseconds < 1000) {
26
26
  return `${nanoseconds.toFixed(2)}ns`;
27
27
  }
28
- else if (nanoseconds < 1000000) {
28
+ else if (nanoseconds < 1_000_000) {
29
29
  return `${(nanoseconds / 1000).toFixed(2)}μs`;
30
30
  }
31
- else if (nanoseconds < 1000000000) {
32
- return `${(nanoseconds / 1000000).toFixed(2)}ms`;
31
+ else if (nanoseconds < 1_000_000_000) {
32
+ return `${(nanoseconds / 1_000_000).toFixed(2)}ms`;
33
33
  }
34
34
  else {
35
- return `${(nanoseconds / 1000000000).toFixed(2)}s`;
35
+ return `${(nanoseconds / 1_000_000_000).toFixed(2)}s`;
36
36
  }
37
37
  }
38
38
  /**
@@ -42,14 +42,14 @@ class BaseReporter {
42
42
  if (opsPerSecond < 1000) {
43
43
  return `${opsPerSecond.toFixed(2)} ops/sec`;
44
44
  }
45
- else if (opsPerSecond < 1000000) {
45
+ else if (opsPerSecond < 1_000_000) {
46
46
  return `${(opsPerSecond / 1000).toFixed(2)}K ops/sec`;
47
47
  }
48
- else if (opsPerSecond < 1000000000) {
49
- return `${(opsPerSecond / 1000000).toFixed(2)}M ops/sec`;
48
+ else if (opsPerSecond < 1_000_000_000) {
49
+ return `${(opsPerSecond / 1_000_000).toFixed(2)}M ops/sec`;
50
50
  }
51
51
  else {
52
- return `${(opsPerSecond / 1000000000).toFixed(2)}B ops/sec`;
52
+ return `${(opsPerSecond / 1_000_000_000).toFixed(2)}B ops/sec`;
53
53
  }
54
54
  }
55
55
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"reporter-registry.js","sourceRoot":"","sources":["../../src/services/reporter-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter-registry.js","sourceRoot":"","sources":["../../src/services/reporter-registry.ts"],"names":[],"mappings":"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"}
@@ -22,14 +22,14 @@ export class BaseReporter {
22
22
  if (nanoseconds < 1000) {
23
23
  return `${nanoseconds.toFixed(2)}ns`;
24
24
  }
25
- else if (nanoseconds < 1000000) {
25
+ else if (nanoseconds < 1_000_000) {
26
26
  return `${(nanoseconds / 1000).toFixed(2)}μs`;
27
27
  }
28
- else if (nanoseconds < 1000000000) {
29
- return `${(nanoseconds / 1000000).toFixed(2)}ms`;
28
+ else if (nanoseconds < 1_000_000_000) {
29
+ return `${(nanoseconds / 1_000_000).toFixed(2)}ms`;
30
30
  }
31
31
  else {
32
- return `${(nanoseconds / 1000000000).toFixed(2)}s`;
32
+ return `${(nanoseconds / 1_000_000_000).toFixed(2)}s`;
33
33
  }
34
34
  }
35
35
  /**
@@ -39,14 +39,14 @@ export class BaseReporter {
39
39
  if (opsPerSecond < 1000) {
40
40
  return `${opsPerSecond.toFixed(2)} ops/sec`;
41
41
  }
42
- else if (opsPerSecond < 1000000) {
42
+ else if (opsPerSecond < 1_000_000) {
43
43
  return `${(opsPerSecond / 1000).toFixed(2)}K ops/sec`;
44
44
  }
45
- else if (opsPerSecond < 1000000000) {
46
- return `${(opsPerSecond / 1000000).toFixed(2)}M ops/sec`;
45
+ else if (opsPerSecond < 1_000_000_000) {
46
+ return `${(opsPerSecond / 1_000_000).toFixed(2)}M ops/sec`;
47
47
  }
48
48
  else {
49
- return `${(opsPerSecond / 1000000000).toFixed(2)}B ops/sec`;
49
+ return `${(opsPerSecond / 1_000_000_000).toFixed(2)}B ops/sec`;
50
50
  }
51
51
  }
52
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"reporter-registry.js","sourceRoot":"","sources":["../../src/services/reporter-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter-registry.js","sourceRoot":"","sources":["../../src/services/reporter-registry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "modestbench",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "type": "module",
5
5
  "description": "A full-ass benchmarking framework for Node.js",
6
6
  "repository": {
@@ -93,7 +93,6 @@
93
93
  "build:schema": "tsx scripts/generate-schema.ts",
94
94
  "clean": "rm -rf dist",
95
95
  "commitlint": "commitlint",
96
- "dev": "zshy --watch",
97
96
  "docs:build": "run-s build:schema docs:copy astro:build",
98
97
  "docs:copy": "tsx scripts/copy-docs.ts",
99
98
  "docs:dev": "run-s docs:copy astro:dev",
@@ -122,13 +121,13 @@
122
121
  "test:watch": "npm run test:base -- --watch"
123
122
  },
124
123
  "dependencies": {
124
+ "@boneskull/bargs": "3.6.2",
125
125
  "cosmiconfig": "9.0.0",
126
126
  "cosmiconfig-typescript-loader": "6.2.0",
127
127
  "glob": "13.0.0",
128
128
  "minimatch": "10.1.1",
129
129
  "tinybench": "6.0.0",
130
- "yargs": "18.0.0",
131
- "zod": "4.1.13"
130
+ "zod": "4.2.1"
132
131
  },
133
132
  "devDependencies": {
134
133
  "@astrojs/mdx": "4.3.13",
@@ -142,20 +141,19 @@
142
141
  "@types/mocha": "10.0.10",
143
142
  "@types/node": "24.10.4",
144
143
  "@types/wallabyjs": "0.0.15",
145
- "@types/yargs": "17.0.35",
146
144
  "asciinema-player": "3.13.5",
147
- "astro": "5.16.5",
145
+ "astro": "5.16.6",
148
146
  "astro-broken-link-checker": "file:./vendor/astro-broken-link-checker",
149
147
  "ava": "6.4.1",
150
148
  "bupkis": "0.14.0",
151
149
  "cspell": "9.4.0",
152
150
  "eslint": "9.39.2",
153
151
  "eslint-plugin-jsonc": "2.21.0",
154
- "eslint-plugin-perfectionist": "4.15.1",
152
+ "eslint-plugin-perfectionist": "5.2.0",
155
153
  "globals": "16.5.0",
156
154
  "husky": "9.1.7",
157
155
  "jest": "30.2.0",
158
- "knip": "5.73.4",
156
+ "knip": "5.78.0",
159
157
  "lint-staged": "16.2.7",
160
158
  "markdownlint-cli2": "0.20.0",
161
159
  "markdownlint-cli2-formatter-pretty": "0.0.9",
@@ -169,7 +167,7 @@
169
167
  "tsd": "0.33.0",
170
168
  "tsx": "4.21.0",
171
169
  "typescript": "5.9.3",
172
- "typescript-eslint": "8.49.0",
170
+ "typescript-eslint": "8.50.1",
173
171
  "zshy": "0.6.0"
174
172
  },
175
173
  "publishConfig": {
@@ -0,0 +1,387 @@
1
+ /**
2
+ * CLI Builder
3
+ *
4
+ * Constructs the CLI using bargs, registering all commands, subcommands, and
5
+ * their handlers.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+
10
+ import { bargs } from '@boneskull/bargs';
11
+
12
+ import type { CliContext } from './context.js';
13
+
14
+ import {
15
+ handleAnalyzeCommand as analyzeCommand,
16
+ type AnalyzeOptions,
17
+ } from './commands/analyze.js';
18
+ import {
19
+ handleAnalyzeCommand as handleBaselineAnalyzeCommand,
20
+ handleDeleteCommand as handleBaselineDeleteCommand,
21
+ handleListCommand as handleBaselineListCommand,
22
+ handleSetCommand as handleBaselineSetCommand,
23
+ handleShowCommand as handleBaselineShowCommand,
24
+ } from './commands/baseline.js';
25
+ import {
26
+ handleCleanCommand,
27
+ handleCompareCommand,
28
+ handleExportCommand,
29
+ handleListCommand,
30
+ handleShowCommand,
31
+ handleTrendsCommand,
32
+ } from './commands/history.js';
33
+ import { handleInitCommand as initCommand } from './commands/init.js';
34
+ import { handleRunCommand as runCommand } from './commands/run.js';
35
+ import {
36
+ handleTestCommand as testCommand,
37
+ type TestOptions,
38
+ } from './commands/test.js';
39
+ import { createCliContext } from './context.js';
40
+ import {
41
+ analyzeParser,
42
+ baselineAnalyzeParser,
43
+ baselineDeleteParser,
44
+ baselineListParser,
45
+ baselineSetParser,
46
+ baselineShowParser,
47
+ globalOptions,
48
+ historyCleanParser,
49
+ historyCompareParser,
50
+ historyExportParser,
51
+ historyListParser,
52
+ historyShowParser,
53
+ historyTrendsParser,
54
+ initParser,
55
+ quietOption,
56
+ runParser,
57
+ testParser,
58
+ } from './parsers/index.js';
59
+ import { synthwaveTheme } from './theme.js';
60
+
61
+ /**
62
+ * Create the CLI builder with all commands registered
63
+ *
64
+ * @param abortController - Controller for aborting benchmark runs
65
+ * @returns Configured bargs CLI builder
66
+ */
67
+ export const createCli = (abortController: AbortController) => {
68
+ return bargs('modestbench', {
69
+ description: 'A modern benchmark runner for Node.js',
70
+ theme: synthwaveTheme,
71
+ })
72
+ .globals(globalOptions)
73
+ .command(
74
+ 'run',
75
+ runParser,
76
+ async ({ positionals, values }) => {
77
+ const [pattern] = positionals;
78
+ const context = await createCliContext(
79
+ values,
80
+ abortController,
81
+ values.engine,
82
+ );
83
+ const exitCode = await runCommand(context, {
84
+ bail: values.bail,
85
+ config: values.config,
86
+ cwd: values.cwd,
87
+ engine: values.engine,
88
+ exclude: values.exclude,
89
+ excludeTags: values.excludeTag,
90
+ iterations: values.iterations,
91
+ json: values.json,
92
+ jsonPretty: values.jsonPretty,
93
+ noColor: values.noColor,
94
+ outputDir: values.output,
95
+ outputFile: values.outputFile,
96
+ pattern,
97
+ progress: values.progress,
98
+ quiet: values.quiet,
99
+ reporters: values.reporter,
100
+ tags: values.tag,
101
+ time: values.time,
102
+ timeout: values.timeout,
103
+ verbose: values.verbose,
104
+ warmup: values.warmup,
105
+ });
106
+ process.exitCode = exitCode;
107
+ },
108
+ 'Run benchmark files',
109
+ )
110
+ .command(
111
+ 'history',
112
+ (history) =>
113
+ history
114
+ .globals(quietOption)
115
+ .command(
116
+ 'list',
117
+ historyListParser,
118
+ async ({ values }) => {
119
+ const context = await createCliContext(values, abortController);
120
+ const exitCode = await handleListCommand(context, {
121
+ cwd: values.cwd,
122
+ format: values.format,
123
+ limit: values.limit,
124
+ pattern: values.pattern,
125
+ since: values.since,
126
+ tags: values.tag,
127
+ until: values.until,
128
+ verbose: values.verbose,
129
+ });
130
+ process.exitCode = exitCode;
131
+ },
132
+ 'List recent benchmark runs',
133
+ )
134
+ .command(
135
+ 'show',
136
+ historyShowParser,
137
+ async ({ positionals, values }) => {
138
+ const [runId] = positionals;
139
+ const context = await createCliContext(values, abortController);
140
+ const exitCode = await handleShowCommand(context, {
141
+ cwd: values.cwd,
142
+ format: values.format,
143
+ runId,
144
+ verbose: values.verbose,
145
+ });
146
+ process.exitCode = exitCode;
147
+ },
148
+ 'Show detailed results for a specific run',
149
+ )
150
+ .command(
151
+ 'compare',
152
+ historyCompareParser,
153
+ async ({ positionals, values }) => {
154
+ const [runId1, runId2] = positionals;
155
+ const context = await createCliContext(values, abortController);
156
+ const exitCode = await handleCompareCommand(context, {
157
+ cwd: values.cwd,
158
+ format: values.format,
159
+ runId1,
160
+ runId2,
161
+ verbose: values.verbose,
162
+ });
163
+ process.exitCode = exitCode;
164
+ },
165
+ 'Compare two benchmark runs',
166
+ )
167
+ .command(
168
+ 'trends',
169
+ historyTrendsParser,
170
+ async ({ positionals, values }) => {
171
+ const [pattern] = positionals;
172
+ const context = await createCliContext(values, abortController);
173
+ const exitCode = await handleTrendsCommand(context, {
174
+ all: values.all,
175
+ cwd: values.cwd,
176
+ format: values.format,
177
+ limit: values.limit,
178
+ pattern,
179
+ since: values.since,
180
+ tags: values.tag,
181
+ until: values.until,
182
+ verbose: values.verbose,
183
+ });
184
+ process.exitCode = exitCode;
185
+ },
186
+ 'Show performance trends over time',
187
+ )
188
+ .command(
189
+ 'clean',
190
+ historyCleanParser,
191
+ async ({ values }) => {
192
+ const context = await createCliContext(values, abortController);
193
+ const exitCode = await handleCleanCommand(context, {
194
+ confirm: values.yes,
195
+ cwd: values.cwd,
196
+ maxAge: values.maxAge,
197
+ maxRuns: values.maxRuns,
198
+ maxSize: values.maxSize,
199
+ quiet: values.quiet,
200
+ verbose: values.verbose,
201
+ });
202
+ process.exitCode = exitCode;
203
+ },
204
+ 'Clean up old benchmark history',
205
+ )
206
+ .command(
207
+ 'export',
208
+ historyExportParser,
209
+ async ({ values }) => {
210
+ const context = await createCliContext(values, abortController);
211
+ const exitCode = await handleExportCommand(context, {
212
+ cwd: values.cwd,
213
+ format: values.format,
214
+ outputPath: values.output,
215
+ quiet: Boolean(values.quiet),
216
+ since: values.since,
217
+ until: values.until,
218
+ verbose: values.verbose,
219
+ });
220
+ process.exitCode = exitCode;
221
+ },
222
+ 'Export benchmark history to a file',
223
+ ),
224
+ 'View and manage benchmark history',
225
+ )
226
+ .command(
227
+ 'baseline',
228
+ (baseline) =>
229
+ baseline
230
+ .globals(quietOption)
231
+ .command(
232
+ 'set',
233
+ baselineSetParser,
234
+ async ({ positionals, values }) => {
235
+ const [name] = positionals;
236
+ const context = await createCliContext(values, abortController);
237
+ const exitCode = await handleBaselineSetCommand(context, {
238
+ branch: values.branch,
239
+ commit: values.commit,
240
+ cwd: values.cwd,
241
+ default: values.default,
242
+ name,
243
+ quiet: Boolean(values.quiet),
244
+ runId: values.runId,
245
+ verbose: values.verbose,
246
+ });
247
+ process.exitCode = exitCode;
248
+ },
249
+ 'Save a benchmark run as a baseline',
250
+ )
251
+ .command(
252
+ 'list',
253
+ baselineListParser,
254
+ async ({ values }) => {
255
+ const context = await createCliContext(values, abortController);
256
+ const exitCode = await handleBaselineListCommand(context, {
257
+ cwd: values.cwd,
258
+ format: values.format,
259
+ quiet: Boolean(values.quiet),
260
+ verbose: values.verbose,
261
+ });
262
+ process.exitCode = exitCode;
263
+ },
264
+ 'List all saved baselines',
265
+ )
266
+ .command(
267
+ 'show',
268
+ baselineShowParser,
269
+ async ({ positionals, values }) => {
270
+ const [name] = positionals;
271
+ const context = await createCliContext(values, abortController);
272
+ const exitCode = await handleBaselineShowCommand(context, {
273
+ cwd: values.cwd,
274
+ format: values.format,
275
+ name,
276
+ quiet: Boolean(values.quiet),
277
+ verbose: values.verbose,
278
+ });
279
+ process.exitCode = exitCode;
280
+ },
281
+ 'Show baseline details',
282
+ )
283
+ .command(
284
+ 'delete',
285
+ baselineDeleteParser,
286
+ async ({ positionals, values }) => {
287
+ const [name] = positionals;
288
+ const context = await createCliContext(values, abortController);
289
+ const exitCode = await handleBaselineDeleteCommand(context, {
290
+ cwd: values.cwd,
291
+ name,
292
+ quiet: Boolean(values.quiet),
293
+ verbose: values.verbose,
294
+ });
295
+ process.exitCode = exitCode;
296
+ },
297
+ 'Delete a baseline',
298
+ )
299
+ .command(
300
+ 'analyze',
301
+ baselineAnalyzeParser,
302
+ async ({ values }) => {
303
+ const context = await createCliContext(values, abortController);
304
+ const exitCode = await handleBaselineAnalyzeCommand(context, {
305
+ confidence: values.confidence,
306
+ cwd: values.cwd,
307
+ quiet: Boolean(values.quiet),
308
+ runs: values.runs,
309
+ verbose: values.verbose,
310
+ });
311
+ process.exitCode = exitCode;
312
+ },
313
+ 'Analyze history and suggest performance budgets',
314
+ ),
315
+ 'Manage performance baselines',
316
+ )
317
+ .command(
318
+ 'init',
319
+ initParser,
320
+ async ({ positionals, values }) => {
321
+ const [type] = positionals;
322
+ const context = await createCliContext(values, abortController);
323
+ const exitCode = await initCommand(context, {
324
+ configType: values.configType,
325
+ cwd: values.cwd,
326
+ examples: values.examples,
327
+ force: values.force,
328
+ quiet: values.quiet,
329
+ type,
330
+ verbose: values.verbose,
331
+ yes: values.yes,
332
+ });
333
+ process.exitCode = exitCode;
334
+ },
335
+ 'Initialize a new benchmark project',
336
+ )
337
+ .command(
338
+ 'analyze',
339
+ analyzeParser,
340
+ async ({ positionals, values }) => {
341
+ const [command] = positionals;
342
+ // Context not needed for analyze command currently
343
+ const context = {} as CliContext;
344
+
345
+ const options: AnalyzeOptions = {
346
+ color: !values.noColor,
347
+ command,
348
+ cwd: values.cwd || process.cwd(),
349
+ filterFile: values.filterFile,
350
+ groupByFile: values.groupByFile,
351
+ input: values.input,
352
+ minPercent: values.minPercent,
353
+ top: values.top,
354
+ };
355
+
356
+ process.exitCode = await analyzeCommand(context, options);
357
+ },
358
+ {
359
+ aliases: ['profile'],
360
+ description: 'Analyze code execution and identify benchmark candidates',
361
+ },
362
+ )
363
+ .command(
364
+ 'test',
365
+ testParser,
366
+ async ({ positionals, values }) => {
367
+ const [framework, files] = positionals;
368
+ const context = await createCliContext(values, abortController);
369
+ const options: TestOptions = {
370
+ bail: values.bail,
371
+ cwd: values.cwd,
372
+ framework,
373
+ iterations: values.iterations,
374
+ json: values.json,
375
+ noColor: values.noColor,
376
+ pattern: files,
377
+ quiet: values.quiet,
378
+ verbose: values.verbose,
379
+ warmup: values.warmup,
380
+ };
381
+ const exitCode = await testCommand(context, options);
382
+ process.exitCode = exitCode;
383
+ },
384
+ 'Run test files as benchmarks',
385
+ )
386
+ .defaultCommand('run');
387
+ };
@@ -11,6 +11,10 @@ import type { CliContext } from '../index.js';
11
11
 
12
12
  import { BaselineStorageService } from '../../services/baseline-storage.js';
13
13
  import { createTaskId } from '../../types/index.js';
14
+ import {
15
+ formatDuration,
16
+ formatOpsPerSecond,
17
+ } from '../../utils/reporter-utils.js';
14
18
 
15
19
  /**
16
20
  * Options for baseline analyze command
@@ -62,38 +66,6 @@ interface BaselineShowOptions extends BaselineBaseOptions {
62
66
  name: string;
63
67
  }
64
68
 
65
- /**
66
- * Format duration in human-readable format
67
- */
68
- const formatDuration = (nanoseconds: number): string => {
69
- if (nanoseconds < 1000) {
70
- return `${nanoseconds.toFixed(2)}ns`;
71
- }
72
- if (nanoseconds < 1000000) {
73
- return `${(nanoseconds / 1000).toFixed(2)}μs`;
74
- }
75
- if (nanoseconds < 1000000000) {
76
- return `${(nanoseconds / 1000000).toFixed(2)}ms`;
77
- }
78
- return `${(nanoseconds / 1000000000).toFixed(2)}s`;
79
- };
80
-
81
- /**
82
- * Format operations per second
83
- */
84
- const formatOpsPerSec = (ops: number): string => {
85
- if (ops < 1000) {
86
- return `${ops.toFixed(2)} ops/sec`;
87
- }
88
- if (ops < 1000000) {
89
- return `${(ops / 1000).toFixed(2)}K ops/sec`;
90
- }
91
- if (ops < 1000000000) {
92
- return `${(ops / 1000000).toFixed(2)}M ops/sec`;
93
- }
94
- return `${(ops / 1000000000).toFixed(2)}B ops/sec`;
95
- };
96
-
97
69
  /**
98
70
  * Format date in readable format
99
71
  */
@@ -337,7 +309,9 @@ export const handleShowCommand = async (
337
309
  for (const [taskId, data] of tasks) {
338
310
  console.log(` ${taskId}`);
339
311
  console.log(` Mean: ${formatDuration(data.mean)}`);
340
- console.log(` Ops/sec: ${formatOpsPerSec(data.opsPerSecond)}`);
312
+ console.log(
313
+ ` Ops/sec: ${formatOpsPerSecond(data.opsPerSecond)}`,
314
+ );
341
315
  if (data.p99) {
342
316
  console.log(` P99: ${formatDuration(data.p99)}`);
343
317
  }
@@ -22,6 +22,7 @@ import {
22
22
  parseDate,
23
23
  } from '../../services/history/query.js';
24
24
  import { TrendAnalysisService } from '../../services/history/trend-analysis.js';
25
+ import { formatBytes } from '../../utils/reporter-utils.js';
25
26
 
26
27
  /**
27
28
  * Base options shared by all history subcommands
@@ -94,22 +95,6 @@ interface HistoryTrendsOptions extends BaseHistoryOptions {
94
95
  until?: string | undefined;
95
96
  }
96
97
 
97
- /**
98
- * Format bytes in human-readable format
99
- */
100
- const formatBytes = (bytes: number): string => {
101
- const units = ['B', 'KB', 'MB', 'GB'];
102
- let size = bytes;
103
- let unitIndex = 0;
104
-
105
- while (size >= 1024 && unitIndex < units.length - 1) {
106
- size /= 1024;
107
- unitIndex++;
108
- }
109
-
110
- return `${size.toFixed(1)} ${units[unitIndex]}`;
111
- };
112
-
113
98
  /**
114
99
  * Resolve a partial run ID to a full ID by checking prefix match
115
100
  *