table-tennis-scoring
Version:
A league and fixture generator for table tennis
33 lines (25 loc) • 973 B
JavaScript
var R = require("ramda");
var fs = require("fs");
module.exports = function (basePath) {
var leagueNames = R.without([".gitkeep", "LIVE_LEAGUE"], fs.readdirSync(basePath));
var allLeagues = leagueNames.map(function (name) {
var leaguePath = basePath + "/" + name;
var metaData = JSON.parse(fs.readFileSync(leaguePath + "/meta", "utf8"));
return {name: name, displayName: metaData.displayName, meta: metaData};
});
var liveLeagueName;
try {
liveLeagueName = fs.readFileSync(basePath + "/LIVE_LEAGUE").toString().split("\n")[0];
} catch (e) {
liveLeagueName = null;
}
var liveLeague = R.find(R.propEq("name", liveLeagueName))(allLeagues);
if (!liveLeague && allLeagues.length) liveLeague = R.head(allLeagues);
var previousLeagues = allLeagues;
if (liveLeague) previousLeagues = R.reject(R.propEq("name", liveLeague.name), allLeagues);
return {
all: allLeagues,
live: liveLeague,
previous: previousLeagues
};
}