Environment information
β biome rage --linter
CLI:
Version: 1.9.1
Color support: true
Platform:
CPU Architecture: x86_64
OS: linux
Environment:
BIOME_LOG_PATH: unset
BIOME_LOG_PREFIX_NAME: unset
BIOME_CONFIG_PATH: unset
NO_COLOR: unset
TERM: "xterm-256color"
JS_RUNTIME_VERSION: "v22.6.0"
JS_RUNTIME_NAME: "node"
NODE_PACKAGE_MANAGER: unset
Biome Configuration:
Status: Loaded successfully
Formatter disabled: false
Linter disabled: false
Organize imports disabled: false
VCS disabled: true
Linter:
JavaScript enabled: true
JSON enabled: true
CSS enabled: true
GraphQL enabled: false
Recommended: false
All: false
Enabled rules:
performance/noDelete
suspicious/noCatchAssign
suspicious/noUnsafeNegation
style/useImportType
complexity/noMultipleSpacesInRegularExpressionLiterals
a11y/useValidLang
complexity/noUselessEmptyExport
suspicious/useNamespaceKeyword
suspicious/useValidTypeof
a11y/useValidAriaRole
correctness/noConstantCondition
a11y/useAriaActivedescendantWithTabindex
suspicious/noAssignInExpressions
style/useDefaultParameterLast
complexity/noEmptyTypeParameters
correctness/noConstructorReturn
style/useSelfClosingElements
suspicious/noDuplicateParameters
suspicious/noDuplicateSelectorsKeyframeBlock
correctness/noUnknownProperty
style/useTemplate
correctness/noUnusedLabels
correctness/noUnreachableSuper
suspicious/noCompareNegZero
suspicious/noExplicitAny
correctness/noSwitchDeclarations
a11y/noAutofocus
correctness/noUnsafeOptionalChaining
correctness/noConstAssign
suspicious/noControlCharactersInRegex
complexity/noUselessTypeConstraint
style/noVar
suspicious/noDoubleEquals
suspicious/noRedundantUseStrict
style/useLiteralEnumMembers
suspicious/noGlobalIsNan
suspicious/noEmptyInterface
suspicious/noConstEnum
suspicious/noMisleadingCharacterClass
correctness/noPrecisionLoss
a11y/noLabelWithoutControl
suspicious/noRedeclare
correctness/noStringCaseMismatch
correctness/noSetterReturn
correctness/noInvalidConstructorSuper
suspicious/noImplicitAnyLet
suspicious/noFallthroughSwitchClause
suspicious/noUnsafeDeclarationMerging
correctness/noUnreachable
a11y/useKeyWithClickEvents
suspicious/noDuplicateObjectKeys
complexity/noUselessThisAlias
complexity/noThisInStatic
complexity/useOptionalChain
correctness/noInnerDeclarations
style/noParameterAssign
suspicious/noDuplicateCase
a11y/useValidAnchor
complexity/useRegexLiterals
correctness/noSelfAssign
correctness/noInvalidBuiltinInstantiation
style/noUselessElse
style/useShorthandFunctionType
suspicious/noShadowRestrictedNames
correctness/noInvalidDirectionInLinearGradient
suspicious/noImportantInKeyframe
a11y/useMediaCaption
complexity/noUselessLabel
complexity/noUselessCatch
correctness/noUnsafeFinally
a11y/useAriaPropsForRole
correctness/noNonoctalDecimalEscape
style/useEnumInitializers
a11y/useHtmlLang
suspicious/noDuplicateTestHooks
complexity/noStaticOnlyClass
style/useWhile
suspicious/noConsole
complexity/useArrowFunction
style/noInferrableTypes
a11y/noNoninteractiveTabindex
complexity/useSimpleNumberKeys
correctness/useYield
a11y/noInteractiveElementToNoninteractiveRole
style/useNumericLiterals
correctness/noUnnecessaryContinue
suspicious/noApproximativeNumericConstant
suspicious/noImportAssign
suspicious/noLabelVar
correctness/noGlobalObjectCalls
suspicious/useDefaultSwitchClauseLast
a11y/useAltText
correctness/noEmptyCharacterClassInRegex
correctness/noUnknownUnit
suspicious/noSparseArray
a11y/useIframeTitle
complexity/noBannedTypes
a11y/noSvgWithoutTitle
correctness/noVoidElementsWithChildren
style/useAsConstAssertion
correctness/useJsxKeyInIterable
style/useExportType
complexity/noUselessLoneBlockStatements
suspicious/noDebugger
style/noArguments
a11y/useValidAriaValues
suspicious/noCommentText
a11y/useFocusableInteractive
correctness/noUnmatchableAnbSelector
suspicious/noMisleadingInstantiator
suspicious/noDuplicateJsxProps
suspicious/noGlobalAssign
a11y/noPositiveTabindex
correctness/noEmptyPattern
complexity/noExcessiveNestedTestSuites
security/noDangerouslySetInnerHtmlWithChildren
a11y/useKeyWithMouseEvents
suspicious/noExtraNonNullAssertion
suspicious/noPrototypeBuiltins
correctness/noRenderReturnValue
correctness/useExhaustiveDependencies
security/noGlobalEval
style/noNonNullAssertion
a11y/noRedundantRoles
complexity/useFlatMap
correctness/useIsNan
style/useConst
suspicious/noGlobalIsFinite
suspicious/noSelfCompare
suspicious/noShorthandPropertyOverrides
suspicious/noAsyncPromiseExecutor
suspicious/noDuplicateFontNames
suspicious/noThenProperty
suspicious/useGetterReturn
security/noDangerouslySetInnerHtml
style/useNodejsImportProtocol
a11y/noDistractingElements
suspicious/noArrayIndexKey
complexity/noWith
suspicious/noDuplicateClassMembers
complexity/noExtraBooleanCast
performance/noAccumulatingSpread
a11y/useValidAriaProps
a11y/noRedundantAlt
correctness/noChildrenProp
correctness/noUnknownFunction
correctness/noInvalidPositionAtImportRule
suspicious/noConfusingLabels
suspicious/noSuspiciousSemicolonInJsx
suspicious/noConfusingVoidType
suspicious/noFocusedTests
a11y/useButtonType
a11y/useSemanticElements
a11y/noAriaUnsupportedElements
correctness/noInvalidGridAreas
style/useFilenamingConvention
correctness/noFlatMapIdentity
a11y/noBlankTarget
a11y/useHeadingContent
correctness/useValidForDirection
correctness/noVoidTypeReturn
correctness/noInvalidUseBeforeDeclaration
a11y/noAriaHiddenOnFocusable
a11y/useGenericFontNames
correctness/noUnknownMediaFeatureName
a11y/useAnchorContent
complexity/noUselessRename
style/useNumberNamespace
complexity/noUselessConstructor
a11y/noAccessKey
style/useExponentiationOperator
style/noUnusedTemplateLiteral
complexity/noUselessSwitchCase
style/useSingleVarDeclarator
suspicious/noExportsInTest
a11y/noNoninteractiveElementToInteractiveRole
style/noCommaOperator
suspicious/noDuplicateAtImportRules
suspicious/useIsArray
a11y/noHeaderScope
complexity/noUselessFragments
suspicious/noMisrefactoredShorthandAssign
complexity/noForEach
suspicious/noClassAssign
suspicious/noEmptyBlock
suspicious/noFunctionAssign
Workspace:
Open Documents: 0
Rule name
useFilenamingConvention
Playground link
Not reproducible in playground
Expected result
There is a convenient convention to name migration files using a number prefix (usually amount of unix seconds).
Something like this:

