* Get setting via key, and create a new setting if the requested setting does not exist. * @param key kebab-case string ID * @param defaultValue * @param storageType If not specified, SettingStorageType.GLOBAL is used.
(key: string, defaultValue: T, storageType?: SettingStorageType)
| 210 | * @param storageType If not specified, SettingStorageType.GLOBAL is used. |
| 211 | */ |
| 212 | createSetting<T>(key: string, defaultValue: T, storageType?: SettingStorageType): Setting<T> { |
| 213 | const storage = this.storageFromType(storageType); |
| 214 | let setting = this.#registry.get(key) as Setting<T>; |
| 215 | if (!setting) { |
| 216 | setting = new Setting(key, defaultValue, this.#eventSupport, storage, this.#console, this.#logSettingAccess); |
| 217 | this.#registry.set(key, setting); |
| 218 | } |
| 219 | return setting; |
| 220 | } |
| 221 | |
| 222 | createLocalSetting<T>(key: string, defaultValue: T): Setting<T> { |
| 223 | return this.createSetting(key, defaultValue, SettingStorageType.LOCAL); |