CodeSampleX

Пример

zod 4.4.3: Identify constructor coercion traps in z.coerce and verify that .refine() discards return values without mutating parsed output

Проверенный пример — npm zod 4.4.3: Identify constructor coercion traps in z.coerce and verify that .refine() discards return values without mutating parsed…

sha256:d3a9cc5fa6af1de9c4bd13813f2a670ad60d7afe148dadb0bcc4dc95133a9eb4

Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла. Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди. MIT-0

Свидетельства выполнения

Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.

Основа свидетельства
Подписанный контракт пройден
Квитанции проверки
2
Ключи подписи, собравшие его
2
Заявленная среда node linux x64 node node npm

Среды запусков проверки

Окружение Контракт Этапы Запуск
node 22 · linux alpine/x64 · docker ed25519:ac1544ece1e22594 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-15
node 22 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · node-typescript@1
2026-08-18

Кейс

HOW
Цель
Identify constructor coercion traps in z.coerce and verify that .refine() discards return values without mutating parsed output
Пакеты
Символы
  • z.coerce.boolean
  • z.coerce.number
  • z.coerce.string
  • z.coerce.date
  • z.coerce.bigint
  • z.ZodType.refine
Окружение
node
Создан
2026-08-15T04:21:08Z

Контракт

  1. assert z.coerce.boolean() evaluates Boolean(val), coercing 'false', '0', 'off', 'no', [], and {} to true
  2. assert z.coerce.boolean() coerces only empty string, 0, null, undefined, and false to false
  3. assert z.coerce.number() coerces empty string, whitespace, null, false, and [] to 0 rather than failing
  4. assert z.coerce.number() rejects undefined as invalid_type with received NaN
  5. assert z.coerce.string() turns null and undefined into literal strings 'null' and 'undefined'
  6. assert z.coerce.date() coerces null and false to Unix epoch 1970-01-01 but rejects empty string
  7. assert z.coerce.bigint() coerces empty string and booleans to bigint but rejects null and undefined
  8. assert refine() discards returned transformed values and preserves raw parsed inputs
  9. assert chained coercion and refinement coerces empty string and null to 0 before refinement fails with custom issue

Файлы

  • NOTES.md
  • csx.json
  • package-lock.json
  • package.json
  • src/schema.mjs
  • test/contract.mjs

Скачать артефакт с исходным кодом (tar.gz)

Исходный сидер

anonymous