modestbench 0.2.0 → 0.3.0
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 +20 -0
- package/README.md +131 -34
- package/dist/cli/commands/analyze.cjs +60 -0
- package/dist/cli/commands/analyze.cjs.map +1 -0
- package/dist/cli/commands/analyze.d.cts +35 -0
- package/dist/cli/commands/analyze.d.cts.map +1 -0
- package/dist/cli/commands/analyze.d.ts +35 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +56 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/baseline.cjs +404 -0
- package/dist/cli/commands/baseline.cjs.map +1 -0
- package/dist/cli/commands/baseline.d.cts +72 -0
- package/dist/cli/commands/baseline.d.cts.map +1 -0
- package/dist/cli/commands/baseline.d.ts +72 -0
- package/dist/cli/commands/baseline.d.ts.map +1 -0
- package/dist/cli/commands/baseline.js +396 -0
- package/dist/cli/commands/baseline.js.map +1 -0
- package/dist/cli/commands/history.d.cts +1 -1
- package/dist/cli/commands/history.d.cts.map +1 -1
- package/dist/cli/commands/history.d.ts +1 -1
- package/dist/cli/commands/history.d.ts.map +1 -1
- package/dist/cli/commands/init.cjs +88 -155
- package/dist/cli/commands/init.cjs.map +1 -1
- package/dist/cli/commands/init.d.cts +4 -4
- package/dist/cli/commands/init.d.cts.map +1 -1
- package/dist/cli/commands/init.d.ts +4 -4
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +88 -155
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/run.cjs +132 -114
- package/dist/cli/commands/run.cjs.map +1 -1
- package/dist/cli/commands/run.d.cts +16 -3
- package/dist/cli/commands/run.d.cts.map +1 -1
- package/dist/cli/commands/run.d.ts +16 -3
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +131 -80
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.cjs +583 -394
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts +4 -16
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts +4 -16
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +575 -386
- package/dist/cli/index.js.map +1 -1
- package/dist/config/budget-schema.cjs +172 -0
- package/dist/config/budget-schema.cjs.map +1 -0
- package/dist/config/budget-schema.d.cts +59 -0
- package/dist/config/budget-schema.d.cts.map +1 -0
- package/dist/config/budget-schema.d.ts +59 -0
- package/dist/config/budget-schema.d.ts.map +1 -0
- package/dist/config/budget-schema.js +166 -0
- package/dist/config/budget-schema.js.map +1 -0
- package/dist/config/schema.cjs +182 -2
- package/dist/config/schema.cjs.map +1 -1
- package/dist/config/schema.d.cts +122 -3
- package/dist/config/schema.d.cts.map +1 -1
- package/dist/config/schema.d.ts +122 -3
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +180 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/constants.cjs +45 -2
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +41 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.ts +41 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +44 -1
- package/dist/constants.js.map +1 -1
- package/dist/core/engine.cjs +103 -21
- package/dist/core/engine.cjs.map +1 -1
- package/dist/core/engine.d.cts +7 -7
- package/dist/core/engine.d.cts.map +1 -1
- package/dist/core/engine.d.ts +7 -7
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +104 -22
- package/dist/core/engine.js.map +1 -1
- package/dist/core/output-path-resolver.cjs +8 -1
- package/dist/core/output-path-resolver.cjs.map +1 -1
- package/dist/core/output-path-resolver.d.cts.map +1 -1
- package/dist/core/output-path-resolver.d.ts.map +1 -1
- package/dist/core/output-path-resolver.js +9 -2
- package/dist/core/output-path-resolver.js.map +1 -1
- package/dist/errors/base.cjs +12 -3
- package/dist/errors/base.cjs.map +1 -1
- package/dist/errors/base.d.cts +7 -0
- package/dist/errors/base.d.cts.map +1 -1
- package/dist/errors/base.d.ts +7 -0
- package/dist/errors/base.d.ts.map +1 -1
- package/dist/errors/base.js +10 -2
- package/dist/errors/base.js.map +1 -1
- package/dist/errors/budget.cjs +37 -0
- package/dist/errors/budget.cjs.map +1 -0
- package/dist/errors/budget.d.cts +31 -0
- package/dist/errors/budget.d.cts.map +1 -0
- package/dist/errors/budget.d.ts +31 -0
- package/dist/errors/budget.d.ts.map +1 -0
- package/dist/errors/budget.js +33 -0
- package/dist/errors/budget.js.map +1 -0
- package/dist/errors/index.cjs +4 -1
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.d.cts +1 -0
- package/dist/errors/index.d.cts.map +1 -1
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/index.cjs +13 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/reporters/csv.cjs +37 -17
- package/dist/reporters/csv.cjs.map +1 -1
- package/dist/reporters/csv.d.cts +3 -6
- package/dist/reporters/csv.d.cts.map +1 -1
- package/dist/reporters/csv.d.ts +3 -6
- package/dist/reporters/csv.d.ts.map +1 -1
- package/dist/reporters/csv.js +37 -17
- package/dist/reporters/csv.js.map +1 -1
- package/dist/reporters/human.cjs +66 -40
- package/dist/reporters/human.cjs.map +1 -1
- package/dist/reporters/human.d.cts +14 -13
- package/dist/reporters/human.d.cts.map +1 -1
- package/dist/reporters/human.d.ts +14 -13
- package/dist/reporters/human.d.ts.map +1 -1
- package/dist/reporters/human.js +66 -40
- package/dist/reporters/human.js.map +1 -1
- package/dist/reporters/json.cjs +23 -48
- package/dist/reporters/json.cjs.map +1 -1
- package/dist/reporters/json.d.cts +2 -28
- package/dist/reporters/json.d.cts.map +1 -1
- package/dist/reporters/json.d.ts +2 -28
- package/dist/reporters/json.d.ts.map +1 -1
- package/dist/reporters/json.js +25 -50
- package/dist/reporters/json.js.map +1 -1
- package/dist/reporters/profile-human.cjs +149 -0
- package/dist/reporters/profile-human.cjs.map +1 -0
- package/dist/reporters/profile-human.d.cts +44 -0
- package/dist/reporters/profile-human.d.cts.map +1 -0
- package/dist/reporters/profile-human.d.ts +44 -0
- package/dist/reporters/profile-human.d.ts.map +1 -0
- package/dist/reporters/profile-human.js +142 -0
- package/dist/reporters/profile-human.js.map +1 -0
- package/dist/reporters/simple.cjs +64 -44
- package/dist/reporters/simple.cjs.map +1 -1
- package/dist/reporters/simple.d.cts +14 -14
- package/dist/reporters/simple.d.cts.map +1 -1
- package/dist/reporters/simple.d.ts +14 -14
- package/dist/reporters/simple.d.ts.map +1 -1
- package/dist/reporters/simple.js +64 -44
- package/dist/reporters/simple.js.map +1 -1
- package/dist/schema/modestbench-config.schema.json +153 -0
- package/dist/services/baseline-storage.cjs +151 -0
- package/dist/services/baseline-storage.cjs.map +1 -0
- package/dist/services/baseline-storage.d.cts +55 -0
- package/dist/services/baseline-storage.d.cts.map +1 -0
- package/dist/services/baseline-storage.d.ts +55 -0
- package/dist/services/baseline-storage.d.ts.map +1 -0
- package/dist/services/baseline-storage.js +147 -0
- package/dist/services/baseline-storage.js.map +1 -0
- package/dist/services/budget-evaluator.cjs +146 -0
- package/dist/services/budget-evaluator.cjs.map +1 -0
- package/dist/services/budget-evaluator.d.cts +29 -0
- package/dist/services/budget-evaluator.d.cts.map +1 -0
- package/dist/services/budget-evaluator.d.ts +29 -0
- package/dist/services/budget-evaluator.d.ts.map +1 -0
- package/dist/services/budget-evaluator.js +142 -0
- package/dist/services/budget-evaluator.js.map +1 -0
- package/dist/services/config-manager.cjs +23 -9
- package/dist/services/config-manager.cjs.map +1 -1
- package/dist/services/config-manager.d.cts +6 -1
- package/dist/services/config-manager.d.cts.map +1 -1
- package/dist/services/config-manager.d.ts +6 -1
- package/dist/services/config-manager.d.ts.map +1 -1
- package/dist/services/config-manager.js +23 -9
- package/dist/services/config-manager.js.map +1 -1
- package/dist/services/file-loader.cjs +3 -6
- package/dist/services/file-loader.cjs.map +1 -1
- package/dist/services/file-loader.d.cts.map +1 -1
- package/dist/services/file-loader.d.ts.map +1 -1
- package/dist/services/file-loader.js +3 -6
- package/dist/services/file-loader.js.map +1 -1
- package/dist/services/profiler/profile-filter.cjs +113 -0
- package/dist/services/profiler/profile-filter.cjs.map +1 -0
- package/dist/services/profiler/profile-filter.d.cts +20 -0
- package/dist/services/profiler/profile-filter.d.cts.map +1 -0
- package/dist/services/profiler/profile-filter.d.ts +20 -0
- package/dist/services/profiler/profile-filter.d.ts.map +1 -0
- package/dist/services/profiler/profile-filter.js +109 -0
- package/dist/services/profiler/profile-filter.js.map +1 -0
- package/dist/services/profiler/profile-parser.cjs +139 -0
- package/dist/services/profiler/profile-parser.cjs.map +1 -0
- package/dist/services/profiler/profile-parser.d.cts +18 -0
- package/dist/services/profiler/profile-parser.d.cts.map +1 -0
- package/dist/services/profiler/profile-parser.d.ts +18 -0
- package/dist/services/profiler/profile-parser.d.ts.map +1 -0
- package/dist/services/profiler/profile-parser.js +132 -0
- package/dist/services/profiler/profile-parser.js.map +1 -0
- package/dist/services/profiler/profile-runner.cjs +90 -0
- package/dist/services/profiler/profile-runner.cjs.map +1 -0
- package/dist/services/profiler/profile-runner.d.cts +29 -0
- package/dist/services/profiler/profile-runner.d.cts.map +1 -0
- package/dist/services/profiler/profile-runner.d.ts +29 -0
- package/dist/services/profiler/profile-runner.d.ts.map +1 -0
- package/dist/services/profiler/profile-runner.js +86 -0
- package/dist/services/profiler/profile-runner.js.map +1 -0
- package/dist/services/reporter-registry.cjs +18 -24
- package/dist/services/reporter-registry.cjs.map +1 -1
- package/dist/services/reporter-registry.d.cts +18 -40
- package/dist/services/reporter-registry.d.cts.map +1 -1
- package/dist/services/reporter-registry.d.ts +18 -40
- package/dist/services/reporter-registry.d.ts.map +1 -1
- package/dist/services/reporter-registry.js +18 -24
- package/dist/services/reporter-registry.js.map +1 -1
- package/dist/types/budgets.cjs +8 -0
- package/dist/types/budgets.cjs.map +1 -0
- package/dist/types/budgets.d.cts +149 -0
- package/dist/types/budgets.d.cts.map +1 -0
- package/dist/types/budgets.d.ts +149 -0
- package/dist/types/budgets.d.ts.map +1 -0
- package/dist/types/budgets.js +7 -0
- package/dist/types/budgets.js.map +1 -0
- package/dist/types/cli.cjs +2 -11
- package/dist/types/cli.cjs.map +1 -1
- package/dist/types/cli.d.cts +3 -227
- package/dist/types/cli.d.cts.map +1 -1
- package/dist/types/cli.d.ts +3 -227
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/cli.js +2 -11
- package/dist/types/cli.js.map +1 -1
- package/dist/types/core.cjs +6 -1
- package/dist/types/core.cjs.map +1 -1
- package/dist/types/core.d.cts +13 -2
- package/dist/types/core.d.cts.map +1 -1
- package/dist/types/core.d.ts +13 -2
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/core.js +2 -1
- package/dist/types/core.js.map +1 -1
- package/dist/types/index.cjs +5 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +2 -0
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/interfaces.d.cts +15 -8
- package/dist/types/interfaces.d.cts.map +1 -1
- package/dist/types/interfaces.d.ts +15 -8
- package/dist/types/interfaces.d.ts.map +1 -1
- package/dist/types/profiler.cjs +11 -0
- package/dist/types/profiler.cjs.map +1 -0
- package/dist/types/profiler.d.cts +100 -0
- package/dist/types/profiler.d.cts.map +1 -0
- package/dist/types/profiler.d.ts +100 -0
- package/dist/types/profiler.d.ts.map +1 -0
- package/dist/types/profiler.js +10 -0
- package/dist/types/profiler.js.map +1 -0
- package/dist/types/utility.cjs.map +1 -1
- package/dist/types/utility.d.cts +0 -8
- package/dist/types/utility.d.cts.map +1 -1
- package/dist/types/utility.d.ts +0 -8
- package/dist/types/utility.d.ts.map +1 -1
- package/dist/types/utility.js.map +1 -1
- package/dist/utils/identifiers.cjs +32 -0
- package/dist/utils/identifiers.cjs.map +1 -0
- package/dist/utils/identifiers.d.cts +32 -0
- package/dist/utils/identifiers.d.cts.map +1 -0
- package/dist/utils/identifiers.d.ts +32 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/identifiers.js +27 -0
- package/dist/utils/identifiers.js.map +1 -0
- package/dist/utils/package.cjs +40 -0
- package/dist/utils/package.cjs.map +1 -0
- package/dist/utils/package.d.cts +15 -0
- package/dist/utils/package.d.cts.map +1 -0
- package/dist/utils/package.d.ts +15 -0
- package/dist/utils/package.d.ts.map +1 -0
- package/dist/utils/package.js +33 -0
- package/dist/utils/package.js.map +1 -0
- package/dist/utils/type-guards.cjs +48 -0
- package/dist/utils/type-guards.cjs.map +1 -0
- package/dist/utils/type-guards.d.cts +22 -0
- package/dist/utils/type-guards.d.cts.map +1 -0
- package/dist/utils/type-guards.d.ts +22 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +43 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/package.json +10 -10
- package/src/cli/commands/analyze.ts +101 -0
- package/src/cli/commands/baseline.ts +577 -0
- package/src/cli/commands/history.ts +1 -1
- package/src/cli/commands/init.ts +105 -183
- package/src/cli/commands/run.ts +167 -98
- package/src/cli/index.ts +425 -183
- package/src/config/budget-schema.ts +189 -0
- package/src/config/schema.ts +260 -1
- package/src/constants.ts +53 -1
- package/src/core/engine.ts +151 -20
- package/src/core/output-path-resolver.ts +10 -2
- package/src/errors/base.ts +11 -2
- package/src/errors/budget.ts +38 -0
- package/src/errors/index.ts +3 -0
- package/src/index.ts +9 -0
- package/src/reporters/csv.ts +54 -25
- package/src/reporters/human.ts +88 -47
- package/src/reporters/json.ts +26 -71
- package/src/reporters/profile-human.ts +204 -0
- package/src/reporters/simple.ts +84 -53
- package/src/services/baseline-storage.ts +199 -0
- package/src/services/budget-evaluator.ts +182 -0
- package/src/services/config-manager.ts +23 -8
- package/src/services/file-loader.ts +3 -6
- package/src/services/profiler/profile-filter.ts +143 -0
- package/src/services/profiler/profile-parser.ts +194 -0
- package/src/services/profiler/profile-runner.ts +121 -0
- package/src/services/reporter-registry.ts +46 -81
- package/src/types/budgets.ts +180 -0
- package/src/types/cli.ts +5 -238
- package/src/types/core.ts +50 -10
- package/src/types/index.ts +5 -0
- package/src/types/interfaces.ts +16 -6
- package/src/types/profiler.ts +132 -0
- package/src/types/utility.ts +0 -10
- package/src/utils/identifiers.ts +58 -0
- package/src/utils/package.ts +35 -0
- package/src/utils/type-guards.ts +51 -0
package/dist/config/schema.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as z from 'zod';
|
|
9
9
|
import { BENCHMARK_FILE_PATTERN } from "../constants.js";
|
|
10
|
+
import { parsePercentageString, parseTimeString } from "./budget-schema.js";
|
|
10
11
|
/**
|
|
11
12
|
* Schema for threshold configuration
|
|
12
13
|
*
|
|
@@ -50,6 +51,41 @@ const thresholdConfigSchema = z
|
|
|
50
51
|
.meta({
|
|
51
52
|
title: 'Threshold Configuration',
|
|
52
53
|
});
|
|
54
|
+
/**
|
|
55
|
+
* Inline budget schema for configuration (no transforms for JSON Schema
|
|
56
|
+
* compatibility - transforms are applied manually in transformBudgets
|
|
57
|
+
* function)
|
|
58
|
+
*/
|
|
59
|
+
const budgetSchema = z
|
|
60
|
+
.object({
|
|
61
|
+
absolute: z
|
|
62
|
+
.object({
|
|
63
|
+
maxP99: z
|
|
64
|
+
.union([z.number().positive(), z.string()])
|
|
65
|
+
.optional()
|
|
66
|
+
.describe('Maximum 99th percentile in nanoseconds or time string'),
|
|
67
|
+
maxTime: z
|
|
68
|
+
.union([z.number().positive(), z.string()])
|
|
69
|
+
.describe('Maximum mean time in nanoseconds or time string (e.g., "10ms")'),
|
|
70
|
+
minOpsPerSec: z
|
|
71
|
+
.number()
|
|
72
|
+
.positive()
|
|
73
|
+
.optional()
|
|
74
|
+
.describe('Minimum operations per second'),
|
|
75
|
+
})
|
|
76
|
+
.optional()
|
|
77
|
+
.describe('Absolute performance thresholds'),
|
|
78
|
+
relative: z
|
|
79
|
+
.object({
|
|
80
|
+
maxRegression: z
|
|
81
|
+
.union([z.number().min(0).max(1), z.string()])
|
|
82
|
+
.optional()
|
|
83
|
+
.describe('Maximum regression as decimal (0.1) or percentage string ("10%")'),
|
|
84
|
+
})
|
|
85
|
+
.optional()
|
|
86
|
+
.describe('Relative performance thresholds vs baseline'),
|
|
87
|
+
})
|
|
88
|
+
.describe('Performance budget with absolute and/or relative thresholds');
|
|
53
89
|
/**
|
|
54
90
|
* Schema for the main ModestBench configuration
|
|
55
91
|
*
|
|
@@ -63,6 +99,18 @@ const modestBenchConfigSchema = z
|
|
|
63
99
|
.optional()
|
|
64
100
|
.describe('JSON Schema reference for IDE support (not used by ModestBench)'),
|
|
65
101
|
bail: z.boolean().describe('Stop benchmark execution on first failure'),
|
|
102
|
+
baseline: z
|
|
103
|
+
.string()
|
|
104
|
+
.optional()
|
|
105
|
+
.describe('Name of baseline to use for relative budget comparisons. Must match a saved baseline name.'),
|
|
106
|
+
budgetMode: z
|
|
107
|
+
.enum(['fail', 'warn', 'report'])
|
|
108
|
+
.optional()
|
|
109
|
+
.describe('How to handle budget violations: "fail" exits with error (default), "warn" shows warnings, "report" includes in output without failing'),
|
|
110
|
+
budgets: z
|
|
111
|
+
.record(z.string(), z.record(z.string(), z.record(z.string(), budgetSchema)))
|
|
112
|
+
.optional()
|
|
113
|
+
.describe('Performance budgets organized by file → suite → task. Budgets define acceptable performance thresholds.'),
|
|
66
114
|
exclude: z
|
|
67
115
|
.array(z.string())
|
|
68
116
|
.describe('Glob patterns to exclude from benchmark file discovery (e.g., "node_modules/**", ".git/**")'),
|
|
@@ -87,6 +135,45 @@ const modestBenchConfigSchema = z
|
|
|
87
135
|
pattern: z
|
|
88
136
|
.union([z.string().min(1), z.array(z.string().min(1))])
|
|
89
137
|
.describe(`Glob pattern(s) for discovering benchmark files. Can be a single pattern string or array of patterns (e.g., "**/*${BENCHMARK_FILE_PATTERN}")`),
|
|
138
|
+
profile: z
|
|
139
|
+
.object({
|
|
140
|
+
exclude: z
|
|
141
|
+
.array(z.string())
|
|
142
|
+
.optional()
|
|
143
|
+
.describe('Glob patterns to exclude from profiling results'),
|
|
144
|
+
focus: z
|
|
145
|
+
.array(z.string())
|
|
146
|
+
.optional()
|
|
147
|
+
.describe('Glob patterns to focus on in profiling results. If specified, only matching files will be shown'),
|
|
148
|
+
minCallCount: z
|
|
149
|
+
.number()
|
|
150
|
+
.int()
|
|
151
|
+
.nonnegative()
|
|
152
|
+
.optional()
|
|
153
|
+
.describe('Minimum number of times a function must be called to be included in results'),
|
|
154
|
+
minExecutionPercent: z
|
|
155
|
+
.number()
|
|
156
|
+
.nonnegative()
|
|
157
|
+
.max(100)
|
|
158
|
+
.default(1.0)
|
|
159
|
+
.describe('Minimum execution percentage threshold for including functions in results'),
|
|
160
|
+
outputFile: z
|
|
161
|
+
.string()
|
|
162
|
+
.optional()
|
|
163
|
+
.describe('Path to write profile report to file'),
|
|
164
|
+
smartDetection: z
|
|
165
|
+
.boolean()
|
|
166
|
+
.default(true)
|
|
167
|
+
.describe('Automatically detect and focus on user code, excluding node_modules and Node.js internals'),
|
|
168
|
+
topN: z
|
|
169
|
+
.number()
|
|
170
|
+
.int()
|
|
171
|
+
.positive()
|
|
172
|
+
.default(25)
|
|
173
|
+
.describe('Maximum number of top functions to show in results'),
|
|
174
|
+
})
|
|
175
|
+
.optional()
|
|
176
|
+
.describe('Configuration for profile command to identify benchmark candidates'),
|
|
90
177
|
quiet: z
|
|
91
178
|
.boolean()
|
|
92
179
|
.describe('Run in quiet mode with minimal console output (only errors and final results)'),
|
|
@@ -132,6 +219,87 @@ const modestBenchConfigSchema = z
|
|
|
132
219
|
* merging with defaults.
|
|
133
220
|
*/
|
|
134
221
|
export const partialModestBenchConfigSchema = modestBenchConfigSchema.partial();
|
|
222
|
+
/**
|
|
223
|
+
* Transform budget values (parse time/percentage strings)
|
|
224
|
+
*/
|
|
225
|
+
const transformBudgetValues = (budget) => {
|
|
226
|
+
const transformed = {};
|
|
227
|
+
if (budget.absolute) {
|
|
228
|
+
transformed.absolute = {};
|
|
229
|
+
// Copy minOpsPerSec as-is (already a number)
|
|
230
|
+
if (budget.absolute.minOpsPerSec !== undefined) {
|
|
231
|
+
transformed.absolute.minOpsPerSec = budget.absolute.minOpsPerSec;
|
|
232
|
+
}
|
|
233
|
+
// Parse time strings
|
|
234
|
+
if (budget.absolute.maxTime !== undefined) {
|
|
235
|
+
transformed.absolute.maxTime =
|
|
236
|
+
typeof budget.absolute.maxTime === 'string'
|
|
237
|
+
? parseTimeString(budget.absolute.maxTime)
|
|
238
|
+
: budget.absolute.maxTime;
|
|
239
|
+
}
|
|
240
|
+
if (budget.absolute.maxP99 !== undefined) {
|
|
241
|
+
transformed.absolute.maxP99 =
|
|
242
|
+
typeof budget.absolute.maxP99 === 'string'
|
|
243
|
+
? parseTimeString(budget.absolute.maxP99)
|
|
244
|
+
: budget.absolute.maxP99;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
if (budget.relative) {
|
|
248
|
+
transformed.relative = {};
|
|
249
|
+
// Parse percentage strings
|
|
250
|
+
if (budget.relative.maxRegression !== undefined) {
|
|
251
|
+
transformed.relative.maxRegression =
|
|
252
|
+
typeof budget.relative.maxRegression === 'string'
|
|
253
|
+
? parsePercentageString(budget.relative.maxRegression)
|
|
254
|
+
: budget.relative.maxRegression;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return transformed;
|
|
258
|
+
};
|
|
259
|
+
/**
|
|
260
|
+
* Transform nested budget structure to flat TaskId → Budget mapping Also parses
|
|
261
|
+
* time and percentage strings
|
|
262
|
+
*
|
|
263
|
+
* @internal
|
|
264
|
+
*/
|
|
265
|
+
const transformBudgets = (nested) => {
|
|
266
|
+
if (!nested) {
|
|
267
|
+
return undefined;
|
|
268
|
+
}
|
|
269
|
+
const flat = {};
|
|
270
|
+
for (const [file, suites] of Object.entries(nested)) {
|
|
271
|
+
for (const [suite, tasks] of Object.entries(suites)) {
|
|
272
|
+
for (const [task, budget] of Object.entries(tasks)) {
|
|
273
|
+
const taskId = `${file}/${suite}/${task}`;
|
|
274
|
+
// Transform budget values (parse strings)
|
|
275
|
+
flat[taskId] = transformBudgetValues(budget);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return flat;
|
|
280
|
+
};
|
|
281
|
+
/**
|
|
282
|
+
* Safely parse and validate a partial configuration object with budget
|
|
283
|
+
* transformation
|
|
284
|
+
*
|
|
285
|
+
* @param config - The configuration object to validate
|
|
286
|
+
* @returns A result object with either success: true and data, or success:
|
|
287
|
+
* false and error
|
|
288
|
+
*/
|
|
289
|
+
export const safeParsePartialConfig = (config) => {
|
|
290
|
+
const result = partialModestBenchConfigSchema.safeParse(config);
|
|
291
|
+
// Transform nested budgets to flat structure after validation
|
|
292
|
+
if (result.success && result.data.budgets) {
|
|
293
|
+
return {
|
|
294
|
+
...result,
|
|
295
|
+
data: {
|
|
296
|
+
...result.data,
|
|
297
|
+
budgets: transformBudgets(result.data.budgets),
|
|
298
|
+
},
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
return result;
|
|
302
|
+
};
|
|
135
303
|
/**
|
|
136
304
|
* Safely parse and validate a configuration object
|
|
137
305
|
*
|
|
@@ -140,6 +308,17 @@ export const partialModestBenchConfigSchema = modestBenchConfigSchema.partial();
|
|
|
140
308
|
* false and error
|
|
141
309
|
*/
|
|
142
310
|
export const safeParseConfig = (config) => {
|
|
143
|
-
|
|
311
|
+
const result = modestBenchConfigSchema.safeParse(config);
|
|
312
|
+
// Transform nested budgets to flat structure after validation
|
|
313
|
+
if (result.success && result.data.budgets) {
|
|
314
|
+
return {
|
|
315
|
+
...result,
|
|
316
|
+
data: {
|
|
317
|
+
...result.data,
|
|
318
|
+
budgets: transformBudgets(result.data.budgets),
|
|
319
|
+
},
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
return result;
|
|
144
323
|
};
|
|
145
324
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB,OAAO,EAAE,sBAAsB,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ErrorCodes = exports.BENCHMARK_FILE_PATTERN = exports.BENCHMARK_FILE_EXTENSIONS = void 0;
|
|
3
|
+
exports.ErrorCodes = exports.DEFAULT_REPORTER = exports.Reporters = exports.DEFAULT_ENGINE = exports.Engines = exports.ExitCodes = exports.ABORT_TIMEOUT = exports.BENCHMARK_FILE_PATTERN = exports.BENCHMARK_FILE_EXTENSIONS = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Supported benchmark file extensions
|
|
6
6
|
*/
|
|
@@ -19,20 +19,63 @@ exports.BENCHMARK_FILE_EXTENSIONS = new Set([
|
|
|
19
19
|
exports.BENCHMARK_FILE_PATTERN = `.bench.{${Array.from(exports.BENCHMARK_FILE_EXTENSIONS)
|
|
20
20
|
.map((ext) => ext.slice(1))
|
|
21
21
|
.join(',')}}`;
|
|
22
|
+
/**
|
|
23
|
+
* Timeout before we force-quit when aborting benchmarks (ms)
|
|
24
|
+
*/
|
|
25
|
+
exports.ABORT_TIMEOUT = 500;
|
|
26
|
+
/**
|
|
27
|
+
* Exit codes for the CLI
|
|
28
|
+
*/
|
|
29
|
+
exports.ExitCodes = {
|
|
30
|
+
BENCHMARK_FAILURES: 1,
|
|
31
|
+
CONFIG_ERROR: 2,
|
|
32
|
+
DISCOVERY_ERROR: 3,
|
|
33
|
+
RUNTIME_ERROR: 5,
|
|
34
|
+
SUCCESS: 0,
|
|
35
|
+
UNKNOWN_ERROR: 99,
|
|
36
|
+
VALIDATION_ERROR: 4,
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Supported benchmark engines
|
|
40
|
+
*/
|
|
41
|
+
exports.Engines = {
|
|
42
|
+
ACCURATE: 'accurate',
|
|
43
|
+
TINYBENCH: 'tinybench',
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Default benchmark engine
|
|
47
|
+
*/
|
|
48
|
+
exports.DEFAULT_ENGINE = exports.Engines.TINYBENCH;
|
|
49
|
+
/**
|
|
50
|
+
* Supported reporters
|
|
51
|
+
*/
|
|
52
|
+
exports.Reporters = {
|
|
53
|
+
CSV: 'csv',
|
|
54
|
+
HUMAN: 'human',
|
|
55
|
+
JSON: 'json',
|
|
56
|
+
SIMPLE: 'simple',
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Default reporter
|
|
60
|
+
*/
|
|
61
|
+
exports.DEFAULT_REPORTER = exports.Reporters.HUMAN;
|
|
22
62
|
/**
|
|
23
63
|
* Error codes for all ModestBench errors
|
|
24
64
|
*
|
|
25
65
|
* Use these constants to check error types instead of instanceof checks.
|
|
26
66
|
*/
|
|
27
67
|
exports.ErrorCodes = {
|
|
68
|
+
//#region budget-errors
|
|
69
|
+
BUDGET_EXCEEDED: 'ERR_MB_BUDGET_EXCEEDED',
|
|
28
70
|
//#region cli-errors
|
|
29
71
|
CLI_INVALID_ARGUMENT: 'ERR_MB_CLI_INVALID_ARGUMENT',
|
|
30
|
-
CLI_INVALID_DATE_FORMAT: 'ERR_MB_CLI_INVALID_DATE_FORMAT',
|
|
31
72
|
//#endregion
|
|
73
|
+
CLI_INVALID_DATE_FORMAT: 'ERR_MB_CLI_INVALID_DATE_FORMAT',
|
|
32
74
|
//#region config-errors
|
|
33
75
|
CONFIG_LOAD_FAILED: 'ERR_MB_CONFIG_LOAD_FAILED',
|
|
34
76
|
CONFIG_NOT_FOUND: 'ERR_MB_CONFIG_NOT_FOUND',
|
|
35
77
|
CONFIG_UNSUPPORTED_FORMAT: 'ERR_MB_CONFIG_UNSUPPORTED_FORMAT',
|
|
78
|
+
//#endregion
|
|
36
79
|
CONFIG_VALIDATION_FAILED: 'ERR_MB_CONFIG_VALIDATION_FAILED',
|
|
37
80
|
//#endregion
|
|
38
81
|
//#region execution-errors
|
package/dist/constants.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,yBAAyB,GAAG,IAAI,GAAG,CAAC;IAC/C,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;CACN,CAAC,CAAC;AAEH;;;GAGG;AACU,QAAA,sBAAsB,GAAG,WAAW,KAAK,CAAC,IAAI,CACzD,iCAAyB,CAC1B;KACE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAEhB;;GAEG;AACU,QAAA,aAAa,GAAG,GAAG,CAAC;AAEjC;;GAEG;AACU,QAAA,SAAS,GAAG;IACvB,kBAAkB,EAAE,CAAC;IACrB,YAAY,EAAE,CAAC;IACf,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,CAAC;CACX,CAAC;AAEX;;GAEG;AACU,QAAA,OAAO,GAAG;IACrB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;CACmB,CAAC;AAE5C;;GAEG;AACU,QAAA,cAAc,GAAG,eAAO,CAAC,SAAS,CAAC;AAEhD;;GAEG;AACU,QAAA,SAAS,GAAG;IACvB,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX;;GAEG;AACU,QAAA,gBAAgB,GAAG,iBAAS,CAAC,KAAK,CAAC;AAEhD;;;;GAIG;AACU,QAAA,UAAU,GAAG;IACxB,uBAAuB;IACvB,eAAe,EAAE,wBAAwB;IACzC,oBAAoB;IACpB,oBAAoB,EAAE,6BAA6B;IACnD,YAAY;IAEZ,uBAAuB,EAAE,gCAAgC;IACzD,uBAAuB;IACvB,kBAAkB,EAAE,2BAA2B;IAC/C,gBAAgB,EAAE,yBAAyB;IAC3C,yBAAyB,EAAE,kCAAkC;IAC7D,YAAY;IAEZ,wBAAwB,EAAE,iCAAiC;IAC3D,YAAY;IAEZ,0BAA0B;IAC1B,0BAA0B,EAAE,mCAAmC;IAC/D,sBAAsB,EAAE,+BAA+B;IACvD,qBAAqB,EAAE,8BAA8B;IACrD,yBAAyB,EAAE,kCAAkC;IAC7D,iBAAiB,EAAE,0BAA0B;IAC7C,kBAAkB,EAAE,2BAA2B;IAC/C,YAAY;IAEZ,qBAAqB;IACrB,qBAAqB,EAAE,8BAA8B;IACrD,gBAAgB,EAAE,yBAAyB;IAC3C,cAAc,EAAE,uBAAuB;IACvC,sBAAsB,EAAE,+BAA+B;IACvD,0BAA0B,EAAE,mCAAmC;IAC/D,YAAY;IAEZ,yBAAyB;IACzB,2BAA2B,EAAE,oCAAoC;IACjE,sBAAsB,EAAE,+BAA+B;IACvD,gBAAgB,EAAE,yBAAyB;IAC3C,YAAY;IAEZ,wBAAwB;IACxB,kBAAkB,EAAE,2BAA2B;IAC/C,0BAA0B,EAAE,mCAAmC;IAC/D,cAAc,EAAE,uBAAuB;IACvC,wBAAwB,EAAE,iCAAiC;IAC3D,0BAA0B,EAAE,mCAAmC;IAC/D,YAAY;IAEZ,qBAAqB;IACrB,OAAO,EAAE,gBAAgB;IACzB,YAAY;IAEZ,2BAA2B;IAC3B,wBAAwB,EAAE,iCAAiC;IAC3D,4BAA4B,EAAE,qCAAqC;IACnE,sBAAsB,EAAE,+BAA+B;IACvD,YAAY;CACJ,CAAC"}
|
package/dist/constants.d.cts
CHANGED
|
@@ -7,12 +7,53 @@ export declare const BENCHMARK_FILE_EXTENSIONS: Set<string>;
|
|
|
7
7
|
* ".bench.{js,mjs,cjs,ts,mts,cts}"
|
|
8
8
|
*/
|
|
9
9
|
export declare const BENCHMARK_FILE_PATTERN: string;
|
|
10
|
+
/**
|
|
11
|
+
* Timeout before we force-quit when aborting benchmarks (ms)
|
|
12
|
+
*/
|
|
13
|
+
export declare const ABORT_TIMEOUT = 500;
|
|
14
|
+
/**
|
|
15
|
+
* Exit codes for the CLI
|
|
16
|
+
*/
|
|
17
|
+
export declare const ExitCodes: {
|
|
18
|
+
readonly BENCHMARK_FAILURES: 1;
|
|
19
|
+
readonly CONFIG_ERROR: 2;
|
|
20
|
+
readonly DISCOVERY_ERROR: 3;
|
|
21
|
+
readonly RUNTIME_ERROR: 5;
|
|
22
|
+
readonly SUCCESS: 0;
|
|
23
|
+
readonly UNKNOWN_ERROR: 99;
|
|
24
|
+
readonly VALIDATION_ERROR: 4;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Supported benchmark engines
|
|
28
|
+
*/
|
|
29
|
+
export declare const Engines: {
|
|
30
|
+
readonly ACCURATE: "accurate";
|
|
31
|
+
readonly TINYBENCH: "tinybench";
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Default benchmark engine
|
|
35
|
+
*/
|
|
36
|
+
export declare const DEFAULT_ENGINE: "tinybench";
|
|
37
|
+
/**
|
|
38
|
+
* Supported reporters
|
|
39
|
+
*/
|
|
40
|
+
export declare const Reporters: {
|
|
41
|
+
readonly CSV: "csv";
|
|
42
|
+
readonly HUMAN: "human";
|
|
43
|
+
readonly JSON: "json";
|
|
44
|
+
readonly SIMPLE: "simple";
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Default reporter
|
|
48
|
+
*/
|
|
49
|
+
export declare const DEFAULT_REPORTER: "human";
|
|
10
50
|
/**
|
|
11
51
|
* Error codes for all ModestBench errors
|
|
12
52
|
*
|
|
13
53
|
* Use these constants to check error types instead of instanceof checks.
|
|
14
54
|
*/
|
|
15
55
|
export declare const ErrorCodes: {
|
|
56
|
+
readonly BUDGET_EXCEEDED: "ERR_MB_BUDGET_EXCEEDED";
|
|
16
57
|
readonly CLI_INVALID_ARGUMENT: "ERR_MB_CLI_INVALID_ARGUMENT";
|
|
17
58
|
readonly CLI_INVALID_DATE_FORMAT: "ERR_MB_CLI_INVALID_DATE_FORMAT";
|
|
18
59
|
readonly CONFIG_LOAD_FAILED: "ERR_MB_CONFIG_LOAD_FAILED";
|
package/dist/constants.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,yBAAyB,aAOpC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAIpB,CAAC;AAEhB;;GAEG;AACH,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,OAAO;;;CAGuB,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,cAAc,aAAoB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,SAAkB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDb,CAAC"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -7,12 +7,53 @@ export declare const BENCHMARK_FILE_EXTENSIONS: Set<string>;
|
|
|
7
7
|
* ".bench.{js,mjs,cjs,ts,mts,cts}"
|
|
8
8
|
*/
|
|
9
9
|
export declare const BENCHMARK_FILE_PATTERN: string;
|
|
10
|
+
/**
|
|
11
|
+
* Timeout before we force-quit when aborting benchmarks (ms)
|
|
12
|
+
*/
|
|
13
|
+
export declare const ABORT_TIMEOUT = 500;
|
|
14
|
+
/**
|
|
15
|
+
* Exit codes for the CLI
|
|
16
|
+
*/
|
|
17
|
+
export declare const ExitCodes: {
|
|
18
|
+
readonly BENCHMARK_FAILURES: 1;
|
|
19
|
+
readonly CONFIG_ERROR: 2;
|
|
20
|
+
readonly DISCOVERY_ERROR: 3;
|
|
21
|
+
readonly RUNTIME_ERROR: 5;
|
|
22
|
+
readonly SUCCESS: 0;
|
|
23
|
+
readonly UNKNOWN_ERROR: 99;
|
|
24
|
+
readonly VALIDATION_ERROR: 4;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Supported benchmark engines
|
|
28
|
+
*/
|
|
29
|
+
export declare const Engines: {
|
|
30
|
+
readonly ACCURATE: "accurate";
|
|
31
|
+
readonly TINYBENCH: "tinybench";
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Default benchmark engine
|
|
35
|
+
*/
|
|
36
|
+
export declare const DEFAULT_ENGINE: "tinybench";
|
|
37
|
+
/**
|
|
38
|
+
* Supported reporters
|
|
39
|
+
*/
|
|
40
|
+
export declare const Reporters: {
|
|
41
|
+
readonly CSV: "csv";
|
|
42
|
+
readonly HUMAN: "human";
|
|
43
|
+
readonly JSON: "json";
|
|
44
|
+
readonly SIMPLE: "simple";
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Default reporter
|
|
48
|
+
*/
|
|
49
|
+
export declare const DEFAULT_REPORTER: "human";
|
|
10
50
|
/**
|
|
11
51
|
* Error codes for all ModestBench errors
|
|
12
52
|
*
|
|
13
53
|
* Use these constants to check error types instead of instanceof checks.
|
|
14
54
|
*/
|
|
15
55
|
export declare const ErrorCodes: {
|
|
56
|
+
readonly BUDGET_EXCEEDED: "ERR_MB_BUDGET_EXCEEDED";
|
|
16
57
|
readonly CLI_INVALID_ARGUMENT: "ERR_MB_CLI_INVALID_ARGUMENT";
|
|
17
58
|
readonly CLI_INVALID_DATE_FORMAT: "ERR_MB_CLI_INVALID_DATE_FORMAT";
|
|
18
59
|
readonly CONFIG_LOAD_FAILED: "ERR_MB_CONFIG_LOAD_FAILED";
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,yBAAyB,aAOpC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAIpB,CAAC;AAEhB;;GAEG;AACH,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,OAAO;;;CAGuB,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,cAAc,aAAoB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,SAAkB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDb,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -16,20 +16,63 @@ export const BENCHMARK_FILE_EXTENSIONS = new Set([
|
|
|
16
16
|
export const BENCHMARK_FILE_PATTERN = `.bench.{${Array.from(BENCHMARK_FILE_EXTENSIONS)
|
|
17
17
|
.map((ext) => ext.slice(1))
|
|
18
18
|
.join(',')}}`;
|
|
19
|
+
/**
|
|
20
|
+
* Timeout before we force-quit when aborting benchmarks (ms)
|
|
21
|
+
*/
|
|
22
|
+
export const ABORT_TIMEOUT = 500;
|
|
23
|
+
/**
|
|
24
|
+
* Exit codes for the CLI
|
|
25
|
+
*/
|
|
26
|
+
export const ExitCodes = {
|
|
27
|
+
BENCHMARK_FAILURES: 1,
|
|
28
|
+
CONFIG_ERROR: 2,
|
|
29
|
+
DISCOVERY_ERROR: 3,
|
|
30
|
+
RUNTIME_ERROR: 5,
|
|
31
|
+
SUCCESS: 0,
|
|
32
|
+
UNKNOWN_ERROR: 99,
|
|
33
|
+
VALIDATION_ERROR: 4,
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Supported benchmark engines
|
|
37
|
+
*/
|
|
38
|
+
export const Engines = {
|
|
39
|
+
ACCURATE: 'accurate',
|
|
40
|
+
TINYBENCH: 'tinybench',
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Default benchmark engine
|
|
44
|
+
*/
|
|
45
|
+
export const DEFAULT_ENGINE = Engines.TINYBENCH;
|
|
46
|
+
/**
|
|
47
|
+
* Supported reporters
|
|
48
|
+
*/
|
|
49
|
+
export const Reporters = {
|
|
50
|
+
CSV: 'csv',
|
|
51
|
+
HUMAN: 'human',
|
|
52
|
+
JSON: 'json',
|
|
53
|
+
SIMPLE: 'simple',
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Default reporter
|
|
57
|
+
*/
|
|
58
|
+
export const DEFAULT_REPORTER = Reporters.HUMAN;
|
|
19
59
|
/**
|
|
20
60
|
* Error codes for all ModestBench errors
|
|
21
61
|
*
|
|
22
62
|
* Use these constants to check error types instead of instanceof checks.
|
|
23
63
|
*/
|
|
24
64
|
export const ErrorCodes = {
|
|
65
|
+
//#region budget-errors
|
|
66
|
+
BUDGET_EXCEEDED: 'ERR_MB_BUDGET_EXCEEDED',
|
|
25
67
|
//#region cli-errors
|
|
26
68
|
CLI_INVALID_ARGUMENT: 'ERR_MB_CLI_INVALID_ARGUMENT',
|
|
27
|
-
CLI_INVALID_DATE_FORMAT: 'ERR_MB_CLI_INVALID_DATE_FORMAT',
|
|
28
69
|
//#endregion
|
|
70
|
+
CLI_INVALID_DATE_FORMAT: 'ERR_MB_CLI_INVALID_DATE_FORMAT',
|
|
29
71
|
//#region config-errors
|
|
30
72
|
CONFIG_LOAD_FAILED: 'ERR_MB_CONFIG_LOAD_FAILED',
|
|
31
73
|
CONFIG_NOT_FOUND: 'ERR_MB_CONFIG_NOT_FOUND',
|
|
32
74
|
CONFIG_UNSUPPORTED_FORMAT: 'ERR_MB_CONFIG_UNSUPPORTED_FORMAT',
|
|
75
|
+
//#endregion
|
|
33
76
|
CONFIG_VALIDATION_FAILED: 'ERR_MB_CONFIG_VALIDATION_FAILED',
|
|
34
77
|
//#endregion
|
|
35
78
|
//#region execution-errors
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC;IAC/C,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;CACN,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,KAAK,CAAC,IAAI,CACzD,yBAAyB,CAC1B;KACE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAEhB;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,kBAAkB,EAAE,CAAC;IACrB,YAAY,EAAE,CAAC;IACf,eAAe,EAAE,CAAC;IAClB,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,CAAC;CACX,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;CACmB,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,uBAAuB;IACvB,eAAe,EAAE,wBAAwB;IACzC,oBAAoB;IACpB,oBAAoB,EAAE,6BAA6B;IACnD,YAAY;IAEZ,uBAAuB,EAAE,gCAAgC;IACzD,uBAAuB;IACvB,kBAAkB,EAAE,2BAA2B;IAC/C,gBAAgB,EAAE,yBAAyB;IAC3C,yBAAyB,EAAE,kCAAkC;IAC7D,YAAY;IAEZ,wBAAwB,EAAE,iCAAiC;IAC3D,YAAY;IAEZ,0BAA0B;IAC1B,0BAA0B,EAAE,mCAAmC;IAC/D,sBAAsB,EAAE,+BAA+B;IACvD,qBAAqB,EAAE,8BAA8B;IACrD,yBAAyB,EAAE,kCAAkC;IAC7D,iBAAiB,EAAE,0BAA0B;IAC7C,kBAAkB,EAAE,2BAA2B;IAC/C,YAAY;IAEZ,qBAAqB;IACrB,qBAAqB,EAAE,8BAA8B;IACrD,gBAAgB,EAAE,yBAAyB;IAC3C,cAAc,EAAE,uBAAuB;IACvC,sBAAsB,EAAE,+BAA+B;IACvD,0BAA0B,EAAE,mCAAmC;IAC/D,YAAY;IAEZ,yBAAyB;IACzB,2BAA2B,EAAE,oCAAoC;IACjE,sBAAsB,EAAE,+BAA+B;IACvD,gBAAgB,EAAE,yBAAyB;IAC3C,YAAY;IAEZ,wBAAwB;IACxB,kBAAkB,EAAE,2BAA2B;IAC/C,0BAA0B,EAAE,mCAAmC;IAC/D,cAAc,EAAE,uBAAuB;IACvC,wBAAwB,EAAE,iCAAiC;IAC3D,0BAA0B,EAAE,mCAAmC;IAC/D,YAAY;IAEZ,qBAAqB;IACrB,OAAO,EAAE,gBAAgB;IACzB,YAAY;IAEZ,2BAA2B;IAC3B,wBAAwB,EAAE,iCAAiC;IAC3D,4BAA4B,EAAE,qCAAqC;IACnE,sBAAsB,EAAE,+BAA+B;IACvD,YAAY;CACJ,CAAC"}
|