Skip to content

Commit

Permalink
[IMP] pre-commmit: Run prettier and eslint as local hooks and update …
Browse files Browse the repository at this point in the history
…versions in v18
  • Loading branch information
PabloEForgeFlow committed Oct 11, 2024
1 parent 37c9cd7 commit 779ac1d
Show file tree
Hide file tree
Showing 6 changed files with 243 additions and 16 deletions.
2 changes: 1 addition & 1 deletion .prettierrc.yml
41 changes: 26 additions & 15 deletions src/.pre-commit-config.yaml.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{%- if odoo_version < 15 %}
{%- set repo_rev.autoflake = "v1.4" %}
{%- set repo_rev.black = "22.3.0" %}
{%- set repo_rev.eslint = "v7.8.1" %}
{%- set repo_rev.eslint = "7.8.1" %}
{%- set repo_rev.flake8 = "3.8.3" %}
{%- set repo_rev.flake8_bugbear = "20.1.4" %}
{%- set repo_rev.isort = "5.12.0" %}
Expand All @@ -23,7 +23,7 @@
{%- elif odoo_version < 16 %}
{%- set repo_rev.autoflake = "v1.4" %}
{%- set repo_rev.black = "22.3.0" %}
{%- set repo_rev.eslint = "v7.32.0" %}
{%- set repo_rev.eslint = "7.32.0" %}
{%- set repo_rev.flake8 = "3.9.2" %}
{%- set repo_rev.flake8_bugbear = "21.9.2" %}
{%- set repo_rev.isort = "5.12.0" %}
Expand All @@ -41,7 +41,7 @@
{%- elif odoo_version < 18 %}
{%- set repo_rev.autoflake = "v1.6.1" %}
{%- set repo_rev.black = "22.8.0" %}
{%- set repo_rev.eslint = "v8.24.0" %}
{%- set repo_rev.eslint = "8.24.0" %}
{%- set repo_rev.flake8 = "3.9.2" %}
{%- set repo_rev.flake8_bugbear = "21.9.2" %}
{%- set repo_rev.isort = "5.12.0" %}
Expand All @@ -58,16 +58,17 @@
{%- else %}
{%- set repo_rev.autoflake = "v1.6.1" %}
{%- set repo_rev.black = "22.8.0" %}
{%- set repo_rev.eslint = "v8.24.0" %}
{%- set repo_rev.eslint = "9.12.0" %}
{%- set repo_rev.eslint_jsdoc = "50.3.1" %}
{%- set repo_rev.flake8 = "3.9.2" %}
{%- set repo_rev.flake8_bugbear = "21.9.2" %}
{%- set repo_rev.isort = "5.12.0" %}
{%- set repo_rev.maintainer_tools = "bf9ecb9938b6a5deca0ff3d870fbd3f33341fded" %}
{%- set repo_rev.nodejs = "16.17.0" %}
{%- set repo_rev.nodejs = "22.9.0" %}
{%- set repo_rev.odoo_pre_commit_hooks = "v0.0.33" %}
{%- set repo_rev.pre_commit_hooks = "v4.6.0" %}
{%- set repo_rev.prettier = "2.7.1" %}
{%- set repo_rev.prettier_xml = "2.2.0" %}
{%- set repo_rev.prettier = "3.3.3" %}
{%- set repo_rev.prettier_xml = "3.4.1" %}
{%- set repo_rev.pylint_odoo = "v9.1.2" %}
{%- set repo_rev.pyupgrade = "v2.38.2" %}
{%- set repo_rev.ruff = "v0.6.8" %}
Expand Down Expand Up @@ -178,25 +179,35 @@ repos:
hooks:
- id: black
{%- endif %}
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v{{ repo_rev.prettier }}
- repo: local
hooks:
- id: prettier
name: prettier (with plugin-xml)
entry: prettier
args:
- --write
- --list-different
- --ignore-unknown
types: [text]
files: \.(css|htm|html|js|json|jsx|less|md|scss|toml|ts|xml|yaml|yml)$
language: node
additional_dependencies:
- "prettier@{{ repo_rev.prettier }}"
- "@prettier/plugin-xml@{{ repo_rev.prettier_xml }}"
args:
- --plugin=@prettier/plugin-xml
files: \.(css|htm|html|js|json|jsx|less|md|scss|toml|ts|xml|yaml|yml)$
- repo: https://github.com/pre-commit/mirrors-eslint
rev: {{ repo_rev.eslint }}
- repo: local
hooks:
- id: eslint
verbose: true
name: eslint
entry: eslint
args:
- --color
- --fix
verbose: true
types: [javascript]
language: node
additional_dependencies:
- "eslint@{{ repo_rev.eslint }}"
- "eslint-plugin-jsdoc@{{ repo_rev.eslint_jsdoc }}"
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: {{ repo_rev.pre_commit_hooks }}
hooks:
Expand Down
202 changes: 202 additions & 0 deletions src/{% if odoo_version >= 18 %}eslint.config.cjs{% endif %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
jsdoc = require("eslint-plugin-jsdoc");

config = [{
plugins: {
jsdoc,
},

languageOptions: {
globals: {
_: "readonly",
$: "readonly",
fuzzy: "readonly",
jQuery: "readonly",
moment: "readonly",
odoo: "readonly",
openerp: "readonly",
owl: "readonly",
luxon: "readonly",
},

ecmaVersion: 2022,
sourceType: "script",
},

rules: {
"accessor-pairs": "warn",
"array-callback-return": "warn",
"callback-return": "warn",
"capitalized-comments": ["warn", "always", {
ignoreConsecutiveComments: true,
ignoreInlineComments: true,
}],
complexity: ["warn", 15],
"constructor-super": "warn",
"dot-notation": "warn",
eqeqeq: "warn",
"global-require": "warn",
"handle-callback-err": "warn",
"id-blacklist": "warn",
"id-match": "warn",
"init-declarations": "error",
"max-depth": "warn",
"max-nested-callbacks": "warn",
"max-statements-per-line": "warn",
"no-alert": "warn",
"no-array-constructor": "warn",
"no-caller": "warn",
"no-case-declarations": "warn",
"no-class-assign": "warn",
"no-cond-assign": "error",
"no-const-assign": "error",
"no-constant-condition": "warn",
"no-control-regex": "warn",
"no-debugger": "error",
"no-delete-var": "warn",
"no-div-regex": "warn",
"no-dupe-args": "error",
"no-dupe-class-members": "error",
"no-dupe-keys": "error",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-else-return": "warn",
"no-empty-character-class": "warn",
"no-empty-function": "error",
"no-empty-pattern": "error",
"no-empty": "warn",
"no-eq-null": "error",
"no-eval": "error",
"no-ex-assign": "error",
"no-extend-native": "warn",
"no-extra-bind": "warn",
"no-extra-boolean-cast": "warn",
"no-extra-label": "warn",
"no-fallthrough": "warn",
"no-func-assign": "error",
"no-global-assign": "error",
"no-implicit-coercion": ["warn", {
allow: ["~"],
}],
"no-implicit-globals": "warn",
"no-implied-eval": "warn",
"no-inline-comments": "warn",
"no-inner-declarations": "warn",
"no-invalid-regexp": "warn",
"no-irregular-whitespace": "warn",
"no-iterator": "warn",
"no-label-var": "warn",
"no-labels": "warn",
"no-lone-blocks": "warn",
"no-lonely-if": "error",
"no-mixed-requires": "error",
"no-multi-str": "warn",
"no-native-reassign": "error",
"no-negated-condition": "warn",
"no-negated-in-lhs": "error",
"no-new-func": "warn",
"no-new-object": "warn",
"no-new-require": "warn",
"no-new-symbol": "warn",
"no-new-wrappers": "warn",
"no-new": "warn",
"no-obj-calls": "warn",
"no-octal-escape": "warn",
"no-octal": "warn",
"no-param-reassign": "warn",
"no-path-concat": "warn",
"no-process-env": "warn",
"no-process-exit": "warn",
"no-proto": "warn",
"no-prototype-builtins": "warn",
"no-redeclare": "warn",
"no-regex-spaces": "warn",
"no-restricted-globals": "warn",
"no-restricted-imports": "warn",
"no-restricted-modules": "warn",
"no-restricted-syntax": "warn",
"no-return-assign": "error",
"no-script-url": "warn",
"no-self-assign": "warn",
"no-self-compare": "warn",
"no-sequences": "warn",
"no-shadow-restricted-names": "warn",
"no-shadow": "warn",
"no-sparse-arrays": "warn",
"no-sync": "warn",
"no-this-before-super": "warn",
"no-throw-literal": "warn",
"no-undef-init": "warn",
"no-undef": "error",
"no-unmodified-loop-condition": "warn",
"no-unneeded-ternary": "error",
"no-unreachable": "error",
"no-unsafe-finally": "error",
"no-unused-expressions": "error",
"no-unused-labels": "error",
"no-unused-vars": "error",
"no-use-before-define": "error",
"no-useless-call": "warn",
"no-useless-computed-key": "warn",
"no-useless-concat": "warn",
"no-useless-constructor": "warn",
"no-useless-escape": "warn",
"no-useless-rename": "warn",
"no-void": "warn",
"no-with": "warn",
"operator-assignment": ["error", "always"],
"prefer-const": "warn",
radix: "warn",
"require-yield": "warn",
"sort-imports": "warn",
"spaced-comment": ["error", "always"],
strict: ["error", "function"],
"use-isnan": "error",

"jsdoc/check-tag-names": "warn",
"jsdoc/check-types": "warn",
"jsdoc/require-param-description": "off",
"jsdoc/require-return": "off",
"jsdoc/require-return-description": "off",
"jsdoc/require-return-type": "off",

"valid-typeof": "warn",
yoda: "warn",
},

settings: {
jsdoc: {
tagNamePreference: {
arg: "param",
argument: "param",
augments: "extends",
constructor: "class",
exception: "throws",
func: "function",
method: "function",
prop: "property",
return: "returns",
virtual: "abstract",
yield: "yields",
},
preferredTypes: {
array: "Array",
bool: "Boolean",
boolean: "Boolean",
number: "Number",
object: "Object",
str: "String",
string: "String",
},
},
},

}, {
files: ["**/*.esm.js"],

languageOptions: {
ecmaVersion: 5,
sourceType: "module",
},
}];

module.exports = config
14 changes: 14 additions & 0 deletions src/{% if odoo_version >= 18 %}prettier.config.cjs{% endif %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/** @type {import('prettier').Config} */

const config = {
// https://github.com/prettier/prettier/issues/15388#issuecomment-1717746872
plugins: [require.resolve("@prettier/plugin-xml")],
bracketSpacing: false,
printWidth: 88,
proseWrap: "always",
semi: true,
trailingComma: "es5",
xmlWhitespaceSensitivity: "preserve",
};

module.exports = config;

0 comments on commit 779ac1d

Please sign in to comment.