Neo Financial ESLint Config
raw JSON →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.
Common errors
error Error: Cannot find module 'eslint-config-neo/config-backend' ↓
'eslint-config-neo/config-backend' and ensure the package is installed. error Error: Failed to load plugin '@typescript-eslint' declared in 'eslint-config-neo': Cannot find module 'eslint' ↓
npm install eslint@^8.34.0 prettier@^3.0.0 typescript@^4.0.0 --save-dev. error Parsing error: Unexpected token type 'TS...' ↓
Warnings
breaking Drop support for ESLint 5 in v0.5.0. ↓
breaking Peer dependencies require specific major versions: eslint ^8.34.0, prettier ^3.0.0, typescript >=3.7. ↓
deprecated Configs like config-backend-next and config-frontend-next are experimental and may change without notice. ↓
gotcha The rule 'curly' enforces braces on all if/else statements; shorthand if without braces will error. ↓
gotcha Disables 'no-null' in base config, but null usage still discouraged by style guide. ↓
deprecated Jest rules are enabled by default in config-test; if not using Jest, override or avoid that config. ↓
Install
npm install eslint-config-neo yarn add eslint-config-neo pnpm add eslint-config-neo Imports
- config-base wrong
const configBase = require('eslint-config-neo')correctimport configBase from 'eslint-config-neo' - config-backend wrong
import { configBackend } from 'eslint-config-neo'correctimport configBackend from 'eslint-config-neo/config-backend' - config-frontend wrong
import configFrontend from 'eslint-config-neo/config/frontend'correctimport configFrontend from 'eslint-config-neo/config-frontend' - config-test
import configTest from 'eslint-config-neo/config-test'
Quickstart
// .eslintrc.js
module.exports = {
extends: [
'eslint-config-neo',
'eslint-config-neo/config-backend',
'eslint-config-neo/config-frontend',
],
rules: {
// Add overrides here
},
};