modestbench 0.7.0 → 0.9.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 +25 -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/run.cjs +93 -49
- package/dist/cli/commands/run.cjs.map +1 -1
- package/dist/cli/commands/run.d.cts +1 -0
- package/dist/cli/commands/run.d.cts.map +1 -1
- package/dist/cli/commands/run.d.ts +1 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +95 -51
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.cjs +7 -1
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.cts.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +7 -1
- 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/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/constants.cjs +2 -0
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +2 -0
- package/dist/constants.d.cts.map +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -0
- package/dist/constants.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/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/errors/index.cjs +3 -1
- package/dist/errors/index.cjs.map +1 -1
- package/dist/errors/index.d.cts +1 -1
- package/dist/errors/index.d.cts.map +1 -1
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/errors/reporter.cjs +45 -1
- package/dist/errors/reporter.cjs.map +1 -1
- package/dist/errors/reporter.d.cts +32 -0
- package/dist/errors/reporter.d.cts.map +1 -1
- package/dist/errors/reporter.d.ts +32 -0
- package/dist/errors/reporter.d.ts.map +1 -1
- package/dist/errors/reporter.js +42 -0
- package/dist/errors/reporter.js.map +1 -1
- package/dist/index.cjs +16 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.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/schema/modestbench-config.schema.json +94 -87
- package/dist/services/budget-evaluator.cjs +8 -6
- 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 +8 -6
- 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/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-loader.cjs +281 -0
- package/dist/services/reporter-loader.cjs.map +1 -0
- package/dist/services/reporter-loader.d.cts +67 -0
- package/dist/services/reporter-loader.d.cts.map +1 -0
- package/dist/services/reporter-loader.d.ts +67 -0
- package/dist/services/reporter-loader.d.ts.map +1 -0
- package/dist/services/reporter-loader.js +241 -0
- package/dist/services/reporter-loader.js.map +1 -0
- 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/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +1 -0
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/plugin.cjs +9 -0
- package/dist/types/plugin.cjs.map +1 -0
- package/dist/types/plugin.d.cts +179 -0
- package/dist/types/plugin.d.cts.map +1 -0
- package/dist/types/plugin.d.ts +179 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +8 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/utils/package.cjs +66 -5
- package/dist/utils/package.cjs.map +1 -1
- package/dist/utils/package.d.cts +6 -0
- package/dist/utils/package.d.cts.map +1 -1
- package/dist/utils/package.d.ts +6 -0
- package/dist/utils/package.d.ts.map +1 -1
- package/dist/utils/package.js +31 -1
- package/dist/utils/package.js.map +1 -1
- package/dist/utils/reporter-utils.cjs +90 -0
- package/dist/utils/reporter-utils.cjs.map +1 -0
- package/dist/utils/reporter-utils.d.cts +42 -0
- package/dist/utils/reporter-utils.d.cts.map +1 -0
- package/dist/utils/reporter-utils.d.ts +42 -0
- package/dist/utils/reporter-utils.d.ts.map +1 -0
- package/dist/utils/reporter-utils.js +83 -0
- package/dist/utils/reporter-utils.js.map +1 -0
- package/package.json +20 -9
- package/src/adapters/types.ts +1 -1
- package/src/cli/commands/run.ts +140 -69
- package/src/cli/index.ts +8 -1
- package/src/{core → config}/benchmark-schema.ts +1 -1
- package/src/config/schema.ts +379 -302
- package/src/constants.ts +2 -0
- package/src/core/engine.ts +74 -69
- package/src/core/output-path-resolver.ts +14 -0
- package/src/errors/index.ts +2 -0
- package/src/errors/reporter.ts +55 -0
- package/src/index.ts +19 -1
- package/src/reporters/json.ts +1 -1
- package/src/services/budget-evaluator.ts +13 -9
- package/src/services/budget-resolver.ts +254 -0
- package/src/services/file-loader.ts +1 -1
- package/src/services/reporter-loader.ts +323 -0
- package/src/types/budgets.ts +38 -0
- package/src/types/core.ts +64 -99
- package/src/types/index.ts +3 -0
- package/src/types/plugin.ts +197 -0
- package/src/utils/package.ts +32 -1
- package/src/utils/reporter-utils.ts +85 -0
- 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/dist/config/schema.js
CHANGED
|
@@ -7,7 +7,31 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as z from 'zod';
|
|
9
9
|
import { BENCHMARK_FILE_PATTERN } from "../constants.js";
|
|
10
|
+
import { createBudgetPattern, isGlobPattern, } from "../services/budget-resolver.js";
|
|
10
11
|
import { parsePercentageString, parseTimeString } from "./budget-schema.js";
|
|
12
|
+
/**
|
|
13
|
+
* Schema for JSON reporter configuration options
|
|
14
|
+
*/
|
|
15
|
+
export const jsonReporterConfigSchema = z.object({
|
|
16
|
+
prettyPrint: z
|
|
17
|
+
.boolean()
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('Whether to pretty-print JSON output (default: false)'),
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Schema for reporter-specific configuration
|
|
23
|
+
*
|
|
24
|
+
* Allows typed configuration for known reporters while permitting unknown
|
|
25
|
+
* reporter configs via catchall.
|
|
26
|
+
*/
|
|
27
|
+
export const reporterConfigSchema = z
|
|
28
|
+
.object({
|
|
29
|
+
json: jsonReporterConfigSchema
|
|
30
|
+
.optional()
|
|
31
|
+
.describe('Configuration options for the JSON reporter'),
|
|
32
|
+
})
|
|
33
|
+
.catchall(z.unknown())
|
|
34
|
+
.describe('Configuration options specific to individual reporters, keyed by reporter name');
|
|
11
35
|
/**
|
|
12
36
|
* Schema for threshold configuration
|
|
13
37
|
*
|
|
@@ -52,11 +76,11 @@ const thresholdConfigSchema = z
|
|
|
52
76
|
title: 'Threshold Configuration',
|
|
53
77
|
});
|
|
54
78
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
79
|
+
* Input schema for budget values (before transformation)
|
|
80
|
+
*
|
|
81
|
+
* Accepts string values like "10ms" or "10%" for human-readable configuration.
|
|
58
82
|
*/
|
|
59
|
-
const
|
|
83
|
+
const budgetInputSchema = z
|
|
60
84
|
.object({
|
|
61
85
|
absolute: z
|
|
62
86
|
.object({
|
|
@@ -66,6 +90,7 @@ const budgetSchema = z
|
|
|
66
90
|
.describe('Maximum 99th percentile in nanoseconds or time string'),
|
|
67
91
|
maxTime: z
|
|
68
92
|
.union([z.number().positive(), z.string()])
|
|
93
|
+
.optional()
|
|
69
94
|
.describe('Maximum mean time in nanoseconds or time string (e.g., "10ms")'),
|
|
70
95
|
minOpsPerSec: z
|
|
71
96
|
.number()
|
|
@@ -87,13 +112,119 @@ const budgetSchema = z
|
|
|
87
112
|
})
|
|
88
113
|
.describe('Performance budget with absolute and/or relative thresholds');
|
|
89
114
|
/**
|
|
90
|
-
*
|
|
115
|
+
* Transform budget values (parse time/percentage strings to numbers)
|
|
91
116
|
*
|
|
92
|
-
*
|
|
93
|
-
* configuration from all sources (files, CLI args, defaults).
|
|
117
|
+
* Returns a Budget object with all string values converted to numbers.
|
|
94
118
|
*/
|
|
95
|
-
const
|
|
96
|
-
|
|
119
|
+
const transformBudgetValues = (budget) => {
|
|
120
|
+
return {
|
|
121
|
+
// Build absolute budget object if present
|
|
122
|
+
absolute: budget.absolute
|
|
123
|
+
? {
|
|
124
|
+
maxP99: budget.absolute.maxP99 !== undefined
|
|
125
|
+
? typeof budget.absolute.maxP99 === 'string'
|
|
126
|
+
? parseTimeString(budget.absolute.maxP99)
|
|
127
|
+
: budget.absolute.maxP99
|
|
128
|
+
: undefined,
|
|
129
|
+
maxTime: budget.absolute.maxTime !== undefined
|
|
130
|
+
? typeof budget.absolute.maxTime === 'string'
|
|
131
|
+
? parseTimeString(budget.absolute.maxTime)
|
|
132
|
+
: budget.absolute.maxTime
|
|
133
|
+
: undefined,
|
|
134
|
+
minOpsPerSec: budget.absolute.minOpsPerSec,
|
|
135
|
+
}
|
|
136
|
+
: undefined,
|
|
137
|
+
// Build relative budget object if present
|
|
138
|
+
relative: budget.relative
|
|
139
|
+
? {
|
|
140
|
+
maxRegression: budget.relative.maxRegression !== undefined
|
|
141
|
+
? typeof budget.relative.maxRegression === 'string'
|
|
142
|
+
? parsePercentageString(budget.relative.maxRegression)
|
|
143
|
+
: budget.relative.maxRegression
|
|
144
|
+
: undefined,
|
|
145
|
+
}
|
|
146
|
+
: undefined,
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Budget schema with transform for string-to-number conversion
|
|
151
|
+
*
|
|
152
|
+
* Input: Budget with string values like "10ms" or "10%" Output: Budget with
|
|
153
|
+
* numeric values only
|
|
154
|
+
*/
|
|
155
|
+
const budgetSchema = budgetInputSchema.transform(transformBudgetValues);
|
|
156
|
+
/**
|
|
157
|
+
* Input schema for budgets (nested file → suite → task → budget structure)
|
|
158
|
+
* without transforms - used for JSON Schema generation.
|
|
159
|
+
*/
|
|
160
|
+
const budgetsRawInputSchema = z.record(z.string(), z.record(z.string(), z.record(z.string(), budgetInputSchema)));
|
|
161
|
+
/**
|
|
162
|
+
* Input schema for budgets with individual budget transforms applied.
|
|
163
|
+
*
|
|
164
|
+
* Used to validate the human-readable nested format from config files.
|
|
165
|
+
*/
|
|
166
|
+
const budgetsInputSchema = z.record(z.string(), z.record(z.string(), z.record(z.string(), budgetSchema)));
|
|
167
|
+
/**
|
|
168
|
+
* Check if a suite or task name is a wildcard
|
|
169
|
+
*
|
|
170
|
+
* @param name - The suite or task name
|
|
171
|
+
* @returns True if the name is a wildcard (`*`)
|
|
172
|
+
*/
|
|
173
|
+
const isWildcard = (name) => name === '*';
|
|
174
|
+
/**
|
|
175
|
+
* Check if a budget entry contains any wildcards or glob patterns
|
|
176
|
+
*
|
|
177
|
+
* @param file - File pattern
|
|
178
|
+
* @param suite - Suite name or wildcard
|
|
179
|
+
* @param task - Task name or wildcard
|
|
180
|
+
* @returns True if any part contains wildcards
|
|
181
|
+
*/
|
|
182
|
+
const hasWildcards = (file, suite, task) => {
|
|
183
|
+
return isGlobPattern(file) || isWildcard(suite) || isWildcard(task);
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Transform nested budget structure to ResolvedBudgets with exact matches and
|
|
187
|
+
* patterns separated
|
|
188
|
+
*
|
|
189
|
+
* @param nested - Nested budgets structure (file → suite → task → budget)
|
|
190
|
+
* @returns ResolvedBudgets with exact matches and wildcard patterns
|
|
191
|
+
*/
|
|
192
|
+
const flattenBudgets = (nested) => {
|
|
193
|
+
const exact = {};
|
|
194
|
+
const patterns = [];
|
|
195
|
+
for (const [file, suites] of Object.entries(nested)) {
|
|
196
|
+
for (const [suite, tasks] of Object.entries(suites)) {
|
|
197
|
+
for (const [task, budget] of Object.entries(tasks)) {
|
|
198
|
+
if (hasWildcards(file, suite, task)) {
|
|
199
|
+
// This is a pattern budget
|
|
200
|
+
patterns.push(createBudgetPattern(file, suite, task, budget));
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
// This is an exact match
|
|
204
|
+
const taskId = `${file}/${suite}/${task}`;
|
|
205
|
+
exact[taskId] = budget;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// Sort patterns by specificity descending for consistent iteration order
|
|
211
|
+
patterns.sort((a, b) => b.specificity - a.specificity);
|
|
212
|
+
return { exact, patterns };
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* Budgets schema with transform for nested-to-ResolvedBudgets conversion
|
|
216
|
+
*
|
|
217
|
+
* Input: { [file]: { [suite]: { [task]: Budget } } } Output: ResolvedBudgets {
|
|
218
|
+
* exact: { [taskId]: Budget }, patterns: BudgetPattern[] }
|
|
219
|
+
*/
|
|
220
|
+
const budgetsSchema = budgetsInputSchema.transform(flattenBudgets);
|
|
221
|
+
/**
|
|
222
|
+
* Shared configuration properties (everything except budgets)
|
|
223
|
+
*
|
|
224
|
+
* These properties are identical between the runtime schema (with transforms)
|
|
225
|
+
* and the JSON Schema generation schema (without transforms).
|
|
226
|
+
*/
|
|
227
|
+
const baseConfigProperties = {
|
|
97
228
|
$schema: z
|
|
98
229
|
.string()
|
|
99
230
|
.optional()
|
|
@@ -107,10 +238,6 @@ const modestBenchConfigSchema = z
|
|
|
107
238
|
.enum(['fail', 'warn', 'report'])
|
|
108
239
|
.optional()
|
|
109
240
|
.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.'),
|
|
114
241
|
exclude: z
|
|
115
242
|
.array(z.string())
|
|
116
243
|
.describe('Glob patterns to exclude from benchmark file discovery (e.g., "node_modules/**", ".git/**")'),
|
|
@@ -178,9 +305,7 @@ const modestBenchConfigSchema = z
|
|
|
178
305
|
quiet: z
|
|
179
306
|
.boolean()
|
|
180
307
|
.describe('Run in quiet mode with minimal console output (only errors and final results)'),
|
|
181
|
-
reporterConfig:
|
|
182
|
-
.record(z.string(), z.unknown())
|
|
183
|
-
.describe('Configuration options specific to individual reporters, keyed by reporter name'),
|
|
308
|
+
reporterConfig: reporterConfigSchema,
|
|
184
309
|
reporters: z
|
|
185
310
|
.array(z.string())
|
|
186
311
|
.min(1)
|
|
@@ -207,99 +332,68 @@ const modestBenchConfigSchema = z
|
|
|
207
332
|
.int()
|
|
208
333
|
.nonnegative()
|
|
209
334
|
.describe('Number of warmup iterations to run before measurement begins. Warmup helps stabilize performance by allowing JIT compilation and caching to occur.'),
|
|
335
|
+
};
|
|
336
|
+
/** Description for the budgets field */
|
|
337
|
+
const budgetsDescription = 'Performance budgets organized by file → suite → task. Budgets define acceptable performance thresholds. Supports wildcards (* for suite/task, glob patterns for files).';
|
|
338
|
+
/** Description and metadata for the config schema */
|
|
339
|
+
const configSchemaDescription = 'ModestBench configuration for controlling benchmark discovery, execution, and reporting';
|
|
340
|
+
const configSchemaMeta = { title: 'ModestBench Configuration' };
|
|
341
|
+
/**
|
|
342
|
+
* Schema for the main ModestBench configuration
|
|
343
|
+
*
|
|
344
|
+
* This is the complete configuration schema used for validating benchmark
|
|
345
|
+
* configuration from all sources (files, CLI args, defaults).
|
|
346
|
+
*
|
|
347
|
+
* The budgets field uses transforms to:
|
|
348
|
+
*
|
|
349
|
+
* 1. Parse string values like "10ms" or "10%" to numbers
|
|
350
|
+
* 2. Separate exact matches from wildcard patterns into ResolvedBudgets
|
|
351
|
+
*/
|
|
352
|
+
const modestBenchConfigSchema = z
|
|
353
|
+
.object({
|
|
354
|
+
...baseConfigProperties,
|
|
355
|
+
budgets: budgetsSchema.optional().describe(budgetsDescription),
|
|
210
356
|
})
|
|
211
357
|
.strict()
|
|
212
|
-
.describe(
|
|
213
|
-
.meta(
|
|
214
|
-
title: 'ModestBench Configuration',
|
|
215
|
-
});
|
|
358
|
+
.describe(configSchemaDescription)
|
|
359
|
+
.meta(configSchemaMeta);
|
|
216
360
|
/**
|
|
217
|
-
*
|
|
361
|
+
* Input schema for configuration (without transforms)
|
|
218
362
|
*
|
|
219
|
-
* This is used for
|
|
220
|
-
*
|
|
363
|
+
* This schema is used for JSON Schema generation. It validates the same input
|
|
364
|
+
* structure but without transforms, which can't be represented in JSON Schema
|
|
365
|
+
* format.
|
|
221
366
|
*/
|
|
222
|
-
|
|
367
|
+
const modestBenchConfigInputSchema = z
|
|
368
|
+
.object({
|
|
369
|
+
...baseConfigProperties,
|
|
370
|
+
budgets: budgetsRawInputSchema.optional().describe(budgetsDescription),
|
|
371
|
+
})
|
|
372
|
+
.strict()
|
|
373
|
+
.describe(configSchemaDescription)
|
|
374
|
+
.meta(configSchemaMeta);
|
|
223
375
|
/**
|
|
224
|
-
*
|
|
376
|
+
* Partial input schema for JSON Schema generation
|
|
377
|
+
*
|
|
378
|
+
* This is used for generating JSON Schema for IDE autocomplete in config files.
|
|
225
379
|
*/
|
|
226
|
-
const
|
|
227
|
-
const transformed = {};
|
|
228
|
-
if (budget.absolute) {
|
|
229
|
-
transformed.absolute = {};
|
|
230
|
-
// Copy minOpsPerSec as-is (already a number)
|
|
231
|
-
if (budget.absolute.minOpsPerSec !== undefined) {
|
|
232
|
-
transformed.absolute.minOpsPerSec = budget.absolute.minOpsPerSec;
|
|
233
|
-
}
|
|
234
|
-
// Parse time strings
|
|
235
|
-
if (budget.absolute.maxTime !== undefined) {
|
|
236
|
-
transformed.absolute.maxTime =
|
|
237
|
-
typeof budget.absolute.maxTime === 'string'
|
|
238
|
-
? parseTimeString(budget.absolute.maxTime)
|
|
239
|
-
: budget.absolute.maxTime;
|
|
240
|
-
}
|
|
241
|
-
if (budget.absolute.maxP99 !== undefined) {
|
|
242
|
-
transformed.absolute.maxP99 =
|
|
243
|
-
typeof budget.absolute.maxP99 === 'string'
|
|
244
|
-
? parseTimeString(budget.absolute.maxP99)
|
|
245
|
-
: budget.absolute.maxP99;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
if (budget.relative) {
|
|
249
|
-
transformed.relative = {};
|
|
250
|
-
// Parse percentage strings
|
|
251
|
-
if (budget.relative.maxRegression !== undefined) {
|
|
252
|
-
transformed.relative.maxRegression =
|
|
253
|
-
typeof budget.relative.maxRegression === 'string'
|
|
254
|
-
? parsePercentageString(budget.relative.maxRegression)
|
|
255
|
-
: budget.relative.maxRegression;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
return transformed;
|
|
259
|
-
};
|
|
380
|
+
export const partialModestBenchConfigInputSchema = modestBenchConfigInputSchema.partial();
|
|
260
381
|
/**
|
|
261
|
-
*
|
|
262
|
-
* time and percentage strings
|
|
382
|
+
* Validate a partial configuration object
|
|
263
383
|
*
|
|
264
|
-
*
|
|
384
|
+
* This is used for validating configuration from files or CLI args before
|
|
385
|
+
* merging with defaults.
|
|
265
386
|
*/
|
|
266
|
-
const
|
|
267
|
-
if (!nested) {
|
|
268
|
-
return undefined;
|
|
269
|
-
}
|
|
270
|
-
const flat = {};
|
|
271
|
-
for (const [file, suites] of Object.entries(nested)) {
|
|
272
|
-
for (const [suite, tasks] of Object.entries(suites)) {
|
|
273
|
-
for (const [task, budget] of Object.entries(tasks)) {
|
|
274
|
-
const taskId = `${file}/${suite}/${task}`;
|
|
275
|
-
// Transform budget values (parse strings)
|
|
276
|
-
flat[taskId] = transformBudgetValues(budget);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
return flat;
|
|
281
|
-
};
|
|
387
|
+
export const partialModestBenchConfigSchema = modestBenchConfigSchema.partial();
|
|
282
388
|
/**
|
|
283
|
-
* Safely parse and validate a partial configuration object
|
|
284
|
-
* transformation
|
|
389
|
+
* Safely parse and validate a partial configuration object
|
|
285
390
|
*
|
|
286
391
|
* @param config - The configuration object to validate
|
|
287
392
|
* @returns A result object with either success: true and data, or success:
|
|
288
393
|
* false and error
|
|
289
394
|
*/
|
|
290
395
|
export const safeParsePartialConfig = (config) => {
|
|
291
|
-
|
|
292
|
-
// Transform nested budgets to flat structure after validation
|
|
293
|
-
if (result.success && result.data.budgets) {
|
|
294
|
-
return {
|
|
295
|
-
...result,
|
|
296
|
-
data: {
|
|
297
|
-
...result.data,
|
|
298
|
-
budgets: transformBudgets(result.data.budgets),
|
|
299
|
-
},
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
return result;
|
|
396
|
+
return partialModestBenchConfigSchema.safeParse(config);
|
|
303
397
|
};
|
|
304
398
|
/**
|
|
305
399
|
* Safely parse and validate a configuration object
|
|
@@ -309,17 +403,6 @@ export const safeParsePartialConfig = (config) => {
|
|
|
309
403
|
* false and error
|
|
310
404
|
*/
|
|
311
405
|
export const safeParseConfig = (config) => {
|
|
312
|
-
|
|
313
|
-
// Transform nested budgets to flat structure after validation
|
|
314
|
-
if (result.success && result.data.budgets) {
|
|
315
|
-
return {
|
|
316
|
-
...result,
|
|
317
|
-
data: {
|
|
318
|
-
...result.data,
|
|
319
|
-
budgets: transformBudgets(result.data.budgets),
|
|
320
|
-
},
|
|
321
|
-
};
|
|
322
|
-
}
|
|
323
|
-
return result;
|
|
406
|
+
return modestBenchConfigSchema.safeParse(config);
|
|
324
407
|
};
|
|
325
408
|
//# 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;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.cjs
CHANGED
|
@@ -96,6 +96,8 @@ exports.ErrorCodes = {
|
|
|
96
96
|
//#endregion
|
|
97
97
|
//#region reporter-errors
|
|
98
98
|
REPORTER_ALREADY_REGISTERED: 'ERR_MB_REPORTER_ALREADY_REGISTERED',
|
|
99
|
+
REPORTER_INVALID: 'ERR_MB_REPORTER_INVALID',
|
|
100
|
+
REPORTER_LOAD_FAILED: 'ERR_MB_REPORTER_LOAD_FAILED',
|
|
99
101
|
REPORTER_OUTPUT_FAILED: 'ERR_MB_REPORTER_OUTPUT_FAILED',
|
|
100
102
|
REPORTER_UNKNOWN: 'ERR_MB_REPORTER_UNKNOWN',
|
|
101
103
|
//#endregion
|
package/dist/constants.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
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,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,gBAAgB,EAAE,yBAAyB;IAC3C,oBAAoB,EAAE,6BAA6B;IACnD,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;AAEX;;GAEG;AACU,QAAA,kBAAkB,GAAG,gBAAgB,CAAC;AAEnD;;GAEG;AACU,QAAA,qBAAqB,GAAG,OAAO,CAAC;AAE7C;;GAEG;AACU,QAAA,QAAQ,GAAG,yBAAyB,CAAC"}
|
package/dist/constants.d.cts
CHANGED
|
@@ -73,6 +73,8 @@ export declare const ErrorCodes: {
|
|
|
73
73
|
readonly FILE_PERMISSION_DENIED: "ERR_MB_FILE_PERMISSION_DENIED";
|
|
74
74
|
readonly FILE_UNSUPPORTED_EXTENSION: "ERR_MB_FILE_UNSUPPORTED_EXTENSION";
|
|
75
75
|
readonly REPORTER_ALREADY_REGISTERED: "ERR_MB_REPORTER_ALREADY_REGISTERED";
|
|
76
|
+
readonly REPORTER_INVALID: "ERR_MB_REPORTER_INVALID";
|
|
77
|
+
readonly REPORTER_LOAD_FAILED: "ERR_MB_REPORTER_LOAD_FAILED";
|
|
76
78
|
readonly REPORTER_OUTPUT_FAILED: "ERR_MB_REPORTER_OUTPUT_FAILED";
|
|
77
79
|
readonly REPORTER_UNKNOWN: "ERR_MB_REPORTER_UNKNOWN";
|
|
78
80
|
readonly STORAGE_CORRUPTION: "ERR_MB_STORAGE_CORRUPTION";
|
package/dist/constants.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;;;;;;CAMZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,SAAkB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,UAAU
|
|
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;;;;;;CAMZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,SAAkB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Db,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,QAAQ,4BAA4B,CAAC"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -73,6 +73,8 @@ export declare const ErrorCodes: {
|
|
|
73
73
|
readonly FILE_PERMISSION_DENIED: "ERR_MB_FILE_PERMISSION_DENIED";
|
|
74
74
|
readonly FILE_UNSUPPORTED_EXTENSION: "ERR_MB_FILE_UNSUPPORTED_EXTENSION";
|
|
75
75
|
readonly REPORTER_ALREADY_REGISTERED: "ERR_MB_REPORTER_ALREADY_REGISTERED";
|
|
76
|
+
readonly REPORTER_INVALID: "ERR_MB_REPORTER_INVALID";
|
|
77
|
+
readonly REPORTER_LOAD_FAILED: "ERR_MB_REPORTER_LOAD_FAILED";
|
|
76
78
|
readonly REPORTER_OUTPUT_FAILED: "ERR_MB_REPORTER_OUTPUT_FAILED";
|
|
77
79
|
readonly REPORTER_UNKNOWN: "ERR_MB_REPORTER_UNKNOWN";
|
|
78
80
|
readonly STORAGE_CORRUPTION: "ERR_MB_STORAGE_CORRUPTION";
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;;;;;;CAMZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,SAAkB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,UAAU
|
|
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;;;;;;CAMZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,SAAkB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Db,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,QAAQ,4BAA4B,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -93,6 +93,8 @@ export const ErrorCodes = {
|
|
|
93
93
|
//#endregion
|
|
94
94
|
//#region reporter-errors
|
|
95
95
|
REPORTER_ALREADY_REGISTERED: 'ERR_MB_REPORTER_ALREADY_REGISTERED',
|
|
96
|
+
REPORTER_INVALID: 'ERR_MB_REPORTER_INVALID',
|
|
97
|
+
REPORTER_LOAD_FAILED: 'ERR_MB_REPORTER_LOAD_FAILED',
|
|
96
98
|
REPORTER_OUTPUT_FAILED: 'ERR_MB_REPORTER_OUTPUT_FAILED',
|
|
97
99
|
REPORTER_UNKNOWN: 'ERR_MB_REPORTER_UNKNOWN',
|
|
98
100
|
//#endregion
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/core/engine.cjs
CHANGED
|
@@ -260,60 +260,65 @@ class ModestBenchEngine {
|
|
|
260
260
|
const overallMean = totalOperations > 0 ? totalTime / totalOperations : 0;
|
|
261
261
|
// Evaluate budgets if configured
|
|
262
262
|
let budgetSummary;
|
|
263
|
-
if (config.budgets
|
|
264
|
-
const
|
|
265
|
-
const
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
263
|
+
if (config.budgets) {
|
|
264
|
+
const budgets = config.budgets;
|
|
265
|
+
const hasBudgets = Object.keys(budgets.exact).length > 0 || budgets.patterns.length > 0;
|
|
266
|
+
if (hasBudgets) {
|
|
267
|
+
const evaluator = new budget_evaluator_js_1.BudgetEvaluator();
|
|
268
|
+
const baselineStorage = new baseline_storage_js_1.BaselineStorageService(process.cwd());
|
|
269
|
+
// Collect task results
|
|
270
|
+
const taskResults = new Map();
|
|
271
|
+
for (const file of fileResults) {
|
|
272
|
+
for (const suite of file.suites) {
|
|
273
|
+
for (const task of suite.tasks) {
|
|
274
|
+
if (!task.error) {
|
|
275
|
+
// file.filePath is already relative to cwd
|
|
276
|
+
const taskId = (0, index_js_2.createTaskId)(file.filePath, suite.name, task.name);
|
|
277
|
+
taskResults.set(taskId, task);
|
|
278
|
+
}
|
|
275
279
|
}
|
|
276
280
|
}
|
|
277
281
|
}
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
282
|
+
// Load baseline data if needed for relative budgets
|
|
283
|
+
let baselineData;
|
|
284
|
+
// Check if any budgets use relative thresholds
|
|
285
|
+
const hasRelativeBudgets = Object.values(budgets.exact).some((budget) => budget.relative) ||
|
|
286
|
+
budgets.patterns.some((pattern) => pattern.budget.relative);
|
|
287
|
+
if (hasRelativeBudgets) {
|
|
288
|
+
const baselineName = config.baseline || (await baselineStorage.getDefault());
|
|
289
|
+
if (baselineName) {
|
|
290
|
+
const baseline = await baselineStorage.getBaseline(baselineName);
|
|
291
|
+
if (baseline) {
|
|
292
|
+
// Cast keys to TaskId since they come from validated baseline storage
|
|
293
|
+
baselineData = new Map(Object.entries(baseline.summary));
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
console.warn(`Warning: Baseline "${baselineName}" not found. Relative budgets will be skipped.`);
|
|
297
|
+
}
|
|
290
298
|
}
|
|
291
299
|
else {
|
|
292
|
-
console.warn(
|
|
300
|
+
console.warn('Warning: Relative budgets configured but no baseline specified. Relative budgets will be skipped.');
|
|
293
301
|
}
|
|
294
302
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
for (const reporter of reporters) {
|
|
303
|
-
if (reporter.onBudgetResult) {
|
|
304
|
-
await reporter.onBudgetResult(budgetSummary);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
// Handle budget failures based on budgetMode
|
|
308
|
-
if (budgetSummary.failed > 0) {
|
|
309
|
-
const mode = config.budgetMode || 'fail';
|
|
310
|
-
if (mode === 'fail') {
|
|
311
|
-
throw new index_js_1.BudgetExceededError(`${budgetSummary.failed} of ${budgetSummary.total} budget(s) exceeded`, budgetSummary);
|
|
303
|
+
// Evaluate budgets
|
|
304
|
+
budgetSummary = evaluator.evaluateRun(budgets, taskResults, baselineData);
|
|
305
|
+
// Notify reporters of budget results
|
|
306
|
+
for (const reporter of reporters) {
|
|
307
|
+
if (reporter.onBudgetResult) {
|
|
308
|
+
await reporter.onBudgetResult(budgetSummary);
|
|
309
|
+
}
|
|
312
310
|
}
|
|
313
|
-
|
|
314
|
-
|
|
311
|
+
// Handle budget failures based on budgetMode
|
|
312
|
+
if (budgetSummary.failed > 0) {
|
|
313
|
+
const mode = config.budgetMode || 'fail';
|
|
314
|
+
if (mode === 'fail') {
|
|
315
|
+
throw new index_js_1.BudgetExceededError(`${budgetSummary.failed} of ${budgetSummary.total} budget(s) exceeded`, budgetSummary);
|
|
316
|
+
}
|
|
317
|
+
else if (mode === 'warn') {
|
|
318
|
+
console.warn(`Warning: ${budgetSummary.failed} of ${budgetSummary.total} budget(s) exceeded`);
|
|
319
|
+
}
|
|
320
|
+
// mode === 'report': just include in output, don't fail
|
|
315
321
|
}
|
|
316
|
-
// mode === 'report': just include in output, don't fail
|
|
317
322
|
}
|
|
318
323
|
}
|
|
319
324
|
const endTime = new Date();
|