Skip to main content

FormErrorHandler

Defined in: core/utils/error-handler.ts:78

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ошибок для Ρ„ΠΎΡ€ΠΌ

ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚:

  • Π•Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ошибок Π² DEV Ρ€Π΅ΠΆΠΈΠΌΠ΅
  • Π“ΠΈΠ±ΠΊΠΈΠ΅ стратСгии ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (throw/log/convert)
  • ВипобСзопасноС ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ сообщСний ΠΈΠ· Error/string/unknown

Example​

// Π’ async validator (ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ValidationError)
try {
await validateEmail(value);
} catch (error) {
return FormErrorHandler.handle(error, 'EmailValidator', ErrorStrategy.CONVERT);
}

// Π’ behavior applicator (ΠΏΡ€ΠΎΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ)
try {
applyBehavior(schema);
} catch (error) {
FormErrorHandler.handle(error, 'BehaviorApplicator', ErrorStrategy.THROW);
}

// Π’ validator (Π·Π°Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ)
try {
validator(value);
} catch (error) {
FormErrorHandler.handle(error, 'Validator', ErrorStrategy.LOG);
}

Constructors​

Constructor​

new FormErrorHandler(): FormErrorHandler;

Returns​

FormErrorHandler

Methods​

createValidationError()​

static createValidationError(
code,
message,
field?): ValidationError;

Defined in: core/utils/error-handler.ts:214

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ValidationError с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ

Утилитная функция для создания ValidationError ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Parameters​

code​

string

Код ошибки

message​

string

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ошибки

field?​

string

ПолС (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ)

Returns​

ValidationError

ValidationError ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

Example​

const error = FormErrorHandler.createValidationError(
'required',
'This field is required',
'email'
);
// { code: 'required', message: 'This field is required', field: 'email' }

handle()​

static handle(
error,
context,
strategy): void | ValidationError;

Defined in: core/utils/error-handler.ts:118

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ согласно Π·Π°Π΄Π°Π½Π½ΠΎΠΉ стратСгии

Parameters​

error​

unknown

Ошибка для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Error | string | unknown)

context​

string

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ ошибки для логирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 'AsyncValidator', 'BehaviorRegistry')

strategy​

ErrorStrategy = ErrorStrategy.THROW

БтратСгия ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (THROW | LOG | CONVERT)

Returns​

void | ValidationError

ValidationError Ссли strategy = CONVERT, undefined Ссли strategy = LOG, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ возвращаСтся Ссли strategy = THROW

Example​

// THROW - ΠΏΡ€ΠΎΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ
try {
riskyOperation();
} catch (error) {
FormErrorHandler.handle(error, 'RiskyOperation', ErrorStrategy.THROW);
// Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ выполнится
}

// LOG - Π·Π°Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ
try {
nonCriticalOperation();
} catch (error) {
FormErrorHandler.handle(error, 'NonCritical', ErrorStrategy.LOG);
// ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅
}

// CONVERT - ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ValidationError
try {
await validator(value);
} catch (error) {
const validationError = FormErrorHandler.handle(
error,
'AsyncValidator',
ErrorStrategy.CONVERT
);
return validationError;
}

isValidationError()​

static isValidationError(value): value is ValidationError;

Defined in: core/utils/error-handler.ts:237

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ValidationError

Type guard для ValidationError

Parameters​

value​

unknown

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

Returns​

value is ValidationError

true Ссли value являСтся ValidationError

Example​

if (FormErrorHandler.isValidationError(result)) {
console.log(result.code); // OK, типобСзопасно
}