UCD.js Docs

Env

Architecture notes for @ucdjs/env

@ucdjs/env centralizes shared runtime constants and small environment helpers.

Role

  • Defines default public origins and shared HTTP metadata header names.
  • Resolves config directory paths for local tooling.
  • Validates required environment bindings when callers need fail-fast behavior.

Mental Model

@ucdjs/env does not own business logic. It owns shared runtime values that would otherwise turn into duplicated string literals or ad hoc environment checks.

The package has three kinds of exports:

  • static header-name constants
  • origin/config defaults derived from process.env
  • tiny helpers such as requiredEnv() and local config path resolution

Constant Resolution

process.env

UCDJS_API_BASE_URL

UCDJS_DOCS_URL

UCDJS_STORE_BASE_URL

hard-coded defaults

client / store / apps / workers

Method Flows

getUcdConfigPath(...segments)

homedir()getXdgConfigDir()getUcdConfigDir()getUcdConfigPath()homedir()getXdgConfigDir()getUcdConfigDir()getUcdConfigPath()alt[HOME available][Windows-style home vars available][no home directory found]alt[XDG_CONFIG_HOME exists][no XDG_CONFIG_HOME]CallergetUcdConfigPath(...segments)getUcdConfigDir()getXdgConfigDir()XDG_CONFIG_HOMEhomedir()HOMEHOMEDRIVE + HOMEPATH or USERPROFILEthrow<configDir>/ucd<configDir>/ucd/<segments...>Caller

requiredEnv(env, requiredKeys)

env objectrequiredEnv()env objectrequiredEnv()alt[missing or nullish]loop[each required key]CallerrequiredEnv(env, requiredKeys)getOwnProperty(env, key)throw Missing required env vartyped env objectCaller

Header Constants

X-UCD-Stat-* constants

API responses

store / fs-backend stat flows

consumers reading stat metadata

Testing Use

The most useful tests for this package are:

  • env override vs fallback default behavior
  • XDG/home-directory resolution across platform-style env combinations
  • requiredEnv() success and fail-fast error cases
  • stability of shared HTTP header names

On this page