Skip to content

@mantleframework/env

Type-safe environment variable access with validation.

Functions

getRequiredEnv(name)

Get a required environment variable. Throws MissingEnvVarError if not set.

typescript
const dbUrl = getRequiredEnv('DATABASE_URL');

getOptionalEnv(name, defaultValue?)

Get an optional environment variable with an optional default.

typescript
const logLevel = getOptionalEnv('LOG_LEVEL', 'info');

getRequiredEnvNumber(name)

Get a required environment variable and parse it as a number.

typescript
const port = getRequiredEnvNumber('PORT');

getOptionalEnvNumber(name, defaultValue?)

Get an optional environment variable as a number.

createLazyConfig(factory)

Create a lazily-initialized configuration object. The factory is only called once on first access.

typescript
const config = createLazyConfig(() => ({
  dbUrl: getRequiredEnv('DATABASE_URL'),
  apiKey: getRequiredEnv('API_KEY'),
  maxRetries: getOptionalEnvNumber('MAX_RETRIES', 3),
}));

// Config is not evaluated until first access
config.dbUrl; // Now the factory runs

Error Classes

MissingEnvVarError

Thrown when a required environment variable is not set.

typescript
class MissingEnvVarError extends Error {
  readonly variableName: string;
}