Fix undefined request crash, pass paths directly

This commit is contained in:
RyanHx 2022-08-28 02:21:41 +01:00
parent b7c0761822
commit 95563abda0
2 changed files with 5 additions and 6 deletions

View file

@ -13,7 +13,7 @@ export async function start() {
const socket = setupSocket(signal); const socket = setupSocket(signal);
// Add a handler for received messages. // Add a handler for received messages.
signal.on(EventType.MessageReceived, msg => messageHandler(signal, msg)); signal.on(EventType.MessageReceived, msg => messageHandler(signal, msg, watch.paths));
// Add a handler for when a connection to a game is made. // Add a handler for when a connection to a game is made.
signal.on(EventType.ConnectionMade, () => { signal.on(EventType.ConnectionMade, () => {

View file

@ -1,11 +1,10 @@
import { messageTracker } from "./messageTracker.js"; import { messageTracker } from "./messageTracker.js";
import { writeFile } from "fs"; import { writeFile } from "fs";
import { config } from "../config.js"; import { config } from "../config.js";
import { watchedFiles } from "../fileWatch.js";
import { EventType } from "../eventTypes.js"; import { EventType } from "../eventTypes.js";
import { fileChangeEventToMsg } from "./messageGenerators.js"; import { fileChangeEventToMsg } from "./messageGenerators.js";
export function messageHandler(signaller, msg) { export function messageHandler(signaller, msg, paths) {
let incoming; let incoming;
try { incoming = JSON.parse(msg.toString()); } try { incoming = JSON.parse(msg.toString()); }
@ -15,7 +14,7 @@ export function messageHandler(signaller, msg) {
if (incoming.result) { if (incoming.result) {
const request = messageTracker.get(incoming.id); const request = messageTracker.get(incoming.id);
if (request.method && if (request?.method &&
request.method == "getDefinitionFile" request.method == "getDefinitionFile"
&& incoming.result) { && incoming.result) {
writeFile(config.get("definitionFile").location, incoming.result, (err) => { writeFile(config.get("definitionFile").location, incoming.result, (err) => {
@ -23,12 +22,12 @@ export function messageHandler(signaller, msg) {
}); });
} }
if (request.method && if (request?.method &&
request.method == "getFileNames" request.method == "getFileNames"
&& incoming.result) { && incoming.result) {
const gameFiles = incoming.result.map(file => removeLeadingSlash(file)); const gameFiles = incoming.result.map(file => removeLeadingSlash(file));
watchedFiles().forEach((stats, fileName) => { paths.forEach((stats, fileName) => {
if (!stats.isDirectory() && !gameFiles.includes(fileName)) if (!stats.isDirectory() && !gameFiles.includes(fileName))
signaller.emit(EventType.MessageSend, fileChangeEventToMsg({ path: fileName })); signaller.emit(EventType.MessageSend, fileChangeEventToMsg({ path: fileName }));
}) })