Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .husky/install.mjs
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
// https://typicode.github.io/husky/how-to.html
// Skip Husky install in production and CI
// eslint-disable-next-line no-undef
if (process.env.NODE_ENV === "production" || process.env.CI === "true") {
// eslint-disable-next-line no-undef
process.exit(0);
}
const husky = (await import("husky")).default;
// eslint-disable-next-line no-console
// oxlint-disable-next-line no-console
console.log(husky());
204 changes: 204 additions & 0 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
{
"plugins": [
"oxc",
"typescript",
"unicorn",
"react",
"jsdoc",
"import"
],
"categories": {
"correctness": "warn"
},
"$schema": "./node_modules/oxlint/configuration_schema.json",
"env": {
"builtin": true,
"browser": true,
"es2019": true,
"shared-node-browser": true,
"commonjs": true,
"node": true
},
"rules": {
"for-direction": "error",
"getter-return": "error",
"no-async-promise-executor": "error",
"no-case-declarations": "error",
"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-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-new-native-nonconstructor": "error",
"no-nonoctal-decimal-escape": "error",
"no-obj-calls": "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": "error",
"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",
"jsdoc/check-access": "warn",
"jsdoc/empty-tags": "warn",
"jsdoc/require-param": "warn",
"jsdoc/require-param-description": "warn",
"jsdoc/require-param-name": "warn",
"jsdoc/require-param-type": "warn",
"jsdoc/require-returns": "warn",
"jsdoc/require-returns-description": "warn",
"jsdoc/require-returns-type": "warn",
"array-callback-return": "warn",
"block-scoped-var": "error",
"curly": "warn",
"eqeqeq": [
1,
"always"
],
"guard-for-in": "warn",
"no-console": [
2,
{
"allow": [
"info",
"warn",
"error"
]
}
],
"no-div-regex": "error",
"no-eq-null": "warn",
"no-eval": "error",
"no-extend-native": "warn",
"no-extra-bind": "error",
"no-extra-label": "warn",
"no-iterator": "warn",
"no-labels": "warn",
"no-new": "warn",
"no-new-func": "error",
"no-new-wrappers": "warn",
"no-proto": "warn",
"no-return-assign": [
2,
"always"
],
"no-script-url": "warn",
"no-self-compare": "warn",
"no-throw-literal": "error",
"no-unused-expressions": "error",
"no-useless-call": "warn",
"no-useless-concat": "warn",
"no-void": "warn",
"radix": "error",
"no-label-var": "warn",
"max-depth": [
1,
{
"maximum": 5
}
],
"new-cap": "warn",
"no-array-constructor": "error",
"no-bitwise": "warn",
"no-lonely-if": "error",
"no-negated-condition": "error",
"no-nested-ternary": "error",
"no-unneeded-ternary": "warn",
"sort-imports": [
2,
{
"ignoreDeclarationSort": true
}
],
"no-useless-constructor": "warn",
"no-var": "warn",
"prefer-rest-params": "warn",
"prefer-spread": "warn",
"import/no-duplicates": [
2,
{
"considerQueryString": true
}
],
"unicorn/empty-brace-spaces": "off",
"unicorn/no-nested-ternary": "off",
"unicorn/number-literal-case": "off",
"arrow-body-style": "off",
"react/jsx-no-comment-textnodes": "warn",
"react/no-unescaped-entities": "warn",
"react/no-unknown-property": "warn",
"react/react-in-jsx-scope": "warn",
"react/require-render-return": "warn",
"react-hooks/rules-of-hooks": "error",
"@typescript-eslint/ban-ts-comment": "error",
"@typescript-eslint/no-duplicate-enum-values": "error",
"@typescript-eslint/no-empty-object-type": "error",
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-extra-non-null-assertion": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-asserted-optional-chain": "error",
"@typescript-eslint/no-require-imports": "error",
"@typescript-eslint/no-this-alias": "error",
"@typescript-eslint/no-unnecessary-type-constraint": "error",
"@typescript-eslint/no-unsafe-declaration-merging": "error",
"@typescript-eslint/no-unsafe-function-type": "error",
"@typescript-eslint/no-wrapper-object-types": "error",
"@typescript-eslint/prefer-as-const": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/triple-slash-reference": "error",
"import/no-named-as-default": "off",
"import/first": "error",
"@typescript-eslint/consistent-type-imports": [
"error",
{
"fixStyle": "inline-type-imports"
}
]
},
"ignorePatterns": [
"**/dist",
"node_modules",
"**/.cache",
"**/.typecheck",
"**/playwright-report"
]
}
Loading