Skip to content

Instantly share code, notes, and snippets.

@giladbarnea
Last active July 15, 2025 10:07
Show Gist options
  • Select an option

  • Save giladbarnea/9640357691e1ef50dc030babe8c418db to your computer and use it in GitHub Desktop.

Select an option

Save giladbarnea/9640357691e1ef50dc030babe8c418db to your computer and use it in GitHub Desktop.
biome.json
{
"$schema": "https://biomejs.dev/schemas/2.0.4/schema.json",
"files": {
"ignoreUnknown": false
},
"vcs": {
"enabled": true,
"clientKind": "git",
"defaultBranch": "main",
"useIgnoreFile": true
},
"formatter": {
"enabled": true,
"formatWithErrors": false,
"indentWidth": 2,
"lineEnding": "lf",
"lineWidth": 120,
"attributePosition": "auto"
},
"linter": {
"enabled": true,
"rules": {
"recommended": true, // As of 2025-07-03 and biome 2.0.4, these are complete and explicit: complexity, correctness, security, style
"a11y": {
"useHtmlLang": "warn",
"noHeaderScope": "warn",
"useValidAriaRole": {
"level": "warn",
"options": {
"ignoreNonDom": false,
"allowInvalidRoles": [
"none",
"text"
]
}
},
"useAriaPropsSupportedByRole": "off",
"useSemanticElements": "off",
"noSvgWithoutTitle": "off",
"useMediaCaption": "off",
"noAutofocus": "off",
"useFocusableInteractive": "off",
"useAriaPropsForRole": "off",
"useKeyWithClickEvents": "off",
"useButtonType": "off",
"useValidAnchor": "off"
},
"complexity": {
"noAdjacentSpacesInRegex": "warn",
// "noBannedTypes": "warn", // What are banned types?
"noExcessiveCognitiveComplexity": "warn",
"noForEach": "off",
"noThisInStatic": "warn",
"noUselessEscapeInRegex": "warn",
"noUselessStringConcat": "warn",
"noUselessSwitchCase": "off",
"noUselessTernary": "warn",
"noUselessThisAlias": "off",
"noUselessUndefinedInitialization": "off",
"useArrowFunction": "off",
"useDateNow": "warn",
"useOptionalChain": "warn",
"useSimplifiedLogicExpression": "warn",
},
"correctness": {
"noGlobalObjectCalls": "warn",
"noInnerDeclarations": "warn",
"noInvalidBuiltinInstantiation": "warn",
"noInvalidConstructorSuper": "warn",
"noInvalidGridAreas": "warn",
"noInvalidPositionAtImportRule": "warn",
"noInvalidUseBeforeDeclaration": "warn",
"noMissingVarFunction": "warn",
"noPrecisionLoss": "info",
"noStringCaseMismatch": "warn",
"noSwitchDeclarations": "warn",
"noUndeclaredDependencies": "warn",
"noUndeclaredVariables": "error",
"noUnknownFunction": "warn",
"noUnknownMediaFeatureName": "warn",
"noUnknownProperty": "warn", // This was meant to be only CSS. If it's annoying in JS/TS, turn it off.
"noUnknownPseudoClass": "warn",
"noUnknownPseudoElement": "warn",
"noUnknownTypeSelector": "warn",
"noUnknownUnit": "warn",
"noUnmatchableAnbSelector": "warn",
"noUnreachable": "warn",
"noUnreachableSuper": "warn",
"noUnsafeFinally": "warn",
"noUnsafeOptionalChaining": "warn",
"noUnusedFunctionParameters": "warn",
"noUnusedImports": "warn",
"noUnusedLabels": "warn",
"noUnusedPrivateClassMembers": "warn",
"noUnusedVariables": "error",
"noVoidElementsWithChildren": "warn",
"noVoidTypeReturn": "warn",
"useExhaustiveDependencies": "warn",
"useHookAtTopLevel": "warn",
"useJsxKeyInIterable": "warn",
"useValidForDirection": "warn",
"useValidTypeof": "warn",
"useYield": "warn"
},
"security": {
"noDangerouslySetInnerHtml": "info",
"noGlobalEval": "warn",
"noBlankTarget": "warn",
"noDangerouslySetInnerHtmlWithChildren": "info"
},
"style": {
"noDefaultExport": "info",
"noDescendingSpecificity": "info",
"noHeadElement": "warn",
"noImplicitBoolean": "info",
"noNegationElse": "info",
"noNestedTernary": "info",
"noNonNullAssertion": "off",
"noParameterAssign": "info",
"noUnusedTemplateLiteral": "info",
"noUselessElse": "info",
"noYodaExpression": "warn",
"useAsConstAssertion": "info",
"useCollapsedElseIf": "info",
"useCollapsedIf": {
"level": "info",
"fix":"safe"
},
"useComponentExportOnlyModules": "warn",
"useConsistentArrayType": "info",
"useConsistentCurlyBraces": "info",
"useConst": "off",
"useDefaultParameterLast": "warn",
"useDefaultSwitchClause": "info",
"useEnumInitializers": "info",
"useExponentiationOperator": "off",
"useExportType": "info",
"useFilenamingConvention": "info",
"useForOf": "info",
"useFragmentSyntax": "warn",
"useImportType": "info",
"useNamingConvention": "info",
"useTemplate": "info",
"useThrowOnlyError": "warn",
"useTrimStartEnd": "warn"
},
"suspicious": {
"noArrayIndexKey": "off",
"noDebugger": "off",
"noExplicitAny": "off",
"noImplicitAnyLet": "off"
}
}
},
"javascript": {
"jsxRuntime": "reactClassic",
"formatter": {
"jsxQuoteStyle": "double",
"quoteProperties": "asNeeded",
"trailingCommas": "all",
"arrowParentheses": "always",
"bracketSpacing": true,
"bracketSameLine": false,
"attributePosition": "auto",
"semicolons": "asNeeded"
}
},
"json": {
"formatter": {
"enabled": true,
"trailingCommas": "none"
},
"parser": {
"allowComments": true,
"allowTrailingCommas": false
}
},
"css": {
"formatter": {
"enabled": false
},
"linter": {
"enabled": false
}
},
"assist": {
"enabled": true,
"actions": {
"source": {
"organizeImports": "on",
"recommended": true
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment