Skip to content

⛵ Typesafe environment variables powered by ArkType

License

Notifications You must be signed in to change notification settings

yamcodes/ark.env

Repository files navigation

ark.env - Typesafe Environment Variables
Tests Status Total Downloads Bundle Size Dependency Count Powered By ArkType

Installation

npm
npm install ark.env arktype
pnpm
pnpm add ark.env arktype
Yarn
yarn add ark.env arktype
Bun
bun add ark.env arktype

Quickstart

Tip

Find more examples in the examples directory.

import ark, { host, port } from 'ark.env';

const env = ark.env({
  HOST: host, // valid IP address or localhost
  PORT: port, // valid port number (0-65535)
  NODE_ENV: "'development' | 'production' | 'test'",
});

// Automatically validate and parse process.env
// TypeScript knows the ✨exact✨ types!
console.log(env.HOST);     // (property) HOST: string
console.log(env.PORT);     // (property) PORT: number
console.log(env.NODE_ENV); // (property) NODE_ENV: "development" | "production" | "test"

Features

  • 🔒 Typesafe: Full TypeScript support with inferred types
  • 🚀 Runtime validation: Catch missing or invalid environment variables early
  • 💪 Powered by ArkType: Leverage ArkType's powerful type system
  • 🪶 Lightweight: Only a single dependency (5.6 kB)
  • Fast: Optimized for performance with minimal overhead

Documentation

For detailed documentation and examples, please visit our documentation site.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for more information.

Thanks / Inspiration

Find projects and people who helped or inspired the creation of ark.env in THANKS.md. Thank you 🙏