Skip to content

yUnreal/enya

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enya

An ergonomic env parsing library

bun add enya

Quick Start

Enya is an ergonomic env parsing library supercharged by Bun. Designed to be fast and with an extensive support for TypeScript.

Parsing your env from process.env.

import { e } from 'enya';

const env = e
	.env({
		DATABASE_URL: e.url(),
		PORT: e.port().default(() => 8080),
	})
	.parse();

Now we can infer the type of the enviroment easily.

/**
 * type Env = {
 *    DATABASE_URL: URL;
 *    PORT: number;
 * }
 */
type Env = typeof env;

Installing

Enya was created with Bun, so you need to install it.

Install Bun with the command below:

Linux & macOS

curl -fsSL https://bun.sh/install | bash

Windows

powershell -c "irm bun.sh/install.ps1 | iex"

Then you can easily install Enya as a package.

bun add enya
bun add -d @types/bun

Using dotenv or any env var loader

Enya lets you load your environment variables however you want, even though Bun already loads them automatically. For this, you can look at the example below:

import { e } from 'enya';
import { config } from 'dotenv';

/**
 * {
 * 		USER_EMAIL: string;
 * 		PORT: number;
 * }
 */
const env = e
	.env({
		USER_EMAIL: e.email(),
		PORT: e.for({
			production: e.never(),
			development: e.number(),
		}),
	})
	.parse(config());

console.log(env);

Enya API

Enya has a great API for customizing each property of your environment variables which were not shown in the examples above, but you can find them in the documentation.

In a short period Enya will provide more support for customizations and more schemes.

Why not envalid or env-var?

Enya is supercharged by Bun and end-to-end type safety, being 80x faster than env-var and 7x faster than envalid. With an ergonomic and modern API.

Releases

No releases published

Packages

No packages published