build_scripts/sort_resources.js   A
last analyzed

Complexity

Total Complexity 9
Complexity/F 0

Size

Lines of Code 48
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 9
wmc 9
nc 96
mnd 3
bc 9
fnc 0
dl 0
loc 48
rs 10
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
1
/* eslint-env node */
2
/*jslint node: true */
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