rawCheck
Создаёт действие проверки в исходном виде.
const Action = v.rawCheck<TInput>(action);
Обобщения
TInputextends any
Параметры
action(context: RawCheckContext<TInput>) => void
Пояснение
С помощью rawCheck можно свободно проверять входные данные с помощью пользовательского action и при необходимости добавлять проблемы.
Возвращаемое значение
ActionRawCheckAction<TInput>
Примеры
В следующих примерах показано, как можно использовать rawCheck.
Схема адресов электронной почты
Схема объекта, гарантирующая, что основной адрес электронной почты не совпадает ни с одним из остальных адресов.
Это действие проверки
rawCheckдобавляет проблему для каждого недопустимого дополнительного адреса электронной почты и передаёт её черезpathсоответствующему вложенному полю.
const EmailsSchema = v.pipe(
v.object({
primaryEmail: v.pipe(v.string(), v.email()),
otherEmails: v.array(v.pipe(v.string(), v.email())),
}),
v.rawCheck(({ dataset, addIssue }) => {
if (dataset.typed) {
dataset.value.otherEmails.forEach((otherEmail, index) => {
if (otherEmail === dataset.value.primaryEmail) {
addIssue({
message: 'This email is already being used as the primary email.',
path: [
{
type: 'object',
origin: 'value',
input: dataset.value,
key: 'otherEmails',
value: dataset.value.otherEmails,
},
{
type: 'array',
origin: 'value',
input: dataset.value.otherEmails,
key: index,
value: otherEmail,
},
],
});
}
});
}
})
);
Связанные API
Следующие API можно использовать вместе с rawCheck.
Схемы
any, array, bigint, blob, boolean, custom, date, enum, exactOptional, file, function, instance, intersect, lazy, literal, looseObject, looseTuple, map, nan, never, nonNullable, nonNullish, nonOptional, null, nullable, nullish, number, object, objectWithRest, optional, picklist, promise, record, set, strictObject, strictTuple, string, symbol, tuple, tupleWithRest, undefined, undefinedable, union, unknown, variant, void
Методы
Утилиты
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/rawCheck/