Skip to content

Class: LayerRegistry<Entries> ​

Defined in: LayerRegistry.ts:289

Explicit, duplicate-safe registry for built-in or application-defined layer discriminants. register returns the same runtime registry with a widened compile-time type, preserving config-to-layer inference for extensions.

Type Parameters ​

Entries ​

Entries extends object = Record<never, never>

Constructors ​

Constructor ​

ts
new LayerRegistry<Entries>(): LayerRegistry<Entries>;

Returns ​

LayerRegistry<Entries>

Methods ​

register() ​

ts
register<Type, Config, CreatedLayer>(type, factory): LayerRegistry<Entries & Record<Type, LayerRegistryEntry<Config, CreatedLayer>>>;

Defined in: LayerRegistry.ts:296

Type Parameters ​

Type ​

Type extends string

Config ​

Config extends RegisteredLayerConfig<Type>

CreatedLayer ​

CreatedLayer extends Layer

Parameters ​

type ​

Type

factory ​

LayerFactory<Config, CreatedLayer>

Returns ​

LayerRegistry<Entries & Record<Type, LayerRegistryEntry<Config, CreatedLayer>>>


extend() ​

ts
extend<Type, Config, CreatedLayer>(type, factory): LayerRegistry<Entries & Record<Type, LayerRegistryEntry<Config, CreatedLayer>>>;

Defined in: LayerRegistry.ts:321

Create an isolated widened registry without mutating this registry.

Type Parameters ​

Type ​

Type extends string

Config ​

Config extends RegisteredLayerConfig<Type>

CreatedLayer ​

CreatedLayer extends Layer

Parameters ​

type ​

Type

factory ​

LayerFactory<Config, CreatedLayer>

Returns ​

LayerRegistry<Entries & Record<Type, LayerRegistryEntry<Config, CreatedLayer>>>


seal() ​

ts
seal(): ReadonlyLayerRegistry<Entries>;

Defined in: LayerRegistry.ts:337

Prevent subsequent in-place registration while retaining read/create operations.

Returns ​

ReadonlyLayerRegistry<Entries>


has() ​

ts
has(type): type is Extract<keyof Entries, string>;

Defined in: LayerRegistry.ts:342

Parameters ​

type ​

string

Returns ​

type is Extract<keyof Entries, string>


registeredTypes() ​

ts
registeredTypes(): readonly Extract<keyof Entries, string>[];

Defined in: LayerRegistry.ts:346

Returns ​

readonly Extract<keyof Entries, string>[]


create() ​

ts
create<Config>(config): RegistryLayerForConfig<Entries, Config>;

Defined in: LayerRegistry.ts:350

Type Parameters ​

Config ​

Config extends RegisteredLayerConfig<string>

Parameters ​

config ​

Config

Returns ​

RegistryLayerForConfig<Entries, Config>


tryCreate() ​

ts
tryCreate(input): LayerCreationResult<RegistryLayerUnion<Entries>>;

Defined in: LayerRegistry.ts:358

Parameters ​

input ​

unknown

Returns ​

LayerCreationResult<RegistryLayerUnion<Entries>>

Released under the MIT License.