Documentation / zerotal / env / t
Variable: t
constt: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()
readonlystring():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()
readonlynumber():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()
readonlyboolean():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()
readonlyenum<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()
readonlyurl():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()
readonlyport():Def<number|undefined>
A validated TCP port number (integer 1–65535).
Returns
Def<number | undefined>
Example
PORT: t.port().default(3000) // number
required()
readonlyrequired(): 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(),
});