Skip to content

Commit b51b576

Browse files
committed
refactor: add Configuration type (temp aliased to IConfiguration)
1 parent 68c8b2f commit b51b576

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

src/configuration-store/configuration-store.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { IConfiguration } from '../i-configuration';
1+
import { Configuration } from '../i-configuration';
22
import { Environment } from '../interfaces';
33

44
/**
@@ -9,17 +9,16 @@ import { Environment } from '../interfaces';
99
*/
1010
export class ConfigurationStore {
1111
private readonly listeners: Array<
12-
(configuration: IConfiguration | null) => void
12+
(configuration: Configuration | null) => void
1313
> = [];
1414

15-
// TODO: replace IConfiguration with a concrete `Configuration` type.
16-
public constructor(private configuration: IConfiguration | null = null) {}
15+
public constructor(private configuration: Configuration | null = null) {}
1716

18-
public getConfiguration(): IConfiguration | null {
17+
public getConfiguration(): Configuration | null {
1918
return this.configuration;
2019
}
2120

22-
public setConfiguration(configuration: IConfiguration | null): void {
21+
public setConfiguration(configuration: Configuration | null): void {
2322
this.configuration = configuration;
2423
this.notifyListeners();
2524
}
@@ -31,7 +30,7 @@ export class ConfigurationStore {
3130
* Returns a function to unsubscribe from future updates.
3231
*/
3332
public onConfigurationChange(
34-
listener: (configuration: IConfiguration | null) => void
33+
listener: (configuration: Configuration | null) => void
3534
): () => void {
3635
this.listeners.push(listener);
3736

src/i-configuration.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ export interface IConfiguration {
2828
isInitialized(): boolean;
2929
}
3030

31+
// TODO: replace more abstract `IConfiguration` with some concrete
32+
// implementation, so we know what to expect from it (i.e., it's
33+
// probably a bad idea to allow users implementing their own
34+
// configurations).
35+
export type Configuration = IConfiguration;
36+
3137
export type ConfigStoreHydrationPacket<T extends Entry> = {
3238
entries: Record<string, T>;
3339
environment: Environment;
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
1-
import { IConfiguration } from './i-configuration';
1+
import { Configuration } from './i-configuration';
22

33
/**
44
* Persistent configuration storages are responsible for persisting
55
* configuration between SDK reloads.
66
*/
7-
// TODO: replace `IConfiguration` with a concrete `Configuration` type.
87
export interface PersistentConfigurationStorage {
98
/**
109
* Load configuration from the persistent storage.
1110
*
1211
* The method may fail to load a configuration or throw an
1312
* exception (which is generally ignored).
1413
*/
15-
loadConfiguration(): PromiseLike<IConfiguration | null>;
14+
loadConfiguration(): PromiseLike<Configuration | null>;
1615

1716
/**
1817
* Store configuration to the persistent storage.
1918
*
2019
* The method is allowed to do async work (which is not awaited) or
2120
* throw exceptions (which are ignored).
2221
*/
23-
storeConfiguration(configuration: IConfiguration | null): void;
22+
storeConfiguration(configuration: Configuration | null): void;
2423
}

0 commit comments

Comments
 (0)