Skip to content

Commit

Permalink
chore(website): configure eslint config similiar to asyncapi website (#…
Browse files Browse the repository at this point in the history
…2031)

Co-authored-by: Ashmit JaiSarita Gupta <[email protected]>
  • Loading branch information
jerensl and devilkiller-ag authored Jun 29, 2024
1 parent 11fe5dd commit 1b763f2
Show file tree
Hide file tree
Showing 103 changed files with 5,026 additions and 3,423 deletions.
3 changes: 2 additions & 1 deletion modelina-website/.eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
node_modules
.next
.next
/**/*.css
12 changes: 0 additions & 12 deletions modelina-website/.eslintrc

This file was deleted.

227 changes: 226 additions & 1 deletion modelina-website/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,228 @@
{
"extends": "next/core-web-vitals"
"root": true,
"extends": ["airbnb-base", "next/core-web-vitals", "eslint:recommended", "prettier"],
"env": {
"browser": true,
"es2021": true,
"node": true
},
"plugins": ["react", "jsx-a11y"],
"rules": {
"max-len": [
"warn",
{
"code": 120,
"ignoreUrls": true,
"ignorePattern": "(className=\\{[\\s\\S]*\\}|.*\\}|'.*'|className='.*')" // Ignore classnames
}
]
},
"globals": {
"React": true,
"expect": true,
"jsdom": true,
"JSX": true
},
"overrides": [
// Configuration for TypeScript files
{
"files": ["**/*.ts", "**/*.tsx", "netlify/*.ts"],
"plugins": ["@typescript-eslint", "tailwindcss", "unused-imports", "simple-import-sort"],
"extends": ["plugin:tailwindcss/recommended", "airbnb-typescript", "next/core-web-vitals"],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "./tsconfig.json"
},
"rules": {
"react/destructuring-assignment": "off", // Vscode doesn't support automatically destructuring, it's a pain to add a new variable
"react/require-default-props": "off", // Allow non-defined react props as undefined
"react/jsx-props-no-spreading": "off", // _app.tsx uses spread operator and also, react-hook-form
"react-hooks/exhaustive-deps": "off", // Incorrectly report needed dependency with Next.js router
"@next/next/no-img-element": "off", // We currently not using next/image because it isn't supported with SSG mode
"@next/next/link-passhref": "off", // Only needed when the child of Link wraps an <a> tag
"@typescript-eslint/comma-dangle": "off", // Avoid conflict rule between Eslint and Prettier
"@typescript-eslint/indent": "off", // Avoid conflict rule between Eslint and Prettier
"@typescript-eslint/consistent-type-imports": "error", // Ensure `import type` is used when it's necessary
"no-restricted-syntax": ["error", "ForInStatement", "LabeledStatement", "WithStatement"], // Overrides Airbnb configuration and enable no-restricted-syntax
"import/prefer-default-export": "off", // Named export is easier to refactor automatically
"tailwindcss/no-custom-classname": "off", // Disabled otherwise nightmare to allow each custom tailwind classes
"simple-import-sort/imports": "error", // Import configuration for `eslint-plugin-simple-import-sort`
"simple-import-sort/exports": "error", // Export configuration for `eslint-plugin-simple-import-sort`
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/no-unused-expressions": [
"error",
{
"allowShortCircuit": true
}
],
"class-methods-use-this": "off",
"unused-imports/no-unused-imports": "error",
"unused-imports/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
// Variables
"init-declarations": "off",
"no-catch-shadow": "off",
"no-delete-var": "error",
"no-label-var": "error",
"no-restricted-globals": "error",
"no-shadow": "off",
"no-shadow-restricted-names": "error",
"no-undef": "error",
"no-undef-init": "error",
"no-undefined": "off",
"no-unused-vars": "error",
"no-use-before-define": "error",
// Styling
"array-bracket-newline": "off",
"array-bracket-spacing": "error",
"array-element-newline": "off",
"block-spacing": "error",
"brace-style": [
"off",
"stroustrup",
{
"allowSingleLine": true
}
],
"camelcase": "off",
"capitalized-comments": "off",
"comma-dangle": ["error", "never"],
"comma-spacing": [
2,
{
"before": false,
"after": true
}
],
"comma-style": ["error", "last"],
"eol-last": "error",
"func-call-spacing": "error",
"func-name-matching": "error",
"func-names": "off",
"func-style": "off",
"jsx-quotes": ["error", "prefer-single"],
"key-spacing": "error",
"keyword-spacing": "error",
"line-comment-position": "off",
"linebreak-style": ["error", "unix"],
"lines-around-comment": [
"error",
{
"beforeBlockComment": true,
"afterBlockComment": false,
"beforeLineComment": false,
"afterLineComment": false,
"allowBlockStart": true,
"allowBlockEnd": false,
"allowObjectStart": true,
"allowObjectEnd": false,
"allowArrayStart": true,
"allowArrayEnd": false
}
],
"max-depth": "error",
"max-lines": [
"error",
{
"max": 2000
}
],
"max-nested-callbacks": "error",
"max-statements-per-line": [
"error",
{
"max": 2
}
],
"multiline-comment-style": "off",
"multiline-ternary": "off",
"new-cap": "off",
"new-parens": "error",
"newline-per-chained-call": [
"error",
{
"ignoreChainWithDepth": 4
}
],
"newline-after-var": ["error", "always"],
"no-array-constructor": "error",
"no-lonely-if": "error",
"no-mixed-operators": "off",
"no-mixed-spaces-and-tabs": "error",
"no-multi-assign": "off",
"no-multiple-empty-lines": [
"error",
{
"max": 1
}
],
"no-negated-condition": "error",
"no-nested-ternary": "error",
"no-new-object": "error",
"no-plusplus": "off",
"no-tabs": "error",
"no-ternary": "off",
"no-trailing-spaces": "error",
"no-unneeded-ternary": "error",
"no-whitespace-before-property": "error",
"nonblock-statement-body-position": "error",
"object-curly-newline": "off",
"object-curly-spacing": ["error", "always"],
"object-property-newline": "off",
"padded-blocks": ["error", "never"],
"padding-line-between-statements": [
"error",
{
"blankLine": "always",
"prev": "*",
"next": "return"
},
{
"blankLine": "always",
"prev": ["const", "let", "var"],
"next": "*"
},
{
"blankLine": "any",
"prev": ["const", "let", "var"],
"next": ["const", "let", "var"]
}
],
"quote-props": ["error", "as-needed"],
"quotes": [
"error",
"single",
{
"avoidEscape": true
}
],
"require-jsdoc": "warn",
"semi": "error",
"semi-spacing": "error",
"semi-style": ["error", "last"],
"sort-keys": "off",
"sort-vars": "off",
"space-before-blocks": "error",
"space-before-function-paren": "error",
"space-in-parens": "error",
"space-infix-ops": "error",
"space-unary-ops": "error",
"spaced-comment": [
"error",
"always",
{
"block": {
"exceptions": ["!"]
}
}
],
"switch-colon-spacing": "error"
}
},
{
"files": ["components/logos/*"],
"rules": {
"max-len": "off"
}
}
]
}
16 changes: 16 additions & 0 deletions modelina-website/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"singleQuote": true,
"endOfLine": "auto",
"semi": true,
"tabWidth": 2,
"trailingComma": "none",
"arrowParens": "always",
"bracketSpacing": true,
"jsxBracketSameLine": false,
"useTabs": false,
"quoteProps": "as-needed",
"insertPragma": false,
"requirePragma": false,
"jsxSingleQuote": true,
"printWidth": 120
}
13 changes: 9 additions & 4 deletions modelina-website/next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,13 @@ if (isGithubActions) {

/** @type {import('next').NextConfig} */
const nextConfig = {
assetPrefix: assetPrefix,
basePath: basePath
}
assetPrefix,
basePath,
eslint: {
// Warning: This allows production builds to successfully complete even if
// your project has ESLint errors.
ignoreDuringBuilds: true
}
};

module.exports = nextConfig
module.exports = nextConfig;
Loading

0 comments on commit 1b763f2

Please sign in to comment.