{"id":19546,"library":"eslint-config-neo","title":"Neo Financial ESLint Config","description":"eslint-config-neo is the official ESLint configuration package from Neo Financial, currently at v0.12.1. It provides a comprehensive set of rules for TypeScript, React, Jest, and Node.js projects, built on top of @typescript-eslint, eslint-plugin-import, eslint-plugin-unicorn, and Prettier. The package ships multiple config presets (config-backend, config-frontend, config-test) and actively enforces code style like curly braces and no reduce. It requires peer dependencies eslint ^8.34.0, prettier ^3.0.0, and typescript. Compared to alternatives like eslint-config-standard or airbnb, it is tailored for Neo's internal style guide and tightly versioned with their toolchain. Release cadence is irregular with breaking changes tied to ESLint major version bumps.","status":"active","version":"0.12.1","language":"javascript","source_language":"en","source_url":"https://github.com/neofinancial/eslint-config-neo","tags":["javascript"],"install":[{"cmd":"npm install eslint-config-neo","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-neo","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-neo","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required; version ^8.34.0.","package":"eslint","optional":false},{"reason":"Peer dependency required; version ^3.0.0.","package":"prettier","optional":false},{"reason":"Peer dependency required; version ^3.7.0 || ^4.0.0 || ^5.0.0.","package":"typescript","optional":false}],"imports":[{"note":"Default export of base config. CommonJS require works but ESM is preferred.","wrong":"const configBase = require('eslint-config-neo')","symbol":"config-base","correct":"import configBase from 'eslint-config-neo'"},{"note":"Named config must be imported from subpath, not top-level named export.","wrong":"import { configBackend } from 'eslint-config-neo'","symbol":"config-backend","correct":"import configBackend from 'eslint-config-neo/config-backend'"},{"note":"Subpath is 'config-frontend', not nested. Introduced in v0.6.0.","wrong":"import configFrontend from 'eslint-config-neo/config/frontend'","symbol":"config-frontend","correct":"import configFrontend from 'eslint-config-neo/config-frontend'"},{"note":"Test-specific config for Jest/Mocha projects.","wrong":null,"symbol":"config-test","correct":"import configTest from 'eslint-config-neo/config-test'"}],"quickstart":{"code":"// .eslintrc.js\nmodule.exports = {\n  extends: [\n    'eslint-config-neo',\n    'eslint-config-neo/config-backend',\n    'eslint-config-neo/config-frontend',\n  ],\n  rules: {\n    // Add overrides here\n  },\n};\n","lang":"javascript","description":"Extends base, backend, and frontend configs in an ESLint config file. Shows typical project setup."},"warnings":[{"fix":"Upgrade ESLint to version 6+ (currently requires ^8.34.0).","message":"Drop support for ESLint 5 in v0.5.0.","severity":"breaking","affected_versions":">=0.5.0"},{"fix":"Ensure package.json includes these exact peer ranges. Using incompatible versions may cause rule failures.","message":"Peer dependencies require specific major versions: eslint ^8.34.0, prettier ^3.0.0, typescript >=3.7.","severity":"breaking","affected_versions":">=0.12.0"},{"fix":"Use stable config-backend and config-frontend for production. Avoid -next variants.","message":"Configs like config-backend-next and config-frontend-next are experimental and may change without notice.","severity":"deprecated","affected_versions":">=0.6.0"},{"fix":"Always use curly braces on multi-line or single-line if statements. For one-liners, e.g. if (x) doSomething(), rewrite with braces.","message":"The rule 'curly' enforces braces on all if/else statements; shorthand if without braces will error.","severity":"gotcha","affected_versions":">=0.6.4"},{"fix":"Prefer undefined over null in your codebase despite the rule being disabled.","message":"Disables 'no-null' in base config, but null usage still discouraged by style guide.","severity":"gotcha","affected_versions":">=0.6.1"},{"fix":"Use config-test only for Jest projects. For other test frameworks, extend base config and add test rules manually.","message":"Jest rules are enabled by default in config-test; if not using Jest, override or avoid that config.","severity":"deprecated","affected_versions":">=0.4.1"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Verify the config path in your .eslintrc.js: `'eslint-config-neo/config-backend'` and ensure the package is installed.","cause":"Missing or incorrect path when importing config-backend. The correct path is 'eslint-config-neo/config-backend'.","error":"Error: Cannot find module 'eslint-config-neo/config-backend'"},{"fix":"Run `npm install eslint@^8.34.0 prettier@^3.0.0 typescript@^4.0.0 --save-dev`.","cause":"Missing peer dependency: eslint, prettier, or typescript not installed or wrong version.","error":"Error: Failed to load plugin '@typescript-eslint' declared in 'eslint-config-neo': Cannot find module 'eslint'"},{"fix":"Ensure TypeScript is >=3.7 and eslint-config-neo is properly extended. Verify tsconfig.json is present.","cause":"TypeScript parser not configured correctly; missing 'parser: @typescript-eslint/parser' or incompatible TypeScript version.","error":"Parsing error: Unexpected token type 'TS...'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}