From 385116b48e69dad9b228bdac66e5c28cad4fd16c Mon Sep 17 00:00:00 2001 From: Jordan Young Date: Mon, 5 Oct 2026 10:13:29 -0400 Subject: [PATCH] feat(env-var): add build.availity.com support across all environments --- packages/env-var/README.md | 9 +++++++++ packages/env-var/src/index.test.ts | 24 ++++++++++++++++++++++++ packages/env-var/src/index.ts | 10 +++++----- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/packages/env-var/README.md b/packages/env-var/README.md index f0bb9937..fd62b10c 100644 --- a/packages/env-var/README.md +++ b/packages/env-var/README.md @@ -36,6 +36,15 @@ const apiUrl = envVar({ }); ``` +Supported hostnames per environment: + +| Environment | Hostnames | +| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `local` | `localhost`, `127.0.0.1` | +| `test` | `test-{apps\|essentials\|build}.availity.com`, `t{NN}-{apps\|essentials\|build}.availity.com` | +| `qa` | `qa-{apps\|essentials\|build}.availity.com`, `qap-{apps\|essentials\|build}.availity.com`, `q{NN}-{apps\|essentials\|build}.availity.com` | +| `prod` | `apps.availity.com`, `essentials.availity.com`, `build.availity.com` | + ### Named Exports ```js diff --git a/packages/env-var/src/index.test.ts b/packages/env-var/src/index.test.ts index 2e47fb57..89b19132 100644 --- a/packages/env-var/src/index.test.ts +++ b/packages/env-var/src/index.test.ts @@ -191,20 +191,31 @@ describe('envVar', () => { describe('test — portal URLs', () => { assertEnv('test-apps.availity.com', 'test'); assertEnv('test-essentials.availity.com', 'test'); + assertEnv('test-build.availity.com', 'test'); assertEnv('t01-apps.availity.com', 'test'); + assertEnv('t01-essentials.availity.com', 'test'); + assertEnv('t01-build.availity.com', 'test'); assertEnv('t14-apps.availity.com', 'test'); + assertEnv('t14-essentials.availity.com', 'test'); + assertEnv('t14-build.availity.com', 'test'); }); describe('qa — portal URLs', () => { assertEnv('qa-apps.availity.com', 'qa'); assertEnv('qa-essentials.availity.com', 'qa'); + assertEnv('qa-build.availity.com', 'qa'); assertEnv('qap-apps.availity.com', 'qa'); + assertEnv('qap-essentials.availity.com', 'qa'); + assertEnv('qap-build.availity.com', 'qa'); assertEnv('q01-apps.availity.com', 'qa'); + assertEnv('q01-essentials.availity.com', 'qa'); + assertEnv('q01-build.availity.com', 'qa'); }); describe('prod — portal URLs', () => { assertEnv('apps.availity.com', 'prod'); assertEnv('essentials.availity.com', 'prod'); + assertEnv('build.availity.com', 'prod'); }); describe('unknown hostnames fall through to local', () => { @@ -241,13 +252,26 @@ describe('getSpecificEnv', () => { assertSpecific('127.0.0.1', 'local'); assertSpecific('fallback-apps.availity.com', 'fallback'); assertSpecific('test-apps.availity.com', 'test'); + assertSpecific('test-essentials.availity.com', 'test'); + assertSpecific('test-build.availity.com', 'test'); assertSpecific('t01-apps.availity.com', 't01'); + assertSpecific('t01-essentials.availity.com', 't01'); + assertSpecific('t01-build.availity.com', 't01'); assertSpecific('t14-apps.availity.com', 't14'); + assertSpecific('t14-essentials.availity.com', 't14'); + assertSpecific('t14-build.availity.com', 't14'); assertSpecific('qa-apps.availity.com', 'qa'); + assertSpecific('qa-essentials.availity.com', 'qa'); + assertSpecific('qa-build.availity.com', 'qa'); assertSpecific('qap-apps.availity.com', 'qap'); + assertSpecific('qap-essentials.availity.com', 'qap'); + assertSpecific('qap-build.availity.com', 'qap'); assertSpecific('q01-apps.availity.com', 'q01'); + assertSpecific('q01-essentials.availity.com', 'q01'); + assertSpecific('q01-build.availity.com', 'q01'); assertSpecific('apps.availity.com', 'prod'); assertSpecific('essentials.availity.com', 'prod'); + assertSpecific('build.availity.com', 'prod'); }); test('returns "local" when called with null (SSR/no-window)', () => { diff --git a/packages/env-var/src/index.ts b/packages/env-var/src/index.ts index 25e2ecfa..c528b32b 100644 --- a/packages/env-var/src/index.ts +++ b/packages/env-var/src/index.ts @@ -28,7 +28,7 @@ export interface WindowLike { * // => string | null | undefined */ export interface EnvOpts { - /** Value to use in production (`apps.availity.com`, `essentials.availity.com`). */ + /** Value to use in production (`apps.availity.com`, `essentials.availity.com`, `build.availity.com`). */ prod?: unknown; /** Value to use in QA (`qa-apps`, `qap-apps`, `q01-apps`, etc.). */ qa?: unknown; @@ -58,9 +58,9 @@ export interface EnvironmentInfo { const DEFAULT_ENVIRONMENTS: Record = { local: ['127.0.0.1', 'localhost'], - test: [/^t(?:(?:\d\d)|(?:est))-(apps|essentials)$/], - qa: [/^q(?:(?:\d\d)|(?:ap?))-(apps|essentials)$/], - prod: [/^(apps|essentials)$/], + test: [/^t(?:(?:\d\d)|(?:est))-(apps|essentials|build)$/], + qa: [/^q(?:(?:\d\d)|(?:ap?))-(apps|essentials|build)$/], + prod: [/^(apps|essentials|build)$/], }; const DEFAULT_SPECIFIC_ENVIRONMENTS: SpecificEnvConfig[] = [ @@ -70,7 +70,7 @@ const DEFAULT_SPECIFIC_ENVIRONMENTS: SpecificEnvConfig[] = [ fn: () => 'local', }, { - regex: /^(?:(.*)-)?(apps|essentials)$/, + regex: /^(?:(.*)-)?(apps|essentials|build)$/, fn: (options) => options.match[1] || 'prod', }, ];