Skip to content

Commit

Permalink
chore: configure eslint
Browse files Browse the repository at this point in the history
  • Loading branch information
mariuslundgard committed Oct 3, 2022
1 parent 92fdc2d commit 8debf98
Show file tree
Hide file tree
Showing 44 changed files with 742 additions and 159 deletions.
28 changes: 24 additions & 4 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,22 +1,42 @@
/dev/*/.next
/dev/*/.sanity
/dev/*/build
/dev/*/dist
/dev/*/node_modules
/dev/*/public
/dev/*/static

/etc

/examples/*/.sanity
/examples/*/dist
/examples/*/node_modules
/examples/*/static

# packages
/packages/*/coverage
/packages/*/lib
/packages/*/node_modules

/packages/@sanity/*/coverage
/packages/@sanity/*/lib
/packages/@sanity/*/node_modules
/packages/@sanity/client/umd
/packages/@sanity/cli/bin/sanity-cli.js

# legacy exports
/packages/@sanity/schema/_internal.js
/packages/@sanity/server/default-config.js
/packages/@sanity/util/content.js
/packages/@sanity/util/fs.js
/packages/@sanity/util/legacyDateFormat.js
/packages/@sanity/util/paths.js
/packages/sanity/_internal.js
/packages/sanity/_unstable.js
/packages/sanity/cli.js
/packages/sanity/desk.js
/packages/sanity/form.js

/packages/@sanity/cli/templates

test/v2-studio/dist/**
/test/v2-studio

*.json
*.css
Expand Down
91 changes: 66 additions & 25 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -1,57 +1,98 @@
/* eslint-disable strict */

'use strict'

module.exports = {
root: true,
parser: '@typescript-eslint/parser',
globals: {
JSX: true,
},
const baseConfig = {
env: {
node: true,
browser: true,
},
settings: {
react: {version: '17.0.0'},
},
extends: [
'sanity',
'sanity/react',
'sanity/import',
'plugin:@typescript-eslint/recommended',
'plugin:react-hooks/recommended',
'sanity/typescript',
'prettier',
],
parser: '@typescript-eslint/parser',
plugins: ['import', '@typescript-eslint', 'prettier', 'react', 'tsdoc'],
rules: {
'@typescript-eslint/no-var-requires': 'off', // prefer import/no-dynamic-require
'import/extensions': ['error', {pattern: {cjs: 'always', json: 'always'}}],
'import/named': 'off',
'import/no-named-as-default': 'off',
'import/no-named-as-default-member': 'off',
'import/no-unresolved': 'off',
'prettier/prettier': 'error',
'react/jsx-filename-extension': ['error', {extensions: ['.js', '.jsx', '.tsx']}],
'react/jsx-filename-extension': ['error', {extensions: ['.jsx']}],
'sort-imports': 'off', // prefer import/order

// tsdoc
'tsdoc/syntax': 'error',
},
plugins: ['import', '@typescript-eslint', 'prettier', 'react', 'tsdoc'],
settings: {
'import/extensions': ['.cjs', '.mjs', '.js', '.jsx', '.ts', '.tsx'],
'import/parsers': {
'@typescript-eslint/parser': ['.cjs', '.mjs', '.js', '.jsx', '.ts', '.tsx'],
},
'import/resolver': {
typescript: {
alwaysTryTypes: true,
project: [
'dev/*/tsconfig.json',
'examples/*/tsconfig.json',
'packages/@sanity/*/tsconfig.json',
'packages/*/tsconfig.json',
],
},
},
react: {version: '17.0.0'},
},
}

module.exports = {
...baseConfig,

overrides: [
// TypeScript files
{
files: ['*.{ts,tsx}'],
extends: [
'sanity',
'sanity/react',
'sanity/import',
'sanity/typescript',
'plugin:@typescript-eslint/recommended',
'plugin:react-hooks/recommended',
'prettier',
],
rules: {
'import/no-unresolved': 'off',
'no-undef': 'off',
'import/named': 'off',
// the normal `no-dupe-class-members` doesn't work with TS overrides
'no-dupe-class-members': 'off',
...baseConfig.rules,
'@typescript-eslint/no-dupe-class-members': ['error'],
'no-unused-vars': 'off',
'@typescript-eslint/no-shadow': ['error'],
'@typescript-eslint/no-unused-vars': ['warn'],
'no-undef': 'off',
'no-dupe-class-members': 'off', // doesn't work with TS overrides
'no-shadow': 'off',
'@typescript-eslint/no-shadow': ['error'],
'no-unused-vars': 'off',
'react/jsx-filename-extension': ['error', {extensions: ['.tsx']}],
},
},

// CommonJS files
{
files: ['./test/jest-setup.js', '*.test.{js,ts,tsx}'],
files: ['*.cjs'],
parserOptions: {
sourceType: 'script',
},
rules: {
...baseConfig.rules,
strict: ['error', 'global'],
},
},

// Test files
{
files: ['./test/**/*.js', './test/*.js', '*.test.{js,ts,tsx}'],
env: {jest: true},
},
],

root: true,
}
5 changes: 2 additions & 3 deletions babel.config.cjs
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
/* eslint-disable no-sync */
/* eslint-disable strict */

'use strict'

/* eslint-disable no-sync */

const fs = require('fs')
const path = require('path')

Expand Down
3 changes: 3 additions & 0 deletions cypress/.eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": ["plugin:cypress/recommended"]
}
3 changes: 0 additions & 3 deletions cypress/.eslintrc.js

This file was deleted.

