remove lodash, validator, date-fns-tz from dependencies | add prettier and its configuration

This commit is contained in:
Dawid Wysokiński 2021-02-26 18:04:05 +01:00
parent 731bee69e8
commit 0f87bd804a
25 changed files with 131 additions and 133 deletions

5
.prettierrc Normal file
View File

@ -0,0 +1,5 @@
{
"arrowParens": "avoid",
"semi": true,
"singleQuote": true
}

View File

@ -8,23 +8,25 @@
"scripts": { "scripts": {
"build:tamper": "parcel build ./src/*.js --no-minify --no-source-maps", "build:tamper": "parcel build ./src/*.js --no-minify --no-source-maps",
"build:quickbar": "parcel build ./src/*.js --out-dir dist/quickbar --no-source-maps", "build:quickbar": "parcel build ./src/*.js --out-dir dist/quickbar --no-source-maps",
"build": "npm-run-all build:*" "build": "npm-run-all build:*",
"git:add": "git add .",
"format": "prettier --write \"src/*.{js,jsx,ts,tsx,json,md}\""
}, },
"dependencies": { "dependencies": {
"date-fns": "^2.14.0", "date-fns": "^2.14.0",
"date-fns-tz": "^1.0.10", "parcel": "^1.12.4"
"lodash": "^4.17.19",
"parcel": "^1.12.4",
"validator": "^13.1.1"
}, },
"browserslist": [ "browserslist": [
"since 2017-06" "since 2017-06"
], ],
"devDependencies": { "devDependencies": {
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"pre-commit": "^1.2.2" "pre-commit": "^1.2.2",
"prettier": "^2.2.1"
}, },
"pre-commit": [ "pre-commit": [
"build" "format",
"build",
"git:add"
] ]
} }

View File

