@@ -113,6 +113,7 @@ export interface DatabaseFactories {
113113class InjectedBrowserStorageService extends BrowserStorageService {
114114 constructor (
115115 private fallbackOverride : Record < string , unknown > | undefined ,
116+ private forcedValues : Record < string , unknown > | undefined ,
116117 private databaseFactories : DatabaseFactories = { } ,
117118 @IUserDataProfileService userDataProfileService : IUserDataProfileService ,
118119 @ILogService logService : ILogService ,
@@ -124,9 +125,12 @@ class InjectedBrowserStorageService extends BrowserStorageService {
124125 override get ( key : string , scope : StorageScope , fallbackValue : string ) : string
125126 override get ( key : string , scope : StorageScope ) : string | undefined
126127 override get ( key : string , scope : StorageScope , fallbackValue ?: string ) : string | undefined {
127- return this . getStorage ( scope ) ?. get (
128- key ,
129- ( this . fallbackOverride ?. [ key ] as string | undefined ) ?? fallbackValue
128+ return (
129+ ( this . forcedValues ?. [ key ] as string | undefined ) ??
130+ this . getStorage ( scope ) ?. get (
131+ key ,
132+ ( this . fallbackOverride ?. [ key ] as string | undefined ) ?? fallbackValue
133+ )
130134 )
131135 }
132136
@@ -137,27 +141,36 @@ class InjectedBrowserStorageService extends BrowserStorageService {
137141 scope : StorageScope ,
138142 fallbackValue ?: boolean
139143 ) : boolean | undefined {
140- return this . getStorage ( scope ) ?. getBoolean (
141- key ,
142- ( this . fallbackOverride ?. [ key ] as boolean | undefined ) ?? fallbackValue
144+ return (
145+ ( this . forcedValues ?. [ key ] as boolean | undefined ) ??
146+ this . getStorage ( scope ) ?. getBoolean (
147+ key ,
148+ ( this . fallbackOverride ?. [ key ] as boolean | undefined ) ?? fallbackValue
149+ )
143150 )
144151 }
145152
146153 override getNumber ( key : string , scope : StorageScope , fallbackValue : number ) : number
147154 override getNumber ( key : string , scope : StorageScope ) : number | undefined
148155 override getNumber ( key : string , scope : StorageScope , fallbackValue ?: number ) : number | undefined {
149- return this . getStorage ( scope ) ?. getNumber (
150- key ,
151- ( this . fallbackOverride ?. [ key ] as number | undefined ) ?? fallbackValue
156+ return (
157+ ( this . forcedValues ?. [ key ] as number | undefined ) ??
158+ this . getStorage ( scope ) ?. getNumber (
159+ key ,
160+ ( this . fallbackOverride ?. [ key ] as number | undefined ) ?? fallbackValue
161+ )
152162 )
153163 }
154164
155165 override getObject ( key : string , scope : StorageScope , fallbackValue : object ) : object
156166 override getObject ( key : string , scope : StorageScope ) : object | undefined
157167 override getObject ( key : string , scope : StorageScope , fallbackValue ?: object ) : object | undefined {
158- return this . getStorage ( scope ) ?. getObject (
159- key ,
160- ( this . fallbackOverride ?. [ key ] as object | undefined ) ?? fallbackValue
168+ return (
169+ ( this . forcedValues ?. [ key ] as object | undefined ) ??
170+ this . getStorage ( scope ) ?. getObject (
171+ key ,
172+ ( this . fallbackOverride ?. [ key ] as object | undefined ) ?? fallbackValue
173+ )
161174 )
162175 }
163176
@@ -198,6 +211,11 @@ interface StorageServiceParameters {
198211 */
199212 fallbackOverride ?: Record < string , unknown >
200213
214+ /**
215+ * Allows to force the value of some keys
216+ */
217+ forcedValues ?: Record < string , unknown >
218+
201219 /**
202220 * Allow to override the storage database for a specific scope (application, profile, workspace)
203221 */
@@ -206,12 +224,13 @@ interface StorageServiceParameters {
206224
207225export default function getStorageServiceOverride ( {
208226 fallbackOverride,
227+ forcedValues,
209228 databaseFactories
210229} : StorageServiceParameters = { } ) : IEditorOverrideServices {
211230 return {
212231 [ IStorageService . toString ( ) ] : new SyncDescriptor (
213232 InjectedBrowserStorageService ,
214- [ fallbackOverride , databaseFactories ] ,
233+ [ fallbackOverride , forcedValues , databaseFactories ] ,
215234 true
216235 ) ,
217236 [ IExtensionStorageService . toString ( ) ] : new SyncDescriptor ( ExtensionStorageService , [ ] , true )
0 commit comments