forwardAsync
Перенаправляет проблемы переданного действия валидации.
const Action = v.forwardAsync<TInput, TIssue, TPath>(action, path);
Дженерики
TInputextends Record<string, unknown> | ArrayLike<unknown>TIssueextends BaseIssue<unknown>TPathextends RequiredPath
Параметры
actionBaseValidation<TInput, TInput, TIssue> | BaseValidationAsync<TInput, TInput, TIssue>pathValidPath<TInput, TPath>
Пояснение
forwardAsync позволяет перенаправлять проблемы переданного действия валидации action через path во вложенное поле схемы.
Возвращаемое значение
ActionBaseValidationAsync<TInput, TInput, TIssue>
Примеры
Следующие примеры показывают, как можно использовать forwardAsync.
Схема разрешенного действия
Схема, проверяющая, разрешено ли пользователю выполнить действие.
import { isAllowedAction, isUsernamePresent } from '~/api';
const AllowedActionSchema = v.pipeAsync(
v.objectAsync({
username: v.pipeAsync(
v.string(),
v.minLength(3),
v.checkAsync(isUsernamePresent, 'The username is not in the database.')
),
action: v.picklist(['view', 'edit', 'delete']),
}),
v.forwardAsync(
v.checkAsync(
isAllowedAction,
'The user is not allowed to complete the action.'
),
['action']
)
);
Связанное
Следующие API можно комбинировать с forwardAsync.
Схемы
any, array, custom, looseObject, looseTuple, object, objectWithRest, record, strictObject, strictTuple, tuple, tupleWithRest, union, unknown, variant
Методы
Действия
check, checkItems, empty, everyItem, excludes, filterItems, findItem, guard, includes, length, mapItems, maxLength, metadata, minLength, nonEmpty, notLength, partialCheck, rawCheck, reduceItems, someItem, sortItems
Утилиты
Асинхронные элементы
arrayAsync, awaitAsync, checkAsync, customAsync, looseObjectAsync, looseTupleAsync, objectAsync, objectWithRestAsync, partialAsync, partialCheckAsync, rawCheckAsync, recordAsync, requiredAsync, strictObjectAsync, strictTupleAsync, tupleAsync, tupleWithRestAsync, unionAsync, variantAsync
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/forwardAsync/