From 70ef8a60ad7ebc482936333b7ca55c34510e3531 Mon Sep 17 00:00:00 2001 From: Danielv123 Date: Tue, 5 Aug 2025 16:19:14 +0000 Subject: [PATCH] Fix lint, use of sync method in web UI --- plugins/minimap/utils/player-utils.ts | 56 +++++++++++------------ plugins/minimap/web/CanvasMinimapPage.tsx | 8 +++- plugins/minimap/webpack.config.js | 2 +- 3 files changed, 36 insertions(+), 30 deletions(-) diff --git a/plugins/minimap/utils/player-utils.ts b/plugins/minimap/utils/player-utils.ts index d99f25dd..d70ef797 100644 --- a/plugins/minimap/utils/player-utils.ts +++ b/plugins/minimap/utils/player-utils.ts @@ -5,31 +5,31 @@ import { BinaryData, sliceData, readUInt8, readUInt16BE, readUInt32BE, isNode } */ export interface ParsedPlayerPositions { /** Player name -> player ID mappings from SessionStart records */ - playerSessions: Map; + playerSessions: Map; /** Maximum player ID found in the file */ - maxPlayerId: number; + maxPlayerId: number; /** All position records in the file */ - positions: PlayerPositionRecord[]; + positions: PlayerPositionRecord[]; } export interface PlayerPositionRecord { - type: number; - playerId: number; + type: number; + playerId: number; // Position record fields - tSec?: number; - sec?: number; - xTiles?: number; - yTiles?: number; + tSec?: number; + sec?: number; + xTiles?: number; + yTiles?: number; // Session record fields - tMs?: number; - playerName?: string; + tMs?: number; + playerName?: string; } export interface ParsedPlayerPos { - name: string; - x: number; - y: number; - sec: number; + name: string; + x: number; + y: number; + sec: number; } /** @@ -121,13 +121,13 @@ export function parsePlayerPositionsBinary(buf: BinaryData): ParsedPlayerPositio * @returns Processing result with position data and new offset */ function parsePositionRecord(buf: BinaryData, offset: number): { - success: boolean; - newOffset: number; - playerId: number; - tSec: number; - sec: number; - xTiles: number; - yTiles: number; + success: boolean; + newOffset: number; + playerId: number; + tSec: number; + sec: number; + xTiles: number; + yTiles: number; } { // Position record: 4 + 4 + 3 + 3 + 2 = 16 bytes if (offset + 16 > buf.length) { @@ -248,12 +248,12 @@ export function parseAndDeduplicatePlayerPositions(buf: BinaryData): Map => new Promise((resolve, reject) => { + zlib.inflate(data, (err, result) => { + if (err) { reject(err); } + resolve(result); + }); +}); // Convert raw chart data to ImageData async function chartDataToImageData(chartData: string): Promise { // Decode base64 and decompress const compressedData = Buffer.from(chartData, "base64"); - const decompressed = zlib.inflateSync(compressedData); + const decompressed = Buffer.from(await inflateAsync(compressedData)); // Create RGBA image data (32x32 pixels) const imageData = new Uint8ClampedArray(32 * 32 * 4); diff --git a/plugins/minimap/webpack.config.js b/plugins/minimap/webpack.config.js index e24e8817..1b53ec15 100644 --- a/plugins/minimap/webpack.config.js +++ b/plugins/minimap/webpack.config.js @@ -3,7 +3,7 @@ const path = require("path"); const webpack = require("webpack"); const { merge } = require("webpack-merge"); -// eslint-disable-next-line node/no-unpublished-require + const common = require("@clusterio/web_ui/webpack.common"); module.exports = (env = {}) => merge(common(env), {