diff --git a/packages/config-loader/src/sources/EnvConfigSource.ts b/packages/config-loader/src/sources/EnvConfigSource.ts index ccd7e37e11..3f1900b192 100644 --- a/packages/config-loader/src/sources/EnvConfigSource.ts +++ b/packages/config-loader/src/sources/EnvConfigSource.ts @@ -73,6 +73,13 @@ export class EnvConfigSource implements ConfigSource { yield { configs }; return; } + + toString() { + const keys = Object.keys(this.env).filter(key => + key.startsWith('APP_CONFIG_'), + ); + return `EnvConfigSource{count=${keys.length}}`; + } } const ENV_PREFIX = 'APP_CONFIG_'; diff --git a/packages/config-loader/src/sources/FileConfigSource.ts b/packages/config-loader/src/sources/FileConfigSource.ts index 947cdfabf7..b6d7181e02 100644 --- a/packages/config-loader/src/sources/FileConfigSource.ts +++ b/packages/config-loader/src/sources/FileConfigSource.ts @@ -162,6 +162,10 @@ export class FileConfigSource implements ConfigSource { } } + toString() { + return `FileConfigSource{path="${this.#path}"}`; + } + #waitForEvent( watcher: FSWatcher, signal?: AbortSignal, diff --git a/packages/config-loader/src/sources/MergedConfigSource.ts b/packages/config-loader/src/sources/MergedConfigSource.ts index 5747669564..45387269dc 100644 --- a/packages/config-loader/src/sources/MergedConfigSource.ts +++ b/packages/config-loader/src/sources/MergedConfigSource.ts @@ -97,6 +97,10 @@ export class MergedConfigSource implements ConfigSource { } } } + + toString() { + return `MergedConfigSource{${this.sources.map(String).join(', ')}}`; + } } // Helper to wait for the next value of the iterator, while decorating the value diff --git a/packages/config-loader/src/sources/MutableConfigSource.ts b/packages/config-loader/src/sources/MutableConfigSource.ts index 41f902e6b7..c3d15bf20a 100644 --- a/packages/config-loader/src/sources/MutableConfigSource.ts +++ b/packages/config-loader/src/sources/MutableConfigSource.ts @@ -108,4 +108,8 @@ export class MutableConfigSource implements ConfigSource { this.#currentData = undefined; this.#abortController.abort(); } + + toString() { + return `MutableConfigSource{}`; + } } diff --git a/packages/config-loader/src/sources/RemoteConfigSource.ts b/packages/config-loader/src/sources/RemoteConfigSource.ts index 4d2e03cd01..9de0226b8a 100644 --- a/packages/config-loader/src/sources/RemoteConfigSource.ts +++ b/packages/config-loader/src/sources/RemoteConfigSource.ts @@ -116,6 +116,10 @@ export class RemoteConfigSource implements ConfigSource { } } + toString() { + return `RemoteConfigSource{path="${this.#url}"}`; + } + async #load(signal?: AbortSignal): Promise { const res = await fetch(this.#url, { signal: signal as import('node-fetch').RequestInit['signal'], diff --git a/packages/config-loader/src/sources/StaticConfigSource.ts b/packages/config-loader/src/sources/StaticConfigSource.ts index 7f813b228e..68ccc3353a 100644 --- a/packages/config-loader/src/sources/StaticConfigSource.ts +++ b/packages/config-loader/src/sources/StaticConfigSource.ts @@ -138,4 +138,8 @@ export class StaticConfigSource implements ConfigSource { yield { configs: [{ data: await this.promise, context: this.context }] }; return; } + + toString() { + return `StaticConfigSource{}`; + } }