Small library to load strongly typed values from environment variables and enforcing constraints on them.
# With PNPM
pnpm add @coderspirit/safe-env
# With NPM
npm install @coderspirit/safe-env
# Or with Yarn:
yarn add @coderspirit/safe-env
import { getSafeEnv } from '@coderspirit/safe-env'
// It validates the specified constraints at construction time
const safeEnv = getSafeEnv(process.env, {
host: { type: 'string', default: 'localhost' },
port: { type: 'uint16', default: 4321 },
githubToken: { type: 'string', optional: true },
secretToken: { type: 'string' },
})
// It leverages the powerful TypeScript's type system to tell you at
// compile time if you made a mistake.
const host = safeEnv.get('hostt') // Type Error
const host = safeEnv.get('host') // All good
// The return type tells you not only that you have a number, but also
// that it is an integer and positive.
const port = safeEnv.get('port')
// It will return undefined if the variable does not exist
const githubToken = safeEnv.get('githubToken')
// It fill fail if the variable does not exist
const secretToken = safeEnv.get('secretToken')
boolean
string
andstring[]
int8
,int16
,int32
,int54
int8[]
,int16[]
,int32[]
,int54[]
uint8
,uint16
,uint32
uint8[]
,uint16[]
,uint32[]
min
max
minLength
maxLength
pattern
: regular expression object.
minLength
maxLength
valueConstraints
: number or string constraints.