pipe
Добавляет в схему конвейер, который может проверять и преобразовывать входные данные.
const Schema = v.pipe<TSchema, TItems>(schema, ...items);
Обобщения
TSchemaextends BaseSchema<unknown, unknown, BaseIssue<unknown>>TItemsextends readonly PipeItem<any, unknown, BaseIssue<unknown>>[]
Параметры
schemaTSchemaitemsTItems
Пояснение
pipe создает измененную копию указанной schema, содержащую конвейер для детальной проверки и преобразования. Он последовательно передает входные данные через items в указанном порядке, и каждый элемент может проверять и изменять их.
Поскольку
pipeвозвращает схему, которую можно использовать в качестве первого аргумента другого конвейера, можно вложить несколько вызововpipe, чтобы расширить проверку и преобразование.
pipe досрочно прерывает выполнение и помечает результат как нетипизированный, если до попытки выполнить схему или действие преобразования в качестве следующего элемента конвейера были обнаружены проблемы. Это позволяет избежать непредвиденного поведения.
Возвращает
SchemaSchemaWithPipe<readonly [TSchema, ...TItems]>
Примеры
В следующих примерах показано, как можно использовать pipe. Дополнительные примеры и пояснения см. в руководстве по конвейерам.
Схема электронной почты
Схема для проверки адреса электронной почты.
const EmailSchema = v.pipe(
v.string(),
v.nonEmpty('Please enter your email.'),
v.email('The email is badly formatted.'),
v.maxLength(30, 'Your email is too long.')
);
Из строки в число
Схема для преобразования строки в число.
const NumberSchema = v.pipe(v.string(), v.transform(Number), v.number());
Связанные материалы
Следующие API можно использовать вместе с pipe.
Схемы
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
Методы
assert, config, fallback, forward, getDefault, getDefaults, getFallback, getFallbacks, is, keyof, message, omit, parse, parser, partial, pick, required, safeParse, safeParser, unwrap
Действия
args, base64, bic, brand, bytes, check, checkItems, codePoints, creditCard, cuid2, decimal, description, digits, domain, email, emoji, empty, endsWith, entries, everyItem, excludes, filterItems, findItem, finite, flavor, graphemes, gtValue, hash, hexadecimal, hexColor, imei, includes, integer, ip, ipv4, ipv6, isbn, isrc, isoDate, isoDateTime, isoDateTimeSecond, isoTime, isoTimeSecond, isoTimestamp, isoWeek, ksuid, length, ltValue, mac, mac48, mac64, mapItems, maxBytes, maxCodePoints, maxEntries, maxGraphemes, maxLength, maxSize, maxValue, maxWords, metadata, mimeType, minBytes, minCodePoints, minEntries, minGraphemes, minLength, minSize, minValue, minWords, multipleOf, nanoid, nonEmpty, notBytes, notCodePoints, notEntries, notGraphemes, notLength, notSize, notValue, notValues, notWords, octal, parseJson, partialCheck, rawCheck, rawTransform, readonly, reduceItems, regex, returns, rfcEmail, safeInteger, size, slug, someItem, sortItems, startsWith, stringifyJson, title, toBigint, toBoolean, toCamelCase, toDate, toKebabCase, toLowerCase, toMaxValue, toMinValue, toNumber, toPascalCase, toSnakeCase, toString, toUpperCase, transform, trim, trimEnd, trimStart, ulid, url, uuid, value, values, words
Утилиты
© Fabian Hiller
Licensed under the MIT License.
https://valibot.dev/api/pipe/