import JSON5 from 'json5' /** * @param {string} level * @returns {any} level json */ export const parseADOFAILevel = (level) => { try { return JSON5.parse(level) } catch (e) { const formattedLevel = String(level) .trim() .replaceAll('\r\n', '\n') .replaceAll(', ,', ',') .replaceAll(',,', ',') .replaceAll('],\n}', ']\n}') .replaceAll('}\n', '},\n') .replaceAll('},\n\t]', '}\n\t]') .replaceAll(', },', ' },') .replaceAll(', }', ' }') .replaceAll('\n', '') .replaceAll('}\n', '},\n') .replaceAll(']\n\t"decorations', '],\n\t"decorations') .replaceAll(']\t"decorations', '],\t"decorations') .replaceAll('\r', '') // require('fs').writeFileSync('./debug.adofai', formattedLevel); return JSON5.parse(formattedLevel) } }