{ "root": true, "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", "assist": { "actions": { "source": { "organizeImports": "on" } } }, "files": { "ignoreUnknown": true, "includes": [ "*.ts", "*.js", "!**/dist", "!**/coverage", "!**/worktrees", "!**/.turbo", "!**/scaffold-output/snapshots", "packages/*/*/*/src/**/*.ts", "packages/*/*/*/src/**/*.tsx", "packages/*/*/*/src/**/*.js", "packages/*/*/*/src/**/*.jsx", "packages/*/*/*/tests/**/*.ts", "packages/*/*/*/tests/**/*.tsx", "scripts/**/*.ts", "scripts/**/*.js" ] }, "linter": { "enabled": true, "rules": { "recommended": true, "style": { "noNonNullAssertion": "off", "noParameterAssign": "off", "useConst": "error", "useAsConstAssertion": "error", "useDefaultParameterLast": "error", "useEnumInitializers": "error", "useSelfClosingElements": "error", "useSingleVarDeclarator": "error", "noUnusedTemplateLiteral": "error", "useNumberNamespace": "error", "noInferrableTypes": "error", "noUselessElse": "error" }, "security": { "noDangerouslySetInnerHtml": "off" }, "complexity": { "noForEach": "error", "useLiteralKeys": "off" }, "suspicious": { "noRedeclare": "off", "noExplicitAny": "error", "noExportsInTest": "off", "noAssignInExpressions": "off", "noFallthroughSwitchClause": "off" }, "correctness": { "noInnerDeclarations": "off", "noPrecisionLoss": "off", "noUnusedVariables": "error", "useExhaustiveDependencies": "warn", "noInvalidUseBeforeDeclaration": "warn" }, "a11y": { "useButtonType": "warn", "noLabelWithoutControl": "warn" } } }, "formatter": { "enabled": true, "formatWithErrors": false, "indentStyle": "space", "indentWidth": 4, "lineWidth": 80, "lineEnding": "lf" }, "json": { "formatter": { "lineEnding": "lf" } }, "javascript": { "formatter": { "lineEnding": "lf", "quoteStyle": "double", "trailingCommas": "es5", "semicolons": "always" } }, "css": { "linter": { "enabled": false }, "formatter": { "enabled": false } }, "overrides": [ { "includes": [ "**/*.test.ts", "**/*.test.tsx", "**/*.test.js", "**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js" ], "linter": { "rules": { "a11y": { "useButtonType": "off" }, "complexity": { "noForEach": "off" }, "correctness": { "useHookAtTopLevel": "off", "noUnreachable": "off", "noUnusedFunctionParameters": "off" }, "style": { "noNonNullAssertion": "off" }, "suspicious": { "noExplicitAny": "off", "noRedeclare": "off", "noTemplateCurlyInString": "off", "useIterableCallbackReturn": "off" } } } }, { "includes": ["**/*.stories.ts", "**/*.stories.tsx"], "linter": { "rules": { "a11y": { "useButtonType": "off", "useKeyWithMouseEvents": "warn" }, "complexity": { "noForEach": "warn" }, "correctness": { "useExhaustiveDependencies": "warn" }, "suspicious": { "noArrayIndexKey": "warn" } } } } ] }