From 44de854897ecebeab1d2ad6b0bf637902e37c8bc Mon Sep 17 00:00:00 2001 From: David de Kloet Date: Fri, 8 May 2026 10:10:10 +0200 Subject: [PATCH] Throw AdapterError instead of Error when variable env var is missing --- src/config/index.ts | 6 +++++- test/config.test.ts | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/config/index.ts b/src/config/index.ts index 7f4b9c3f..71006470 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -1,4 +1,5 @@ import CensorList, { CensorKeyValue } from '../util/censor/censor-list' +import { AdapterError } from '../validation/error' import { Validator, validator } from '../validation/utils' export const BaseSettingsDefinition = { @@ -597,7 +598,10 @@ export class EnvGetter< this.name.replace(this.settingsDefinition.variablePlaceholder, canonicalVariable), this.prefix, ) - throw new Error(`Missing required environment variable: ${envName}`) + throw new AdapterError({ + statusCode: 500, + message: `Missing required environment variable: ${envName}`, + }) } entries(): VariableEnvVarEntry>[] { diff --git a/test/config.test.ts b/test/config.test.ts index 76330f2c..3a7278b0 100644 --- a/test/config.test.ts +++ b/test/config.test.ts @@ -6,6 +6,7 @@ import { SettingDefinition, SettingsDefinitionMap, } from '../src/config' +import { AdapterError } from '../src/validation/error' import { validator } from '../src/validation/utils' import { Adapter } from '../src/adapter' import { buildSettingsList } from '../src/util/settings' @@ -317,7 +318,8 @@ test.serial('Get required variable env var', async (t) => { config.settings.NETWORK_RPC_URL.get('arbitrum') t.fail() } catch (error) { - t.is((error as Error).message, 'Missing required environment variable: ARBITRUM_RPC_URL') + t.is((error as AdapterError).message, 'Missing required environment variable: ARBITRUM_RPC_URL') + t.is((error as AdapterError).statusCode, 500) } })