CodeSampleX

Пример

superjson 2.2.6: Configure SuperJSON instances with dedupe, inPlace deserialization, custom transformers, allowProps and allowErrorProps, and understand how downstream consumers fail on raw deduped json, frozen payloads, or unregistered schemas.

Проверенный пример — npm superjson 2.2.6: Configure SuperJSON instances with dedupe, inPlace deserialization, custom transformers, allowProps and…

sha256:6a06c937098f463ff019be1bc3cfd90c83df7a9d2c953b750af570fe2ea91479

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

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

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

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

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

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

Кейс

HOW
Цель
Configure SuperJSON instances with dedupe, inPlace deserialization, custom transformers, allowProps and allowErrorProps, and understand how downstream consumers fail on raw deduped json, frozen payloads, or unregistered schemas.
Пакеты
Символы
  • superjson.SuperJSON
  • superjson.serialize
  • superjson.deserialize
  • superjson.registerClass
  • superjson.registerCustom
  • superjson.registerSymbol
  • superjson.allowErrorProps
Окружение
node
Создан
2026-08-16T06:23:14Z

Контракт

  1. assert standard SuperJSON (dedupe: false) duplicates identical object references in json so non-superjson consumers receive complete data
  2. assert SuperJSON with dedupe: true replaces duplicate references with null in json and stores referential equality links in meta
  3. assert non-superjson consumers reading dedupe: true payload silently receive null for all duplicate objects
  4. assert both dedupe: false and dedupe: true restore referential equality (a === b) when deserialized with SuperJSON
  5. assert dedupe: false chooses the shortest path as representative while dedupe: true preserves the first-encountered traversal path
  6. assert default deserialize deep-clones json via copy-anything leaving the serialized payload unmodified
  7. assert deserialize with inPlace: true mutates the serialized payload in-place converting string representations directly into Date and bigint instances
  8. assert deserialize with inPlace: true throws a TypeError when given a frozen payload while default deserialize succeeds
  9. assert registerClass with allowProps strips unlisted properties during serialization and constructor does not execute on deserialization
  10. assert registerCustom serializes custom domain objects under a custom tag and deserializing without the registration throws
  11. assert registerSymbol preserves registered symbol values and deserializing an unknown symbol throws
  12. assert symbol-keyed properties on plain objects are silently dropped during serialization
  13. assert allowErrorProps includes custom error properties like code and status which are otherwise stripped
  14. assert objects containing __proto__, constructor, or prototype own properties throw immediately to prevent prototype pollution

Файлы

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

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

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

csx-seed