Skip to main content
zerotal

Documentation


Documentation / zerotal / env / t

Variable: t

const t: object

Defined in: packages/core/src/env/t.ts:33

The t builder — the entry point for all field type definitions.

Every method returns a Def<T> which can be further configured with .required(), .default(val), or .when(field, value, t.required()).

Type Declaration

string()

readonly string(): Def<string | undefined>

A plain string environment variable.

Returns

Def<string | undefined>

Example

APP_NAME:  t.string().default('Zerotal App')  // string
DB_HOST:   t.string().required()            // string
REDIS_URL: t.string()                       // string | undefined

number()

readonly number(): Def<number | undefined>

A numeric environment variable (parsed with Number()). Non-numeric values cause a boot-time error.

Returns

Def<number | undefined>

Example

PORT:    t.number().default(3000)  // number
TIMEOUT: t.number().required()     // number

boolean()

readonly boolean(): Def<boolean | undefined>

A boolean environment variable. Accepts: true, false, 1, 0, yes, no (case-insensitive).

Returns

Def<boolean | undefined>

Example

DEBUG:     t.boolean().default(false)  // boolean
CACHE_HOT: t.boolean().required()      // boolean

enum()

readonly enum<V>(values): Def<V[number] | undefined>

An enum-constrained string variable. The value must be one of the provided literals — anything else causes a boot-time error. Pass the array as const (or inline) for accurate literal type inference.

Type Parameters

V

V extends readonly string[]

Parameters

values

V

Returns

Def<V[number] | undefined>

Example

NODE_ENV: t.enum(['development', 'production', 'testing']).required()
// output: 'development' | 'production' | 'testing'

url()

readonly url(): Def<string | undefined>

A URL-validated string. Parses with new URL() — invalid values cause a boot-time error.

Returns

Def<string | undefined>

Example

API_BASE: t.url().required()       // string (guaranteed valid URL)
CDN_URL:  t.url().default('...')   // string

port()

readonly port(): Def<number | undefined>

A validated TCP port number (integer 1–65535).

Returns

Def<number | undefined>

Example

PORT: t.port().default(3000)   // number

required()

readonly required(): typeof _REQUIRED

Sentinel value for use as the third argument to .when(). Signals that the field is required under the given condition.

Returns

typeof _REQUIRED

Example

STRIPE_KEY: t.string().when('NODE_ENV', 'production', t.required())

Example

import { EnvSchema, t } from '@zerotal/core/env';

export const env = EnvSchema.define({
  PORT:     t.number().default(3000),
  NODE_ENV: t.enum(['development', 'production', 'testing']).required(),
  DB_HOST:  t.string().required(),
  DB_PASS:  t.string().when('NODE_ENV', 'production', t.required()),
  DEBUG:    t.boolean().default(false),
  BASE_URL: t.url().required(),
});