RawObjectDataProcessor
— Ошибки и предупреждения о невалидных данных
- Сообщения об ошибках валидации
RAW_DATA_IS_NOT_OBJECT
RAW_DATA_IS_NULL
VALUE_TYPE_DOES_NOT_MATCH_WITH_EXPECTED
PRE_VALIDATION_MODIFICATION_FAILED
FORBIDDEN_UNDEFINED_VALUE
CONDITIONALLY_FORBIDDEN_UNDEFINED_VALUE
CONDITIONALLY_FORBIDDEN_NON_UNDEFINED_VALUE
FORBIDDEN_NULL_VALUE
CONDITIONALLY_FORBIDDEN_NULL_VALUE
CONDITIONALLY_FORBIDDEN_NON_NULL_VALUE
UNABLE_TO_DELETE_PROPERTY_WITH_OUTDATED_KEY
UNABLE_TO_CHANGE_PROPERTY_DESCRIPTORS
UNABLE_TO_UPDATE_PROPERTY_VALUE
UNEXPECTED_PROPERTIES
CUSTOM_VALIDATION_FAILED
ASSOCIATIVE_ARRAY_ENTRIES_COUNT_IS_LESS_THAN_REQUIRED_MINIMUM
ASSOCIATIVE_ARRAY_PAIRS_COUNT_IS_MORE_THAN_ALLOWED_MAXIMUM
ASSOCIATIVE_ARRAY_PAIRS_COUNT_DOES_NOT_MATCH_WITH_SPECIFIED_EXACT_NUMBER
FORBIDDEN_FOR_SPECIFIC_KEYS_UNDEFINED_OR_NULL_VALUES_FOUND_IN_ASSOCIATIVE_ARRAY_TYPE_OBJECT
DISALLOWED_KEYS_FOUND_IN_ASSOCIATIVE_ARRAY
INDEXED_ARRAY_ELEMENTS_COUNT_IS_LESS_THAN_REQUIRED_MINIMUM
INDEXED_ARRAY_ELEMENTS_COUNT_IS_MORE_THAN_ALLOWED_MAXIMUM
INDEXED_ARRAY_OR_TUPLE_ELEMENTS_COUNT_DOES_NOT_MATCH_WITH_SPECIFIED_EXACT_NUMBER
NUMERIC_VALUE_IS_NOT_BELONG_TO_EXPECTED_NUMBERS_SET
VALIDATION_ERRORS_MESSAGES-FORBIDDEN_NAN_VALUE
VALUE_IS_NOT_AMONG_ALLOWED_ALTERNATIVES
NUMERIC_VALUE_IS_SMALLER_THAN_REQUIRED_MINIMUM
NUMERIC_VALUE_IS_GREATER_THAN_ALLOWED_MAXIMUM
CHARACTERS_COUNT_IS_LESS_THAN_REQUIRED
CHARACTERS_COUNT_IS_MORE_THAN_ALLOWED
CHARACTERS_COUNT_DOES_NOT_MATCH_WITH_SPECIFIED
- FORBIDDEN_CHARACTERS_FOUND
REGULAR_EXPRESSION_MISMATCH
DISALLOWED_BOOLEAN_VALUE_VARIANT
- Бросаемые ошибки
objectSchemaNotSpecified
mutuallyExclusiveTransformationsBetweenUndefinedAndNull
preValidationModificationFailed
propertyUndefinedabilityNotSpecified
propertyNullabilityNotSpecified
dataTypeNotSpecified
unableToDeletePropertyWithOutdatedKey
unableToChangePropertyDescriptors
unableToUpdatePropertyValue
mutuallyExclusiveAssociativeArrayKeysLimitations
incompatibleValuesTypesAlternatives
bothAllowedAndForbiddenCharactersSpecified
- Предупреждения
Сообщения об ошибках валидации
Термин «ошибка валидации» является неоднозначным и не обязательно подразумевает, что будет брошено исключение. Если реальные данные, переданные через первый параметр метода 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