configldr
- 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.
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.