@zambelz/zhc
Version:
API Management Tools
50 lines • 1.75 kB
JavaScript
;
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