UNPKG

1.01 kBJavaScriptView Raw
1/* eslint-disable no-console */
2const https = require('https');
3const fs = require('fs');
4const path = require('path')
5
6const url = 'https://material.io/tools/icons/static/data.json';
7
8console.log('Fetching latest data...');
9
10https.get(url, res => {
11 let data = '';
12
13 res.on('data', chunk => {
14 data += chunk;
15 });
16
17 res.on('end', () => {
18 let json, ids, categories, list;
19
20 try {
21 json = JSON.parse(data);
22 categories = json.categories;
23 ids = [].concat.apply([], categories.map(cat => cat.icons));
24 list = ids.map(c => c.id);
25 } catch (error) {
26 console.error('ERROR: can not parse downloaded data.');
27 process.exit(1);
28 }
29
30 const listFile = list => path.resolve(__dirname, '..', 'data', `${list}.json`)
31
32 fs.writeFileSync(listFile('icons'), data);
33 fs.writeFileSync(listFile('categories'), JSON.stringify(categories));
34 fs.writeFileSync(listFile('list'), JSON.stringify(list));
35 fs.writeFileSync(listFile('ids'), JSON.stringify(ids));
36 });
37});