mirror of
				https://github.com/pagefaultgames/pokerogue.git
				synced 2025-11-04 02:11:19 +01:00 
			
		
		
		
	https://github.com/pagefaultgames/pokerogue/pull/5962/ * Fixed lint issue; ran biome on entire repository * Fixed biome.jsonc * Trimmed trailing whitespace... again... * Fixed PR template md * Fixed package json * Fixed void return issues + ran biome again * ran biome
		
			
				
	
	
		
			126 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
{
 | 
						|
  "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
 | 
						|
  "vcs": {
 | 
						|
    "enabled": false,
 | 
						|
    "clientKind": "git",
 | 
						|
    "useIgnoreFile": true,
 | 
						|
    "defaultBranch": "beta"
 | 
						|
  },
 | 
						|
  "formatter": {
 | 
						|
    "enabled": true,
 | 
						|
    "useEditorconfig": true,
 | 
						|
    "indentStyle": "space",
 | 
						|
    "ignore": ["src/enums/*", "src/data/balance/*"],
 | 
						|
    "lineWidth": 120
 | 
						|
  },
 | 
						|
  "files": {
 | 
						|
    "ignoreUnknown": true,
 | 
						|
    // Adding folders to the ignore list is GREAT for performance because it prevents biome from descending into them
 | 
						|
    // and having to verify whether each individual file is ignored
 | 
						|
    "ignore": [
 | 
						|
      "**/*.d.ts",
 | 
						|
      "dist/*",
 | 
						|
      "build/*",
 | 
						|
      "coverage/*",
 | 
						|
      "public/*",
 | 
						|
      ".github/*",
 | 
						|
      "node_modules/*",
 | 
						|
      ".vscode/*",
 | 
						|
      "*.css", // TODO?
 | 
						|
      "*.html", // TODO?
 | 
						|
      "src/overrides.ts",
 | 
						|
      // TODO: these files are too big and complex, ignore them until their respective refactors
 | 
						|
      "src/data/moves/move.ts",
 | 
						|
 | 
						|
      // this file is just too big:
 | 
						|
      "src/data/balance/tms.ts"
 | 
						|
    ]
 | 
						|
  },
 | 
						|
 | 
						|
  // While it'd be nice to enable consistent sorting, enabling this causes issues due to circular import resolution order
 | 
						|
  // TODO: Remove if we ever get down to 0 circular imports
 | 
						|
  "organizeImports": { "enabled": false },
 | 
						|
  "linter": {
 | 
						|
    "enabled": true,
 | 
						|
    "rules": {
 | 
						|
      "recommended": true,
 | 
						|
      "correctness": {
 | 
						|
        "noUndeclaredVariables": "off",
 | 
						|
        "noUnusedVariables": "error",
 | 
						|
        "noSwitchDeclarations": "error",
 | 
						|
        "noVoidTypeReturn": "error",
 | 
						|
        "noUnusedImports": "error"
 | 
						|
      },
 | 
						|
      "style": {
 | 
						|
        "noVar": "error",
 | 
						|
        "useEnumInitializers": "off", // large enums like Moves/Species would make this cumbersome
 | 
						|
        "useBlockStatements": "error",
 | 
						|
        "useConst": "error",
 | 
						|
        "useImportType": "error",
 | 
						|
        "noNonNullAssertion": "off", // TODO: Turn this on ASAP and fix all non-null assertions in non-test files
 | 
						|
        "noParameterAssign": "off",
 | 
						|
        "useExponentiationOperator": "off", // Too typo-prone and easy to mixup with standard multiplication (* vs **)
 | 
						|
        "useDefaultParameterLast": "off", // TODO: Fix spots in the codebase where this flag would be triggered, and then enable
 | 
						|
        "useSingleVarDeclarator": "off",
 | 
						|
        "useNodejsImportProtocol": "off",
 | 
						|
        "useTemplate": "off", // string concatenation is faster: https://stackoverflow.com/questions/29055518/are-es6-template-literals-faster-than-string-concatenation
 | 
						|
        "noNamespaceImport": "error"
 | 
						|
      },
 | 
						|
      "suspicious": {
 | 
						|
        "noDoubleEquals": "error",
 | 
						|
        // While this would be a nice rule to enable, the current structure of the codebase makes this infeasible
 | 
						|
        // due to being used for move/ability `args` params and save data-related code.
 | 
						|
        // This can likely be enabled for all non-utils files once these are eventually reworked, but until then we leave it off.
 | 
						|
        "noExplicitAny": "off",
 | 
						|
        "noAssignInExpressions": "off",
 | 
						|
        "noPrototypeBuiltins": "off",
 | 
						|
        "noFallthroughSwitchClause": "error", // Prevents accidental automatic fallthroughs in switch cases (use disable comment if needed)
 | 
						|
        "noImplicitAnyLet": "warn", // TODO: Refactor and make this an error
 | 
						|
        "noRedeclare": "info", // TODO: Refactor and make this an error
 | 
						|
        "noGlobalIsNan": "off",
 | 
						|
        "noAsyncPromiseExecutor": "warn" // TODO: Refactor and make this an error
 | 
						|
      },
 | 
						|
      "complexity": {
 | 
						|
        "noExcessiveCognitiveComplexity": "warn", // TODO: Refactor and make this an error
 | 
						|
        "useLiteralKeys": "off",
 | 
						|
        "noForEach": "off", // Foreach vs for of is not that simple.
 | 
						|
        "noUselessSwitchCase": "off", // Explicit > Implicit
 | 
						|
        "noUselessConstructor": "error",
 | 
						|
        "noBannedTypes": "warn" // TODO: Refactor and make this an error
 | 
						|
      },
 | 
						|
      "nursery": {
 | 
						|
        "noRestrictedTypes": {
 | 
						|
          "level": "error",
 | 
						|
          "options": {
 | 
						|
            "types": {
 | 
						|
              "integer": {
 | 
						|
                "message": "This is an alias for 'number' that can provide false impressions of what values can actually be contained in this variable. Use 'number' instead.",
 | 
						|
                "use": "number"
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  },
 | 
						|
  "javascript": {
 | 
						|
    "formatter": { "quoteStyle": "double", "arrowParentheses": "asNeeded" }
 | 
						|
  },
 | 
						|
  "overrides": [
 | 
						|
    {
 | 
						|
      "include": ["test/**/*.test.ts"],
 | 
						|
      "javascript": { "globals": [] },
 | 
						|
      "linter": {
 | 
						|
        "rules": {
 | 
						|
          "performance": {
 | 
						|
            "noDelete": "off" // TODO: evaluate if this is necessary for the test(s) to function
 | 
						|
          },
 | 
						|
          "style": {
 | 
						|
            "noNamespaceImport": "off" // this is required for `vi.spyOn` to work in some tests
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  ]
 | 
						|
}
 |