biome.jsonc
Rama main · réplica de lectura del repositorio original.
{
"$schema": "https://biomejs.dev/schemas/2.5.15/schema.json",
"vcs": {
"clientKind": "git",
"enabled": true,
"useIgnoreFile": true,
"defaultBranch": "origin/main"
},
"files": {
"includes": ["**", "!**/*.html"]
},
"formatter": {
"enabled": true,
"bracketSpacing": true,
"formatWithErrors": false,
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf",
"lineWidth": 120,
"attributePosition": "auto",
"includes": ["interface/**", "docs/**", "emails/src/**", "stories/**", "!**/*.html", "!**/*.svg", "!**/*.mdx"]
},
"assist": {
"actions": {
"source": {
"organizeImports": {
"level": "on",
"options": {
"groups": [
["react", "react-dom"],
[
"@date-fns/tz",
"@ebay/nice-modal-react",
"@fontsource-variable/inter",
"@mui/**",
"@radix-ui/**",
"@react-email/**",
"@rstest/**",
"@sentry/**",
"@storybook/**",
"@tanstack/react-query",
"@tanstack/react-virtual",
"axios",
"class-variance-authority",
"cmdk",
"date-fns",
"downshift",
"formik",
"input-otp",
"lucide-react",
"react-day-picker",
"react-dropzone",
"react-google-recaptcha",
"react-number-format",
"react-plaid-link",
"react-qr-code",
"rrule",
"storybook/**",
"tailwind-merge",
"tailwindcss",
"tailwindcss-animate",
"tailwindcss/**",
"wouter"
],
":BLANK_LINE:",
[
// Testing libraries
"@testing-library/**",
"axios-mock-adapter",
"react-test-renderer"
],
":BLANK_LINE:",
["@monetr/**", "!**/*.module.scss", "!**/*.scss", "!**/*.css"],
":ALIAS:",
":BLANK_LINE:",
["./**", "!**/*.scss"],
":BLANK_LINE:",
[
"@monetr/**/*.module.scss",
"**/*.module.scss",
"**/*.scss",
"**/*.css",
"**/*.svg",
"**/*.png",
"**/*.jpg",
"**/*.gif",
"**/*.jpeg",
"**/*.webp"
],
":BLANK_LINE:"
]
}
},
"useSortedAttributes": {
"level": "on",
"options": {
"sortOrder": "natural"
}
}
}
}
},
"linter": {
"enabled": true,
"rules": {
"preset": "recommended",
"a11y": {
"useKeyWithClickEvents": "off",
"useKeyWithMouseEvents": "off",
"noDistractingElements": "error",
"noInteractiveElementToNoninteractiveRole": "warn",
"noLabelWithoutControl": "warn",
"useValidAutocomplete": "error"
},
"correctness": {
"useExhaustiveDependencies": "warn",
"noUnusedVariables": "error",
"noUnusedImports": "error",
"noUnreachable": "error",
"noUndeclaredDependencies": "warn", // Mainly for storybook silliness
"noUndeclaredVariables": "off", // Doesn't work with jest :(
"useParseIntRadix": "error",
"useValidTypeof": "error",
"noNestedComponentDefinitions": "warn" // Need to fix this at some point
},
"complexity": {
"noForEach": "off",
"noThisInStatic": "off",
"noStaticOnlyClass": "off",
"noUselessFragments": "error",
"noArguments": "error",
"noEmptyTypeParameters": "error",
"noUselessCatch": "error",
"noUselessConstructor": "error",
"noUselessUndefined": "error",
"noUselessUndefinedInitialization": "error"
},
"suspicious": {
"noShadowRestrictedNames": "error",
"noExplicitAny": "warn",
"noExtraNonNullAssertion": "warn",
"noUnknownAtRules": {
"level": "off",
"options": {
"ignore": ["apply", "function", "tailwind"]
}
}
},
"performance": {
"noDelete": "off"
},
"style": {
"useDefaultParameterLast": "off",
"noParameterAssign": "off",
"noNonNullAssertion": "off",
"useBlockStatements": "error",
"useConsistentCurlyBraces": "error",
"noRestrictedImports": {
"level": "warn",
"options": {
"paths": {}
}
}
},
"nursery": {
"useNullishCoalescing": "error"
}
},
"includes": [
"interface/**",
"docs/**",
"emails/src/**",
"stories/**",
"!**/*.html",
"!**/*.svg",
"!**/*.mdx",
"!**/*.css"
]
},
"javascript": {
"formatter": {
"jsxQuoteStyle": "single",
"quoteProperties": "asNeeded",
"trailingCommas": "all",
"arrowParentheses": "asNeeded",
"bracketSpacing": true,
"bracketSameLine": false,
"quoteStyle": "single",
"attributePosition": "auto"
}
},
"css": {
"linter": {
"enabled": true
},
"formatter": {
"enabled": false
},
"parser": {
"cssModules": true,
"tailwindDirectives": true
},
"assist": {
"enabled": true
}
},
"json": {
"formatter": {
"trailingCommas": "none"
}
}
}