From f3b5642f16462d3bc0d49bfc30e7a01c6390836d Mon Sep 17 00:00:00 2001 From: Sped0n Date: Sun, 29 Oct 2023 22:08:26 +0800 Subject: [PATCH] chore(eslint): update eslint configuration to include recommended rules and plugins - Add "eslint:recommended" and "plugin:prettier/recommended" to the "extends" array to include recommended rules and prettier plugin. - Add "plugin:@typescript-eslint/recommended" to the "extends" array to include recommended rules for TypeScript. - Add "@typescript-eslint" and "prettier" to the "plugins" array to enable TypeScript and prettier linting. - Update "parserOptions" to use the latest ECMAScript version and specify the project path. - Add "sort-imports" rule to sort imports in a specific order and ignore case. - Add "import/no-unresolved" rule to enforce resolving of imports. - Add "import/order" rule to enforce a specific order for imports. - Update "settings" to specify the TypeScript project path for import resolver. chore(prettier): update prettier configuration to include additional plugins - Add "prettier-plugin-organize-imports" to the "plugins" array to enable organizing imports. - Update "overrides" to include "*.html" files for prettier formatting. feat(package.json): add "swiper" dependency - Add "swiper" dependency with version "^11.0.3" to the "dependencies" section. --- .eslintrc.json | 69 ++++++++++++++++++++++++++++----------- .prettierrc.json | 2 +- package.json | 5 ++- pnpm-lock.yaml | 84 ++++++++++++++++++++++++++++++++++++++++++++---- 4 files changed, 133 insertions(+), 27 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 122076d..222d475 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,23 +1,54 @@ { - "env": { - "browser": true, - "es2021": true - }, - "extends": [ - "standard-with-typescript", - "prettier" + "env": { + "browser": true, + "es2021": true + }, + "extends": [ + "standard-with-typescript", + "prettier", + "eslint:recommended", + "plugin:prettier/recommended", + "plugin:@typescript-eslint/recommended" + ], + "overrides": [], + "plugins": ["prettier", "@typescript-eslint"], + "parserOptions": { + "ecmaVersion": "latest", + "project": "./tsconfig.json", + "sourceType": "module" + }, + "rules": { + "prettier/prettier": "error", + "arrow-body-style": "off", + "prefer-arrow-callback": "off", + "sort-imports": [ + "error", + { + "ignoreCase": false, + "ignoreDeclarationSort": true, + "ignoreMemberSort": false, + "memberSyntaxSortOrder": ["none", "all", "multiple", "single"], + "allowSeparatedGroups": true + } ], - "overrides": [ - ], - "plugins": ["prettier"], - "parserOptions": { - "ecmaVersion": "latest", - "project": "./tsconfig.json", - "sourceType": "module" - }, - "rules": { - "prettier/prettier": "error", - "arrow-body-style": "off", - "prefer-arrow-callback": "off" + "import/no-unresolved": "error", + "import/order": [ + "error", + { + "groups": ["builtin", "external", "internal", "parent", "sibling", "index"], + "newlines-between": "always", + "alphabetize": { + "order": "asc", + "caseInsensitive": true + } + } + ] + }, + "settings": { + "import/resolver": { + "typescript": { + "project": "./tsconfig.json" + } } + } } diff --git a/.prettierrc.json b/.prettierrc.json index 263da8b..78d451e 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -6,7 +6,7 @@ "trailingComma": "none", "bracketSpacing": true, "semi": false, - "plugins": ["prettier-plugin-go-template"], + "plugins": ["prettier-plugin-go-template", "prettier-plugin-organize-imports"], "overrides": [ { "files": ["*.html"], diff --git a/package.json b/package.json index 99b5cf5..e5696c1 100644 --- a/package.json +++ b/package.json @@ -32,15 +32,18 @@ "eslint-config-prettier": "^9.0.0", "eslint-config-standard": "^17.1.0", "eslint-config-standard-with-typescript": "^39.1.1", + "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-import": "^2.29.0", "eslint-plugin-n": "^16.2.0", "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-promise": "^6.1.1", "prettier": "3.0.3", "prettier-plugin-go-template": "^0.0.15", + "prettier-plugin-organize-imports": "^3.2.3", "typescript": "^5.2.2" }, "dependencies": { - "gsap": "^3.12.2" + "gsap": "^3.12.2", + "swiper": "^11.0.3" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7ad210..762beac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ dependencies: gsap: specifier: ^3.12.2 version: 3.12.2 + swiper: + specifier: ^11.0.3 + version: 11.0.3 devDependencies: '@typescript-eslint/eslint-plugin': @@ -28,9 +31,12 @@ devDependencies: eslint-config-standard-with-typescript: specifier: ^39.1.1 version: 39.1.1(@typescript-eslint/eslint-plugin@6.9.0)(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.2.0)(eslint-plugin-promise@6.1.1)(eslint@8.52.0)(typescript@5.2.2) + eslint-import-resolver-typescript: + specifier: ^3.6.1 + version: 3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.29.0)(eslint@8.52.0) eslint-plugin-import: specifier: ^2.29.0 - version: 2.29.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0) + version: 2.29.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) eslint-plugin-n: specifier: ^16.2.0 version: 16.2.0(eslint@8.52.0) @@ -46,6 +52,9 @@ devDependencies: prettier-plugin-go-template: specifier: ^0.0.15 version: 0.0.15(prettier@3.0.3) + prettier-plugin-organize-imports: + specifier: ^3.2.3 + version: 3.2.3(prettier@3.0.3)(typescript@5.2.2) typescript: specifier: ^5.2.2 version: 5.2.2 @@ -570,6 +579,14 @@ packages: esutils: 2.0.3 dev: true + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + /es-abstract@1.22.1: resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} engines: {node: '>= 0.4'} @@ -667,7 +684,7 @@ packages: '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) eslint: 8.52.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.0)(eslint-plugin-n@16.2.0)(eslint-plugin-promise@6.1.1)(eslint@8.52.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) eslint-plugin-n: 16.2.0(eslint@8.52.0) eslint-plugin-promise: 6.1.1(eslint@8.52.0) typescript: 5.2.2 @@ -685,7 +702,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.52.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) eslint-plugin-n: 16.2.0(eslint@8.52.0) eslint-plugin-promise: 6.1.1(eslint@8.52.0) dev: true @@ -700,7 +717,30 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint@8.52.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.29.0)(eslint@8.52.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.52.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.2 + is-core-module: 2.13.1 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -725,6 +765,7 @@ packages: debug: 3.2.7 eslint: 8.52.0 eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.0)(eslint-plugin-import@2.29.0)(eslint@8.52.0) transitivePeerDependencies: - supports-color dev: true @@ -740,7 +781,7 @@ packages: eslint: 8.52.0 dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0): + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} peerDependencies: @@ -759,7 +800,7 @@ packages: doctrine: 2.1.0 eslint: 8.52.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint@8.52.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -1130,6 +1171,10 @@ packages: get-intrinsic: 1.2.1 dev: true + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true @@ -1678,6 +1723,23 @@ packages: ulid: 2.3.0 dev: true + /prettier-plugin-organize-imports@3.2.3(prettier@3.0.3)(typescript@5.2.2): + resolution: {integrity: sha512-KFvk8C/zGyvUaE3RvxN2MhCLwzV6OBbFSkwZ2OamCrs9ZY4i5L77jQ/w4UmUr+lqX8qbaqVq6bZZkApn+IgJSg==} + peerDependencies: + '@volar/vue-language-plugin-pug': ^1.0.4 + '@volar/vue-typescript': ^1.0.4 + prettier: '>=2.0' + typescript: '>=2.9' + peerDependenciesMeta: + '@volar/vue-language-plugin-pug': + optional: true + '@volar/vue-typescript': + optional: true + dependencies: + prettier: 3.0.3 + typescript: 5.2.2 + dev: true + /prettier@3.0.3: resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} engines: {node: '>=14'} @@ -1869,6 +1931,11 @@ packages: engines: {node: '>= 0.4'} dev: true + /swiper@11.0.3: + resolution: {integrity: sha512-MyV9ooQsriAe2EibeamqewLjgCfSvl2xoyratl6S3ln5BXDL4BzlO6mxcbLMCzQL6Z60b/u0AS/nKrepL0+TAg==} + engines: {node: '>= 4.7.0'} + dev: false + /synckit@0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} @@ -1877,6 +1944,11 @@ packages: tslib: 2.6.1 dev: true + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true