UNPKG

@zambelz/zhc

Version:
50 lines 1.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseContent = exports.spacer = void 0; const spacer = (length = 1) => { return " ".repeat(length); }; exports.spacer = spacer; const parseContent = (content) => { const removeTrailingComma = (parseableContent) => { const contents = parseableContent.split(""); let targetIndex = contents.length - 1; while (parseableContent[targetIndex] === "}" || parseableContent[targetIndex] === "\n") { targetIndex--; } if (targetIndex > 0 && parseableContent[targetIndex] === ",") { return contents .filter((_, index) => index !== targetIndex) .join(""); } return parseableContent; }; try { const splitedContent = content.split("\n"); const unparseableContent = []; let parseableContent = ""; for (let i = 0; i < splitedContent.length; i++) { const line = splitedContent[i]; if (line.trim() === "") { unparseableContent.push({ line: i, value: "\n" }); continue; } if (line.trim().startsWith("//")) { unparseableContent.push({ line: i, value: line }); continue; } parseableContent += line; } parseableContent = removeTrailingComma(parseableContent); return { unparseable: unparseableContent, parsed: JSON.parse(parseableContent) }; } catch (e) { throw new Error(`Failed to parse content: ${content}\nError: ${e}`); } }; exports.parseContent = parseContent; //# sourceMappingURL=common.js.map