-
-
-
+
+
+
-
-
+ :eorzea-time="eorzeaTime"
+ />
+
+
diff --git a/src/entities/Aetheryte.ts b/src/entities/Aetheryte.ts
index 7339d23..89b79e6 100644
--- a/src/entities/Aetheryte.ts
+++ b/src/entities/Aetheryte.ts
@@ -6,10 +6,10 @@ export default class Aetheryte {
}
constructor(
- data: any,
+ data: {position: {x: number, y: number, zone: string}, name: {en: string}}
) {
this.position = data.position;
- this.name = data.name.en;
+ this.name = data.name;
}
diff --git a/src/entities/Item.ts b/src/entities/Item.ts
index a15c453..b1ea06b 100644
--- a/src/entities/Item.ts
+++ b/src/entities/Item.ts
@@ -3,13 +3,18 @@ export default class Item {
readonly id: string;
readonly name: string;
readonly level: number;
- readonly scripType: ScripType;
+ readonly scripType: ScripType | null;
- constructor(id: string, data: any) {
+ constructor(id: string, data: {[key: string]: number | string | undefined}) {
this.id = id;
- this.name = data?.name;
- this.level = data?.level;
- this.scripType = data?.scripType ? ScripType[data.scripType.toUpperCase()] : null;
+ this.name = data?.name as string;
+ this.level = data?.level as number;
+ const scripType: string | undefined = data?.scripType as string;
+ if (scripType != undefined) {
+ this.scripType = typeof data?.scripType === "string" ? scripType.toUpperCase() as ScripType : null;
+ } else {
+ this.scripType = null;
+ }
}
}
diff --git a/src/entities/Node.ts b/src/entities/Node.ts
index d20ef93..913dff4 100644
--- a/src/entities/Node.ts
+++ b/src/entities/Node.ts
@@ -1,5 +1,5 @@
-import {Job} from "../enums/Job";
-import {NodeType} from "../enums/NodeType";
+import {Job} from "@/enums/Job";
+import {NodeType} from "@/enums/NodeType";
import Item from "./Item";
import Aetheryte from "./Aetheryte";
import TimeRange from "./TimeRange";
diff --git a/src/entities/Zone.ts b/src/entities/Zone.ts
index fa05c39..a3a60f0 100644
--- a/src/entities/Zone.ts
+++ b/src/entities/Zone.ts
@@ -4,8 +4,10 @@ export default class Zone {
en: string,
}
- constructor(data: any) {
- this.name = data.name;
+ constructor(data: {name: {en: string}}) {
+ this.name = {
+ en: data.name.en
+ };
}
}
\ No newline at end of file
diff --git a/src/util/EorzeaTime.ts b/src/util/EorzeaTime.ts
index deb8e20..5bb7fdc 100644
--- a/src/util/EorzeaTime.ts
+++ b/src/util/EorzeaTime.ts
@@ -11,7 +11,7 @@ export default class EorzeaTime {
*/
readonly eorzeaDate: Date;
- private constructor(realDate: Date = new Date()) {
+ public constructor(realDate: Date = new Date()) {
this.realDate = realDate;
this.eorzeaDate = new Date(realDate.getTime() * (3600 / 175));
}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..1f6c8a8
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,21 @@
+{
+ "compilerOptions": {
+ "target": "ESNext",
+ "useDefineForClassFields": true,
+ "module": "ESNext",
+ "moduleResolution": "Node",
+ "strict": true,
+ "jsx": "preserve",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "esModuleInterop": true,
+ "lib": ["ESNext", "DOM"],
+ "skipLibCheck": true,
+ "noEmit": true,
+ "allowJs": true,
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ },
+ "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
+}
diff --git a/vite.config.js b/vite.config.js
index 5c45e1d..1a09a33 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -2,11 +2,13 @@ import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
+import eslintPlugin from 'vite-plugin-eslint'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
+ eslintPlugin(),
],
resolve: {
alias: {