argabayu— Backend & Systems Engineer

configldr

Pemuat konfigurasi berlapis dengan jejak asal setiap nilai.
Pemasangan
4.2k/bln
Ukuran
3.8kB

Pemuat konfigurasi untuk Node yang bisa menjawab: nilai ini datang dari mana?

Masalah

Konfigurasi berlapis — bawaan, berkas, env, flag — sangat berguna sampai seseorang bertanya kenapa nilai tertentu dipakai. Menelusurinya biasanya berarti membaca lima tempat dan menebak urutannya.

Keputusan

Setiap nilai membawa asalnya. Bukan log, bukan debug flag — bagian dari struktur datanya.

ts
const cfg = load({
  port: { default: 3000, env: 'PORT' },
});

cfg.port;        // 8080
cfg.explain('port');
// → { value: 8080, from: 'env', key: 'PORT' }

explain memakai waktu pengembangan, dan tidak menambah apa pun pada jalur kritis — asalnya disimpan saat nilai dibaca, bukan dihitung ulang.

Catatan

Validasi sengaja tidak ditangani. Zod sudah menyelesaikannya dengan lebih baik daripada yang bisa saya tulis; pustaka ini hanya mengurus penggabungan dan asalusul.