@ -51,7 +51,7 @@ const buildReqOptions = (bonus, offset) => {
}; };
}; };
const loadBonusVillages = async (bonus) => { const loadBonusVillages = async bonus => {
const { villages } = await requestCreator(buildReqOptions(bonus, 0)); const { villages } = await requestCreator(buildReqOptions(bonus, 0));
for (let i = villages.length; i < villages.total; i += 1000) { for (let i = villages.length; i < villages.total; i += 1000) {
const data = await requestCreator(buildReqOptions(bonus, 0)); const data = await requestCreator(buildReqOptions(bonus, 0));
@ -60,14 +60,14 @@ const loadBonusVillages = async (bonus) => {
return villages; return villages;
}; };
const searchBonusBarbarianVillages = async (e) => { const searchBonusBarbarianVillages = async e => {
e.preventDefault(); e.preventDefault();
const villages = await loadBonusVillages(parseInt(e.target[0].value)); const villages = await loadBonusVillages(parseInt(e.target[0].value));
const coords = TWMap.pos; const coords = TWMap.pos;
villages.items = villages.items villages.items = villages.items
.map((item) => { .map(item => {
return { return {
...item, ...item,
distance: calcDistanceBetweenTwoPoints( distance: calcDistanceBetweenTwoPoints(
@ -96,7 +96,7 @@ const getBonuses = () => {
return bonuses; return bonuses;
}; };
const buildTableBodyHTML = (villages) => { const buildTableBodyHTML = villages => {
return ` return `
<tbody> <tbody>
<tr> <tr>
@ -114,7 +114,7 @@ const buildTableBodyHTML = (villages) => {
Array.isArray(villages) Array.isArray(villages)
? villages ? villages
.map( .map(
(village) => `<tr> village => `<tr>
<td> <td>
<a href="${twutils.buildVillageURL(village.id)}"> <a href="${twutils.buildVillageURL(village.id)}">
${twutils.buildVillageName( ${twutils.buildVillageName(
@ -154,7 +154,7 @@ const renderUI = () => {
<select> <select>
${getBonuses() ${getBonuses()
.map( .map(
(bonus) => bonus =>
`<option value="${bonus.value}">${bonus.text}</option>` `<option value="${bonus.value}">${bonus.text}</option>`
) )
.join('')} .join('')}

View File

@ -15,7 +15,7 @@ import wait from './utils/wait';
const translations = getTranslations(); const translations = getTranslations();
const handleSubmit = async (e) => { const handleSubmit = async e => {
e.preventDefault(); e.preventDefault();
const name = e.target[0].value; const name = e.target[0].value;
if (!name) return; if (!name) return;

View File

@ -3,7 +3,7 @@ import isNil from '../utils/isNil';
const translations = getTranslations(); const translations = getTranslations();
const getTodaysStatsTdStyle = (value) => { const getTodaysStatsTdStyle = value => {
const statIncreaseStyle = 'color: #000; background-color: #0f0'; const statIncreaseStyle = 'color: #000; background-color: #0f0';
const statDecreaseStyle = 'color: #000; background-color: #f00'; const statDecreaseStyle = 'color: #000; background-color: #f00';
const defaultStyle = 'color: #000; background-color: #808080'; const defaultStyle = 'color: #000; background-color: #808080';

View File

@ -54,7 +54,7 @@ export default (
</th> </th>
</tr> </tr>
${ennoblements.items ${ennoblements.items
.map((ennoblement) => { .map(ennoblement => {
let rowHTML = let rowHTML =
'<tr>' + `<td>${formatDate(ennoblement.ennobledAt)}</td>`; '<tr>' + `<td>${formatDate(ennoblement.ennobledAt)}</td>`;
if (ennoblement.village) { if (ennoblement.village) {
@ -94,7 +94,7 @@ export default (
document document
.querySelectorAll('#' + PAGINATION_CONTAINER_ID + ' a') .querySelectorAll('#' + PAGINATION_CONTAINER_ID + ' a')
.forEach((el) => { .forEach(el => {
el.addEventListener('click', onPageChange); el.addEventListener('click', onPageChange);
}); });
}; };

View File

@ -11,7 +11,7 @@ import * as twutils from '../utils/tribalwars';
const PAGINATION_CONTAINER_ID = 'historyPagination'; const PAGINATION_CONTAINER_ID = 'historyPagination';
const translations = getTranslations(); const translations = getTranslations();
const addMathSymbol = (v) => { const addMathSymbol = v => {
return v > 0 ? '+' + v : v; return v > 0 ? '+' + v : v;
}; };
@ -56,12 +56,12 @@ export default (
${tribe ? '' : `<th>${translations.ods}</th>`} ${tribe ? '' : `<th>${translations.ods}</th>`}
</tr> </tr>
${history.items ${history.items
.map((history) => { .map(history => {
const subtracted = const subtracted =
subDays(new Date(history.createDate), 1) subDays(new Date(history.createDate), 1)
.toISOString() .toISOString()
.split('.')[0] + 'Z'; .split('.')[0] + 'Z';
const stats = daily.items.find((stats) => { const stats = daily.items.find(stats => {
return stats.createDate === subtracted; return stats.createDate === subtracted;
}); });
@ -142,7 +142,7 @@ export default (
document document
.querySelectorAll('#' + PAGINATION_CONTAINER_ID + ' a') .querySelectorAll('#' + PAGINATION_CONTAINER_ID + ' a')
.forEach((el) => { .forEach(el => {
el.addEventListener('click', onPageChange); el.addEventListener('click', onPageChange);
}); });
}; };

View File

@ -97,7 +97,7 @@ const cacheServerConfig = (data = {}) => {
setItem(SERVER_CONFIG_LOCAL_STORAGE_KEY, data); setItem(SERVER_CONFIG_LOCAL_STORAGE_KEY, data);
}; };
const isConfigExpired = (date) => { const isConfigExpired = date => {
return Math.abs(date.getTime() - new Date().getTime()) > 1000 * 60 * 60 * 24; return Math.abs(date.getTime() - new Date().getTime()) > 1000 * 60 * 60 * 24;
}; };
@ -166,7 +166,7 @@ const getAvailableUnits = (unitCfg = {}) => {
return units; return units;
}; };
const getUnitTdBgColor = (index) => (index % 2 === 0 ? '#f8f4e8' : '#ded3b9;'); const getUnitTdBgColor = index => (index % 2 === 0 ? '#f8f4e8' : '#ded3b9;');
const buildUnitHeader = (unit, index) => { const buildUnitHeader = (unit, index) => {
return ` return `
@ -295,13 +295,13 @@ const renderAdditionalInfo = (id, data, { config, unitConfig }) => {
`; `;
}; };
const createLoadVillageHandler = (cfg) => async (e) => { const createLoadVillageHandler = cfg => async e => {
TWMap.popup._loadVillage(e); TWMap.popup._loadVillage(e);
const data = await loadVillageData(parseInt(e)); const data = await loadVillageData(parseInt(e));
renderAdditionalInfo(parseInt(e), data, cfg); renderAdditionalInfo(parseInt(e), data, cfg);
}; };
const createDisplayForVillageHandler = (cfg) => async (e, a, t) => { const createDisplayForVillageHandler = cfg => async (e, a, t) => {
TWMap.popup._displayForVillage(e, a, t); TWMap.popup._displayForVillage(e, a, t);
const data = await loadVillageData(parseInt(e.id), { const data = await loadVillageData(parseInt(e.id), {
cacheOnly: window.game_data.features.Premium.active, cacheOnly: window.game_data.features.Premium.active,

View File

@ -280,7 +280,7 @@ const renderTr = ({ title, data, id }) => {
tr.children[1].innerHTML = data; tr.children[1].innerHTML = data;
}; };
const renderPlayerServers = (player) => { const renderPlayerServers = player => {
let playerServers = document.querySelector('#playerServers'); let playerServers = document.querySelector('#playerServers');
if (!playerServers) { if (!playerServers) {
playerServers = document.createElement('table'); playerServers = document.createElement('table');
@ -305,7 +305,7 @@ const renderPlayerServers = (player) => {
playerServers.querySelector('td').innerHTML = player.servers playerServers.querySelector('td').innerHTML = player.servers
.sort() .sort()
.map( .map(
(server) => server =>
`<a target="_blank" style="margin-right: 5px" href="${twhelputils.buildPlayerURL( `<a target="_blank" style="margin-right: 5px" href="${twhelputils.buildPlayerURL(
VERSION, VERSION,
server, server,
@ -315,7 +315,7 @@ const renderPlayerServers = (player) => {
.join(''); .join('');
}; };
const renderPlayerOtherNames = (player) => { const renderPlayerOtherNames = player => {
let playerOtherNames = document.querySelector('#playerOtherNames'); let playerOtherNames = document.querySelector('#playerOtherNames');
if (!playerOtherNames) { if (!playerOtherNames) {
playerOtherNames = document.createElement('div'); playerOtherNames = document.createElement('div');
@ -338,7 +338,7 @@ const renderPlayerOtherNames = (player) => {
</th> </th>
</tr> </tr>
${player.nameChanges ${player.nameChanges
.map((nameChange) => { .map(nameChange => {
return ` return `
<tr> <tr>
<td> <td>
@ -363,7 +363,7 @@ const renderPlayerOtherNames = (player) => {
`; `;
}; };
const renderInADayRanks = (player) => { const renderInADayRanks = player => {
let inADayRanks = document.querySelector('#inADayRanks'); let inADayRanks = document.querySelector('#inADayRanks');
if (!inADayRanks) { if (!inADayRanks) {
inADayRanks = document.createElement('div'); inADayRanks = document.createElement('div');
@ -486,7 +486,7 @@ const render = ({ player, dailyPlayerStats }) => {
player.mostVillages + ' ' + `(${formatDate(player.mostVillagesAt)})`, player.mostVillages + ' ' + `(${formatDate(player.mostVillagesAt)})`,
id: 'most_villages', id: 'most_villages',
}, },
].forEach((data) => { ].forEach(data => {
renderTr(data); renderTr(data);
}); });
@ -526,7 +526,7 @@ const renderTribeChanges = (e, currentPage, tribeChanges) => {
</th> </th>
</tr> </tr>
${tribeChanges.items ${tribeChanges.items
.map((tribeChange) => { .map(tribeChange => {
let rowHTML = let rowHTML =
'<tr>' + `<td>${formatDate(tribeChange.createdAt)}</td>`; '<tr>' + `<td>${formatDate(tribeChange.createdAt)}</td>`;
if (tribeChange.newTribe) { if (tribeChange.newTribe) {
@ -559,12 +559,12 @@ const renderTribeChanges = (e, currentPage, tribeChanges) => {
document document
.querySelectorAll('#' + TRIBE_CHANGES_PAGINATION_CONTAINER_ID + ' a') .querySelectorAll('#' + TRIBE_CHANGES_PAGINATION_CONTAINER_ID + ' a')
.forEach((el) => { .forEach(el => {
el.addEventListener('click', handleShowTribeChangesButtonClick); el.addEventListener('click', handleShowTribeChangesButtonClick);
}); });
}; };
const handleShowTribeChangesButtonClick = async (e) => { const handleShowTribeChangesButtonClick = async e => {
e.preventDefault(); e.preventDefault();
const page = getPage(e.target); const page = getPage(e.target);
if (!isNaN(page)) { if (!isNaN(page)) {
@ -584,7 +584,7 @@ const handleShowTribeChangesButtonClick = async (e) => {
} }
}; };
const handleShowPlayerHistoryClick = async (e) => { const handleShowPlayerHistoryClick = async e => {
e.preventDefault(); e.preventDefault();
const page = getPage(e.target); const page = getPage(e.target);
if (!isNaN(page)) { if (!isNaN(page)) {
@ -615,7 +615,7 @@ const handleShowPlayerHistoryClick = async (e) => {
} }
}; };
const handleShowPlayerEnnoblementsClick = async (e) => { const handleShowPlayerEnnoblementsClick = async e => {
e.preventDefault(); e.preventDefault();
const page = getPage(e.target); const page = getPage(e.target);
if (!isNaN(page)) { if (!isNaN(page)) {
@ -642,7 +642,7 @@ const handleShowPlayerEnnoblementsClick = async (e) => {
} }
}; };
const handleExportPlayerVillagesButtonClick = (e) => { const handleExportPlayerVillagesButtonClick = e => {
e.preventDefault(); e.preventDefault();
Dialog.show( Dialog.show(
@ -654,7 +654,7 @@ const handleExportPlayerVillagesButtonClick = (e) => {
); );
}; };
const wrapAction = (action) => { const wrapAction = action => {
const actionWrapperTd = document.createElement('td'); const actionWrapperTd = document.createElement('td');
actionWrapperTd.colSpan = '2'; actionWrapperTd.colSpan = '2';
actionWrapperTd.append(action); actionWrapperTd.append(action);

View File

@ -217,7 +217,7 @@ const cacheTribeData = (data = {}) => {
const getMemberIDs = () => { const getMemberIDs = () => {
const ids = []; const ids = [];
membersContainer.querySelectorAll('a').forEach((a) => { membersContainer.querySelectorAll('a').forEach(a => {
const href = a.getAttribute('href'); const href = a.getAttribute('href');
if (href.includes('info_player')) { if (href.includes('info_player')) {
ids.push(getIDFromURL(href)); ids.push(getIDFromURL(href));
@ -228,7 +228,7 @@ const getMemberIDs = () => {
const getMemberNames = () => { const getMemberNames = () => {
const ids = []; const ids = [];
membersContainer.querySelectorAll('a').forEach((a) => { membersContainer.querySelectorAll('a').forEach(a => {
if (a.getAttribute('href').includes('info_player')) { if (a.getAttribute('href').includes('info_player')) {
ids.push(a.innerText.trim()); ids.push(a.innerText.trim());
} }
@ -271,7 +271,7 @@ const renderTr = ({ title, data, id }) => {
tr.children[1].innerHTML = data; tr.children[1].innerHTML = data;
}; };
const extendMembersData = (players) => { const extendMembersData = players => {
membersContainer.parentElement.style.width = '100%'; membersContainer.parentElement.style.width = '100%';
const heading = membersContainer.querySelector('tr:first-child'); const heading = membersContainer.querySelector('tr:first-child');
if (heading.children.length !== 11) { if (heading.children.length !== 11) {
@ -282,19 +282,19 @@ const extendMembersData = (players) => {
translations.od, translations.od,
translations.dailyGrowth, translations.dailyGrowth,
translations.playerLinks, translations.playerLinks,
].forEach((v) => { ].forEach(v => {
const th = document.createElement('th'); const th = document.createElement('th');
th.innerHTML = v; th.innerHTML = v;
heading.appendChild(th); heading.appendChild(th);
}); });
} }
membersContainer.querySelectorAll('tr').forEach((tr) => { membersContainer.querySelectorAll('tr').forEach(tr => {
const a = tr.querySelector('a'); const a = tr.querySelector('a');
if (!a) { if (!a) {
return; return;
} }
const playerID = getIDFromURL(a.getAttribute('href')); const playerID = getIDFromURL(a.getAttribute('href'));
const player = players.items.find((p) => p.id === playerID); const player = players.items.find(p => p.id === playerID);
if (player) { if (player) {
[ [
[player.scoreAtt, player.rankAtt], [player.scoreAtt, player.rankAtt],
@ -369,7 +369,7 @@ const render = ({ tribe, dailyTribeStats, players }) => {
data: tribe.mostVillages + ' ' + `(${formatDate(tribe.mostVillagesAt)})`, data: tribe.mostVillages + ' ' + `(${formatDate(tribe.mostVillagesAt)})`,
id: 'most_villages', id: 'most_villages',
}, },
].forEach((data) => { ].forEach(data => {
renderTr(data); renderTr(data);
}); });
@ -382,7 +382,7 @@ const render = ({ tribe, dailyTribeStats, players }) => {
} }
}; };
const handleShowTribeEnnoblementsClick = async (e) => { const handleShowTribeEnnoblementsClick = async e => {
e.preventDefault(); e.preventDefault();
const page = getPage(e.target); const page = getPage(e.target);
if (!isNaN(page)) { if (!isNaN(page)) {
@ -409,7 +409,7 @@ const handleShowTribeEnnoblementsClick = async (e) => {
} }
}; };
const handleShowTribeHistoryClick = async (e) => { const handleShowTribeHistoryClick = async e => {
e.preventDefault(); e.preventDefault();
const page = getPage(e.target); const page = getPage(e.target);
if (!isNaN(page)) { if (!isNaN(page)) {
@ -440,7 +440,7 @@ const handleShowTribeHistoryClick = async (e) => {
} }
}; };
const getMembersGrowthTdStyle = (value) => { const getMembersGrowthTdStyle = value => {
const statIncreaseStyle = 'color: #000; background-color: #0f0'; const statIncreaseStyle = 'color: #000; background-color: #0f0';
const statDecreaseStyle = 'color: #000; background-color: #f00'; const statDecreaseStyle = 'color: #000; background-color: #f00';
const defaultStyle = 'color: #000; background-color: #808080'; const defaultStyle = 'color: #000; background-color: #808080';
@ -452,7 +452,7 @@ const getMembersGrowthTdStyle = (value) => {
: defaultStyle; : defaultStyle;
}; };
const mapMembersGrowthTdValue = (i) => { const mapMembersGrowthTdValue = i => {
switch (MEMBERS_GROWTH_MODE) { switch (MEMBERS_GROWTH_MODE) {
case 'points': case 'points':
return i.points; return i.points;
@ -471,9 +471,9 @@ const mapMembersGrowthTdValue = (i) => {
} }
}; };
const buildMembersGrowthTBody = (stats) => { const buildMembersGrowthTBody = stats => {
const dates = [ const dates = [
...new Set(stats.items.map((item) => item.createDate)), ...new Set(stats.items.map(item => item.createDate)),
].reverse(); ].reverse();
return ` return `
@ -481,7 +481,7 @@ const buildMembersGrowthTBody = (stats) => {
<tr> <tr>
<th>${translations.player}</th> <th>${translations.player}</th>
${dates ${dates
.map((date) => { .map(date => {
return `<th>${formatDate(date, { return `<th>${formatDate(date, {
year: 'numeric', year: 'numeric',
month: '2-digit', month: '2-digit',
@ -492,9 +492,9 @@ const buildMembersGrowthTBody = (stats) => {
<th>${translations.total}</th> <th>${translations.total}</th>
</tr> </tr>
${getMemberIDs() ${getMemberIDs()
.map((id) => { .map(id => {
const filtered = stats.items const filtered = stats.items
.filter((item) => item.player && item.player.id === id) .filter(item => item.player && item.player.id === id)
.reverse(); .reverse();
let player = undefined; let player = undefined;
if (filtered.length > 0) { if (filtered.length > 0) {
@ -503,7 +503,7 @@ const buildMembersGrowthTBody = (stats) => {
const tds = []; const tds = [];
let total = 0; let total = 0;
for (let date of dates) { for (let date of dates) {
const i = filtered.find((i) => i.createDate === date); const i = filtered.find(i => i.createDate === date);
let val = 0; let val = 0;
if (i) { if (i) {
val = mapMembersGrowthTdValue(i); val = mapMembersGrowthTdValue(i);
@ -537,7 +537,7 @@ const buildMembersGrowthTBody = (stats) => {
const MEMBERS_GROWTH_TABLE_ID = 'membersGrowth'; const MEMBERS_GROWTH_TABLE_ID = 'membersGrowth';
const MEMBERS_GROWTH_FORM = MEMBERS_GROWTH_TABLE_ID + 'Form'; const MEMBERS_GROWTH_FORM = MEMBERS_GROWTH_TABLE_ID + 'Form';
const createChangeTypeHandler = (stats) => (e) => { const createChangeTypeHandler = stats => e => {
e.preventDefault(); e.preventDefault();
MEMBERS_GROWTH_MODE = e.target[0].value; MEMBERS_GROWTH_MODE = e.target[0].value;
document.querySelector( document.querySelector(
@ -554,7 +554,7 @@ const renderMembersGrowthPopup = (e, stats) => {
['odd', translations.opponentsDefeatedAsDefender], ['odd', translations.opponentsDefeatedAsDefender],
['ods', translations.opponentsDefeatedAsSupporter], ['ods', translations.opponentsDefeatedAsSupporter],
].map( ].map(
(v) => v =>
`<option ${ `<option ${
MEMBERS_GROWTH_MODE === v[0] ? 'selected="selected"' : '' MEMBERS_GROWTH_MODE === v[0] ? 'selected="selected"' : ''
} value="${v[0]}">${v[1]}</option>` } value="${v[0]}">${v[1]}</option>`
@ -604,7 +604,7 @@ const loadMembersGrowthData = async ({ createDateLTE, createDateGT } = {}) => {
return data; return data;
}; };
const handleShowMembersGrowthClick = async (e) => { const handleShowMembersGrowthClick = async e => {
e.preventDefault(); e.preventDefault();
const createDateGT = new Date(); const createDateGT = new Date();
createDateGT.setDate(createDateGT.getDate() - 7); createDateGT.setDate(createDateGT.getDate() - 7);
@ -640,7 +640,7 @@ const renderTribeChanges = (e, currentPage, tribeChanges) => {
</th> </th>
</tr> </tr>
${tribeChanges.items ${tribeChanges.items
.map((tribeChange) => { .map(tribeChange => {
let rowHTML = let rowHTML =
'<tr>' + `<td>${formatDate(tribeChange.createdAt)}</td>`; '<tr>' + `<td>${formatDate(tribeChange.createdAt)}</td>`;
if (tribeChange.player) { if (tribeChange.player) {
@ -671,12 +671,12 @@ const renderTribeChanges = (e, currentPage, tribeChanges) => {
document document
.querySelectorAll('#' + TRIBE_CHANGES_PAGINATION_CONTAINER_ID + ' a') .querySelectorAll('#' + TRIBE_CHANGES_PAGINATION_CONTAINER_ID + ' a')
.forEach((el) => { .forEach(el => {
el.addEventListener('click', handleShowTribeChangesClick); el.addEventListener('click', handleShowTribeChangesClick);
}); });
}; };
const handleShowTribeChangesClick = async (e) => { const handleShowTribeChangesClick = async e => {
e.preventDefault(); e.preventDefault();
const page = getPage(e.target); const page = getPage(e.target);
if (!isNaN(page)) { if (!isNaN(page)) {
@ -699,7 +699,7 @@ const handleShowTribeChangesClick = async (e) => {
} }
}; };
const handleGenerateMailingListClick = (e) => { const handleGenerateMailingListClick = e => {
e.preventDefault(); e.preventDefault();
const members = getMemberNames(); const members = getMemberNames();
@ -758,7 +758,7 @@ const showLoadingDialog = (current = 0, total = 0) => {
); );
}; };
const handleExportTribeVillagesFormSubmit = async (e) => { const handleExportTribeVillagesFormSubmit = async e => {
e.preventDefault(); e.preventDefault();
let limit = parseInt(e.target[4].value); let limit = parseInt(e.target[4].value);
const variables = { const variables = {
@ -798,13 +798,13 @@ const handleExportTribeVillagesFormSubmit = async (e) => {
'exportTribeVillages', 'exportTribeVillages',
` `
<textarea cols=60 rows=8 readonly>${items <textarea cols=60 rows=8 readonly>${items
.map((item) => `${item.x}|${item.y}`) .map(item => `${item.x}|${item.y}`)
.join(' ')}</textarea> .join(' ')}</textarea>
` `
); );
}; };
const handleExportTribeVillagesClick = (e) => { const handleExportTribeVillagesClick = e => {
e.preventDefault(); e.preventDefault();
const FORM_ID = 'etvForm'; const FORM_ID = 'etvForm';
@ -843,7 +843,7 @@ const handleExportTribeVillagesClick = (e) => {
.addEventListener('submit', handleExportTribeVillagesFormSubmit); .addEventListener('submit', handleExportTribeVillagesFormSubmit);
}; };
const wrapAction = (action) => { const wrapAction = action => {
const actionWrapperTd = document.createElement('td'); const actionWrapperTd = document.createElement('td');
actionWrapperTd.colSpan = '2'; actionWrapperTd.colSpan = '2';
actionWrapperTd.append(action); actionWrapperTd.append(action);

View File

@ -138,7 +138,7 @@ const cacheServerConfig = (data = {}) => {
setItem(SERVER_CONFIG_LOCAL_STORAGE_KEY, data); setItem(SERVER_CONFIG_LOCAL_STORAGE_KEY, data);
}; };
const isConfigExpired = (date) => { const isConfigExpired = date => {
return Math.abs(date.getTime() - new Date().getTime()) > 1000 * 60 * 60 * 24; return Math.abs(date.getTime() - new Date().getTime()) > 1000 * 60 * 60 * 24;
}; };
@ -177,7 +177,7 @@ const loadPageData = async () => {
return data; return data;
}; };
const handleShowTribeEnnoblementsClick = async (e) => { const handleShowTribeEnnoblementsClick = async e => {
e.preventDefault(); e.preventDefault();
const page = getPage(e.target); const page = getPage(e.target);
if (!isNaN(page)) { if (!isNaN(page)) {
@ -201,7 +201,7 @@ const handleShowTribeEnnoblementsClick = async (e) => {
} }
}; };
const buildCellsForIncSupport = (units) => { const buildCellsForIncSupport = units => {
const cells = []; const cells = [];
let pop = 0; let pop = 0;
for (let unit in units) { for (let unit in units) {
@ -212,14 +212,14 @@ const buildCellsForIncSupport = (units) => {
return cells; return cells;
}; };
const handleCountIncomingSupportClick = async (e) => { const handleCountIncomingSupportClick = async e => {
e.preventDefault(); e.preventDefault();
const ids = []; const ids = [];
const allyCommand = {}; const allyCommand = {};
document document
.querySelectorAll('span.command_hover_details[data-command-type="support"]') .querySelectorAll('span.command_hover_details[data-command-type="support"]')
.forEach((el) => { .forEach(el => {
const id = parseInt(el.getAttribute('data-command-id')); const id = parseInt(el.getAttribute('data-command-id'));
if (el.classList.contains('commandicon-ally')) { if (el.classList.contains('commandicon-ally')) {
allyCommand[id] = true; allyCommand[id] = true;
@ -328,7 +328,7 @@ const handleCountIncomingSupportClick = async (e) => {
} }
}; };
const wrapAction = (action) => { const wrapAction = action => {
const actionWrapperTd = document.createElement('td'); const actionWrapperTd = document.createElement('td');
actionWrapperTd.colSpan = '2'; actionWrapperTd.colSpan = '2';
actionWrapperTd.append(action); actionWrapperTd.append(action);
@ -423,7 +423,7 @@ const renderAdditionalInfo = ({ config, ennoblements } = {}) => {
tr.style.textAlign = 'center'; tr.style.textAlign = 'center';
tr.style.fontWeight = 'bold'; tr.style.fontWeight = 'bold';
tr.appendChild(document.createElement('td')); tr.appendChild(document.createElement('td'));
units.forEach((count) => { units.forEach(count => {
const td = document.createElement('td'); const td = document.createElement('td');
td.innerHTML = count; td.innerHTML = count;
tr.appendChild(td); tr.appendChild(td);

View File

@ -35,17 +35,15 @@ const addTribe = () => {
container.appendChild(div); container.appendChild(div);
}; };
const handleFormSubmit = async (e) => { const handleFormSubmit = async e => {
e.preventDefault(); e.preventDefault();
const limit = parseInt(document.querySelector('#' + LIMIT_INPUT_ID).value); const limit = parseInt(document.querySelector('#' + LIMIT_INPUT_ID).value);
const tribes = []; const tribes = [];
const type = const type =
new URLSearchParams(window.location.search).get('type') || 'kill_att'; new URLSearchParams(window.location.search).get('type') || 'kill_att';
document document.querySelectorAll('#' + TRIBE_CONTAINER_ID + ' input').forEach(el => {
.querySelectorAll('#' + TRIBE_CONTAINER_ID + ' input') if (el.value) tribes.push(el.value.trim());
.forEach((el) => { });
if (el.value) tribes.push(el.value.trim());
});
let players = []; let players = [];
let page = 0; let page = 0;

View File

@ -92,9 +92,9 @@ const loadLatestEnnoblements = () => {
limit: 50, limit: 50,
sort: ['ennobledAt DESC'], sort: ['ennobledAt DESC'],
}, },
}).then((data) => { }).then(data => {
cacheEnnoblements(data); cacheEnnoblements(data);
return new Promise((resolve) => resolve(data)); return new Promise(resolve => resolve(data));
}); });
}; };
@ -115,7 +115,7 @@ const filterEnnoblements = (
ennoblements = [], ennoblements = [],
{ newOwner, newOwnerTribe, oldOwner, oldOwnerTribe } = {} { newOwner, newOwnerTribe, oldOwner, oldOwnerTribe } = {}
) => { ) => {
return ennoblements.filter((ennoblement) => { return ennoblements.filter(ennoblement => {
if (newOwner && !isValidPlayer(ennoblement.newOwner, newOwner)) { if (newOwner && !isValidPlayer(ennoblement.newOwner, newOwner)) {
return false; return false;
} }
@ -156,14 +156,12 @@ const applyFilters = (e, ennoblements) => {
}; };
const addEventListeners = (ennoblements = []) => { const addEventListeners = (ennoblements = []) => {
document document.querySelector('#' + FILTER_FORM_ID).addEventListener('submit', e => {
.querySelector('#' + FILTER_FORM_ID) applyFilters(e, ennoblements);
.addEventListener('submit', (e) => { });
applyFilters(e, ennoblements);
});
}; };
const getPlayerHTML = (player) => { const getPlayerHTML = player => {
return player && player.name return player && player.name
? `<a href="${twutils.buildPlayerURL(player.id)}">${player.name}</a> (${ ? `<a href="${twutils.buildPlayerURL(player.id)}">${player.name}</a> (${
player.tribe && player.tribe.tag player.tribe && player.tribe.tag
@ -175,14 +173,14 @@ const getPlayerHTML = (player) => {
: '-'; : '-';
}; };
const getVillageHTML = (village) => { const getVillageHTML = village => {
return `<a href="${twutils.buildVillageURL( return `<a href="${twutils.buildVillageURL(
village.id village.id
)}">${twutils.buildVillageName(village.name, village.x, village.y)}</a>`; )}">${twutils.buildVillageName(village.name, village.x, village.y)}</a>`;
}; };
const buildEnnoblementsRows = (ennoblements) => { const buildEnnoblementsRows = ennoblements => {
return ennoblements.map((ennoblement) => { return ennoblements.map(ennoblement => {
return `<tr> return `<tr>
<td>${getVillageHTML(ennoblement.village)}</td> <td>${getVillageHTML(ennoblement.village)}</td>
<td>${getPlayerHTML(ennoblement.newOwner)}</td> <td>${getPlayerHTML(ennoblement.newOwner)}</td>

View File

@ -16,7 +16,7 @@ export default class InADayParser {
if ( if (
this.filters.tribes && this.filters.tribes &&
Array.isArray(this.filters.tribes) && Array.isArray(this.filters.tribes) &&
!this.filters.tribes.some((tribe) => tribe === row.tribe) !this.filters.tribes.some(tribe => tribe === row.tribe)
) { ) {
return false; return false;
} }

View File

@ -11,13 +11,13 @@ export default ({ query, variables = {} } = {}) => {
'Content-Type': 'application/json', 'Content-Type': 'application/json',
}, },
}) })
.then((res) => { .then(res => {
return res.json(); return res.json();
}) })
.then(({ data, errors }) => { .then(({ data, errors }) => {
if (errors && Array.isArray(errors) && errors.length > 0) { if (errors && Array.isArray(errors) && errors.length > 0) {
throw new Error(errors[0].message); throw new Error(errors[0].message);
} }
return new Promise((resolve) => resolve(data)); return new Promise(resolve => resolve(data));
}); });
}; };

View File

@ -55,11 +55,11 @@ const setVillageBorder = (x, y, color = 'transparent') => {
} }
}; };
const deleteVillageFromOtherGroups = (key) => { const deleteVillageFromOtherGroups = key => {
for (let name in config.groups) { for (let name in config.groups) {
if (name === config.selectedGroup) return; if (name === config.selectedGroup) return;
config.groups[name].villages = config.groups[name].villages.filter( config.groups[name].villages = config.groups[name].villages.filter(
(village) => village.key !== key village => village.key !== key
); );
} }
}; };
@ -69,12 +69,12 @@ const handleMapClick = (x, y, e) => {
const key = `${x}|${y}`; const key = `${x}|${y}`;
const selected = config.groups[config.selectedGroup].villages.some( const selected = config.groups[config.selectedGroup].villages.some(
(village) => village.key === key village => village.key === key
); );
if (selected) { if (selected) {
config.groups[config.selectedGroup].villages = config.groups[ config.groups[config.selectedGroup].villages = config.groups[
config.selectedGroup config.selectedGroup
].villages.filter((village) => village.key !== key); ].villages.filter(village => village.key !== key);
setVillageBorder(x, y, 'transparent'); setVillageBorder(x, y, 'transparent');
} else { } else {
config.groups[config.selectedGroup].villages = [ config.groups[config.selectedGroup].villages = [
@ -114,7 +114,7 @@ const renderForm = (container, group) => {
const form = document.createElement('form'); const form = document.createElement('form');
form.innerHTML = html; form.innerHTML = html;
form.addEventListener('submit', (e) => { form.addEventListener('submit', e => {
e.preventDefault(); e.preventDefault();
if (group) { if (group) {
if (group.name === config.selectedGroup) if (group.name === config.selectedGroup)
@ -148,7 +148,7 @@ const renderForm = (container, group) => {
const selectButton = form.querySelector('.selectButton'); const selectButton = form.querySelector('.selectButton');
if (selectButton) { if (selectButton) {
selectButton.addEventListener('click', (e) => { selectButton.addEventListener('click', e => {
config.selectedGroup = group.name; config.selectedGroup = group.name;
renderGroups(); renderGroups();
}); });
@ -173,7 +173,7 @@ const handleExportVillages = () => {
groups.push(`<div style="margin-bottom: 30px;"> groups.push(`<div style="margin-bottom: 30px;">
<h3>${name}</h3> <h3>${name}</h3>
<textarea cols=30 rows=8 readonly>${config.groups[name].villages <textarea cols=30 rows=8 readonly>${config.groups[name].villages
.map((village) => village.key) .map(village => village.key)
.join(' ') .join(' ')
.trim()}</textarea> .trim()}</textarea>
</div>`); </div>`);
@ -240,7 +240,7 @@ const handleButtonClick = () => {
}; };
const colorizeGroupVillages = (name, bgColor = '') => { const colorizeGroupVillages = (name, bgColor = '') => {
config.groups[name].villages.forEach((village) => { config.groups[name].villages.forEach(village => {
setVillageBorder( setVillageBorder(
village.x, village.x,
village.y, village.y,

View File

@ -1,5 +1,5 @@
import { buildImgURL } from './tribalwars'; import { buildImgURL } from './tribalwars';
export default (unit) => { export default unit => {
return buildImgURL(`unit/unit_${unit}.png`); return buildImgURL(`unit/unit_${unit}.png`);
}; };

View File

@ -1 +1 @@
export default (url) => parseInt(new URLSearchParams(url).get('id')); export default url => parseInt(new URLSearchParams(url).get('id'));

View File

@ -1,4 +1,4 @@
export default (str) => { export default str => {
const arr = str.split(/[_-]/); const arr = str.split(/[_-]/);
let newStr = ''; let newStr = '';
for (let i = 1; i < arr.length; i++) { for (let i = 1; i < arr.length; i++) {

View File

@ -1 +1 @@
export default (v) => v === undefined || v === null; export default v => v === undefined || v === null;

View File

@ -15,7 +15,7 @@ export const setPage = (el, page = 1) => {
el.setAttribute(ATTRIBUTE, page + ''); el.setAttribute(ATTRIBUTE, page + '');
}; };
export const getPage = (el) => { export const getPage = el => {
if (!el instanceof HTMLElement) { if (!el instanceof HTMLElement) {
return 0; return 0;
} }

View File

@ -1,4 +1,4 @@
export const buildTribeURL = (id) => { export const buildTribeURL = id => {
return ( return (
window.location.origin + window.location.origin +
TribalWars.buildURL('', { TribalWars.buildURL('', {
@ -8,7 +8,7 @@ export const buildTribeURL = (id) => {
); );
}; };
export const buildPlayerURL = (id) => { export const buildPlayerURL = id => {
return ( return (
window.location.origin + window.location.origin +
TribalWars.buildURL('', { TribalWars.buildURL('', {
@ -18,7 +18,7 @@ export const buildPlayerURL = (id) => {
); );
}; };
export const buildVillageURL = (id) => { export const buildVillageURL = id => {
return ( return (
window.location.origin + window.location.origin +
TribalWars.buildURL('', { TribalWars.buildURL('', {
@ -37,6 +37,6 @@ export const calcAttackDuration = (distance, baseSpeed) => {
return Math.round(distance * baseSpeed); return Math.round(distance * baseSpeed);
}; };
export const buildImgURL = (img) => { export const buildImgURL = img => {
return image_base + img; return image_base + img;
}; };

View File

@ -1 +1 @@
export default (t) => new Promise((resolve) => setTimeout(resolve, t)); export default t => new Promise(resolve => setTimeout(resolve, t));

View File

@ -67,7 +67,7 @@ const showResult = (sideOne = 0, sideTwo = 0) => {
document.querySelector('#' + RESULT_CONTAINER_ID).innerHTML = html; document.querySelector('#' + RESULT_CONTAINER_ID).innerHTML = html;
}; };
const createAddTribeHandler = (container) => { const createAddTribeHandler = container => {
return () => { return () => {
const div = document.createElement('div'); const div = document.createElement('div');
div.innerHTML = ` div.innerHTML = `
@ -82,21 +82,21 @@ const createAddTribeHandler = (container) => {
}; };
}; };
const handleFormSubmit = async (e) => { const handleFormSubmit = async e => {
e.preventDefault(); e.preventDefault();
const sideOneTags = []; const sideOneTags = [];
const sideTwoTags = []; const sideTwoTags = [];
e.target e.target
.querySelectorAll(`#${SIDE_ONE_INPUT_CONTAINER_ID} input`) .querySelectorAll(`#${SIDE_ONE_INPUT_CONTAINER_ID} input`)
.forEach((el) => { .forEach(el => {
if (el.value.trim()) { if (el.value.trim()) {
sideOneTags.push(el.value.trim()); sideOneTags.push(el.value.trim());
} }
}); });
e.target e.target
.querySelectorAll(`#${SIDE_TWO_INPUT_CONTAINER_ID} input`) .querySelectorAll(`#${SIDE_TWO_INPUT_CONTAINER_ID} input`)
.forEach((el) => { .forEach(el => {
if (el.value.trim()) { if (el.value.trim()) {
sideTwoTags.push(el.value.trim()); sideTwoTags.push(el.value.trim());
} }
@ -124,7 +124,7 @@ const handleFormSubmit = async (e) => {
if (toInputs.length === 2 && toInputs[0].value && toInputs[1].value) { if (toInputs.length === 2 && toInputs[0].value && toInputs[1].value) {
ennobledAtLTE = new Date(`${toInputs[0].value}T${toInputs[1].value}:00`); ennobledAtLTE = new Date(`${toInputs[0].value}T${toInputs[1].value}:00`);
} }
e.target.querySelectorAll('button').forEach((button) => { e.target.querySelectorAll('button').forEach(button => {
button.disabled = true; button.disabled = true;
}); });
@ -139,11 +139,11 @@ const handleFormSubmit = async (e) => {
}, },
}); });
const sideOneTribes = tribes.items const sideOneTribes = tribes.items
.filter((item) => sideOneTags.some((tag) => item.tag === tag)) .filter(item => sideOneTags.some(tag => item.tag === tag))
.map((tribe) => tribe.id); .map(tribe => tribe.id);
const sideTwoTribes = tribes.items const sideTwoTribes = tribes.items
.filter((item) => sideTwoTags.some((tag) => item.tag === tag)) .filter(item => sideTwoTags.some(tag => item.tag === tag))
.map((tribe) => tribe.id); .map(tribe => tribe.id);
const { sideOneEnnoblements, sideTwoEnnoblements } = await requestCreator({ const { sideOneEnnoblements, sideTwoEnnoblements } = await requestCreator({
query: ENNOBLEMENTS_QUERY, query: ENNOBLEMENTS_QUERY,
@ -174,12 +174,12 @@ const handleFormSubmit = async (e) => {
} catch (error) { } catch (error) {
console.log('handleFormSubmit', error); console.log('handleFormSubmit', error);
} }
e.target.querySelectorAll('button').forEach((button) => { e.target.querySelectorAll('button').forEach(button => {
button.disabled = false; button.disabled = false;
}); });
}; };
const showWarStatsForm = (e) => { const showWarStatsForm = e => {
const html = ` const html = `
<form> <form>
<h1 style="margin-bottom: 0px; text-align: center;"><a href="${twhelputils.buildURLToServerPage( <h1 style="margin-bottom: 0px; text-align: center;"><a href="${twhelputils.buildURLToServerPage(

View File

@ -1879,11 +1879,6 @@ data-urls@^1.1.0:
whatwg-mimetype "^2.2.0" whatwg-mimetype "^2.2.0"
whatwg-url "^7.0.0" whatwg-url "^7.0.0"
date-fns-tz@^1.0.10:
version "1.0.10"
resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.0.10.tgz#30fef0038f80534fddd8e133a6b8ca55ba313748"
integrity sha512-cHQAz0/9uDABaUNDM80Mj1FL4ODlxs1xEY4b0DQuAooO2UdNKvDkNbV8ogLnxLbv02Ru1HXFcot0pVvDRBgptg==
date-fns@^2.14.0: date-fns@^2.14.0:
version "2.14.0" version "2.14.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.14.0.tgz#359a87a265bb34ef2e38f93ecf63ac453f9bc7ba" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.14.0.tgz#359a87a265bb34ef2e38f93ecf63ac453f9bc7ba"
@ -4171,6 +4166,11 @@ prelude-ls@~1.1.2:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
prettier@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
process-nextick-args@~2.0.0: process-nextick-args@~2.0.0:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@ -5246,11 +5246,6 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0" spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0" spdx-expression-parse "^3.0.0"
validator@^13.1.1:
version "13.1.1"
resolved "https://registry.yarnpkg.com/validator/-/validator-13.1.1.tgz#f8811368473d2173a9d8611572b58c5783f223bf"
integrity sha512-8GfPiwzzRoWTg7OV1zva1KvrSemuMkv07MA9TTl91hfhe+wKrsrgVN4H2QSFd/U/FhiU3iWPYVgvbsOGwhyFWw==
vendors@^1.0.0: vendors@^1.0.0:
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"