Total Complexity | 9 |
Complexity/F | 0 |
Lines of Code | 48 |
Function Count | 0 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | /* eslint-env node */ |
||
3 | 'use strict'; |
||
4 | |||
5 | const jsonfile = require('jsonfile'); |
||
6 | const naturalSort = require('node-natural-sort'); |
||
7 | |||
8 | let resources = jsonfile.readFileSync('build/data/resources.json'); |
||
9 | let elements = jsonfile.readFileSync('build/data/elements.json'); |
||
10 | |||
11 | let sortedResources = {}; |
||
12 | |||
13 | // first, pick only non molecules |
||
14 | for (let element in elements) { |
||
15 | let includes = elements[element].includes.sort(naturalSort()); |
||
16 | for (let resource of includes) { |
||
17 | if(resources[resource].type.indexOf('molecule') === -1){ |
||
18 | sortedResources[resource] = resources[resource]; |
||
19 | } |
||
20 | } |
||
21 | |||
22 | let exotic = elements[element].exotic; |
||
23 | sortedResources[exotic] = resources[exotic]; |
||
24 | } |
||
25 | |||
26 | // second, pick only molecules |
||
27 | for (let element in elements) { |
||
28 | let includes = elements[element].includes.sort(naturalSort()); |
||
29 | for (let resource of includes) { |
||
30 | if(resources[resource].type.indexOf('molecule') !== -1){ |
||
31 | sortedResources[resource] = resources[resource]; |
||
32 | } |
||
33 | } |
||
34 | } |
||
35 | |||
36 | let misc = []; |
||
37 | |||
38 | for (let resource in resources) { |
||
39 | if(typeof sortedResources[resource] === 'undefined'){ |
||
40 | misc.push(resource); |
||
41 | } |
||
42 | } |
||
43 | |||
44 | for (let resource of misc) { |
||
45 | sortedResources[resource] = resources[resource]; |
||
46 | } |
||
47 | |||
48 | jsonfile.writeFileSync('build/data/resources.json', sortedResources, { |
||
49 | spaces: 2 |
||
50 | }); |
||
51 |