LookAtMySuitBot/js/node_modules/minecraft-data/bin/generate_data.js

36 lines
1.2 KiB
JavaScript
Executable File

#!/usr/bin/env node
const dataSource = require('../minecraft-data/data/dataPaths')
const fs = require('fs')
const path = require('path')
const data = 'module.exports =\n{\n' + Object
.keys(dataSource)
.map(k1 =>
" '" + k1 + "': {\n" + Object
.keys(dataSource[k1])
.map(k2 =>
" '" + k2 + "': {" + '\n' + Object
.keys(dataSource[k1][k2])
.map(k3 => {
const loc = `minecraft-data/data/${dataSource[k1][k2][k3]}/`
try {
// Check if the file can be loaded as JSON
require('../' + loc + k3 + '.json')
return ` get ${k3} () { return require("./${loc}${k3}.json") }`
} catch {
// No ? Return it as a URL path so other code can decide how to handle it
const file = fs.readdirSync(path.join(__dirname, '../', loc)).find(f => f.startsWith(k3 + '.'))
if (file) { return ` ${k3}: __dirname + '/${loc}${file}'` } else { throw Error('file not found: ' + loc + k3) }
}
})
.join(',\n') +
'\n }'
)
.join(',\n') +
'\n }'
)
.join(',\n') + '\n}\n'
fs.writeFileSync(path.join(__dirname, '/../data.js'), data)