{ "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true, "defaultBranch": "master" }, "organizeImports": { "enabled": false }, "linter": { "enabled": true, "rules": { "recommended": false, "a11y": { "noBlankTarget": "error" }, "correctness": { "noGlobalObjectCalls": "error", "noUnreachable": "error", "useHookAtTopLevel": "error", "useIsNan": "error", "noUnusedPrivateClassMembers": "error", "noInvalidUseBeforeDeclaration": "error", "noNodejsModules": "error" }, "complexity": { "useFlatMap": "error", "useOptionalChain": "error", "noEmptyTypeParameters": "error", "noUselessLoneBlockStatements": "error", "noUselessEmptyExport": "error", "noUselessConstructor": "error", "noUselessTypeConstraint": "error", "noExcessiveNestedTestSuites": "error" }, "nursery": { "noDuplicateJsonKeys": "error", "noRestrictedImports": { "level": "warn", "options": { "paths": { "sentry/types": "Please import directly. For example: import type {Organization} from 'sentry/types/organization'" } } } }, "performance": { "noBarrelFile": "error" }, "security": { "noDangerouslySetInnerHtmlWithChildren": "error" }, "suspicious": { "noDebugger": "error", "noDoubleEquals": "error", "noDuplicateJsxProps": "error", "noDuplicateObjectKeys": "error", "noDuplicateParameters": "error", "noDuplicateCase": "error", "noFallthroughSwitchClause": "error", "noRedeclare": "error", "noSparseArray": "error", "noUnsafeDeclarationMerging": "error", "noUnsafeNegation": "error", "useIsArray": "error", "noApproximativeNumericConstant": "error", "noMisrefactoredShorthandAssign": "error", "useAwait": "error", "useNamespaceKeyword": "error", "noSkippedTests": "error", "noFocusedTests": "error", "noDuplicateTestHooks": "error" }, "style": { "noCommaOperator": "error", "noShoutyConstants": "error", "noParameterProperties": "error", "noVar": "error", "useConst": "error", "useShorthandFunctionType": "error", "useExportType": "error", "useImportType": "error", "useNodejsImportProtocol": "error", "useLiteralEnumMembers": "error", "useEnumInitializers": "error", "useAsConstAssertion": "error" } } }, "files": { "ignoreUnknown": true, "ignore": [ "**/*/trace.json", "static/app/data/world.json", "**/*.sourcemap.js", "**/*.min.js", "fixtures", ".devenv" ] }, "formatter": { "enabled": true, "formatWithErrors": true, "indentStyle": "space", "indentWidth": 2, "lineEnding": "lf", "ignore": ["tests/**/*.json"] }, "javascript": { "formatter": { "enabled": false, "lineWidth": 90, "quoteStyle": "single", "jsxQuoteStyle": "double", "quoteProperties": "asNeeded", "trailingCommas": "es5", "semicolons": "always", "arrowParentheses": "asNeeded", "bracketSpacing": false, "bracketSameLine": false } }, "json": { "formatter": { "enabled": true }, "parser": { "allowComments": true, "allowTrailingCommas": true } }, "overrides": [ { "include": [ "api-docs/*.ts", "build-utils/*.ts", "config/*.ts", "scripts", "tests/js/sentry-test/loadFixtures.ts", "tests/js/jest-pegjs-transform.js", "tests/js/setup.ts", "tests/js/test-balancer/index.js", "*.config.ts" ], "linter": { "rules": { "correctness": { "noNodejsModules": "off" } } } }, { "include": ["src/sentry/templates/sentry/error-page-embed.js"], "linter": { "rules": { "style": { "noVar": "off" } } } }, { "include": [ "static/app/utils/replays/types.tsx", "static/app/utils/queryClient.tsx", "static/app/views/performance/traceDetails/styles.tsx", "static/app/icons/index.tsx", "static/app/components/tabs/index.tsx", "static/app/components/sparklines/line.tsx", "static/app/types/index.tsx", "tests/js/sentry-test/reactTestingLibrary.tsx", "tests/js/sentry-test/index.tsx" ], "linter": { "rules": { "performance": { "noBarrelFile": "off" } } } } ] }