UNPKG

bad-stats-common

Version:

Common constants and types for bad-stats client and server

77 lines (73 loc) 3.08 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var index_exports = {}; __export(index_exports, { EVENT_STATUSES: () => EVENT_STATUSES, PLAYER_RANKS: () => PLAYER_RANKS, PLAYER_ROLES: () => PLAYER_ROLES, calculateAverage: () => calculateAverage, calculateDifference: () => calculateDifference }); module.exports = __toCommonJS(index_exports); // src/constants/index.ts var PLAYER_RANKS = ["R5", "R4", "R3", "R2", "R1", "R0"]; var PLAYER_ROLES = [ "owner", "administrator", "moderator", "user", "quest" ]; var EVENT_STATUSES = ["active", "finished", "planned"]; // src/utils/math.ts var calculateDifference = (startValue, endValue) => { if ([startValue, endValue].some((v) => typeof v !== "number" || isNaN(v))) { console.error("\u041E\u0431\u0430 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u043C\u0438 \u0447\u0438\u0441\u043B\u0430\u043C\u0438."); return null; } const difference = endValue - startValue; if (difference < 0) { console.warn("\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435: endValue \u043C\u0435\u043D\u044C\u0448\u0435 startValue. \u0412\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u044E 0."); return 0; } return Math.round(difference); }; var calculateAverage = (values, round = false) => { if (!Array.isArray(values) || values.length === 0) { console.warn("\u041C\u0430\u0441\u0441\u0438\u0432 \u043F\u0443\u0441\u0442\u043E\u0439 \u0438\u043B\u0438 \u043D\u0435\u0432\u0430\u043B\u0438\u0434\u0435\u043D."); return null; } const validNumbers = values.filter((v) => typeof v === "number" && !isNaN(v)); if (validNumbers.length === 0) { console.warn("\u041D\u0435\u0442 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0445 \u0447\u0438\u0441\u0435\u043B \u0432 \u043C\u0430\u0441\u0441\u0438\u0432\u0435."); return null; } const sum = validNumbers.reduce((acc, curr) => acc + curr, 0); const avg = sum / validNumbers.length; return round ? Math.round(avg) : avg; }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { EVENT_STATUSES, PLAYER_RANKS, PLAYER_ROLES, calculateAverage, calculateDifference });