{ "$schema": "https://biomejs.dev/schemas/2.2.4/schema.json", "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true }, "files": { "ignoreUnknown": true, "includes": ["**/*.ts", "**/*.tsx", "**/*.css", "**/*.scss", "**/app/**", "**/*.mjs", "!**/public/**"] }, "formatter": { "enabled": true, "useEditorconfig": true, "formatWithErrors": false, "indentStyle": "space", "indentWidth": 2, "lineEnding": "lf", "lineWidth": 120, "attributePosition": "auto", "bracketSpacing": true }, "assist": { "actions": { "source": { "organizeImports": "on" } } }, "linter": { "enabled": true, "rules": { "recommended": false, "security": { "noGlobalEval": "error" }, "style": { "useBlockStatements": "off" }, "correctness": { "noUnusedImports": "error" } } }, "javascript": { "formatter": { "jsxQuoteStyle": "double", "quoteProperties": "asNeeded", "trailingCommas": "all", "semicolons": "always", "arrowParentheses": "always", "bracketSameLine": false, "quoteStyle": "single", "attributePosition": "auto", "bracketSpacing": true } }, "overrides": [ { "includes": ["**/*.json", "**/*.json", "**/*.json5", "**/*.json5", "**/*.jsonc", "**/*.jsonc"], "javascript": { "globals": [] }, "linter": { "rules": { "correctness": { "noUnusedVariables": "off" } } } }, { "includes": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"], "linter": { "rules": { "correctness": { "noConstAssign": "off", "noGlobalObjectCalls": "off", "noInvalidBuiltinInstantiation": "off", "noInvalidConstructorSuper": "off", "noSetterReturn": "off", "noUndeclaredVariables": "off", "noUnreachable": "off", "noUnreachableSuper": "off" }, "style": { "useConst": "error" }, "suspicious": { "noClassAssign": "off", "noDuplicateClassMembers": "off", "noDuplicateObjectKeys": "off", "noDuplicateParameters": "off", "noFunctionAssign": "off", "noImportAssign": "off", "noRedeclare": "off", "noUnsafeNegation": "off", "useGetterReturn": "off", "noVar": "error" }, "complexity": { "noArguments": "error" } } } }, { "includes": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"], "linter": { "rules": { "complexity": { "noUselessTypeConstraint": "error" }, "correctness": { "noUnusedVariables": "error" }, "style": { "noNamespace": "error", "useAsConstAssertion": "error", "useArrayLiterals": "off" }, "suspicious": { "noExplicitAny": "error", "noExtraNonNullAssertion": "error", "noMisleadingInstantiator": "error", "noUnsafeDeclarationMerging": "error", "useNamespaceKeyword": "error" } } } }, { "includes": ["**/*.js", "**/*.jsx", "**/*.mjs", "**/*.cjs"], "javascript": { "globals": [] }, "linter": { "rules": { "complexity": { "noUselessTernary": "error", "useLiteralKeys": "error" }, "correctness": { "noConstantCondition": "error", "noSwitchDeclarations": "error", "noUnusedVariables": "off" }, "style": { "useBlockStatements": "error" }, "suspicious": { "noAsyncPromiseExecutor": "error", "noDebugger": "warn", "useDefaultSwitchClauseLast": "error" } } } }, { "includes": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"], "linter": { "rules": { "complexity": { "noUselessTernary": "error", "useLiteralKeys": "error" }, "correctness": { "noConstantCondition": "error", "noSwitchDeclarations": "error", "noUnusedVariables": "error" }, "style": { "noNonNullAssertion": "off", "useBlockStatements": "error" }, "suspicious": { "noAsyncPromiseExecutor": "error", "noDebugger": "warn", "noEmptyBlockStatements": "warn", "noExplicitAny": "off", "noExtraNonNullAssertion": "error", "useDefaultSwitchClauseLast": "error" } } } } ] }