Skip to content

ConfigManager

Defined in: packages/core/src/manager.ts:20

The main class managing configuration state, persistence, validation, and version migration. It uses a Zustand store internally to maintain reactivity.

TCurrent = undefined

The type of the current configuration schema.

store: StoreApi<ManagerState<TCurrent>>

Defined in: packages/core/src/manager.ts:33

The underlying Zustand store instance. Can be used to subscribe to state changes directly.

get config(): TCurrent

Defined in: packages/core/src/manager.ts:108

The current stored config.

TCurrent


get dataVersion(): number

Defined in: packages/core/src/manager.ts:118

The current data version number.

number


get hasBeenHydrated(): boolean

Defined in: packages/core/src/manager.ts:128

True if the store has successfully loaded or saved data at least once.

boolean


get isLoadError(): boolean

Defined in: packages/core/src/manager.ts:158

True if load status is ‘error’.

boolean


get isLoadInitial(): boolean

Defined in: packages/core/src/manager.ts:143

True if load status is ‘initial’.

boolean


get isLoadPending(): boolean

Defined in: packages/core/src/manager.ts:148

True if load status is ‘pending’.

boolean


get isLoadSuccess(): boolean

Defined in: packages/core/src/manager.ts:153

True if load status is ‘success’.

boolean


get loadError(): unknown

Defined in: packages/core/src/manager.ts:138

The error from the last load operation, if any.

unknown


get loadStatus(): ManagerStatus

Defined in: packages/core/src/manager.ts:133

The status of the load operation.

ManagerStatus


get metadata(): ManagerMetadata

Defined in: packages/core/src/manager.ts:113

The metadata (data version and schema version).

ManagerMetadata


get schemaVersion(): number

Defined in: packages/core/src/manager.ts:123

The current schema version number.

number


get state(): ManagerState<TCurrent>

Defined in: packages/core/src/manager.ts:103

The entire state snapshot of the manager, including config, metadata and load/save state.

ManagerState<TCurrent>

addVersion<TNext>(versionDef): ConfigManager<TNext>

Defined in: packages/core/src/manager.ts:174

Defines the next version of the configuration schema. This method uses an immutable builder pattern and returns a new ConfigManager instance typed with the new schema.

TNext

VersionDef<TCurrent, TNext>

The definition of the new version, including schema and migration function.

ConfigManager<TNext>

A new ConfigManager instance.


load(): Promise<void>

Defined in: packages/core/src/manager.ts:197

Loads the configuration from the adapter. Handles deserialization, validation, and migration of data. Updates the store with the result.

Promise<void>


save(config): Promise<TCurrent>

Defined in: packages/core/src/manager.ts:226

Saves the configuration to the adapter. Performs an optimistic update on the store immediately. Handles race conditions and version conflicts.

TCurrent

The new configuration to save.

Promise<TCurrent>

The resolved configuration (may differ from input if server modified it or if race condition occurred).


static create<TConfig>(options, initialVersion): ConfigManager<TConfig>

Defined in: packages/core/src/manager.ts:91

Creates a new ConfigManager instance.

TConfig

ConfigManagerOptions

VersionDef<void, TConfig>

The definition of the initial schema version (Version 1).

ConfigManager<TConfig>

A ConfigManager instance typed with the initial schema.