How pmcelhaney/bizallele works
Bizallele is a JavaScript/TypeScript library for reusable field rules across records, collections, forms, tables, and backend validation. The primary workflow is to compose field definitions, bind them to values in a Record, validate and edit those values, then expose model state through Lit controls or manage multiple records through a Recordset and table. Separate schema adapters extend the model toward API and database ecosystems. Edges are limited to README statements and relationships visible in the supplied source index or excerpts; unsampled adapter behavior is not inferred.
Main entry points: field-type-builder.ts Field definitions · recordset.js Recordset · record.js Record · index.js Public API
Components 21
Field rules
- Public API
src/index.js - Field definitions
src/field-type-builder.ts - Field behavior
src/field-type.js - Built-in fields
src/primitives.js
Record model
- Record
src/record.js - Field access
src/field.js - Recordset
src/recordset.js - Table columns
src/column.js - Recordset events
src/recordset.events.ts - Observable
src/types/observable.types.ts
Lit interfaces
- Record element
src/lit/fdl-record.ts - Record binding
src/lit/record-context.ts - Field control
src/lit/fdl-field.ts - Form adapter
src/lit/form-element.ts - Address control
src/lit/fdl-address.ts - Table element
src/lit/fdl-table.ts
Schema adapters
- OpenAPI adapter
src/openapi.ts - Prisma adapter
src/prisma.ts - Zod adapter
src/zod.ts
Other components
- Application
- Backend validation
Connections 25
- Application → Public API: imports
src/index.js - Application → Field definitions: composes
README.md - Public API → Field behavior: exports
src/index.js - Public API → Built-in fields: exports
src/index.js - Field definitions → Field behavior: finalizes
src/field-type-builder.ts - Built-in fields → Field definitions: builds
src/primitives.js - Application → Record: binds values
README.md - Record → Field behavior: resolves rules
src/record.js - Record → Field access: creates accessors
src/record.js - Application → Recordset: manages records
README.md - Recordset → Record: creates
src/recordset.js - Recordset → Table columns: creates
src/recordset.js - Recordset → Observable: uses updates
src/recordset.js - Recordset → Recordset events: dispatches events
src/recordset.js - Application → Record element: groups controls
README.md - Record element → Record binding: binds record
src/lit/fdl-record.ts - Field control → Record binding: requests record
src/lit/record-context.ts - Field control → Form adapter: extends
src/lit/fdl-field.ts - Address control → Field control: uses control
src/lit/fdl-address.ts - Application → Table element: renders table
README.md - Table element → Recordset: uses collection
src/lit/fdl-table.ts - Backend validation → Field definitions: reuses rules
README.md - Field definitions → OpenAPI adapter: supports schema
src/openapi.ts - Field definitions → Prisma adapter: supports mapping
- Field definitions → Zod adapter: supports schema