Ctrl K
ComunidadGuías…

biome.json

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
	"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
	"formatter": {
		"enabled": true,
		"formatWithErrors": false,
		"indentStyle": "tab",
		"lineWidth": 120,
		"lineEnding": "lf",
		"bracketSpacing": false,
		"includes": ["**", "!**/fluxer_app/src/features/theme/variables/ThemeVariableManifest.ts"]
	},
	"javascript": {
		"formatter": {
			"quoteStyle": "single",
			"jsxQuoteStyle": "double",
			"quoteProperties": "asNeeded",
			"trailingCommas": "all",
			"semicolons": "always",
			"arrowParentheses": "always",
			"bracketSpacing": false,
			"bracketSameLine": false
		},
		"globals": ["React", "__webpack_base_uri__"]
	},
	"json": {
		"formatter": {
			"enabled": true,
			"indentStyle": "tab",
			"lineWidth": 120
		},
		"parser": {
			"allowComments": true,
			"allowTrailingCommas": true
		}
	},
	"css": {
		"formatter": {
			"enabled": true,
			"indentStyle": "tab",
			"lineWidth": 120,
			"quoteStyle": "single"
		},
		"parser": {
			"cssModules": true,
			"tailwindDirectives": true
		}
	},
	"linter": {
		"enabled": true,
		"rules": {
			"preset": "recommended",
			"complexity": {
				"noForEach": "off",
				"noImportantStyles": "off",
				"noUselessCatch": "error",
				"useLiteralKeys": "off"
			},
			"correctness": {
				"noUndeclaredVariables": "error",
				"noUnusedVariables": "error",
				"noInvalidUseBeforeDeclaration": "off",
				"useExhaustiveDependencies": "off"
			},
			"suspicious": {
				"noArrayIndexKey": "off",
				"noAssignInExpressions": "off",
				"noExplicitAny": "off",
				"noThenProperty": "off",
				"noDoubleEquals": {
					"level": "error",
					"options": {
						"ignoreNull": true
					}
				},
				"noVar": "error",
				"useAdjacentOverloadSignatures": "off",
				"useIterableCallbackReturn": "off"
			},
			"style": {
				"useConsistentArrayType": {
					"level": "error",
					"options": {
						"syntax": "generic"
					}
				},
				"useConst": "error",
				"noDescendingSpecificity": "off",
				"noNonNullAssertion": "off",
				"noParameterAssign": "off",
				"noRestrictedImports": {
					"level": "error",
					"options": {
						"paths": {
							"@lingui/react": {
								"importNames": ["I18nProvider"],
								"message": "Use AppI18nProvider from @app/features/i18n/components/AppI18nProvider so <Trans> output stays safe under page translation."
							}
						}
					}
				}
			},
			"a11y": {
				"preset": "recommended",
				"useAriaPropsForRole": "error",
				"useValidAriaRole": "error",
				"useValidAriaValues": "error",
				"useValidAriaProps": "error",
				"useAltText": "error",
				"useAnchorContent": "error",
				"useButtonType": "error",
				"useKeyWithClickEvents": "error",
				"useKeyWithMouseEvents": "error",
				"useSemanticElements": "off",
				"noAriaUnsupportedElements": "error",
				"noNoninteractiveElementToInteractiveRole": "error",
				"noNoninteractiveTabindex": "error",
				"noRedundantAlt": "error",
				"noRedundantRoles": "error",
				"noInteractiveElementToNoninteractiveRole": "error",
				"noAutofocus": "warn",
				"noAccessKey": "warn",
				"useAriaActivedescendantWithTabindex": "error",
				"noSvgWithoutTitle": "off"
			},
			"nursery": {
				"useTailwindSortedClasses": "error"
			}
		}
	},
	"assist": {"actions": {"source": {"organizeImports": "on"}}},
	"overrides": [
		{
			"includes": [
				"packages/**",
				"fluxer_desktop/**",
				"fluxer_docs/**",
				"fluxer_api/**",
				"fluxer_app/**",
				"!fluxer_app/pkgs/livekit-client/**"
			],
			"linter": {"rules": {"style": {"noNestedTernary": "error"}}}
		},
		{
			"includes": [
				"packages/constants/**",
				"packages/date_utils/**",
				"packages/number_utils/**",
				"packages/snowflake/**"
			],
			"linter": {
				"rules": {
					"complexity": {
						"noExcessiveCognitiveComplexity": {"level": "error", "options": {"maxAllowedComplexity": 25}}
					},
					"suspicious": {"noEmptyBlockStatements": "error"}
				}
			}
		},
		{
			"includes": ["fluxer_app/inline_scripts/boot-shell.js"],
			"linter": {
				"rules": {
					"complexity": {"useOptionalChain": "off", "useMathMinMax": "off"},
					"correctness": {"noInnerDeclarations": "off"},
					"style": {"noNestedTernary": "off", "useTemplate": "off"},
					"suspicious": {"noVar": "off", "noGlobalIsFinite": "off"}
				}
			}
		},
		{
			"includes": ["fluxer_app/src/**/*.tsx"],
			"plugins": ["./tools/lint/no-adjacent-jsx-text.grit"]
		},
		{
			"includes": [
				"fluxer_app/src/**/*.css",
				"!fluxer_app/src/features/accessibility/components/NekoSprite.module.css",
				"!fluxer_app/src/features/app/components/layout/AuthLayout.module.css",
				"!fluxer_app/src/features/channel/components/ChannelOriginIcon.module.css",
				"!fluxer_app/src/features/messaging/components/modals/MediaModal.module.css",
				"!fluxer_app/src/features/search/components/quick_switcher/OtherAccountAvatar.module.css",
				"!fluxer_app/src/features/theme_settings/components/QuickCssEditorPanel.module.css",
				"!fluxer_app/src/features/ui/components/BaseAvatar.module.css",
				"!fluxer_app/src/features/ui/components/SliderTooltip.module.css",
				"!fluxer_app/src/features/ui/floating_pane/FloatingPaneResizeHandles.module.css",
				"!fluxer_app/src/features/ui/resizable_pane/ResizablePaneHandles.module.css",
				"!fluxer_app/src/features/ui/tooltip/Tooltip.module.css",
				"!fluxer_app/src/features/voice/components/AudioWaveform.module.css",
				"!fluxer_app/src/features/voice/components/LiveRecordingWaveform.module.css",
				"!fluxer_app/src/features/voice/components/PiPOverlay.module.css",
				"!fluxer_app/src/features/voice/components/media_player/InlineAudioPlayer.module.css",
				"!fluxer_app/src/features/voice/components/media_player/MediaProgressBar.module.css",
				"!fluxer_app/src/features/voice/components/media_player/MediaVolumeControl.module.css",
				"!fluxer_app/src/features/voice/components/modals/MobileVideoViewer.module.css"
			],
			"plugins": ["./tools/lint/no-physical-css.grit"]
		},
		{
			"includes": ["fluxer_app/src/features/i18n/components/AppI18nProvider.tsx"],
			"linter": {"rules": {"style": {"noRestrictedImports": "off"}}}
		},
		{
			"includes": ["fluxer_app/src/**/*.worklet.js"],
			"javascript": {"globals": ["AudioWorkletProcessor", "registerProcessor", "sampleRate", "currentTime"]}
		},
		{
			"includes": ["fluxer_app/src/features/app/config/WebAppHostedImages.json"],
			"json": {"formatter": {"indentStyle": "space", "indentWidth": 2}}
		},
		{
			"includes": ["**/*.astro"],
			"linter": {"rules": {"correctness": {"noUnusedImports": "off", "noUnusedVariables": "off"}}},
			"assist": {"actions": {"source": {"organizeImports": "off"}}}
		}
	],
	"vcs": {
		"enabled": true,
		"clientKind": "git",
		"useIgnoreFile": true
	},
	"files": {
		"includes": [
			"**",
			"!**/.git",
			"!**/app.css",
			"!**/build",
			"fluxer_app/scripts/build",
			"!**/dist",
			"!**/fluxer_app/src/media/data/emojis.json",
			"!**/fluxer_app/src/features/i18n/locales/*/messages.js",
			"!**/fluxer_app/src/features/i18n/locales/*/messages.mjs",
			"!**/fluxer_app/src/env.d.ts",
			"!**/*.generated.*",
			"!**/*.pb.*",
			"!**/*_pb.*",
			"!**/node_modules",
			"!packages/schema/src/gen",
			"!**/tailwind.css",
			"!**/*.html",
			"!**/*.md",
			"!**/*.yaml",
			"!**/*.yml",
			"!**/*.module.css.d.ts",
			"!**/fluxer_app/src/features/ui/components/SVGMasks.tsx",
			"!fluxer_static",
			"!packages/fonts",
			"!fluxer_admin/static/htmx.min.js",
			"!fluxer_api/src/api/openapi/openapi.json",
			"!fluxer_admin/openapi-admin.json",
			"!fluxer_api/pkgs/email/src/email_i18n/weblate",
			"!fluxer_api/src/api/content_i18n/weblate",
			"!packages/errors/src/i18n/weblate",
			"!fluxer_rexctl/internal/adminapi/configschema.json",
			"!fluxer_rexctl/internal/stack/imageset.json",
			"!fluxer_rexctl/internal/stack/files/profiles.json"
		],
		"ignoreUnknown": true
	}
}