Skip to content

EntityRegistry

Manages entity type registrations. Create an isolated registry with createEntityRegistry(), or use the module-level convenience functions for a shared default registry.

Source: @durable-streams/darix-runtime

ts
class EntityRegistry {
  define(name: string, definition: EntityDefinition): void
  get(name: string): EntityTypeEntry | undefined
  list(): EntityTypeEntry[]
  clear(): void
}

function createEntityRegistry(): EntityRegistry

Methods

MethodParametersReturn TypeDescription
define(name, definition)name: string, definition: EntityDefinitionvoidRegister an entity type. Throws if name is already registered.
get(name)name: stringEntityTypeEntry | undefinedLook up a registered type by name.
list()-EntityTypeEntry[]Return all registered types.
clear()-voidRemove all registrations.

EntityTypeEntry

ts
interface EntityTypeEntry {
  name: string
  definition: EntityDefinition
}
FieldTypeDescription
namestringThe registered type name.
definitionEntityDefinitionThe full entity definition.

Module-level functions

These operate on a shared default registry. Use them when you do not need isolated registries.

ts
function defineEntity(name: string, definition: EntityDefinition): void

function getEntityType(name: string): EntityTypeEntry | undefined

function listEntityTypes(): EntityTypeEntry[]

function clearRegistry(): void

function resolveDefine(
  registry?: EntityRegistry
): (name: string, definition: EntityDefinition) => void
FunctionDescription
defineEntity(name, definition)Register a type on the default registry.
getEntityType(name)Look up a type on the default registry.
listEntityTypes()List all types on the default registry.
clearRegistry()Clear the default registry.
resolveDefine(registry?)Returns registry.define if a registry is provided, otherwise defineEntity. Convenience for code that optionally accepts a registry.