UNPKG

yini-cli

Version:

CLI for parsing and validating YINI config files: type-safe values, nested sections, comments, minimal syntax noise, and optional strict mode.

33 lines (32 loc) 1.07 kB
import fs from 'node:fs'; import { exit } from 'node:process'; import YINI from 'yini-parser'; import { printObject } from '../utils/print.js'; export const validateFile = (file, options = {}) => { try { const content = fs.readFileSync(file, 'utf-8'); const isMeta = true; const parsed = YINI.parse(content, options.strict ?? false, 'auto', isMeta); if (!options.silent) { console.log(`✔ File is valid${options.strict ? ' (strict mode)' : ''}.`); if (options.details) { //@todo format parsed.meta to details as /* * Details: * - YINI version: 1.0.0-beta.6 * - Mode: strict * - Keys: 42 * - Sections: 6 * - Nesting depth: 3 * - Has @yini: true */ printObject(parsed.meta); } } exit(0); } catch (err) { console.error(`✖ Validation failed: ${err.message}`); exit(1); } };