/
aggregate.js
executable file
·48 lines (41 loc) · 1.15 KB
/
aggregate.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
const fs = require("fs");
const encoding = require("@cosmjs/encoding");
const path = require("path");
const stringify = require("json-stable-stringify");
("use strict");
const jsonFileWritter = (file, assets) => {
fs.writeFileSync(
file,
stringify(
assets.sort((a, b) => a.symbol.localeCompare(b.symbol)),
{ space: " " },
) + "\n",
);
};
const javascriptFileWritter = (file, assets) => {
fs.writeFileSync(
file,
"export default " +
stringify(
assets.sort((a, b) => a.symbol.localeCompare(b.symbol)),
{ space: " " },
) +
"\n",
);
};
// asset directories
const dirs = fs
.readdirSync("assets")
.filter((dir) => fs.statSync(path.join("assets", dir)).isDirectory());
// ./assets.json
const assets = dirs.map((dir) => {
const fileAsset = path.join("assets", dir, "asset.json"); // HARD-CODED
const jsonAsset = fs.readFileSync(fileAsset, "utf-8");
const asset = JSON.parse(jsonAsset);
// drop starname properties
delete asset.logo;
delete asset.name;
return asset;
});
javascriptFileWritter("assets.js", assets); // HARD-CODED
jsonFileWritter("assets.json", assets); // HARD-CODED