From 5cecef676d371e812e0698583494bc3f1c360cb3 Mon Sep 17 00:00:00 2001 From: nahuhh <50635951+nahuhh@users.noreply.github.com> Date: Fri, 11 Jul 2025 17:53:27 +0000 Subject: [PATCH] dev: add pre-commit hooks --- .djlintrc | 3 ++ .gitignore | 1 + .pre-commit-config.yaml | 40 +++++++++++++++++++++++ eslint.config.mjs | 71 +++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 1 + 5 files changed, 116 insertions(+) create mode 100644 .djlintrc create mode 100644 .pre-commit-config.yaml create mode 100644 eslint.config.mjs diff --git a/.djlintrc b/.djlintrc new file mode 100644 index 0000000..94df468 --- /dev/null +++ b/.djlintrc @@ -0,0 +1,3 @@ +{ +"indent": 2 +} diff --git a/.gitignore b/.gitignore index e62caca..c85c716 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ old/ build/ +venv/ *.pyc __pycache__ /dist/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..df232a0 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,40 @@ +repos: + # Common hooks + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: check-added-large-files + - id: check-merge-conflict + args: ["--assume-in-merge"] + - id: check-yaml + - id: detect-private-key + - id: end-of-file-fixer + - id: trailing-whitespace + args: ["--markdown-linebreak-ext=md"] + + # Black - Python formatter + - repo: https://github.com/psf/black + rev: 25.1.0 + hooks: + - id: black + exclude: (basicswap/contrib|basicswap/interface/contrib)/ + + # Flake8 - Lint Python + - repo: https://github.com/pycqa/flake8 + rev: 7.3.0 + hooks: + - id: flake8 + args: ["--ignore=E203,E501,W503", "--exclude=basicswap/contrib,basicswap/interface/contrib,.eggs,.tox,bin/install_certifi.py"] + + # ESLint - Lint Javascript and fix issues where possible + - repo: https://github.com/pre-commit/mirrors-eslint + rev: v9.30.1 + hooks: + - id: eslint + #args: ["--fix"] + + # djLint - Lint HTML + #- repo: https://github.com/djlint/djlint + # rev: v1.36.4 + # hooks: + # - id: djlint diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..c3b98e2 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,71 @@ +export default [ + { + ignores: ["basicswap/static/js/libs/*"], + rules: { + "semi": "off", + "prefer-const": "error", + "no-trailing-spaces": "error", + "constructor-super": "error", + "for-direction": "error", + "getter-return": "error", + "no-async-promise-executor": "error", + "no-case-declarations": "off", + "no-class-assign": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": "error", + "no-const-assign": "error", + "no-constant-binary-expression": "error", + "no-constant-condition": "error", + "no-control-regex": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-args": "error", + "no-dupe-class-members": "error", + "no-dupe-else-if": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-empty": "error", + "no-empty-character-class": "error", + "no-empty-pattern": "error", + "no-empty-static-block": "error", + "no-ex-assign": "error", + "no-extra-boolean-cast": "error", + "no-fallthrough": "error", + "no-func-assign": "error", + "no-global-assign": "error", + "no-import-assign": "error", + "no-invalid-regexp": "error", + "no-irregular-whitespace": "error", + "no-loss-of-precision": "error", + "no-misleading-character-class": "error", + "no-new-native-nonconstructor": "error", + "no-nonoctal-decimal-escape": "error", + "no-obj-calls": "error", + "no-octal": "error", + "no-prototype-builtins": "error", + "no-redeclare": "error", + "no-regex-spaces": "error", + "no-self-assign": "error", + "no-setter-return": "error", + "no-shadow-restricted-names": "error", + "no-sparse-arrays": "error", + "no-this-before-super": "error", + "no-undef": "off", + "no-unexpected-multiline": "error", + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unsafe-negation": "error", + "no-unsafe-optional-chaining": "error", + "no-unused-labels": "error", + "no-unused-private-class-members": "error", + "no-unused-vars": "error", + "no-useless-backreference": "error", + "no-useless-catch": "error", + "no-useless-escape": "error", + "no-with": "error", + "require-yield": "error", + "use-isnan": "error", + "valid-typeof": "error" + } + } +]; diff --git a/pyproject.toml b/pyproject.toml index 58f06b4..45d4c00 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,7 @@ dev = [ "codespell", "flake8", "pip-tools", + "pre-commit", "pytest", "ruff", "black==25.1.0",