| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- {
- "$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
- "files": {
- "includes": [
- "**",
- "!**/.pnpm-store",
- "!**/.terraform",
- "!**/coverage",
- "!**/dist",
- "!**/.next",
- "!**/node_modules",
- "!**/vite.*.ts.timestamp-*",
- "!**/*.grit",
- "!**/turbo.json",
- "!**/.devcontainer",
- "!**/.stylelintrc.json",
- "!**/package.json",
- "!**/*.vendor-styles.prebuilt.*",
- "!.turbo",
- "!.vscode",
- "!.claude",
- "!tsconfig.base.json",
- "!apps/app/src/styles/prebuilt",
- "!apps/app/next-env.d.ts",
- "!apps/app/tmp",
- "!apps/pdf-converter/specs",
- "!apps/slackbot-proxy/src/public/bootstrap",
- "!packages/pdf-converter-client/src/index.ts",
- "!packages/pdf-converter-client/specs"
- ]
- },
- "formatter": {
- "enabled": true,
- "indentStyle": "space"
- },
- "assist": {
- "actions": {
- "source": {
- "organizeImports": {
- "level": "on",
- "options": {
- "groups": [
- ["react", "react/**"],
- ["next", "next/**"],
- [":NODE:", ":PACKAGE:"],
- ":BLANK_LINE:",
- ["@/**", "^/**"],
- ":BLANK_LINE:",
- "~/**",
- ":BLANK_LINE:",
- [
- ":PATH:",
- "!../**/*.css",
- "!./*.css",
- "!../**/*.scss",
- "!./*.scss"
- ],
- ":BLANK_LINE:",
- ["../**/*.scss", "../**/*.css"],
- ["./*.scss", "./*.css"]
- ]
- }
- }
- }
- }
- },
- "linter": {
- "enabled": true,
- "rules": {
- "recommended": true,
- "style": {
- "useThrowOnlyError": "error",
- "noParameterAssign": "warn",
- "noDefaultExport": "warn"
- },
- "suspicious": {
- "noConsole": "error",
- "noAlert": "error",
- "noVar": "error",
- "useAwait": "warn"
- },
- "performance": {
- "noAwaitInLoops": "warn"
- },
- "correctness": {
- "useUniqueElementIds": "warn"
- },
- "nursery": {
- "useMaxParams": "warn"
- }
- }
- },
- "javascript": {
- "formatter": {
- "quoteStyle": "single"
- },
- "parser": {
- "unsafeParameterDecoratorsEnabled": true
- }
- },
- "overrides": [
- {
- "includes": ["**/vite*.config.ts", "vitest*.config.ts"],
- "linter": {
- "rules": {
- "style": {
- "noDefaultExport": "off"
- }
- }
- }
- },
- {
- "includes": ["bin/**"],
- "linter": {
- "rules": {
- "suspicious": {
- "noConsole": "off"
- }
- }
- }
- },
- {
- "includes": ["bin/data-migrations/**"],
- "linter": {
- "rules": {
- "suspicious": {
- "noVar": "off"
- },
- "correctness": {
- "noInnerDeclarations": "off"
- }
- }
- }
- },
- {
- "includes": ["apps/pdf-converter/**", "./apps/slackbot-proxy/**"],
- "linter": {
- "rules": {
- "style": {
- "useImportType": "off"
- }
- }
- }
- },
- {
- "includes": ["apps/app/**"],
- "linter": {
- "rules": {
- "style": {
- "noRestrictedImports": {
- "level": "error",
- "options": {
- "paths": {
- "axios": "Please use src/utils/axios instead."
- }
- }
- }
- }
- }
- }
- },
- {
- "includes": [
- "apps/app/src/stores-universal/**",
- "apps/app/src/utils/**",
- "apps/app/src/models/**",
- "apps/app/src/services/**",
- "apps/app/src/pages/**",
- "apps/app/src/server/**",
- "apps/app/src/components/**"
- ],
- "linter": {
- "rules": {
- "style": {
- "noRestrictedImports": {
- "level": "error",
- "options": {
- "paths": {
- "axios": "Please use src/utils/axios instead."
- },
- "patterns": [
- {
- "group": ["~/client/**", "**/client/**", "client/**"],
- "message": "Importing from client/ directories is restricted."
- }
- ]
- }
- }
- }
- }
- }
- },
- {
- "includes": ["apps/app/src/server/models/**"],
- "plugins": ["apps/app/src/server/models/.biome/plugins/no-populate.grit"]
- }
- ]
- }
|