Files
suaveplan/packages/foundation/bitpacker/bitpacker-schema/README.md
2026-05-27 23:47:53 +01:00

12 KiB

@suaveplan/bitpacker-schema - Schema registry, validation, and versioning for @suaveplan/bitpacker

Summary

Schema registry and validation for bitpacker.

Documentation tree

- [matching](./src/matching/matching.md) — _(no submodules)_- [migration](./src/migration/migration.md) — _(no submodules)_- [migration](./src/migration/migration.md) — _(no submodules)_- [registry](./src/registry/registry.md) — _(no submodules)_- [defaults](./src/registry/defaults/default-clock.md) — _(no submodules)_- [default-clock](./src/registry/defaults/default-clock.md) — _(no submodules)_- [factories](./src/registry/factories/factories.md) — _(no submodules)_- [factories](./src/registry/factories/factories.md) — _(no submodules)_- [in-memory](./src/registry/storage/in-memory/in-memory.md) — _(no submodules)_- [in-memory](./src/registry/storage/in-memory/in-memory.md) — _(no submodules)_- [local-storage](./src/registry/storage/local-storage/local-storage.md) — _(no submodules)_- [local-storage](./src/registry/storage/local-storage/local-storage.md) — _(no submodules)_- [registry](./src/registry/registry.md) — _(no submodules)_- [validation](./src/validation/validation.md) — _(no submodules)_- [validation](./src/validation/validation.md) — _(no submodules)_- [versioning](./src/versioning/versioning.md) — _(no submodules)_- [versioning](./src/versioning/versioning.md) — _(no submodules)_- [visualization](./src/visualization/visualization.md) — _(no submodules)_- [visualization](./src/visualization/visualization.md) — _(no submodules)_- [index](./src/index.md) — **Path:** `bitpacker-schema/src/index.ts` **Export:** See source for details.

Install

bun add @suaveplan/bitpacker-schema

Usage

import { SchemaRegistry, validateData, assertValid } from "@suaveplan/bitpacker-schema";

const registry = new SchemaRegistry();
registry.register("player", { x: 255, y: 255, health: 100 });

const schema = registry.resolve("player"); // returns the registered schema
const names = registry.listNames(); // ["player"]

// Validation
const errors = validateData(42, 255);
expect(errors).toHaveLength(0);

const badErrors = validateData(300, 255);
expect(badErrors.length).toBeGreaterThan(0);

assertValid(42, 255); // ok
assertValid(300, 255); // throws ValidationError

Modules

  • src/registry.ts — SchemaRegistry: name → schema mapping
  • src/validation.ts — validateData, assertValid: runtime schema validation