@@ -81,14 +81,33 @@ export class ApiClientFactory {
8181
8282 /**
8383 * Configure from environment variable
84- * @param envVar - Environment variable name (default: ADGUARD_API_KEY)
84+ *
85+ * Supports multiple environment variable naming conventions:
86+ * - .NET-compatible format: ADGUARD_AdGuard__ApiKey (recommended, tried first)
87+ * - Legacy/alternative format: ADGUARD_API_KEY (fallback)
88+ *
89+ * @param envVar - Custom environment variable name (overrides default lookup)
8590 * @param logger - Optional logger
8691 */
87- configureFromEnv ( envVar : string = 'ADGUARD_API_KEY' , logger ?: Logger ) : void {
88- const apiKey = process . env [ envVar ] ;
89- if ( ! apiKey ) {
90- throw new Error ( `Environment variable ${ envVar } is not set` ) ;
92+ configureFromEnv ( envVar ?: string , logger ?: Logger ) : void {
93+ let apiKey : string | undefined ;
94+
95+ if ( envVar ) {
96+ // Use explicitly provided environment variable name
97+ apiKey = process . env [ envVar ] ;
98+ if ( ! apiKey ) {
99+ throw new Error ( `Environment variable ${ envVar } is not set` ) ;
100+ }
101+ } else {
102+ // Try .NET-compatible format first, then fallback to legacy format
103+ apiKey = process . env [ 'ADGUARD_AdGuard__ApiKey' ] ?? process . env [ 'ADGUARD_API_KEY' ] ;
104+ if ( ! apiKey ) {
105+ throw new Error (
106+ 'API key not configured. Set ADGUARD_AdGuard__ApiKey (recommended) or ADGUARD_API_KEY environment variable.'
107+ ) ;
108+ }
91109 }
110+
92111 this . configure ( apiKey , logger ) ;
93112 }
94113
@@ -239,14 +258,33 @@ export class AdGuardDnsClient {
239258
240259 /**
241260 * Create client from environment variable
242- * @param envVar - Environment variable name (default: ADGUARD_API_KEY)
261+ *
262+ * Supports multiple environment variable naming conventions:
263+ * - .NET-compatible format: ADGUARD_AdGuard__ApiKey (recommended, tried first)
264+ * - Legacy/alternative format: ADGUARD_API_KEY (fallback)
265+ *
266+ * @param envVar - Custom environment variable name (overrides default lookup)
243267 * @param logger - Optional logger
244268 */
245- static fromEnv ( envVar : string = 'ADGUARD_API_KEY' , logger ?: Logger ) : AdGuardDnsClient {
246- const apiKey = process . env [ envVar ] ;
247- if ( ! apiKey ) {
248- throw new Error ( `Environment variable ${ envVar } is not set` ) ;
269+ static fromEnv ( envVar ?: string , logger ?: Logger ) : AdGuardDnsClient {
270+ let apiKey : string | undefined ;
271+
272+ if ( envVar ) {
273+ // Use explicitly provided environment variable name
274+ apiKey = process . env [ envVar ] ;
275+ if ( ! apiKey ) {
276+ throw new Error ( `Environment variable ${ envVar } is not set` ) ;
277+ }
278+ } else {
279+ // Try .NET-compatible format first, then fallback to legacy format
280+ apiKey = process . env [ 'ADGUARD_AdGuard__ApiKey' ] ?? process . env [ 'ADGUARD_API_KEY' ] ;
281+ if ( ! apiKey ) {
282+ throw new Error (
283+ 'API key not configured. Set ADGUARD_AdGuard__ApiKey (recommended) or ADGUARD_API_KEY environment variable.'
284+ ) ;
285+ }
249286 }
287+
250288 return AdGuardDnsClient . withApiKey ( apiKey , logger ) ;
251289 }
252290
0 commit comments