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.
Type Parameters
Section titled “Type Parameters”TCurrent
Section titled “TCurrent”TCurrent = undefined
The type of the current configuration schema.
Properties
Section titled “Properties”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.
Accessors
Section titled “Accessors”config
Section titled “config”Get Signature
Section titled “Get Signature”get config():
TCurrent
Defined in: packages/core/src/manager.ts:108
The current stored config.
Returns
Section titled “Returns”TCurrent
dataVersion
Section titled “dataVersion”Get Signature
Section titled “Get Signature”get dataVersion():
number
Defined in: packages/core/src/manager.ts:118
The current data version number.
Returns
Section titled “Returns”number
hasBeenHydrated
Section titled “hasBeenHydrated”Get Signature
Section titled “Get Signature”get hasBeenHydrated():
boolean
Defined in: packages/core/src/manager.ts:128
True if the store has successfully loaded or saved data at least once.
Returns
Section titled “Returns”boolean
isLoadError
Section titled “isLoadError”Get Signature
Section titled “Get Signature”get isLoadError():
boolean
Defined in: packages/core/src/manager.ts:158
True if load status is ‘error’.
Returns
Section titled “Returns”boolean
isLoadInitial
Section titled “isLoadInitial”Get Signature
Section titled “Get Signature”get isLoadInitial():
boolean
Defined in: packages/core/src/manager.ts:143
True if load status is ‘initial’.
Returns
Section titled “Returns”boolean
isLoadPending
Section titled “isLoadPending”Get Signature
Section titled “Get Signature”get isLoadPending():
boolean
Defined in: packages/core/src/manager.ts:148
True if load status is ‘pending’.
Returns
Section titled “Returns”boolean
isLoadSuccess
Section titled “isLoadSuccess”Get Signature
Section titled “Get Signature”get isLoadSuccess():
boolean
Defined in: packages/core/src/manager.ts:153
True if load status is ‘success’.
Returns
Section titled “Returns”boolean
loadError
Section titled “loadError”Get Signature
Section titled “Get Signature”get loadError():
unknown
Defined in: packages/core/src/manager.ts:138
The error from the last load operation, if any.
Returns
Section titled “Returns”unknown
loadStatus
Section titled “loadStatus”Get Signature
Section titled “Get Signature”get loadStatus():
ManagerStatus
Defined in: packages/core/src/manager.ts:133
The status of the load operation.
Returns
Section titled “Returns”metadata
Section titled “metadata”Get Signature
Section titled “Get Signature”get metadata():
ManagerMetadata
Defined in: packages/core/src/manager.ts:113
The metadata (data version and schema version).
Returns
Section titled “Returns”schemaVersion
Section titled “schemaVersion”Get Signature
Section titled “Get Signature”get schemaVersion():
number
Defined in: packages/core/src/manager.ts:123
The current schema version number.
Returns
Section titled “Returns”number
Get Signature
Section titled “Get Signature”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.
Returns
Section titled “Returns”ManagerState<TCurrent>
Methods
Section titled “Methods”addVersion()
Section titled “addVersion()”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.
Type Parameters
Section titled “Type Parameters”TNext
Parameters
Section titled “Parameters”versionDef
Section titled “versionDef”VersionDef<TCurrent, TNext>
The definition of the new version, including schema and migration function.
Returns
Section titled “Returns”ConfigManager<TNext>
A new ConfigManager instance.
load()
Section titled “load()”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.
Returns
Section titled “Returns”Promise<void>
save()
Section titled “save()”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.
Parameters
Section titled “Parameters”config
Section titled “config”TCurrent
The new configuration to save.
Returns
Section titled “Returns”Promise<TCurrent>
The resolved configuration (may differ from input if server modified it or if race condition occurred).
create()
Section titled “create()”
staticcreate<TConfig>(options,initialVersion):ConfigManager<TConfig>
Defined in: packages/core/src/manager.ts:91
Creates a new ConfigManager instance.
Type Parameters
Section titled “Type Parameters”TConfig
Section titled “TConfig”TConfig
Parameters
Section titled “Parameters”options
Section titled “options”initialVersion
Section titled “initialVersion”VersionDef<void, TConfig>
The definition of the initial schema version (Version 1).
Returns
Section titled “Returns”ConfigManager<TConfig>
A ConfigManager instance typed with the initial schema.