31 lines
828 B
JavaScript
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)
|
|
}
|
|
}
|