diff --git a/.eslintrc.js b/.eslintrc.js index 28c7ccb..819e7d8 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -17,7 +17,7 @@ module.exports = { '@vue/eslint-config-typescript', 'plugin:prettier-vue/recommended' ], - plugins: ['simple-import-sort'], + plugins: ['simple-import-sort', 'unused-imports'], rules: { 'no-console': DEV_TOOL_ACTIVATED, 'no-debugger': DEV_TOOL_ACTIVATED, @@ -46,7 +46,8 @@ module.exports = { } ], 'simple-import-sort/imports': 'error', - 'simple-import-sort/exports': 'error' + 'simple-import-sort/exports': 'error', + 'unused-imports/no-unused-imports': 'error' }, overrides: [ { diff --git a/package.json b/package.json index 3958139..0768df9 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@octokit/rest": "^20.0.1", "@toycode/markdown-it-class": "^1.2.4", "@vueuse/core": "^10.3.0", + "@vueuse/router": "^10.3.0", "bulma": "^0.9.4", "date-fns": "^2.30.0", "isomorphic-fetch": "^3.0.0", @@ -54,6 +55,7 @@ "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier-vue": "^4.2.0", "eslint-plugin-simple-import-sort": "^10.0.0", + "eslint-plugin-unused-imports": "^3.0.0", "eslint-plugin-vue": "^9.16.1", "prettier": "^3.0.1", "sass": "^1.64.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 18597bc..0c82c45 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,9 @@ dependencies: '@vueuse/core': specifier: ^10.3.0 version: 10.3.0(vue@3.3.4) + '@vueuse/router': + specifier: ^10.3.0 + version: 10.3.0(vue-router@4.2.4)(vue@3.3.4) bulma: specifier: ^0.9.4 version: 0.9.4 @@ -130,6 +133,9 @@ devDependencies: eslint-plugin-simple-import-sort: specifier: ^10.0.0 version: 10.0.0(eslint@8.46.0) + eslint-plugin-unused-imports: + specifier: ^3.0.0 + version: 3.0.0(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0) eslint-plugin-vue: specifier: ^9.16.1 version: 9.16.1(eslint@8.46.0) @@ -2597,6 +2603,19 @@ packages: resolution: {integrity: sha512-Ema3YhNOa4swDsV0V7CEY5JXvK19JI/o1szFO1iWxdFg3vhdFtCtSTP26PCvbUpnUtNHBY2wx5y3WDXND5Pvnw==} dev: false + /@vueuse/router@10.3.0(vue-router@4.2.4)(vue@3.3.4): + resolution: {integrity: sha512-WCx/BAxO0eInuOcyNRBxDLS16tnNqzdaR6/babg6AUgAIL0TCfmHBh46wJa6hhg+NMGjd6HzCaktxBasp+0c0A==} + peerDependencies: + vue-router: '>=4.0.0-rc.1' + dependencies: + '@vueuse/shared': 10.3.0(vue@3.3.4) + vue-demi: 0.14.5(vue@3.3.4) + vue-router: 4.2.4(vue@3.3.4) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + /@vueuse/shared@10.3.0(vue@3.3.4): resolution: {integrity: sha512-kGqCTEuFPMK4+fNWy6dUOiYmxGcUbtznMwBZLC1PubidF4VZY05B+Oht7Jh7/6x4VOWGpvu3R37WHi81cKpiqg==} dependencies: @@ -3427,6 +3446,21 @@ packages: eslint: 8.46.0 dev: true + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.2.1)(eslint@8.46.0): + resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^6.0.0 + eslint: ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 6.2.1(@typescript-eslint/parser@6.2.1)(eslint@8.46.0)(typescript@4.5.3) + eslint: 8.46.0 + eslint-rule-composer: 0.3.0 + dev: true + /eslint-plugin-vue@9.16.1(eslint@8.46.0): resolution: {integrity: sha512-2FtnTqazA6aYONfDuOZTk0QzwhAwi7Z4+uJ7+GHeGxcKapjqWlDsRWDenvyG/utyOfAS5bVRmAG3cEWiYEz2bA==} engines: {node: ^14.17.0 || >=16.0.0} @@ -3445,6 +3479,11 @@ packages: - supports-color dev: true + /eslint-rule-composer@0.3.0: + resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} + engines: {node: '>=4.0.0'} + dev: true + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'}