nhb-express
Version:
Minimal Express + TypeScript scaffolder with modular structure and flexible stack choices.
227 lines (226 loc) • 6.08 kB
JSON
{
"$schema": "https://biomejs.dev/schemas/2.4.12/schema.json",
"vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": false },
"files": {
"includes": ["**", "!!**/dist", "!!**/node_modules"],
"ignoreUnknown": true
},
"formatter": {
"enabled": true,
"formatWithErrors": false,
"indentStyle": "tab",
"indentWidth": 4,
"lineEnding": "lf",
"lineWidth": 96,
"attributePosition": "auto",
"bracketSameLine": false,
"bracketSpacing": true,
"expand": "auto",
"useEditorconfig": true,
"includes": ["**", "!**/dist", "!**/node_modules", "!**/.estimator", "!**/*.md"]
},
"linter": {
"enabled": true,
"rules": {
"recommended": false,
"complexity": {
"noAdjacentSpacesInRegex": "error",
"noExtraBooleanCast": "error",
"noUselessCatch": "error",
"noUselessEscapeInRegex": "error",
"noUselessTypeConstraint": "error"
},
"correctness": {
"noConstAssign": "error",
"noConstantCondition": "error",
"noEmptyCharacterClassInRegex": "info",
"noEmptyPattern": "error",
"noGlobalObjectCalls": "error",
"noInvalidBuiltinInstantiation": "error",
"noInvalidConstructorSuper": "error",
"noNonoctalDecimalEscape": "error",
"noPrecisionLoss": "error",
"noSelfAssign": "error",
"noSetterReturn": "error",
"noSwitchDeclarations": "error",
"noUndeclaredVariables": "error",
"noUnreachable": "error",
"noUnreachableSuper": "error",
"noUnsafeFinally": "error",
"noUnsafeOptionalChaining": "error",
"noUnusedLabels": "error",
"noUnusedPrivateClassMembers": "info",
"noUnusedVariables": "info",
"useIsNan": "error",
"useValidForDirection": "error",
"useValidTypeof": "error",
"useYield": "error"
},
"style": {
"noCommonJs": "error",
"noNamespace": "error",
"useArrayLiterals": "error",
"useAsConstAssertion": "error",
"useBlockStatements": "off",
"useConst": "warn"
},
"suspicious": {
"noAsyncPromiseExecutor": "error",
"noCatchAssign": "error",
"noClassAssign": "error",
"noCompareNegZero": "error",
"noConstantBinaryExpressions": "error",
"noControlCharactersInRegex": "info",
"noDebugger": "error",
"noDuplicateCase": "error",
"noDuplicateClassMembers": "error",
"noDuplicateElseIf": "error",
"noDuplicateObjectKeys": "error",
"noDuplicateParameters": "error",
"noEmptyBlockStatements": "error",
"noExplicitAny": "error",
"noExtraNonNullAssertion": "error",
"noFallthroughSwitchClause": "error",
"noFunctionAssign": "error",
"noGlobalAssign": "error",
"noImportAssign": "error",
"noIrregularWhitespace": "error",
"noMisleadingCharacterClass": "error",
"noMisleadingInstantiator": "error",
"noNonNullAssertedOptionalChain": "error",
"noPrototypeBuiltins": "info",
"noRedeclare": "error",
"noShadowRestrictedNames": "error",
"noSparseArray": "error",
"noUnsafeDeclarationMerging": "error",
"noUnsafeNegation": "error",
"noUnusedExpressions": "off",
"noUselessRegexBackrefs": "error",
"noWith": "error",
"useGetterReturn": "error",
"useNamespaceKeyword": "error",
"noConsole": {
"fix": "safe",
"level": "warn",
"options": {
"allow": [
"warn",
"table",
"error",
"info",
"dir",
"dirxml",
"group",
"groupCollapsed",
"groupEnd",
"time",
"timeEnd",
"trace",
"assert",
"clear"
]
}
}
}
},
"includes": [
"**",
"!node_modules/*",
"!dist/*",
"!coverage/*",
"!**/*.test.ts",
"!**/__tests__/**/*",
"!.VSCodeCounter/*"
]
},
"javascript": {
"formatter": {
"jsxQuoteStyle": "double",
"quoteProperties": "asNeeded",
"trailingCommas": "es5",
"semicolons": "always",
"arrowParentheses": "always",
"bracketSameLine": false,
"quoteStyle": "single",
"attributePosition": "auto",
"bracketSpacing": true
},
"parser": {
"unsafeParameterDecoratorsEnabled": true
}
},
"html": {
"formatter": {
"indentScriptAndStyle": false,
"selfCloseVoidElements": "always"
}
},
"overrides": [
{
"includes": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"],
"linter": {
"rules": {
"complexity": { "noArguments": "error" },
"correctness": {
"noConstAssign": "off",
"noGlobalObjectCalls": "off",
"noInvalidBuiltinInstantiation": "off",
"noInvalidConstructorSuper": "off",
"noSetterReturn": "off",
"noUndeclaredVariables": "off",
"noUnreachable": "off",
"noUnreachableSuper": "off"
},
"style": { "useConst": "error" },
"suspicious": {
"noClassAssign": "off",
"noDuplicateClassMembers": "off",
"noDuplicateObjectKeys": "off",
"noDuplicateParameters": "off",
"noFunctionAssign": "off",
"noImportAssign": "off",
"noRedeclare": "off",
"noUnsafeNegation": "off",
"noVar": "error",
"noWith": "off",
"useGetterReturn": "off"
}
}
}
},
{
"includes": ["src/**/utils/*.ts", "src/**/*types.ts", "src/**/types/*.ts"],
"linter": { "rules": { "complexity": { "noBannedTypes": "off" } } }
},
{
"includes": ["__ideas__/**/*.ts", "__*.ts"],
"linter": {
"rules": {
"correctness": { "noUnusedVariables": "off" },
"suspicious": { "noConsole": "off" }
}
}
},
{
"includes": ["src/**/*types.ts", "src/**/*interfaces.ts"],
"linter": { "rules": { "correctness": { "noUnusedVariables": "off" } } }
},
{
"includes": ["src/**/*types.ts", "src/**/types/*.ts"],
"linter": { "rules": { "suspicious": { "noExplicitAny": "off" } } }
},
{
"includes": ["**/*.js", "**/*.cjs"],
"linter": { "rules": { "style": { "noCommonJs": "off" } } }
},
{
"includes": ["**/*.d.ts"],
"linter": { "rules": { "style": { "noNamespace": "off" } } }
}
],
"assist": {
"enabled": true,
"actions": { "source": { "organizeImports": "on" } },
"includes": ["**", "!src/index.ts", "!src/constants.ts"]
}
}