But somehow useFilenamingConvention is throwing errors on these files:
E.g. if creating file 123_abc.ts, getting error:
app/base/123_abc.ts lint/style/useFilenamingConvention ββββββββββ
β The filename should be in kebab-case or snake_case or PascalCase.
βΉ The filename could be renamed to one of the following names:
123-abc.ts
123_abc.ts
123Abc.ts
Considering this is a bug cause biome itself suggesting 123_abc.ts as a valid file name.
Also there is an issue with bracket-wrapped files,
[id].ts works well, however [page_id].ts throws error:
app/base/[page_id].ts lint/style/useFilenamingConvention ββββββββββ
β The filename should be in kebab-case or snake_case or PascalCase.
βΉ The filename could be renamed to one of the following names:
_page_id.ts
-page-id.ts
PageId.ts
Same error for [_id].ts and [page-id].ts
Somehow related to #3353 and #3650
Please advise.
Thanks.
Here is my config:
{
"$schema": "https://biomejs.dev/schemas/1.9.0/schema.json",
"formatter": {
"indentStyle": "space",
"indentWidth": 2
},
"linter": {
"enabled": true,
"rules": {
"complexity": { "noUselessTernary": "off", "useLiteralKeys": "off" },
"style": {
"useFilenamingConvention": {
"level": "error",
"options": {
"strictCase": true,
"requireAscii": true,
"filenameCases": ["kebab-case", "snake_case", "PascalCase"]
}
}
},
"suspicious": {
"noConsole": "error"
}
}
}
}
Code of Conduct
Environment information
Rule name
useFilenamingConvention
Playground link
Not reproducible in playground
Expected result
There is a convenient convention to name migration files using a number prefix (usually amount of unix seconds).

Something like this:
But somehow
useFilenamingConventionis throwing errors on these files:E.g. if creating file
123_abc.ts, getting error:Considering this is a bug cause
biomeitself suggesting123_abc.tsas a valid file name.Also there is an issue with bracket-wrapped files,
[id].tsworks well, however[page_id].tsthrows error:Same error for
[_id].tsand[page-id].tsSomehow related to #3353 and #3650
Please advise.
Thanks.
Here is my config:
{ "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json", "formatter": { "indentStyle": "space", "indentWidth": 2 }, "linter": { "enabled": true, "rules": { "complexity": { "noUselessTernary": "off", "useLiteralKeys": "off" }, "style": { "useFilenamingConvention": { "level": "error", "options": { "strictCase": true, "requireAscii": true, "filenameCases": ["kebab-case", "snake_case", "PascalCase"] } } }, "suspicious": { "noConsole": "error" } } } }Code of Conduct