adofai-decoration-optimizer/parser.js

31 lines
828 B
JavaScript

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)
}
}