RawObjectDataProcessor — Ошибки и предупреждения о невалидных данных
- Сообщения об ошибках валидации
RAW_DATA_IS_NOT_OBJECTRAW_DATA_IS_NULLVALUE_TYPE_DOES_NOT_MATCH_WITH_EXPECTEDPRE_VALIDATION_MODIFICATION_FAILEDFORBIDDEN_UNDEFINED_VALUECONDITIONALLY_FORBIDDEN_UNDEFINED_VALUECONDITIONALLY_FORBIDDEN_NON_UNDEFINED_VALUEFORBIDDEN_NULL_VALUECONDITIONALLY_FORBIDDEN_NULL_VALUECONDITIONALLY_FORBIDDEN_NON_NULL_VALUEUNABLE_TO_DELETE_PROPERTY_WITH_OUTDATED_KEYUNABLE_TO_CHANGE_PROPERTY_DESCRIPTORSUNABLE_TO_UPDATE_PROPERTY_VALUEUNEXPECTED_PROPERTIESCUSTOM_VALIDATION_FAILEDASSOCIATIVE_ARRAY_ENTRIES_COUNT_IS_LESS_THAN_REQUIRED_MINIMUMASSOCIATIVE_ARRAY_PAIRS_COUNT_IS_MORE_THAN_ALLOWED_MAXIMUMASSOCIATIVE_ARRAY_PAIRS_COUNT_DOES_NOT_MATCH_WITH_SPECIFIED_EXACT_NUMBERFORBIDDEN_FOR_SPECIFIC_KEYS_UNDEFINED_OR_NULL_VALUES_FOUND_IN_ASSOCIATIVE_ARRAY_TYPE_OBJECTDISALLOWED_KEYS_FOUND_IN_ASSOCIATIVE_ARRAYINDEXED_ARRAY_ELEMENTS_COUNT_IS_LESS_THAN_REQUIRED_MINIMUMINDEXED_ARRAY_ELEMENTS_COUNT_IS_MORE_THAN_ALLOWED_MAXIMUMINDEXED_ARRAY_OR_TUPLE_ELEMENTS_COUNT_DOES_NOT_MATCH_WITH_SPECIFIED_EXACT_NUMBERNUMERIC_VALUE_IS_NOT_BELONG_TO_EXPECTED_NUMBERS_SETVALIDATION_ERRORS_MESSAGES-FORBIDDEN_NAN_VALUEVALUE_IS_NOT_AMONG_ALLOWED_ALTERNATIVESNUMERIC_VALUE_IS_SMALLER_THAN_REQUIRED_MINIMUMNUMERIC_VALUE_IS_GREATER_THAN_ALLOWED_MAXIMUMCHARACTERS_COUNT_IS_LESS_THAN_REQUIREDCHARACTERS_COUNT_IS_MORE_THAN_ALLOWEDCHARACTERS_COUNT_DOES_NOT_MATCH_WITH_SPECIFIED- FORBIDDEN_CHARACTERS_FOUND
REGULAR_EXPRESSION_MISMATCHDISALLOWED_BOOLEAN_VALUE_VARIANT
- Бросаемые ошибки
objectSchemaNotSpecifiedmutuallyExclusiveTransformationsBetweenUndefinedAndNullpreValidationModificationFailedpropertyUndefinedabilityNotSpecifiedpropertyNullabilityNotSpecifieddataTypeNotSpecifiedunableToDeletePropertyWithOutdatedKeyunableToChangePropertyDescriptorsunableToUpdatePropertyValuemutuallyExclusiveAssociativeArrayKeysLimitationsincompatibleValuesTypesAlternativesbothAllowedAndForbiddenCharactersSpecified
- Предупреждения
Сообщения об ошибках валидации
Термин «ошибка валидации» является неоднозначным и не обязательно подразумевает, что будет брошено исключение. Если реальные данные, переданные через первый параметр метода process не соответствуют указанной спецификации, то будет возвращён объект со свойствами isRawDataInvalid: true и validationErrorsMessages, последнее из которых будет содержать как минимум одно сообщение о несоответствии реальных данных ожидаемым, а что в этом случае делать (в частности бросать исключение или нет) — решает технического задания и/или программист.
RAW_DATA_IS_NOT_OBJECT
Возникает, когда переданные через первый параметр метода process данные не являются объектом.
import { RawObjectDataProcessor } from "@yamato-daiwa/es-extensions";
type SampleType = { alpha: string; };
const dataProcessingResult: RawObjectDataProcessor.ProcessingResult<SampleType> = RawObjectDataProcessor.
process(
"NON_OBJECT",
{
nameForLogging: "Example",
subtype: RawObjectDataProcessor.ObjectSubtypes.fixedSchema,
properties: {
foo: {
type: String,
isUndefinedForbidden: true,
isNullForbidden: true
}
}
}
);
if (dataProcessingResult.isRawDataInvalid) {
console.error(RawObjectDataProcessor.formatValidationErrorsList(dataProcessingResult.validationErrorsMessages));
}
Класс RawObjectDataProcessor предназначен для обработки только данных типа «объект» (в том числе индексных массивов), потому если передать данные какого-либо другого типа (например, строку), то обработка данных тут же завершится:
─── Error No. 1 ──────────────────────────────────────────────────────────────── Raw data, the first argument of "RawObjectDataProcessor.process()" is not the object and actually has type "string". See documentation for details: http://localhost:3000/CoreLibrary/Functionality/RawObjectDataProcessor/Children/06-ValidationIssues/RawObjectDataProcessor-ValidationIssues.english.html#VALIDATION_ERRORS_MESSAGES-RAW_DATA_IS_NOT_OBJECT