Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 1x 109x 109x 109x 38x 38x 17x 82x 23x 14x 59x | import { Inject, Injectable, Optional } from '@angular/core';
import { DynamicFormError } from './dynamic-form-error';
import { DynamicFormErrorSettings, dynamicFormErrorSettingsDefault, DYNAMIC_FORM_ERROR_SETTINGS } from './dynamic-form-error-settings';
import { DynamicFormErrorType } from './dynamic-form-error-type';
import { DynamicFormLogger } from './dynamic-form.logger';
@Injectable()
export class DynamicFormErrorHandler {
constructor(
private logger: DynamicFormLogger,
@Optional() @Inject(DYNAMIC_FORM_ERROR_SETTINGS)
readonly settings: DynamicFormErrorSettings,
) {
this.settings = this.settings || dynamicFormErrorSettingsDefault;
}
handle<ErrorType extends DynamicFormErrorType = DynamicFormErrorType>(error: DynamicFormError<ErrorType>): void {
this.logger.error(error.type, error.message);
if (this.settings.throw) {
throw error;
}
}
handleUndefined<Value, ErrorType extends DynamicFormErrorType = DynamicFormErrorType>(
value: Value | undefined, createError: () => DynamicFormError<ErrorType>,
): Value | undefined {
if (!value) {
this.handle(createError());
return undefined;
}
return value;
}
}
|