JavaScript
node-cooper
Lädt CASC-Konfigurationsdateien in native JavaScript-Werte — der Node.js-Port von Cooper, der dieselben Dateien zur selben Struktur liest.
Absicht
Eine Konfigurationssprache ist nur portabel, wenn jede Implementierung dieselbe Bedeutung einer Datei sieht. Dieser Port folgt der Referenzgrammatik Regel für Regel, mit handgeschriebenem Lexer und Parser und ohne Laufzeitabhängigkeiten, und muss dieselben Konformitätsfälle bestehen wie das Elixir-Original. Wo JavaScript nicht ausdrücken kann, was CASC ausdrückt — ein Tupel, eine Dauer, ein Geheimnis —, gibt es eine kleine Wertklasse statt einer Annäherung.
Beispiel
import { loadFile } from '@joetjen/cooper';
const config = await loadFile('config.casc', { env: { DB_PASSWORD: 'hunter2' } });
config.database.password; // [~~REDACTED~~]
config.database.password.reveal(); // 'hunter2'
config.database.timeout.toMilliseconds(); // 500Installation
npm install @joetjen/cooper