mirror of https://github.com/MingweiSamuel/Riven
60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
|
const util = require('util');
|
||
|
const fs = require('fs');
|
||
|
fs.readFileAsync = util.promisify(fs.readFile);
|
||
|
fs.writeFileAsync = util.promisify(fs.writeFile);
|
||
|
const req = require("request-promise-native");
|
||
|
|
||
|
process.chdir(__dirname);
|
||
|
|
||
|
const files = [
|
||
|
[
|
||
|
'http://raw.communitydragon.org/pbe/plugins/rcp-be-lol-game-data/global/default/v1/champion-summary.json',
|
||
|
'.champion.json'
|
||
|
],
|
||
|
[
|
||
|
'http://www.mingweisamuel.com/riotapi-schema/openapi-3.0.0.json',
|
||
|
'.spec.json'
|
||
|
]
|
||
|
]
|
||
|
|
||
|
const downloadFilesPromise = Promise.all(files.map(([url, file]) => req(url)
|
||
|
.then(body => fs.writeFileAsync(file, body, "utf8"))));
|
||
|
|
||
|
const doT = require('dot');
|
||
|
const glob = require('glob-promise');
|
||
|
|
||
|
const log = a => { console.log(a); return a; };
|
||
|
const suffix = '.dt';
|
||
|
|
||
|
doT.templateSettings = {
|
||
|
evaluate: /\r?\n?\{\{([\s\S]+?)\}\}/g,
|
||
|
interpolate: /\r?\n?\{\{=([\s\S]+?)\}\}/g,
|
||
|
encode: /\r?\n?\{\{!([\s\S]+?)\}\}/g,
|
||
|
use: /\r?\n?\{\{#([\s\S]+?)\}\}/g,
|
||
|
define: /\r?\n?\{\{##\s*([\w\.$]+)\s*(\:|=)([\s\S]+?)#\}\}/g,
|
||
|
conditional: /\r?\n?\{\{\?(\?)?\s*([\s\S]*?)\s*\}\}/g,
|
||
|
iterate: /\r?\n?\{\{~\s*(?:\}\}|([\s\S]+?)\s*\:\s*([\w$]+)\s*(?:\:\s*([\w$]+))?\s*\}\})/g,
|
||
|
varname: 'it',
|
||
|
strip: false,
|
||
|
append: false,
|
||
|
selfcontained: false
|
||
|
};
|
||
|
|
||
|
global.require = require;
|
||
|
|
||
|
downloadFilesPromise.then(() => glob.promise("**/*" + suffix, { ignore: ["**/node_modules/**"] }))
|
||
|
.then(files => Promise.all(files
|
||
|
.map(log)
|
||
|
.map(file => fs.readFileAsync(file, "utf8")
|
||
|
.then(input => {
|
||
|
try {
|
||
|
return doT.template(input)({});
|
||
|
}
|
||
|
catch (e) {
|
||
|
console.error(`Error thrown while running "${file}":`, e);
|
||
|
}
|
||
|
})
|
||
|
.then(output => fs.writeFileAsync(file.slice(0, -suffix.length), output, "utf8"))
|
||
|
)
|
||
|
))
|
||
|
.catch(console.error);
|