123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- {
- "$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"
- },
- "complexity": {
- "useFlatMap": "error",
- "useOptionalChain": "error",
- "noEmptyTypeParameters": "error",
- "noUselessLoneBlockStatements": "error",
- "noUselessEmptyExport": "error",
- "noUselessConstructor": "error",
- "noUselessTypeConstraint": "error",
- "noExcessiveNestedTestSuites": "error"
- },
- "nursery": {
- "noDuplicateJsonKeys": "error",
- "noNodejsModules": "error"
- },
- "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",
- "trailingComma": "es5",
- "semicolons": "always",
- "arrowParentheses": "asNeeded",
- "bracketSpacing": false,
- "bracketSameLine": false
- }
- },
- "json": {
- "formatter": {
- "enabled": true
- }
- },
- "overrides": [
- {
- "include": [
- "biome.json",
- "config/tsconfig.*",
- "tsconfig.json",
- ".vscode/*"
- ],
- "json": {
- "parser": {
- "allowComments": true,
- "allowTrailingCommas": true
- }
- }
- },
- {
- "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": {
- "nursery": {
- "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"
- }
- }
- }
- }
- ]
- }
|