Skip to content

craft-hub / UserConfigService

Class: UserConfigService ​

Defined in: packages/craft-hub/src/user-config.ts:64

Own JSONC persistence, migration, diagnostics, and recovery for portable user configuration.

Callers provide domain validation while this module preserves comments and last-known-good values.

Constructors ​

Constructor ​

new UserConfigService(configDir, dataDir): UserConfigService

Defined in: packages/craft-hub/src/user-config.ts:73

Parameters ​

configDir ​

string

dataDir ​

string

Returns ​

UserConfigService

Properties ​

configDir ​

readonly configDir: string

Defined in: packages/craft-hub/src/user-config.ts:73

Methods ​

close() ​

close(): Promise<void>

Defined in: packages/craft-hub/src/user-config.ts:216

Stop watching user configuration files.

Returns ​

Promise<void>


list() ​

list(directory?): Promise<string[]>

Defined in: packages/craft-hub/src/user-config.ts:78

List user-authored JSONC files under one portable configuration subdirectory.

Parameters ​

directory? ​

string = ''

Returns ​

Promise<string[]>


onChanged() ​

onChanged(listener): () => void

Defined in: packages/craft-hub/src/user-config.ts:187

Subscribe to external changes under the portable configuration directory.

Parameters ​

listener ​

() => void

Returns ​

() => void


read() ​

read<T>(relativePath, validate, fallback?): Promise<T>

Defined in: packages/craft-hub/src/user-config.ts:95

Read and validate one JSONC file, retaining its last valid value after invalid external edits.

Type Parameters ​

T ​

T

Parameters ​

relativePath ​

string

validate ​

Validator<T>

fallback? ​

() => T

Returns ​

Promise<T>


readSource() ​

readSource<T>(relativePath, validate, fallback?): Promise<UserConfigDocument<T>>

Defined in: packages/craft-hub/src/user-config.ts:100

Read validated data together with the exact JSONC used for optimistic revisions.

Type Parameters ​

T ​

T

Parameters ​

relativePath ​

string

validate ​

Validator<T>

fallback? ​

() => T

Returns ​

Promise<UserConfigDocument<T>>


remove() ​

remove(relativePath): Promise<void>

Defined in: packages/craft-hub/src/user-config.ts:161

Remove one portable file and its machine-local recovery snapshot.

Parameters ​

relativePath ​

string

Returns ​

Promise<void>


startWatching() ​

startWatching(): Promise<void>

Defined in: packages/craft-hub/src/user-config.ts:193

Watch JSONC files after completing the one-time YAML migration.

Returns ​

Promise<void>


status() ​

status(): Promise<UserConfigStatus>

Defined in: packages/craft-hub/src/user-config.ts:170

Return current paths and diagnostics without exposing machine-local recovery content.

Returns ​

Promise<UserConfigStatus>


write() ​

write<T>(relativePath, value, schemaUrl, keys, validate): Promise<void>

Defined in: packages/craft-hub/src/user-config.ts:137

Atomically update known top-level fields while preserving comments and extension data.

Type Parameters ​

T ​

T

Parameters ​

relativePath ​

string

value ​

T

schemaUrl ​

string

keys ​

string[]

validate ​

Validator<T>

Returns ​

Promise<void>

Released under the MIT License.