UNPKG

dbmaster-cli

Version:

Tool for converting tables between Fifa Soccer Games

45 lines (44 loc) 2.05 kB
"use strict"; 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 } }); };