import { parse } from 'comment-json'; import { readFileSync, existsSync } from 'fs'; import { ReadConfigError } from './exceptions/read-config-error'; export function readConfigFile(path: string, mustExist = true): Record { if (!mustExist && !existsSync(path)) { return {}; } try { const parsed = parse(readFileSync(path, 'utf8')); const json: Record = parsed && typeof parsed === 'object' ? (parsed as Record) : {}; delete json['$schema']; return json; } catch (err) { throw new ReadConfigError(path, err instanceof Error ? err : new Error(String(err))); } }