diff --git a/.nvmrc b/.nvmrc
index 25bf17f..0a47c85 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-18
\ No newline at end of file
+lts/iron
\ No newline at end of file
diff --git a/eslint.config.js b/eslint.config.js
index 32622cb..e206eab 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -3,28 +3,45 @@ import path from 'node:path'
import { fileURLToPath } from 'node:url'
-import js from '@eslint/js'
+import eslint from '@eslint/js'
import { FlatCompat } from '@eslint/eslintrc'
import { includeIgnoreFile } from '@eslint/compat'
-
+import tseslint from 'typescript-eslint'
+import eslintConfigPrettier from 'eslint-config-prettier'
import pluginVue from 'eslint-plugin-vue'
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
-const compat = new FlatCompat({
- baseDirectory: __dirname,
- recommendedConfig: js.configs.recommended,
- allConfig: js.configs.all,
-})
-
const gitignorePath = path.resolve(__dirname, '.gitignore')
export default [
includeIgnoreFile(gitignorePath),
- ...compat.extends('eslint:recommended', 'prettier'),
+ eslint.configs.recommended,
+ ...tseslint.configs.recommended,
...pluginVue.configs['flat/recommended'],
+ {
+ plugins: {
+ 'typescript-eslint': tseslint.plugin,
+ },
+ languageOptions: {
+ parserOptions: {
+ parser: tseslint.parser,
+ project: './tsconfig.json',
+ extraFileExtensions: ['.vue'],
+ sourceType: 'module',
+ },
+ },
+ rules: {
+ '@typescript-eslint/no-explicit-any': 'off',
+ '@typescript-eslint/ban-ts-comment': 'off',
+ },
+ },
+ {
+ files: ['**/*.js'],
+ extends: [tseslint.configs.disableTypeChecked],
+ },
{
files: ['src/**/*.(js|vue)'],
languageOptions: {
@@ -32,6 +49,6 @@ export default [
...globals.node,
},
},
- rules: {},
},
+ eslintConfigPrettier,
]
diff --git a/index.html b/index.html
index e44e524..b1c0d11 100644
--- a/index.html
+++ b/index.html
@@ -54,7 +54,7 @@
-
+
diff --git a/jsconfig.json b/jsconfig.json
deleted file mode 100644
index b2c0e02..0000000
--- a/jsconfig.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "include": ["./src/**/*"]
-}
diff --git a/package.json b/package.json
index df8de36..9aac3f6 100644
--- a/package.json
+++ b/package.json
@@ -8,13 +8,14 @@
"build": "NODE_OPTIONS=--openssl-legacy-provider vite build",
"serve": "NODE_OPTIONS=--openssl-legacy-provider vite preview",
"lint": "eslint --fix src",
- "prepare": "husky install"
+ "prepare": "husky install",
+ "type-check": "vue-tsc --noEmit"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.36",
"@fortawesome/free-solid-svg-icons": "^5.15.4",
"@fortawesome/vue-fontawesome": "^3.0.5",
- "axios": "^0.21.1",
+ "axios": "^1.7.2",
"k-progress-v3": "^1.0.0",
"regenerator-runtime": "^0.14.1",
"vue": "^3.3.9",
@@ -23,8 +24,11 @@
"vuex": "^4.1.0"
},
"devDependencies": {
+ "@babel/types": "^7.24.7",
"@eslint/compat": "^1.1.0",
+ "@types/node": "^20.14.8",
"@vitejs/plugin-vue": "^5.0.5",
+ "@vue/tsconfig": "^0.5.1",
"autoprefixer": "^10.4.19",
"eslint": "^9.5.0",
"eslint-config-prettier": "^9.1.0",
@@ -35,7 +39,9 @@
"prettier": "^3.3.2",
"tailwindcss": "^3.4.4",
"typescript": "^5.5.2",
- "vite": "^5.3.1"
+ "typescript-eslint": "^7.13.1",
+ "vite": "^5.3.1",
+ "vue-tsc": "^2.0.22"
},
"browserslist": [
"> 1%",
diff --git a/src/App.vue b/src/App.vue
index bfb1e0e..be6fb26 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,46 +1,25 @@
-
+