-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathutils.ts
More file actions
45 lines (41 loc) · 1.19 KB
/
utils.ts
File metadata and controls
45 lines (41 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
const fs = require("fs");
export function defineVarProperty(object: Object, name: string, igVar: string) {
Object.defineProperty(object, name, {
get() {
return ig.vars.get(igVar);
},
set(newValue: any) {
ig.vars.set(igVar, newValue);
},
});
}
export async function readJsonFromFile(path: string) {
if (path.startsWith('./assets/')) {
return fetch(path.slice(1)).then(resp => resp.json());
}
if (path.startsWith('/assets/')) {
return fetch(path).then(resp => resp.json());
}
if (path.startsWith('assets/')) {
return fetch('/' + path).then(resp => resp.json());
}
return JSON.parse((await fs.promises.readFile(path)) as unknown as string);
}
export function getElementIconString(element: string) {
switch (element) {
case "ALL":
return "\\i[element-neutral]\\i[element-heat]\\i[element-cold]\\i[element-shock]\\i[element-wave]";
case "ALL_ELEMENTS":
return "\\i[element-heat]\\i[element-cold]\\i[element-shock]\\i[element-wave]";
case "NEUTRAL":
return "\\i[element-neutral]";
case "HEAT":
return "\\i[element-heat]";
case "COLD":
return "\\i[element-cold]";
case "SHOCK":
return "\\i[element-shock]";
case "WAVE":
return "\\i[element-wave]";
}
}