/ bin / transform-json / index.js
index.js
 1  const fs = require('fs');
 2  
 3  const file = './data/archives/interviews.json';
 4  const targetFile = './data/archives/cleanInterviews.json';
 5  
 6  fs.exists(file, (exists) => {
 7    if (exists) {
 8      // eslint-disable-next-line
 9      console.log("File found. Attempting transform");
10  
11      fs.readFile(file, (err, data) => {
12        if (err) {
13          // eslint-disable-next-line
14          console.log(err);
15        } else {
16          const interviews = JSON.parse(data);
17          const { length } = Object.keys(interviews);
18          const betterInterviews = [];
19  
20          for (let i = 0; i < length; i++) {
21            const interview = interviews[i];
22            const qKeys = Object.keys(interview);
23            const interviewFormatted = [];
24  
25            qKeys.forEach((key) => {
26              if (key !== 'name' && interview[key] !== null && interview[key].answer !== null && interview[key].answer !== '') {
27                interviewFormatted.push({
28                  question: key,
29                  answer: interview[key].answer,
30                });
31              }
32            });
33  
34            betterInterviews.push({
35              id: i + 1,
36              name: interview.name,
37              matchedIndex: -1,
38              interview: interviewFormatted,
39            });
40          }
41  
42          const json = JSON.stringify(betterInterviews);
43          fs.writeFile(targetFile, json);
44        }
45      });
46    } else {
47      // eslint-disable-next-line
48      console.log("File does not exist. Creating empty file and exiting.")
49      const interviewData = {};
50      const json = JSON.stringify(interviewData);
51      fs.writeFile(targetFile, json);
52    }
53  });