modestbench 0.8.0 → 0.9.1
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.
- package/CHANGELOG.md +22 -0
- package/README.md +37 -4
- package/dist/adapters/types.d.cts +1 -1
- package/dist/adapters/types.d.cts.map +1 -1
- package/dist/adapters/types.d.ts +1 -1
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/cli/commands/baseline.cjs +8 -8
- package/dist/cli/commands/baseline.cjs.map +1 -1
- package/dist/cli/commands/baseline.js +8 -8
- package/dist/cli/commands/baseline.js.map +1 -1
- package/dist/cli/commands/init.cjs +2 -2
- package/dist/cli/commands/init.cjs.map +1 -1
- package/dist/cli/commands/init.js +2 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.cjs +12 -8
- package/dist/cli/commands/run.cjs.map +1 -1
- package/dist/cli/commands/run.d.cts +1 -13
- package/dist/cli/commands/run.d.cts.map +1 -1
- package/dist/cli/commands/run.d.ts +1 -13
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +11 -7
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/test.cjs +1 -1
- package/dist/cli/commands/test.cjs.map +1 -1
- package/dist/cli/commands/test.js +1 -1
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/index.cjs +655 -870
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +27 -17
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts +27 -17
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +657 -869
- package/dist/cli/index.js.map +1 -1
- package/dist/{core → config}/benchmark-schema.cjs +1 -1
- package/dist/config/benchmark-schema.cjs.map +1 -0
- package/dist/config/benchmark-schema.d.cts +913 -0
- package/dist/config/benchmark-schema.d.cts.map +1 -0
- package/dist/config/benchmark-schema.d.ts +913 -0
- package/dist/config/benchmark-schema.d.ts.map +1 -0
- package/dist/{core → config}/benchmark-schema.js +1 -1
- package/dist/config/benchmark-schema.js.map +1 -0
- package/dist/config/budget-schema.cjs +1 -1
- package/dist/config/budget-schema.cjs.map +1 -1
- package/dist/config/budget-schema.js +1 -1
- package/dist/config/budget-schema.js.map +1 -1
- package/dist/config/schema.cjs +188 -105
- package/dist/config/schema.cjs.map +1 -1
- package/dist/config/schema.d.cts +208 -80
- package/dist/config/schema.d.cts.map +1 -1
- package/dist/config/schema.d.ts +208 -80
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +187 -104
- package/dist/config/schema.js.map +1 -1
- package/dist/core/engine.cjs +50 -45
- package/dist/core/engine.cjs.map +1 -1
- package/dist/core/engine.d.cts.map +1 -1
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +50 -45
- package/dist/core/engine.js.map +1 -1
- package/dist/core/engines/accurate-engine.cjs +1 -1
- package/dist/core/engines/accurate-engine.cjs.map +1 -1
- package/dist/core/engines/accurate-engine.d.cts.map +1 -1
- package/dist/core/engines/accurate-engine.d.ts.map +1 -1
- package/dist/core/engines/accurate-engine.js +1 -1
- package/dist/core/engines/accurate-engine.js.map +1 -1
- package/dist/core/output-path-resolver.cjs +15 -1
- package/dist/core/output-path-resolver.cjs.map +1 -1
- package/dist/core/output-path-resolver.d.cts +8 -0
- package/dist/core/output-path-resolver.d.cts.map +1 -1
- package/dist/core/output-path-resolver.d.ts +8 -0
- package/dist/core/output-path-resolver.d.ts.map +1 -1
- package/dist/core/output-path-resolver.js +13 -0
- package/dist/core/output-path-resolver.js.map +1 -1
- package/dist/formatters/history/compare.cjs +6 -6
- package/dist/formatters/history/compare.cjs.map +1 -1
- package/dist/formatters/history/compare.js +6 -6
- package/dist/formatters/history/compare.js.map +1 -1
- package/dist/formatters/history/show.cjs +2 -2
- package/dist/formatters/history/show.cjs.map +1 -1
- package/dist/formatters/history/show.js +2 -2
- package/dist/formatters/history/show.js.map +1 -1
- package/dist/formatters/history/trends.cjs +1 -1
- package/dist/formatters/history/trends.cjs.map +1 -1
- package/dist/formatters/history/trends.js +1 -1
- package/dist/formatters/history/trends.js.map +1 -1
- package/dist/reporters/human.cjs +3 -3
- package/dist/reporters/human.cjs.map +1 -1
- package/dist/reporters/human.d.cts.map +1 -1
- package/dist/reporters/human.d.ts.map +1 -1
- package/dist/reporters/human.js +3 -3
- package/dist/reporters/human.js.map +1 -1
- package/dist/reporters/json.cjs +1 -1
- package/dist/reporters/json.cjs.map +1 -1
- package/dist/reporters/json.js +1 -1
- package/dist/reporters/json.js.map +1 -1
- package/dist/reporters/nyan.cjs +1 -1
- package/dist/reporters/nyan.cjs.map +1 -1
- package/dist/reporters/nyan.js +1 -1
- package/dist/reporters/nyan.js.map +1 -1
- package/dist/schema/modestbench-config.schema.json +94 -87
- package/dist/services/budget-evaluator.cjs +10 -8
- package/dist/services/budget-evaluator.cjs.map +1 -1
- package/dist/services/budget-evaluator.d.cts +2 -2
- package/dist/services/budget-evaluator.d.cts.map +1 -1
- package/dist/services/budget-evaluator.d.ts +2 -2
- package/dist/services/budget-evaluator.d.ts.map +1 -1
- package/dist/services/budget-evaluator.js +10 -8
- package/dist/services/budget-evaluator.js.map +1 -1
- package/dist/services/budget-resolver.cjs +214 -0
- package/dist/services/budget-resolver.cjs.map +1 -0
- package/dist/services/budget-resolver.d.cts +98 -0
- package/dist/services/budget-resolver.d.cts.map +1 -0
- package/dist/services/budget-resolver.d.ts +98 -0
- package/dist/services/budget-resolver.d.ts.map +1 -0
- package/dist/services/budget-resolver.js +203 -0
- package/dist/services/budget-resolver.js.map +1 -0
- package/dist/services/config-manager.cjs +2 -2
- package/dist/services/config-manager.cjs.map +1 -1
- package/dist/services/config-manager.js +2 -2
- package/dist/services/config-manager.js.map +1 -1
- package/dist/services/file-loader.cjs +1 -1
- package/dist/services/file-loader.cjs.map +1 -1
- package/dist/services/file-loader.js +1 -1
- package/dist/services/file-loader.js.map +1 -1
- package/dist/services/reporter-registry.cjs +8 -8
- package/dist/services/reporter-registry.cjs.map +1 -1
- package/dist/services/reporter-registry.js +8 -8
- package/dist/services/reporter-registry.js.map +1 -1
- package/dist/types/budgets.d.cts +31 -0
- package/dist/types/budgets.d.cts.map +1 -1
- package/dist/types/budgets.d.ts +31 -0
- package/dist/types/budgets.d.ts.map +1 -1
- package/dist/types/core.cjs.map +1 -1
- package/dist/types/core.d.cts +28 -75
- package/dist/types/core.d.cts.map +1 -1
- package/dist/types/core.d.ts +28 -75
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js.map +1 -1
- package/package.json +24 -15
- package/src/adapters/types.ts +1 -1
- package/src/cli/commands/baseline.ts +8 -8
- package/src/cli/commands/init.ts +2 -2
- package/src/cli/commands/run.ts +18 -6
- package/src/cli/commands/test.ts +1 -1
- package/src/cli/index.ts +806 -942
- package/src/{core → config}/benchmark-schema.ts +1 -1
- package/src/config/budget-schema.ts +1 -1
- package/src/config/schema.ts +379 -302
- package/src/core/engine.ts +74 -69
- package/src/core/engines/accurate-engine.ts +1 -1
- package/src/core/output-path-resolver.ts +14 -0
- package/src/formatters/history/compare.ts +6 -6
- package/src/formatters/history/show.ts +2 -2
- package/src/formatters/history/trends.ts +1 -1
- package/src/reporters/human.ts +5 -3
- package/src/reporters/json.ts +1 -1
- package/src/reporters/nyan.ts +1 -1
- package/src/services/budget-evaluator.ts +15 -11
- package/src/services/budget-resolver.ts +254 -0
- package/src/services/config-manager.ts +2 -2
- package/src/services/file-loader.ts +1 -1
- package/src/services/reporter-registry.ts +8 -8
- package/src/types/budgets.ts +38 -0
- package/src/types/core.ts +64 -99
- package/dist/core/benchmark-schema.cjs.map +0 -1
- package/dist/core/benchmark-schema.d.cts +0 -139
- package/dist/core/benchmark-schema.d.cts.map +0 -1
- package/dist/core/benchmark-schema.d.ts +0 -139
- package/dist/core/benchmark-schema.d.ts.map +0 -1
- package/dist/core/benchmark-schema.js.map +0 -1
package/src/cli/commands/run.ts
CHANGED
|
@@ -11,11 +11,15 @@ import type {
|
|
|
11
11
|
BenchmarkRun,
|
|
12
12
|
ModestBenchConfig,
|
|
13
13
|
Reporter,
|
|
14
|
+
ReporterConfig,
|
|
14
15
|
} from '../../types/index.js';
|
|
15
16
|
import type { CliContext } from '../index.js';
|
|
16
17
|
|
|
17
18
|
import { ErrorCodes, ExitCodes } from '../../constants.js';
|
|
18
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
generateTimestampedFilename,
|
|
21
|
+
resolveOutputPath,
|
|
22
|
+
} from '../../core/output-path-resolver.js';
|
|
19
23
|
import {
|
|
20
24
|
type BudgetExceededError,
|
|
21
25
|
InvalidArgumentError,
|
|
@@ -42,7 +46,7 @@ import { hasErrorCode, isError } from '../../utils/type-guards.js';
|
|
|
42
46
|
* arguments provide values. They represent sensible defaults for running
|
|
43
47
|
* benchmarks.
|
|
44
48
|
*/
|
|
45
|
-
|
|
49
|
+
const RUN_COMMAND_DEFAULTS = {
|
|
46
50
|
bail: false,
|
|
47
51
|
quiet: false,
|
|
48
52
|
reporters: ['human'],
|
|
@@ -61,6 +65,7 @@ interface RunOptions {
|
|
|
61
65
|
excludeTags?: string[] | undefined;
|
|
62
66
|
iterations?: number | undefined;
|
|
63
67
|
json?: boolean | undefined;
|
|
68
|
+
jsonPretty?: boolean | undefined;
|
|
64
69
|
noColor?: boolean | undefined;
|
|
65
70
|
outputDir?: string | undefined;
|
|
66
71
|
outputFile?: string | undefined;
|
|
@@ -126,6 +131,7 @@ export const handleRunCommand = async (
|
|
|
126
131
|
options.outputDir,
|
|
127
132
|
options.outputFile,
|
|
128
133
|
options.progress,
|
|
134
|
+
options.jsonPretty,
|
|
129
135
|
);
|
|
130
136
|
|
|
131
137
|
// Step 3: Discovery phase
|
|
@@ -389,7 +395,7 @@ const setupReporters = async (
|
|
|
389
395
|
context: CliContext,
|
|
390
396
|
config: {
|
|
391
397
|
outputDir?: string;
|
|
392
|
-
reporterConfig?:
|
|
398
|
+
reporterConfig?: ReporterConfig;
|
|
393
399
|
reporters?: string[];
|
|
394
400
|
},
|
|
395
401
|
isVerbose: boolean,
|
|
@@ -398,6 +404,7 @@ const setupReporters = async (
|
|
|
398
404
|
explicitOutputDir?: string,
|
|
399
405
|
explicitOutputFile?: string,
|
|
400
406
|
progressOption?: boolean,
|
|
407
|
+
explicitJsonPretty?: boolean,
|
|
401
408
|
): Promise<Reporter[]> => {
|
|
402
409
|
try {
|
|
403
410
|
const reporters: Reporter[] = [];
|
|
@@ -426,7 +433,7 @@ const setupReporters = async (
|
|
|
426
433
|
const outputPath = resolveOutputPath(
|
|
427
434
|
outputDir,
|
|
428
435
|
explicitOutputFile,
|
|
429
|
-
'
|
|
436
|
+
generateTimestampedFilename('csv'),
|
|
430
437
|
);
|
|
431
438
|
reporter = new CsvReporter({
|
|
432
439
|
includeHeaders: true,
|
|
@@ -451,11 +458,16 @@ const setupReporters = async (
|
|
|
451
458
|
const outputPath = resolveOutputPath(
|
|
452
459
|
outputDir,
|
|
453
460
|
explicitOutputFile,
|
|
454
|
-
'
|
|
461
|
+
generateTimestampedFilename('json'),
|
|
455
462
|
);
|
|
463
|
+
// Precedence: CLI flag > config file > default (false)
|
|
464
|
+
const prettyPrint =
|
|
465
|
+
explicitJsonPretty ??
|
|
466
|
+
config.reporterConfig?.json?.prettyPrint ??
|
|
467
|
+
false;
|
|
456
468
|
reporter = new JsonReporter({
|
|
457
469
|
...(outputPath ? { outputPath } : {}),
|
|
458
|
-
prettyPrint
|
|
470
|
+
prettyPrint,
|
|
459
471
|
});
|
|
460
472
|
break;
|
|
461
473
|
}
|