inderpartap/Bunk-O-Meter

View on GitHub
static/timetable/util/index.js

Summary

Maintainability
A
0 mins
Test Coverage
var fs = require("fs");
var node_xj = require("xls-to-json");

node_xj({
    input: "report.xlsx", // input xls 
    output: "output.json", // output json 
    sheet: "Sheet 1" // specific sheetname 
}, function (err, result) {
    if (err) {
        console.error(err);
    } else {
        var unique = [];
        result.forEach(function (element) {
            // remove number from faculty name
            element.FACULTY = element.FACULTY.split(" - ").pop();
            unique.push({
                "CODE": element.CODE,
                "TITLE": element.TITLE
            });
        }, this);

        // overwirte the output file
        fs.writeFile(__dirname + "/../data/all_data.json", JSON.stringify(result));

        // remove repeating courses
        unique = unique.filter((element, index, self) => self.findIndex(t => t.CODE === element.CODE && t.TITLE === element.TITLE) === index);

        fs.writeFile(__dirname + "/../data/unique_courses.json", JSON.stringify(unique));
    }
});