UNPKG

cspell-config-lib

Version:
35 lines 1.3 kB
import { ImplCSpellConfigFile } from '../CSpellConfigFile.js'; import { detectIndent } from '../serializers/util.js'; export class CSpellConfigFilePackageJson extends ImplCSpellConfigFile { url; settings; serializer; constructor(url, settings, serializer) { super(url, settings); this.url = url; this.settings = settings; this.serializer = serializer; } serialize() { return this.serializer(this.settings); } } export function parseCSpellConfigFilePackageJson(file) { const { url, content } = file; const packageJson = JSON.parse(content); if (!packageJson || typeof packageJson !== 'object' || Array.isArray(packageJson)) { throw new Error(`Unable to parse ${url}`); } packageJson['cspell'] = packageJson['cspell'] || {}; const cspell = packageJson['cspell']; if (typeof cspell !== 'object' || Array.isArray(cspell)) { throw new TypeError(`Unable to parse ${url}`); } const indent = detectIndent(content); function serialize(settings) { packageJson['cspell'] = settings; return JSON.stringify(packageJson, undefined, indent) + '\n'; } return new CSpellConfigFilePackageJson(url, cspell, serialize); } //# sourceMappingURL=CSpellConfigFilePackageJson.js.map