Stable label creation, forgot imports of messages

This commit is contained in:
Danielv123 committed 2026-01-28 00:15:41 +01:00
1 parent 3932ac2cae
commit 9061d2aa92
2 files changed
+60 -9

No files matched your search

+56 -9
View File
@@ -271,17 +271,64 @@ function labelsToKey(labels: LabelValues, metricLabels: string[]) {
function keyToLabels(key: string) {
let labels = new Map<string, string>();
let index = 0;
if (key !== "") {
for (let pair of key.split(",")) {
let [name, value] = pair.split("=", 2);
labels.set(name, value
.slice(1, -1)
.replace(/\\"/g, "\"")
.replace(/\\n/g, "\n")
.replace(/\\\\/g, "\\")
);
while (index < key.length) {
let equal = key.indexOf("=", index);
if (equal === -1) {
throw new Error(`Malformed label key '${key}'`);
}
let name = key.slice(index, equal);
let cursor = equal + 1;
if (key[cursor] !== "\"") {
throw new Error(`Malformed label key '${key}'`);
}
cursor += 1;
let valueParts: string[] = [];
while (cursor < key.length) {
let char = key[cursor];
if (char === "\"") {
break;
}
if (char === "\\") {
cursor += 1;
if (cursor >= key.length) {
throw new Error(`Malformed escape in label value for '${name}'`);
}
char = key[cursor];
if (char === "n") {
valueParts.push("\n");
} else if (char === "\\") {
valueParts.push("\\");
} else if (char === "\"") {
valueParts.push("\"");
} else {
valueParts.push(char);
}
} else {
valueParts.push(char);
}
cursor += 1;
}
if (cursor >= key.length || key[cursor] !== "\"") {
throw new Error(`Missing closing quote for label '${name}'`);
}
labels.set(name, valueParts.join(""));
cursor += 1;
if (cursor >= key.length) {
break;
}
if (key[cursor] !== ",") {
throw new Error(`Malformed label key '${key}'`);
}
index = cursor + 1;
}
return labels;
+4
View File
@@ -9,6 +9,8 @@ import {
GetPlayerPathRequest,
RecipeDataEvent,
GetRawRecipeTileRequest,
ClearMinimapSurfaceDataRequest,
ClearMinimapDataRequest,
} from "./messages";
// Define permissions
@@ -41,6 +43,8 @@ export const plugin: lib.PluginDeclaration = {
GetChartTagsRequest,
GetPlayerPathRequest,
GetRawRecipeTileRequest,
ClearMinimapSurfaceDataRequest,
ClearMinimapDataRequest,
],
routes: ["/minimap"],
};