npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mdz-env

v1.0.0

Published

A lightweight and type-safe utility for parsing environment variables in Node.js applications.

Readme

💡 Tentang mdz-env

mdz-env adalah sebuah utilitas JavaScript/TypeScript yang ringan dan type-safe untuk mem-parsing (mengurai) environment variables di aplikasi Node.js.

Seringkali, environment variables (seperti process.env.PORT atau process.env.DEBUG) selalu berupa string. mdz-env hadir untuk mempermudah Anda mengambil nilai-nilai ini dan mengkonversikannya ke tipe data yang benar (string, number, boolean) dengan aman, serta mendukung nilai default dan validasi required.


✨ Fitur Utama

Type-Safe: Otomatis mengkonversi string menjadi number atau boolean, dengan type inference yang tepat berkat TypeScript.

Default Values: Sediakan nilai default yang akan digunakan jika environment variable tidak ditemukan atau kosong.

Required Check: Dapatkan error langsung jika environment variable yang kritis tidak disetel.

Ringan: Tanpa dependencies eksternal, menjaga ukuran package tetap kecil.

Intuitive API: Desain API yang mudah dibaca dan digunakan.


🚀 Instalasi

Instal mdz-env ke proyek Anda menggunakan manajer package favorit Anda:

Menggunakan pnpm
pnpm add mdz-env
Menggunakan npm
npm install mdz-env
Menggunakan yarn
yarn add mdz-env

📖 Penggunaan (Usage)

Impor mdzEnv dan gunakan fungsi-fungsi string, number, atau boolean untuk mengambil environment variable Anda.

// app.ts atau config.ts
import { mdzEnv } from 'mdz-env';

// Mengambil string dengan nilai default
const NODE_ENV = mdzEnv.string('NODE_ENV', { defaultValue: 'development' });
console.log(`Aplikasi berjalan di mode: ${NODE_ENV}`); // Contoh: 'development' atau 'production'

// Mengambil angka dengan nilai default
const PORT = mdzEnv.number('PORT', { defaultValue: 3000 });
console.log(`Server mendengarkan di port: ${PORT}`); // Contoh: 3000 atau 8080

// Mengambil boolean (nilai 'true', '1', 'on' akan menjadi true, lainnya false)
const DEBUG_MODE = mdzEnv.boolean('DEBUG_MODE');
console.log(`Mode Debug: ${DEBUG_MODE ? 'Aktif' : 'Nonaktif'}`); // Contoh: true atau false

Opsi

required

Anda dapat menandai sebuah environment variable sebagai wajib (required: true). Jika variabel tersebut tidak ada atau kosong, mdz-env akan melempar error, yang membantu Anda menangani konfigurasi yang hilang sejak awal

import { mdzEnv } from 'mdz-env';

try {
  // Jika DB_HOST tidak disetel, ini akan melempar error
  const DB_HOST = mdzEnv.string('DB_HOST', { required: true });
  console.log('Database Host:', DB_HOST);

  const API_KEY = mdzEnv.string('API_KEY', { required: true });
  console.log('API Key:', API_KEY);

} catch (error: any) {
  console.error(`🚨 Kesalahan Konfigurasi: ${error.message}`);
  // Contoh output: "🚨 Kesalahan Konfigurasi: Environment variable "DB_HOST" is required but not set."
  process.exit(1); // Hentikan aplikasi jika konfigurasi kritis hilang
}

📦 API Referensi

Objek mdzEnv menyediakan tiga fungsi utama:

mdzEnv.string(key: string, options?: EnvOptions<string>): string

Mengambil environment variable sebagai string.

  • key: Nama environment variable (misal: 'APP_NAME').

  • options: Objek opsional dengan:

    • defaultValue?: string: Nilai yang akan dikembalikan - jika variabel tidak disetel atau kosong.
    • required?: boolean: Jika true, akan melempar error jika variabel tidak disetel atau kosong.
  • Return: Nilai string dari variabel.

mdzEnv.number(key: string, options?: EnvOptions<number>): number

Mengambil environment variable sebagai number.

  • key: Nama environment variable (misal: 'PORT').

  • options: Objek opsional dengan:

    • defaultValue?: number: Nilai yang akan dikembalikan jika variabel tidak disetel.

    • required?: boolean: Jika true, akan melempar error jika variabel tidak disetel.

  • Return: Nilai angka dari variabel.

  • Catatan: Akan melempar error jika variabel disetel tetapi bukan angka yang valid.

mdzEnv.boolean(key: string, options?: EnvOptions<boolean>): boolean

Mengambil environment variable sebagai boolean.

  • key: Nama environment variable (misal: 'DEBUG_MODE').

  • Nilai yang dianggap true (case-insensitive): 'true', '1', 'on'.

  • Semua nilai lain dianggap false (termasuk string kosong atau variabel yang tidak disetel).

  • options: Objek opsional dengan:

    • defaultValue?: boolean: Nilai yang akan dikembalikan jika variabel tidak disetel atau kosong.

    • required?: boolean: Jika true, akan melempar error jika variabel tidak disetel atau kosong.

  • Return: Nilai boolean dari variabel.


🤝 Kontribusi

Sangat disambut baik untuk berkontribusi pada proyek ini! Jika Anda menemukan bug atau memiliki ide untuk fitur baru, silakan buka issue atau buat pull request.


👨‍💻 Penulis

Muhammad Dariaz Zidane