domain/settings/settings-service
Classes
Section titled “Classes”SettingsService
Section titled “SettingsService”Defined in: app/src/domain/settings/settings-service.ts:117
Resolves setting values from defaults, policies, user and workspace values, validates every write and keeps invalid stored values aside.
Resolution order, lowest first: default, recommended policy, user, workspace override, mandatory policy.
Implements
Section titled “Implements”Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new SettingsService(
definitions,policies,store,logger):SettingsService
Defined in: app/src/domain/settings/settings-service.ts:140
Parameters
Section titled “Parameters”definitions
Section titled “definitions”readonly SettingDefinition<unknown>[]
Every setting, including those of inactive modules.
policies
Section titled “policies”Provides recommended and mandatory values.
Persists user and workspace values.
logger
Section titled “logger”Receives persistence errors.
Returns
Section titled “Returns”Properties
Section titled “Properties”onDidChange
Section titled “onDidChange”
readonlyonDidChange:Event<SettingChange>
Defined in: app/src/domain/settings/settings-service.ts:132
Fires after values changed through a write, an import or a policy change.
Methods
Section titled “Methods”dispose()
Section titled “dispose()”dispose():
void
Defined in: app/src/domain/settings/settings-service.ts:344
Removes all listeners.
Returns
Section titled “Returns”void
Implementation of
Section titled “Implementation of”exportUserSettings()
Section titled “exportUserSettings()”exportUserSettings():
Record<string,unknown>
Defined in: app/src/domain/settings/settings-service.ts:299
User values that differ from the defaults, sorted by key, for export. Never contains secrets.
Returns
Section titled “Returns”Record<string, unknown>
get<
T>(definition,context?):T
Defined in: app/src/domain/settings/settings-service.ts:217
Returns the effective value of a setting.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”definition
Section titled “definition”The setting.
context?
Section titled “context?”SettingContext = {}
Workspace to apply overrides for.
Returns
Section titled “Returns”T
importUserSettings()
Section titled “importUserSettings()”importUserSettings(
data):Result<SettingsImportReport,string>
Defined in: app/src/domain/settings/settings-service.ts:308
Imports user values from an exported object. Unknown keys are ignored, invalid values are reported, locked settings are skipped.
Parameters
Section titled “Parameters”unknown
Parsed JSON object.
Returns
Section titled “Returns”Result<SettingsImportReport, string>
inspect()
Section titled “inspect()”inspect<
T>(definition,context?):SettingInspection<T>
Defined in: app/src/domain/settings/settings-service.ts:226
Returns the effective value and every contributing layer.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”definition
Section titled “definition”The setting.
context?
Section titled “context?”SettingContext = {}
Workspace to apply overrides for.
Returns
Section titled “Returns”load()
Section titled “load()”load():
Promise<void>
Defined in: app/src/domain/settings/settings-service.ts:164
Loads stored values. Invalid values are kept aside and reported by SettingsService.rejected.
Returns
Section titled “Returns”Promise<void>
rejected()
Section titled “rejected()”rejected(): readonly
RejectedSetting[]
Defined in: app/src/domain/settings/settings-service.ts:339
Stored values that failed validation at load time.
Returns
Section titled “Returns”readonly RejectedSetting[]
reset()
Section titled “reset()”reset(
definition,target?):void
Defined in: app/src/domain/settings/settings-service.ts:292
Removes a user value or workspace override, so the next layer applies again.
Parameters
Section titled “Parameters”definition
Section titled “definition”SettingDefinition<unknown>
The setting.
target?
Section titled “target?”SettingTarget = ...
Which value to remove.
Returns
Section titled “Returns”void
set<
T>(definition,value,target?):Result<void,SettingWriteError>
Defined in: app/src/domain/settings/settings-service.ts:267
Writes a value after validating it.
Type Parameters
Section titled “Type Parameters”T
Parameters
Section titled “Parameters”definition
Section titled “definition”The setting.
unknown
The new value.
target?
Section titled “target?”SettingTarget = ...
User value or workspace override.
Returns
Section titled “Returns”Result<void, SettingWriteError>
Interfaces
Section titled “Interfaces”RejectedSetting
Section titled “RejectedSetting”Defined in: app/src/domain/settings/settings-service.ts:56
A stored value that failed validation. It is kept aside, never silently deleted.
Properties
Section titled “Properties”
readonlykey:string
Defined in: app/src/domain/settings/settings-service.ts:57
message
Section titled “message”
readonlymessage:string
Defined in: app/src/domain/settings/settings-service.ts:60
readonlyvalue:unknown
Defined in: app/src/domain/settings/settings-service.ts:58
workspaceId?
Section titled “workspaceId?”
readonlyoptionalworkspaceId?:string
Defined in: app/src/domain/settings/settings-service.ts:59
SettingChange
Section titled “SettingChange”Defined in: app/src/domain/settings/settings-service.ts:45
Sent after values changed.
Properties
Section titled “Properties”
readonlykeys: readonlystring[]
Defined in: app/src/domain/settings/settings-service.ts:46
SettingContext
Section titled “SettingContext”Defined in: app/src/domain/settings/settings-service.ts:19
Optional context for reading a value.
Properties
Section titled “Properties”workspaceId?
Section titled “workspaceId?”
readonlyoptionalworkspaceId?:string
Defined in: app/src/domain/settings/settings-service.ts:21
Applies the overrides of this workspace.
SettingInspection
Section titled “SettingInspection”Defined in: app/src/domain/settings/settings-service.ts:25
The value of a setting with every layer that contributes to it.
Type Parameters
Section titled “Type Parameters”T
Properties
Section titled “Properties”defaultValue
Section titled “defaultValue”
readonlydefaultValue:T
Defined in: app/src/domain/settings/settings-service.ts:31
readonlykey:string
Defined in: app/src/domain/settings/settings-service.ts:26
locked
Section titled “locked”
readonlylocked:boolean
Defined in: app/src/domain/settings/settings-service.ts:30
Whether a mandatory policy fixes the value.
mandatoryValue?
Section titled “mandatoryValue?”
readonlyoptionalmandatoryValue?:T
Defined in: app/src/domain/settings/settings-service.ts:35
recommendedValue?
Section titled “recommendedValue?”
readonlyoptionalrecommendedValue?:T
Defined in: app/src/domain/settings/settings-service.ts:32
source
Section titled “source”
readonlysource:SettingSource
Defined in: app/src/domain/settings/settings-service.ts:28
userValue?
Section titled “userValue?”
readonlyoptionaluserValue?:T
Defined in: app/src/domain/settings/settings-service.ts:33
readonlyvalue:T
Defined in: app/src/domain/settings/settings-service.ts:27
workspaceValue?
Section titled “workspaceValue?”
readonlyoptionalworkspaceValue?:T
Defined in: app/src/domain/settings/settings-service.ts:34
SettingsImportReport
Section titled “SettingsImportReport”Defined in: app/src/domain/settings/settings-service.ts:76
Result of importing a settings file.
Properties
Section titled “Properties”applied
Section titled “applied”
readonlyapplied: readonlystring[]
Defined in: app/src/domain/settings/settings-service.ts:77
locked
Section titled “locked”
readonlylocked: readonlystring[]
Defined in: app/src/domain/settings/settings-service.ts:79
rejected
Section titled “rejected”
readonlyrejected: readonlyRejectedSetting[]
Defined in: app/src/domain/settings/settings-service.ts:78
SettingsStore
Section titled “SettingsStore”Defined in: app/src/domain/settings/settings-service.ts:64
Persists settings. The platform adapter writes atomically and debounces.
Methods
Section titled “Methods”load()
Section titled “load()”load():
Promise<StoredSettings>
Defined in: app/src/domain/settings/settings-service.ts:66
Reads the stored user values; an empty set when nothing is stored yet.
Returns
Section titled “Returns”Promise<StoredSettings>
save()
Section titled “save()”save(
settings,rejected):Promise<void>
Defined in: app/src/domain/settings/settings-service.ts:72
Stores the user values and the values that were rejected while loading.
Parameters
Section titled “Parameters”settings
Section titled “settings”Valid user values.
rejected
Section titled “rejected”readonly RejectedSetting[]
Values kept aside because they were invalid.
Returns
Section titled “Returns”Promise<void>
StoredSettings
Section titled “StoredSettings”Defined in: app/src/domain/settings/settings-service.ts:50
User and workspace values as stored on disk.
Properties
Section titled “Properties”
readonlyuser:Readonly<Record<string,unknown>>
Defined in: app/src/domain/settings/settings-service.ts:51
workspaces
Section titled “workspaces”
readonlyworkspaces:Readonly<Record<string,Readonly<Record<string,unknown>>>>
Defined in: app/src/domain/settings/settings-service.ts:52
Type Aliases
Section titled “Type Aliases”SettingSource
Section titled “SettingSource”SettingSource =
"default"|"policy-recommended"|"user"|"workspace"|"policy-mandatory"
Defined in: app/src/domain/settings/settings-service.ts:11
The layer a setting value comes from, from lowest to highest precedence.
SettingTarget
Section titled “SettingTarget”SettingTarget = {
scope:"user"; } | {scope:"workspace";workspaceId:string; }
Defined in: app/src/domain/settings/settings-service.ts:15
Where a value is written.
SettingWriteError
Section titled “SettingWriteError”SettingWriteError = {
kind:"invalid-value";message:string; } | {kind:"locked-by-policy"; } | {kind:"not-workspace-scoped"; }
Defined in: app/src/domain/settings/settings-service.ts:39
Why a write was refused.
Variables
Section titled “Variables”SettingsServiceToken
Section titled “SettingsServiceToken”
constSettingsServiceToken:Token<SettingsService>
Defined in: app/src/domain/settings/settings-service.ts:83
Token for the SettingsService.
Functions
Section titled “Functions”settingPolicies()
Section titled “settingPolicies()”settingPolicies(
definitions):PolicyDefinition<unknown>[]
Defined in: app/src/domain/settings/settings-service.ts:91
Derives the policy definitions of all settings that declare a policy, so that every such setting can be set and locked by administrators.
Parameters
Section titled “Parameters”definitions
Section titled “definitions”readonly SettingDefinition<unknown>[]
All settings.
Returns
Section titled “Returns”PolicyDefinition<unknown>[]