dbmaster-cli
Version:
Tool for converting tables between Fifa Soccer Games
45 lines (44 loc) • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.removeUnusedPlayernames = void 0;
const actions_1 = require("../actions");
const fifa_config_1 = require("../fifa-config");
const interfaces_1 = require("../interfaces");
const usedUniquePlayernameIds = async (inputFolder, table, fields) => {
const list = new Set();
let totalCount = 0;
return new Promise(async (resolve, reject) => new actions_1.StreamBuilder(inputFolder, table, fields)
.actionOnData((data) => {
for (const col of interfaces_1.playersPlayernamesColumns) {
list.add(data[col]);
}
totalCount++;
})
.onFinish(() => resolve(list))
.onError(() => reject(list)));
};
const writePlayernames = async (table, fields, inputFolder, outputFolder, uniqueIds) => {
let before = 0;
let after = 0;
return new Promise(async (resolve, reject) => new actions_1.StreamBuilder(inputFolder, table, fields)
.onData(() => before++)
.actionFilter((x) => uniqueIds.has(x[interfaces_1.PLAYERNAMES_PRIMARY_COLUMN]))
.onData(() => after++)
.actionWrite(outputFolder, fields)
.onFinish(() => resolve({ before, after }))
.onError(() => reject({ before, after })));
};
/**
* @description remove unused values from tables 'playernames' and 'dcplayernames'
*/
exports.removeUnusedPlayernames = async (fifa, inputFolder, outputFolder) => {
const config = fifa_config_1.fifaConfigFactory(fifa);
const usedIds = await usedUniquePlayernameIds(inputFolder, interfaces_1.Table.Players, config.players);
const playernames = await writePlayernames(interfaces_1.Table.PlayerNames, config.playernames, inputFolder, outputFolder, usedIds);
const dcplayernames = await writePlayernames(interfaces_1.Table.DcPlayerNames, config.dcplayernames, inputFolder, outputFolder, usedIds);
console.table({
playernames,
dcplayernames,
all: { before: playernames.before + dcplayernames.before, after: usedIds.size }
});
};