{"id":19549,"library":"eslint-config-niieani","title":"eslint-config-niieani","description":"A modern TypeScript-only ESLint configuration package extending Airbnb's base config with additional rules for promises, unicorn, import sorting, and Jest. Version 1.2.10 requires ESLint >=7.32.0 and Node.js >=12.22.12. It ships TypeScript types and is part of the scaffold monorepo. Designed for Beemo-configured projects, it uses tabs over spaces, prefers named exports, and automatically detects tsconfig.json. Optional presets for browser, Node, and React are available.","status":"active","version":"1.2.10","language":"javascript","source_language":"en","source_url":"https://github.com/niieani/scaffold","tags":["javascript","eslint-config","airbnb","beemo","react","typescript"],"install":[{"cmd":"npm install eslint-config-niieani","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-niieani","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-niieani","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required to run ESLint with this config","package":"eslint","optional":false}],"imports":[{"note":"ESLint resolves eslint-config-* prefixes automatically, so 'eslint-config-niieani' works but 'niieani' is shorter and idiomatic.","wrong":"module.exports = { extends: ['eslint-config-niieani'] }","symbol":"config","correct":"module.exports = { extends: ['niieani'] }"},{"note":"The 'niieani/browser' preset enables the browser environment and compat plugin. It should not be combined with 'niieani/node'.","wrong":null,"symbol":"preset browser","correct":"module.exports = { extends: ['niieani', 'niieani/browser'] }"},{"note":"The 'niieani/node' preset sets Node.js environment and enables the node plugin. Do not use with 'niieani/browser'.","wrong":null,"symbol":"preset node","correct":"module.exports = { extends: ['niieani', 'niieani/node'] }"},{"note":"The 'niieani/react' preset adds React, React Hooks, React Perf, and JSX a11y plugins. Only applies to .tsx files and automatically extends 'niieani/browser'.","wrong":null,"symbol":"preset react","correct":"module.exports = { extends: ['niieani', 'niieani/react'] }"}],"quickstart":{"code":"// Install the config and its peer dependency\n// npm install --save-dev eslint eslint-config-niieani\n\n// .eslintrc.js\nmodule.exports = {\n  root: true,\n  extends: [\n    'niieani',\n    // Add presets as needed, e.g.\n    // 'niieani/react',\n  ],\n  // Override rules if necessary\n  rules: {\n    'import/prefer-default-export': 'off', // Already off in config\n    // ...\n  }\n};","lang":"javascript","description":"Shows how to install and configure eslint-config-niieani in an ESLint project."},"warnings":[{"fix":"Place all source files under a 'src/' directory.","message":"The config requires source files to be located in a 'src' folder. Moving source files elsewhere will cause rules to not apply or produce errors.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Name test files accordingly and place them in the correct directory.","message":"Test files must end with '*.test.{ts,tsx}' and be inside 'tests' or '__tests__' folders for Jest-specific rules to apply.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Either adopt tabs or override the 'indent' rule in your ESLint config.","message":"The config uses tabs over spaces for accessibility. If your project uses spaces, this will cause formatting conflicts.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Ensure all source files are TypeScript or override the parser.","message":"The config relies on TypeScript for parsing; files must be in a TypeScript-supported format (.ts, .tsx). JavaScript files (.js, .jsx) are not parsed.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Upgrade ESLint to version >=7.32.0.","message":"Peer dependency eslint >=7.32.0 is required. Older versions are not supported.","severity":"breaking","affected_versions":">=1.2.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 --save-dev eslint-config-niieani`.","cause":"eslint-config-niieani is not installed or not in node_modules.","error":"Error: Failed to load config 'niieani' to extend from."},{"fix":"Run `npm install --save-dev eslint-config-airbnb-base` or use npm >=7 for automatic peer dependency resolution.","cause":"airbnb-base is a dependency of eslint-config-niieani but may not be automatically installed with npm versions below 7.","error":"Error: Cannot find module 'eslint-config-airbnb-base'"},{"fix":"Create a tsconfig.json in your project root, or override parserOptions in your ESLint config.","cause":"The config tries to automatically set parserOptions.project based on root tsconfig.json, but it doesn't exist.","error":"Parsing error: Cannot read file 'tsconfig.json'."},{"fix":"Use 'niieani/node' (not 'eslint-config-niieani/node') in the extends array.","cause":"The preset name is incorrect or the config is not properly referenced.","error":"Error: Failed to load config 'niieani/node' to extend from."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}