Jordan Sexton 3 жил өмнө
parent
commit
c4855fbb06

+ 0 - 61
.eslint/eslint-plugin-relative-files/index.js

@@ -1,61 +0,0 @@
-const { existsSync } = require('fs');
-const { dirname, join } = require('path');
-
-module.exports.rules = {
-    'must-end-with-js': {
-        meta: {
-            fixable: true,
-        },
-        create: function (context) {
-            const fixSourcePath = (node) => {
-                const source = node.source.value;
-                // if it's a relative import or export that doesn't end with .js
-                if (source.startsWith('.') && !source.endsWith('.js')) {
-                    const fullPath = join(dirname(context.getFilename()), node.source.value);
-                    // and a .tsx? file exists
-                    if (existsSync(`${fullPath}.ts`) || existsSync(`${fullPath}.tsx`)) {
-                        context.report({
-                            node,
-                            message: 'Relative imports and exports must end with .js',
-                            fix: (fixer) => fixer.replaceText(node.source, `'${node.source.value}.js'`),
-                        });
-                    }
-                }
-            };
-
-            return {
-                ExportAllDeclaration: fixSourcePath,
-                ExportNamedDeclaration: fixSourcePath,
-                ImportDeclaration: fixSourcePath,
-                ImportNamespaceSpecifier: fixSourcePath,
-            };
-        },
-    },
-};
-
-// module.exports.rules = {
-//     'must-end-with-js': {
-//         meta: {
-//             fixable: true,
-//         },
-//         create(context) {
-//             function rule(node) {
-//                 if (node.source.value.startsWith('.') && !node.source.value.endsWith('.js')) {
-//                     context.report({
-//                         node,
-//                         message: 'Relative imports and exports must end with .js',
-//                         fix(fixer) {
-//                             return fixer.replaceText(node.source, `'${node.source.value}.js'`);
-//                         },
-//                     });
-//                 }
-//             }
-//
-//             return {
-//                 ExportAllDeclaration: rule,
-//                 ExportNamedDeclaration: rule,
-//                 ImportDeclaration: rule,
-//             };
-//         },
-//     },
-// };

+ 6 - 7
.eslintrc

@@ -5,15 +5,16 @@
         "plugin:@typescript-eslint/recommended",
         "plugin:prettier/recommended",
         "plugin:react/recommended",
-        "plugin:react-hooks/recommended"
+        "plugin:react-hooks/recommended",
+        "plugin:require-extensions/recommended"
     ],
     "parser": "@typescript-eslint/parser",
     "plugins": [
-        "relative-files",
         "@typescript-eslint",
         "prettier",
         "react",
-        "react-hooks"
+        "react-hooks",
+        "require-extensions"
     ],
     "settings": {
         "react": {
@@ -31,12 +32,10 @@
     "overrides": [
         {
             "files": [
-                "packages/core/**/*.ts*",
-                "packages/ui/**/*.ts*",
-                "packages/wallets/**/*.ts*"
+                "packages/starter/**/*"
             ],
             "rules": {
-                "relative-files/must-end-with-js": "error"
+                "require-extensions/require-extensions": "off"
             }
         }
     ]

+ 1 - 1
package.json

@@ -41,7 +41,7 @@
         "eslint-plugin-prettier": "^4.2.1",
         "eslint-plugin-react": "^7.30.1",
         "eslint-plugin-react-hooks": "^4.6.0",
-        "eslint-plugin-relative-files": "file:.eslint/eslint-plugin-relative-files",
+        "eslint-plugin-require-extensions": "^0.1.1",
         "gh-pages": "^4.0.0",
         "pnpm": "^7.8.0",
         "prettier": "^2.7.1",

+ 12 - 9
pnpm-lock.yaml

@@ -17,7 +17,7 @@ importers:
       eslint-plugin-prettier: ^4.2.1
       eslint-plugin-react: ^7.30.1
       eslint-plugin-react-hooks: ^4.6.0
-      eslint-plugin-relative-files: file:.eslint/eslint-plugin-relative-files
+      eslint-plugin-require-extensions: ^0.1.1
       gh-pages: ^4.0.0
       pnpm: ^7.8.0
       prettier: ^2.7.1
@@ -33,7 +33,7 @@ importers:
       eslint-plugin-prettier: 4.2.1_i2cojdczqdiurzgttlwdgf764e
       eslint-plugin-react: 7.31.0_eslint@8.22.0
       eslint-plugin-react-hooks: 4.6.0_eslint@8.22.0
-      eslint-plugin-relative-files: file:.eslint/eslint-plugin-relative-files
+      eslint-plugin-require-extensions: 0.1.1_eslint@8.22.0
       gh-pages: 4.0.0
       pnpm: 7.9.5
       prettier: 2.7.1
@@ -8703,7 +8703,7 @@ packages:
     dev: false
 
   /ee-first/1.1.1:
-    resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=}
+    resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
 
   /eip1193-provider/1.0.1:
     resolution: {integrity: sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==}
@@ -9252,6 +9252,15 @@ packages:
       semver: 6.3.0
       string.prototype.matchall: 4.0.7
 
+  /eslint-plugin-require-extensions/0.1.1_eslint@8.22.0:
+    resolution: {integrity: sha512-qSF0vPCxFck0ady5QmPc57ehGbJkqNBXFaBOrGD6XoLFckLdxxraNVj9P4JOxa9AefIhsLJVe3YMGBhrg4bG0A==}
+    engines: {node: '>=16'}
+    peerDependencies:
+      eslint: '*'
+    dependencies:
+      eslint: 8.22.0
+    dev: true
+
   /eslint-plugin-testing-library/5.6.0_4rv7y5c6xz3vfxwhbrcxxi73bq:
     resolution: {integrity: sha512-y63TRzPhGCMNsnUwMGJU1MFWc/3GvYw+nzobp9QiyNTTKsgAt5RKAOT1I34+XqVBpX1lC8bScoOjCkP7iRv0Mw==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'}
@@ -18477,9 +18486,3 @@ packages:
   /yocto-queue/0.1.0:
     resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
     engines: {node: '>=10'}
-
-  file:.eslint/eslint-plugin-relative-files:
-    resolution: {directory: .eslint/eslint-plugin-relative-files, type: directory}
-    name: eslint-plugin-relative-files
-    version: 0.0.0
-    dev: true