TORNAR

Habilita variables d'entorn a les teves configuracions amb env-interpolation

2 min de lectura

Vaig llançar env-interpolation, un petit ajudant de TS que interpola ${VAR} i ${VAR:default} dins de valors de configuració. Recorre cadenes en objectes/arrays i mai toca les claus, per la qual cosa les formes es mantenen estables i predictibles—molt orientat a configuració.

Nascut de mcp-tool-selector, on necessitava configuració en capes sense filtrar secrets o omplir de crides a process.env. Es va convertir en una petita utilitat afilada, així que la vaig publicar.

D'un cop d'ull

  • Resol marcadors de posició en valors només (objectes/arrays), claus intactes
  • Suporta valors predeterminats i resolució de múltiples passades
  • Zero dependències, TS-first, Node 18+, ESM/CJS

Docs & API: llegeix el repositori de GitHub i la pàgina del paquet npm.

Prova ràpida: carregar JSON → interpolar

config.json

{
"api": "${API_URL:https://api.example.com}",
"timeoutMs": "${TIMEOUT:5000}",
"flags": ["${PRIMARY:alpha}", "${SECONDARY:beta}"],
"service": {
"url": "${SERVICE_URL:${API_URL}/v1}",
"headers": { "x-tenant": "${TENANT:public}" }
}
}

load-config.ts

import { readFileSync } from "node:fs";
import { interpolate } from "env-interpolation";
const raw = readFileSync("config.json", "utf8");
const input = JSON.parse(raw);
const resolved = interpolate(input, {
API_URL: "https://api.example.com",
TIMEOUT: "8000",
TENANT: "public",
});
console.log(resolved);

Aquest és el meu segon projecte dissenyat amb IA (el primer va ser mcp-server-giphy), construït amb múltiples agents d'IA (Claude, Copilot, Gemini & Codex). Si les teves configuracions abasten fitxers, entorns i eines, això hauria d'eliminar algunes molèsties.

Relacionat: Per a emmagatzematge segur de secrets sense fitxers de text pla, fes un cop d'ull a cross-keychain, que emmagatzema credencials en el gestor de credencials natiu del teu SO.