Skip to content

Commit 6c1022f

Browse files
committed
Make failureReason required
1 parent 8361589 commit 6c1022f

File tree

4 files changed

+22
-13
lines changed

4 files changed

+22
-13
lines changed

packages/rum-core/src/boot/preStartRum.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,12 @@ import {
2626
serializeRumConfiguration,
2727
} from '../domain/configuration'
2828
import type { ViewOptions } from '../domain/view/trackViews'
29-
import type { DurationVital, CustomVitalsState, FullFeatureOperationOptions } from '../domain/vital/vitalCollection'
29+
import type {
30+
DurationVital,
31+
CustomVitalsState,
32+
FailFeatureOperationOptions,
33+
FeatureOperationOptions,
34+
} from '../domain/vital/vitalCollection'
3035
import { startDurationVital, stopDurationVital } from '../domain/vital/vitalCollection'
3136
import { callPluginsMethod } from '../domain/plugins'
3237
import type { StartRumResult } from './startRum'
@@ -152,10 +157,14 @@ export function createPreStartStrategy(
152157
const addOperationStepVital = (
153158
name: string,
154159
stepType: 'start' | 'end',
155-
options?: Partial<FullFeatureOperationOptions>
160+
options?: FeatureOperationOptions | FailFeatureOperationOptions
156161
) => {
157162
bufferApiCalls.add((startRumResult) =>
158-
startRumResult.addOperationStepVital(name, stepType, sanitize(options) as FullFeatureOperationOptions)
163+
startRumResult.addOperationStepVital(
164+
name,
165+
stepType,
166+
sanitize(options) as FeatureOperationOptions | FailFeatureOperationOptions
167+
)
159168
)
160169
}
161170

packages/rum-core/src/boot/rumPublicApi.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ describe('rum public api', () => {
826826
noopProfilerApi
827827
)
828828
rumPublicApi.init(DEFAULT_INIT_CONFIGURATION)
829-
rumPublicApi.failFeatureOperation('foo', { failureReason: 'page not found' })
829+
rumPublicApi.failFeatureOperation('foo', 'page not found')
830830
expect(addOperationStepVitalSpy).toHaveBeenCalledWith('foo', 'end', { failureReason: 'page not found' })
831831
})
832832
})

packages/rum-core/src/boot/rumPublicApi.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ import type {
4545
DurationVitalReference,
4646
DurationVitalOptions,
4747
FeatureOperationOptions,
48-
FullFeatureOperationOptions,
48+
FailFeatureOperationOptions,
4949
} from '../domain/vital/vitalCollection'
5050
import { createCustomVitalsState } from '../domain/vital/vitalCollection'
5151
import { callPluginsMethod } from '../domain/plugins'
@@ -455,7 +455,7 @@ export interface RumPublicApi extends PublicApi {
455455
* @param name - Name of the operation step
456456
* @param options - Options for the operation step (operationKey, failureReason, context, description)
457457
*/
458-
failFeatureOperation: (name: string, options?: FullFeatureOperationOptions) => void
458+
failFeatureOperation: (name: string, failureReaon: string, options?: FailFeatureOperationOptions) => void
459459
}
460460

461461
export interface RecorderApi {
@@ -812,9 +812,9 @@ export function makeRumPublicApi(
812812
strategy.addOperationStepVital(name, 'end', options)
813813
}),
814814

815-
failFeatureOperation: monitor((name, options) => {
815+
failFeatureOperation: monitor((name, failureReason, options) => {
816816
addTelemetryUsage({ feature: 'add-operation-step-vital', action_type: 'fail' })
817-
strategy.addOperationStepVital(name, 'end', options)
817+
strategy.addOperationStepVital(name, 'end', { ...options, failureReason })
818818
}),
819819
})
820820

packages/rum-core/src/domain/vital/vitalCollection.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ export type DurationVitalOptions = VitalOptions
2424
export interface FeatureOperationOptions extends VitalOptions {
2525
operationKey?: string
2626
}
27-
export interface FullFeatureOperationOptions extends FeatureOperationOptions {
28-
failureReason?: string
27+
export interface FailFeatureOperationOptions extends FeatureOperationOptions {
28+
failureReason: string
2929
}
3030
export interface AddDurationVitalOptions extends DurationVitalOptions {
3131
startTime: number
@@ -86,19 +86,19 @@ export function startVitalCollection(
8686
function addOperationStepVital(
8787
name: string,
8888
stepType: 'start' | 'end',
89-
options?: Partial<FullFeatureOperationOptions>
89+
options?: FeatureOperationOptions | FailFeatureOperationOptions
9090
) {
9191
if (!isExperimentalFeatureEnabled(ExperimentalFeature.FEATURE_OPERATION_VITAL)) {
9292
return
9393
}
9494

95-
const { operationKey, failureReason, context, description } = options || {}
95+
const { operationKey, context, description } = options || {}
9696

9797
const vital: OperationStepVital = {
9898
name: sanitize(name)!,
9999
type: VitalType.OPERATION_STEP,
100100
operationKey,
101-
failureReason,
101+
failureReason: (options as FailFeatureOperationOptions)?.failureReason,
102102
stepType,
103103
startClocks: clocksNow(),
104104
context: sanitize(context),

0 commit comments

Comments
 (0)