-
Notifications
You must be signed in to change notification settings - Fork 0
/
buildOutput.js
58 lines (46 loc) · 1.55 KB
/
buildOutput.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
49
50
51
52
53
54
55
56
57
58
const fs = require('fs');
const path = require('path');
// Directory containing the JSON files
const directoryPath = './chains'; // Update this path as needed
// Function to read and process files
function processFiles(directoryPath) {
fs.readdir(directoryPath, (err, files) => {
if (err) {
console.error("Could not list the directory.", err);
process.exit(1);
}
console.log('Files:', files);
const output = {};
files.forEach((file) => {
// Check if the file is a JSON file
if (path.extname(file) === '.json' && file.startsWith('eip155-')) {
// Extract the key from the filename
const key = file.slice(7, -5); // Remove 'eip-' prefix and '.json' suffix
// Read the JSON file
const rawData = fs.readFileSync(path.join(directoryPath, file));
const jsonData = JSON.parse(rawData);
if (jsonData.name) {
output[key] = { name: jsonData.name };
}
if (jsonData.shortName) {
output[key].shortName = jsonData.shortName;
}
if (jsonData.rpc) {
output[key].rpc = jsonData.rpc;
}
if (jsonData.explorers) {
output[key].explorers = jsonData.explorers;
}
// Add Polymer data to the output object
if (jsonData.polymer) {
output[key] = { ...output[key], ...jsonData.polymer };
}
}
});
// Write the output object to 'output.json' in the 'dist' directory
fs.writeFileSync('dist/output.json', JSON.stringify(output, null, 2));
console.log('output.json has been generated successfully.');
});
}
// Call the function with the directory path
processFiles(directoryPath);