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