Spec-Zone.ru › Valibot

pipe

Добавляет в схему конвейер, который может проверять и преобразовывать входные данные.

const Schema = v.pipe<TSchema, TItems>(schema, ...items);

Обобщения

  • TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>
  • TItems extends readonly PipeItem<any, unknown, BaseIssue<unknown>>[]

Параметры

  • schema TSchema
  • items TItems

Пояснение

pipe создает измененную копию указанной schema, содержащую конвейер для детальной проверки и преобразования. Он последовательно передает входные данные через items в указанном порядке, и каждый элемент может проверять и изменять их.

Поскольку pipe возвращает схему, которую можно использовать в качестве первого аргумента другого конвейера, можно вложить несколько вызовов pipe, чтобы расширить проверку и преобразование.

pipe досрочно прерывает выполнение и помечает результат как нетипизированный, если до попытки выполнить схему или действие преобразования в качестве следующего элемента конвейера были обнаружены проблемы. Это позволяет избежать непредвиденного поведения.

Возвращает

  • Schema SchemaWithPipe<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

Утилиты

isOfKind, isOfType

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

Spec-Zone.ru

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