Spec-Zone.ru › Valibot

rawCheck

Создаёт действие проверки в исходном виде.

const Action = v.rawCheck<TInput>(action);

Обобщения

  • TInput extends any

Параметры

  • action (context: RawCheckContext<TInput>) => void

Пояснение

С помощью rawCheck можно свободно проверять входные данные с помощью пользовательского action и при необходимости добавлять проблемы.

Возвращаемое значение

  • Action RawCheckAction<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

Методы

forward, pipe

Утилиты

isOfKind, isOfType

© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/rawCheck/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API