5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
"dev:starter-studio": "yarn --cwd dev/starter-studio dev",
"dev:strict-studio": "yarn --cwd dev/strict-studio dev",
"dev:test-studio": "yarn --cwd dev/test-studio dev",
"eslint": "eslint --ext=.js,.jsx,.mjs,.ts,.tsx --quiet",
"eslint": "eslint --ext=.cjs,.js,.jsx,.mjs,.ts,.tsx --quiet",
"etl": "cd scripts/etl && node -r dotenv-flow/config -r esbuild-register main",
"init": "lerna clean --yes && run-s bootstrap build",
"lerna:clean": "lerna clean",
Expand Down Expand Up @@ -100,9 +100,8 @@
"eslint": "^8.23.0",
"eslint-config-prettier": "^8.3.0",
"eslint-config-sanity": "^6.0.0",
"eslint-import-resolver-webpack": "^0.13.2",
"eslint-import-resolver-typescript": "^3.5.1",
"eslint-plugin-cypress": "^2.12.1",
"eslint-plugin-es5": "^1.5.0",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-react": "^7.27.1",
Expand Down
11 changes: 11 additions & 0 deletions packages/@sanity/block-tools/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
'use strict'

const path = require('path')

const ROOT_PATH = path.resolve(__dirname, '../../..')

module.exports = {
rules: {
'import/no-extraneous-dependencies': ['error', {packageDir: [ROOT_PATH, __dirname]}],
},
}
1 change: 0 additions & 1 deletion packages/@sanity/block-tools/package.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// eslint-disable-next-line import/no-extraneous-dependencies
import {defineConfig} from '@sanity/pkg-utils'
import baseConfig from '../../../package.config'

Expand Down
10 changes: 0 additions & 10 deletions packages/@sanity/cli/.eslintrc

This file was deleted.

16 changes: 16 additions & 0 deletions packages/@sanity/cli/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
'use strict'

const path = require('path')

const ROOT_PATH = path.resolve(__dirname, '../../..')

module.exports = {
env: {
browser: false,
node: true,
},
rules: {
complexity: [1, 18],
'import/no-extraneous-dependencies': ['error', {packageDir: [ROOT_PATH, __dirname]}],
},
}
1 change: 0 additions & 1 deletion packages/@sanity/cli/package.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// eslint-disable-next-line import/no-extraneous-dependencies
import {defineConfig} from '@sanity/pkg-utils'
import baseConfig from '../../../package.config'

Expand Down
1 change: 1 addition & 0 deletions packages/@sanity/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
"devDependencies": {
"@rexxars/gitconfiglocal": "^3.0.1",
"@sanity/client": "^3.4.1",
"@sanity/eslint-config-studio": "^2.0.0",
"@sanity/generate-help-url": "^3.0.0",
"@sanity/types": "3.0.0-dev-preview.20",
"@sanity/util": "3.0.0-dev-preview.20",
Expand Down
8 changes: 0 additions & 8 deletions packages/@sanity/diff/.eslintrc

This file was deleted.

14 changes: 14 additions & 0 deletions packages/@sanity/diff/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
'use strict'

const path = require('path')

const ROOT_PATH = path.resolve(__dirname, '../../..')

module.exports = {
rules: {
complexity: 'off',
'max-depth': 'off',
'id-length': 'off',
'import/no-extraneous-dependencies': ['error', {packageDir: [ROOT_PATH, __dirname]}],
},
}
1 change: 0 additions & 1 deletion packages/@sanity/diff/package.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// eslint-disable-next-line import/no-extraneous-dependencies
import {defineConfig} from '@sanity/pkg-utils'
import baseConfig from '../../../package.config'

Expand Down
10 changes: 0 additions & 10 deletions packages/@sanity/export/.eslintrc

This file was deleted.

16 changes: 16 additions & 0 deletions packages/@sanity/export/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
'use strict'

const path = require('path')

const ROOT_PATH = path.resolve(__dirname, '../../..')

module.exports = {
env: {
browser: false,
node: true,
},
rules: {
'@typescript-eslint/no-var-requires': 'off',
'import/no-extraneous-dependencies': ['error', {packageDir: [ROOT_PATH, __dirname]}],
},
}
9 changes: 0 additions & 9 deletions packages/@sanity/import-cli/.eslintrc

This file was deleted.

15 changes: 15 additions & 0 deletions packages/@sanity/import-cli/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
'use strict'

const path = require('path')

const ROOT_PATH = path.resolve(__dirname, '../../..')

module.exports = {
env: {
browser: false,
node: true,
},
rules: {
'import/no-extraneous-dependencies': ['error', {packageDir: [ROOT_PATH, __dirname]}],
},
}
9 changes: 0 additions & 9 deletions packages/@sanity/import/.eslintrc

This file was deleted.

11 changes: 11 additions & 0 deletions packages/@sanity/import/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
'use strict'

const path = require('path')

const ROOT_PATH = path.resolve(__dirname, '../../..')

module.exports = {
rules: {
'import/no-extraneous-dependencies': ['error', {packageDir: [ROOT_PATH, __dirname]}],
},
}
11 changes: 11 additions & 0 deletions packages/@sanity/mutator/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
'use strict'

const path = require('path')

const ROOT_PATH = path.resolve(__dirname, '../../..')

module.exports = {
rules: {
'import/no-extraneous-dependencies': ['error', {packageDir: [ROOT_PATH, __dirname]}],
},
}
1 change: 0 additions & 1 deletion packages/@sanity/mutator/package.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// eslint-disable-next-line import/no-extraneous-dependencies
import {defineConfig} from '@sanity/pkg-utils'
import baseConfig from '../../../package.config'

Expand Down

0 comments on commit 8debf98

Please sign in to comment.