{"id":19516,"library":"eslint-config-farther","title":"eslint-config-farther","description":"A strict ESLint configuration for TypeScript and React projects, v1.0.5, released sporadically. It bundles a curated set of plugins (functional, unicorn, etc., security-focused no-type-assertion, accessibility jsx-a11y) and enforces consistent formatting via Prettier. Differentiates with opinionated rules on type assertions, functional programming patterns, and export sorting. Requires exact peer dependency versions, which may conflict with other configs.","status":"active","version":"1.0.5","language":"javascript","source_language":"en","source_url":null,"tags":["javascript"],"install":[{"cmd":"npm install eslint-config-farther","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-farther","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-farther","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for linting","package":"eslint","optional":false},{"reason":"peer dependency for formatting","package":"prettier","optional":false},{"reason":"peer dependency for TypeScript rules","package":"@typescript-eslint/eslint-plugin","optional":false},{"reason":"peer dependency for TypeScript parsing","package":"@typescript-eslint/parser","optional":false},{"reason":"peer dependency to disable conflicting rules","package":"eslint-config-prettier","optional":false},{"reason":"peer dependency for etc rules","package":"eslint-plugin-etc","optional":false},{"reason":"peer dependency for functional programming rules","package":"eslint-plugin-functional","optional":false},{"reason":"peer dependency for import rules","package":"eslint-plugin-import","optional":false},{"reason":"peer dependency for accessibility rules","package":"eslint-plugin-jsx-a11y","optional":false},{"reason":"peer dependency for type assertion rules","package":"eslint-plugin-no-type-assertion","optional":false},{"reason":"peer dependency for prettier integration","package":"eslint-plugin-prettier","optional":false},{"reason":"peer dependency for React rules","package":"eslint-plugin-react","optional":false},{"reason":"peer dependency for React hooks rules","package":"eslint-plugin-react-hooks","optional":false},{"reason":"peer dependency for export sorting","package":"eslint-plugin-sort-exports","optional":false},{"reason":"peer dependency for unicorn rules","package":"eslint-plugin-unicorn","optional":false}],"imports":[{"note":"Default export is the config object itself; no named exports in v1.x. Use in flat config array.","wrong":"","symbol":"flat/config","correct":"import config from 'eslint-config-farther'"},{"note":"In .eslintrc.* files, just use \"farther\"; the package name is already scoped.","wrong":"{\"extends\": [\"eslint-config-farther\"]}","symbol":".eslintrc.json","correct":"{\"extends\": \"farther\"}"},{"note":"ESLint flat config expects an array; for CJS, require() and wrap in array.","wrong":"module.exports = config;","symbol":"require('eslint-config-farther')","correct":"const config = require('eslint-config-farther'); module.exports = [config];"}],"quickstart":{"code":"// eslint.config.js\nimport config from 'eslint-config-farther';\n\nexport default [\n  ...config,\n  {\n    rules: {\n      // Override or add custom rules\n      'no-console': 'warn',\n    },\n  },\n];\n","lang":"typescript","description":"Shows how to use the default export in an ESLint flat config file with custom rule overrides."},"warnings":[{"fix":"Downgrade to ESLint 8.57.0 or wait for an update.","message":"ESLint v9 compatibility: This config is designed for ESLint 8.57.0 and may not work with ESLint v9 due to changes in flat config and rule APIs.","severity":"breaking","affected_versions":">=9.0.0"},{"fix":"Use npm's --legacy-peer-deps flag or manually adjust peer dependency versions at your own risk.","message":"Strict peer dependency versions: All peer dependencies are pinned to exact versions, which may conflict with other tools or configs that require different versions.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Disable specific functional rules (e.g., 'functional/prefer-readonly-type': 'off') in your config overrides.","message":"Functional programming rules may be too opinionated for many codebases; they enforce immutability and expression-based code by default.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Consider migrating to built-in TypeScript ESLint rules and removing the plugin.","message":"The no-type-assertion plugin is deprecated in favor of @typescript-eslint/no-unnecessary-type-assertion; the maintainer may drop it in future.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Use 'extends' in .eslintrc.json as shown in quickstart, or migrate to eslint.config.js.","message":"Flat config only: This config exports a flat config array, not a legacy .eslintrc config object. Using it with .eslintrc.* files requires wrapping correctly.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run: npm install eslint-plugin-etc@2.0.3 --save-dev","cause":"Missing peer dependency eslint-plugin-etc at exact version 2.0.3.","error":"ESLint: Failed to load plugin 'etc' declared in 'eslint-config-farther': Peer dependency not found."},{"fix":"Run: npm install eslint-config-farther --save-dev","cause":"The package is not installed or not in node_modules.","error":"Error: Cannot find module 'eslint-config-farther'"},{"fix":"Wrap the config in an array: export default [config];","cause":"Using the exported config directly without spreading in a flat config array.","error":"TypeError: config is not iterable"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}