From e2f8302100f8cc3bf40820e1b7697684059dcec2 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 15 Nov 2022 12:55:41 +0100 Subject: [PATCH] Add rules for hybrid Node.js and browser environments (#242) * Add package for hybrid Node.js and browser environments * Add default message to every item * Fix changelog formatting * Use existing no-undef and import/no-nodejs-modules rules * Fix yarn.lock * Add env * Add env to test --- .eslintrc.js | 5 +++++ packages/base/rules-snapshot.json | 1 + packages/base/src/index.js | 1 + packages/typescript/rules-snapshot.json | 2 +- packages/typescript/src/index.js | 1 + packages/typescript/src/index.test.js | 5 +++++ 6 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index 74b31e8d..53df54ad 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,6 +1,10 @@ module.exports = { root: true, + env: { + node: true, + }, + parserOptions: { ecmaVersion: 2018, }, @@ -13,6 +17,7 @@ module.exports = { rules: { 'import/no-dynamic-require': 'off', + 'import/no-nodejs-modules': 'off', 'node/global-require': 'off', 'node/no-process-exit': 'off', 'node/no-sync': 'off', diff --git a/packages/base/rules-snapshot.json b/packages/base/rules-snapshot.json index 6db4f4c3..d938a4f3 100644 --- a/packages/base/rules-snapshot.json +++ b/packages/base/rules-snapshot.json @@ -119,6 +119,7 @@ "import/no-named-as-default": "error", "import/no-named-as-default-member": "error", "import/no-named-default": "error", + "import/no-nodejs-modules": "error", "import/no-self-import": "error", "import/no-unassigned-import": "error", "import/no-unresolved": [ diff --git a/packages/base/src/index.js b/packages/base/src/index.js index 504ef566..3f62a00b 100644 --- a/packages/base/src/index.js +++ b/packages/base/src/index.js @@ -313,6 +313,7 @@ module.exports = { 'import/no-named-as-default': 'error', 'import/no-named-as-default-member': 'error', 'import/no-named-default': 'error', + 'import/no-nodejs-modules': 'error', 'import/no-self-import': 'error', 'import/no-unassigned-import': 'error', 'import/no-unresolved': [ diff --git a/packages/typescript/rules-snapshot.json b/packages/typescript/rules-snapshot.json index 5014ee0d..7679ba03 100644 --- a/packages/typescript/rules-snapshot.json +++ b/packages/typescript/rules-snapshot.json @@ -101,7 +101,7 @@ "no-shadow": "off", "no-this-before-super": "off", "no-throw-literal": "off", - "no-undef": "off", + "no-undef": "error", "no-unreachable": "off", "no-unsafe-negation": "off", "no-unused-expressions": "off", diff --git a/packages/typescript/src/index.js b/packages/typescript/src/index.js index 45a1e7f8..3cf47ef1 100644 --- a/packages/typescript/src/index.js +++ b/packages/typescript/src/index.js @@ -32,6 +32,7 @@ module.exports = { 'import/no-unresolved': 'off', // Our rules + 'no-undef': 'error', '@typescript-eslint/array-type': 'error', '@typescript-eslint/consistent-type-assertions': 'error', '@typescript-eslint/consistent-type-definitions': ['error', 'type'], diff --git a/packages/typescript/src/index.test.js b/packages/typescript/src/index.test.js index 3ac8871d..1635b752 100644 --- a/packages/typescript/src/index.test.js +++ b/packages/typescript/src/index.test.js @@ -6,6 +6,11 @@ describe('index', () => { it('is a valid ESLint config', async () => { const api = new ESLint({ baseConfig: config, + overrideConfig: { + env: { + node: true, + }, + }, useEslintrc: false, });