commit
dce76e677f
4 changed files with 11 additions and 17 deletions
|
@ -11,13 +11,12 @@ function fileFilter(file) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
const watch = new CheapWatch({
|
|
||||||
dir: config.get("scriptsFolder"),
|
|
||||||
filter: fileFilter,
|
|
||||||
watch: !config.get("dry")
|
|
||||||
});
|
|
||||||
|
|
||||||
export async function setupWatch(signaller) {
|
export async function setupWatch(signaller) {
|
||||||
|
const watch = new CheapWatch({
|
||||||
|
dir: config.get("scriptsFolder"),
|
||||||
|
filter: fileFilter,
|
||||||
|
watch: !config.get("dry")
|
||||||
|
});
|
||||||
|
|
||||||
if (!config.get("quiet")) console.log("Watching folder", resolve(config.get("scriptsFolder")))
|
if (!config.get("quiet")) console.log("Watching folder", resolve(config.get("scriptsFolder")))
|
||||||
|
|
||||||
|
@ -33,8 +32,4 @@ export async function setupWatch(signaller) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return watch;
|
return watch;
|
||||||
}
|
|
||||||
|
|
||||||
export function watchedFiles() {
|
|
||||||
return watch.paths;
|
|
||||||
}
|
}
|
|
@ -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, () => {
|
||||||
|
|
|
@ -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 }));
|
||||||
})
|
})
|
||||||
|
|
|
@ -6,7 +6,7 @@ class MessageTracker {
|
||||||
this.data.set(msg.id, msg);
|
this.data.set(msg.id, msg);
|
||||||
|
|
||||||
if (this.data.size > this.#maxLength) {
|
if (this.data.size > this.#maxLength) {
|
||||||
const [firstKey] = map.keys();
|
const [firstKey] = this.data.keys();
|
||||||
this.data.delete(firstKey);
|
this.data.delete(firstKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue