mirror of
https://github.com/ChainSafe/lodestar.git
synced 2026-01-10 08:08:16 -05:00
**Motivation** Add types support for Bun. So we can start using `if(Bun)` in our codebase. **Description** - Add `@types/bun` package **Steps to test or reproduce** - Run all tests
219 lines
6.9 KiB
JSON
219 lines
6.9 KiB
JSON
{
|
|
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
|
|
"extends": [
|
|
"@chainsafe/biomejs-config",
|
|
"@chainsafe/biomejs-config/recommended",
|
|
"@chainsafe/biomejs-config/nodejs",
|
|
"@chainsafe/biomejs-config/esm"
|
|
],
|
|
"vcs": {
|
|
"defaultBranch": "unstable"
|
|
},
|
|
"files": {
|
|
"include": ["packages/*/src/**/*.ts", "packages/*/test/**/*.ts", "configs/**/*.ts", "./vitest.config.ts"]
|
|
},
|
|
"formatter": {
|
|
"ignore": ["**/lib", "**/.nyc_output", "./packages/*/spec-tests", "**/node_modules", "./packages/*/node_modules/**"]
|
|
},
|
|
"javascript": {
|
|
"globals": ["Bun"]
|
|
},
|
|
"organizeImports": {
|
|
"enabled": true
|
|
},
|
|
"linter": {
|
|
"rules": {
|
|
"correctness": {
|
|
"useImportExtensions": {
|
|
"level": "error",
|
|
"options": {
|
|
"suggestedExtensions": {
|
|
"ts": {
|
|
"module": "js",
|
|
"component": "jsx"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"performance": {
|
|
// This rule should be enabled but with considerations and careful review
|
|
"noDelete": "off"
|
|
},
|
|
"style": {
|
|
// The code usage looks suspicious so it should be enabled in a separate PR
|
|
"noCommaOperator": "off",
|
|
// There are a lot of places we mutate params, should be fixed in an independent PR.
|
|
"noParameterAssign": "off",
|
|
"noRestrictedGlobals": {
|
|
"level": "error",
|
|
"options": {
|
|
"deniedGlobals": ["fetch"]
|
|
}
|
|
},
|
|
// In some cases the enums are initialized with values of other enums
|
|
"useLiteralEnumMembers": "off",
|
|
// We use `+` operator for string concatenation a lot
|
|
"useTemplate": "off",
|
|
// We use to export types and object without differentiating
|
|
"useExportType": "off",
|
|
// We use to import types and object without differentiating
|
|
"useImportType": "off",
|
|
// We prefer to auto-initialize enums
|
|
"useEnumInitializers": "off",
|
|
"useNamingConvention": {
|
|
"level": "error",
|
|
"options": {
|
|
"strictCase": false,
|
|
"requireAscii": true,
|
|
"conventions": [
|
|
// Skip __dirname and any variable starting with _, for rest check next convention
|
|
{
|
|
"selector": {
|
|
"kind": "variable"
|
|
},
|
|
"match": "(?:__dirname)|(?:_.*)|(.*)"
|
|
},
|
|
{
|
|
"selector": {
|
|
"kind": "variable"
|
|
},
|
|
"formats": ["camelCase", "PascalCase", "CONSTANT_CASE"]
|
|
},
|
|
{
|
|
"selector": {
|
|
"kind": "typeLike"
|
|
},
|
|
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
|
|
},
|
|
{
|
|
"selector": {
|
|
"kind": "objectLiteralProperty"
|
|
},
|
|
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
|
|
},
|
|
{
|
|
"selector": {
|
|
"kind": "objectLiteralMethod"
|
|
},
|
|
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
|
|
},
|
|
// Skip any property starting with _ and then check for next convention
|
|
{
|
|
"selector": {
|
|
"kind": "classProperty"
|
|
},
|
|
"match": "(?:_.*)|(.*)"
|
|
},
|
|
{
|
|
"selector": {
|
|
"kind": "classProperty"
|
|
},
|
|
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
|
|
},
|
|
{
|
|
"selector": {
|
|
"kind": "typeProperty"
|
|
},
|
|
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
|
|
},
|
|
{
|
|
"selector": {
|
|
"kind": "typeMethod"
|
|
},
|
|
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
|
|
},
|
|
{
|
|
"selector": {
|
|
"kind": "enumMember"
|
|
},
|
|
"formats": ["camelCase", "snake_case", "PascalCase", "CONSTANT_CASE"]
|
|
},
|
|
{
|
|
"selector": {
|
|
"kind": "indexParameter"
|
|
},
|
|
"formats": ["camelCase", "PascalCase"]
|
|
},
|
|
{
|
|
"selector": {
|
|
"kind": "function"
|
|
},
|
|
"formats": ["camelCase", "PascalCase"]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"suspicious": {
|
|
// There is a lot of empty code blocks, should be enabled and clean up separately.
|
|
"noEmptyBlockStatements": "off"
|
|
},
|
|
"nursery": {
|
|
// Need to enable this rule with exception to anonymous functions
|
|
"useExplicitType": "off"
|
|
}
|
|
}
|
|
},
|
|
"overrides": [
|
|
// Code using console output
|
|
{
|
|
"include": ["packages/cli/src/", "packages/test-utils/src", "packages/flare/src"],
|
|
"linter": {
|
|
"rules": {
|
|
"suspicious": {
|
|
"noConsole": "off"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
// All test files
|
|
{
|
|
"include": ["**/test/**/*.ts", "packages/spec-test-util/src"],
|
|
"linter": {
|
|
"rules": {
|
|
"complexity": {
|
|
// During tests we often need to use private/protected attributes, which is only possible with literal keys
|
|
"useLiteralKeys": "off"
|
|
},
|
|
"suspicious": {
|
|
// During tests it's quicker to define variables with `let` without specifying types
|
|
"noImplicitAnyLet": "off",
|
|
// During testing we use `any` type for quick assignments
|
|
"noExplicitAny": "off",
|
|
// Console logging is often used in tests
|
|
"noConsole": "off"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"include": [
|
|
// These files are using mix cases e.g. `engine_newPayloadV4`
|
|
// It's a mix of snake_case and camelCase, which can't validated by biome
|
|
"packages/beacon-node/src/db/buckets.ts",
|
|
"packages/beacon-node/src/execution/engine/mock.ts",
|
|
"packages/beacon-node/src/execution/engine/types.ts",
|
|
"packages/beacon-node/src/eth1/provider/eth1Provider.ts",
|
|
"packages/validator/src/buckets.ts",
|
|
"packages/prover/src/types.ts",
|
|
"prover/src/utils/process.ts",
|
|
"prover/src/verified_requests/**/*.ts",
|
|
"packages/types/src/utils/**/*.ts",
|
|
// This file is using snake_case function names
|
|
"packages/beacon-node/test/spec/bls/bls.ts"
|
|
],
|
|
"linter": {
|
|
"rules": {
|
|
"style": {
|
|
"useNamingConvention": {
|
|
"level": "off",
|
|
"options": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|