{"id":19600,"library":"eslint-config-tui","title":"eslint-config-tui","description":"ESLint shareable config for NHN Cloud TUI components. Current stable version is 6.39.3, released regularly with updates aligned to ESLint releases. It provides a flat config for ESLint v9+, replacing the legacy eslintrc format. Differentiator: maintained by NHN Cloud and follows the NHN JavaScript Style Guide. Release cadence is irregular but frequent, with major version bumps for breaking changes like ESLint v9 flat config support.","status":"active","version":"6.39.3","language":"javascript","source_language":"en","source_url":"https://github.com/nhn/tui.eslint.config","tags":["javascript","eslint","eslint-config","eslint.config","nhn","nhn cloud","tui","tui.eslint.config","tui.eslint"],"install":[{"cmd":"npm install eslint-config-tui","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-tui","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-tui","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency, required to run ESLint","package":"eslint","optional":false},{"reason":"peer dependency, provides global variables for ESLint","package":"globals","optional":false}],"imports":[{"note":"Since v6.0.0, the package exports a flat config array. For CommonJS, use `const tui = require('eslint-config-tui');` with `eslint.config.js` (not `.mjs`).","wrong":"const tui = require('eslint-config-tui')","symbol":"default import","correct":"import tui from 'eslint-config-tui'"},{"note":"The exported value is an array of config objects; spread or Array.concat works, but spread is idiomatic.","wrong":"export default tui.concat({ ... })","symbol":"ESLint config array spread","correct":"export default [...tui, { ... }]"},{"note":"v5.x and below use eslintrc format. v6+ is flat config only. If using eslintrc, use v5.x.","wrong":"import tui from 'eslint-config-tui' in flat config","symbol":"Legacy v5 usage","correct":"require('eslint-config-tui') as extend in .eslintrc"}],"quickstart":{"code":"// eslint.config.mjs\nimport tui from 'eslint-config-tui';\n\nexport default [\n  ...tui,\n  {\n    rules: {\n      // Override rules: e.g., allow console\n      'no-console': 'off',\n    },\n  },\n];\n","lang":"javascript","description":"Create an ESLint flat config using eslint-config-tui with custom rule overrides."},"warnings":[{"fix":"Upgrade to eslint v9 and use the flat config format as shown in the quickstart. If you must use eslintrc, stay on v5.x.","message":"v6.0.0 introduced a flat config format, breaking all eslintrc-based configurations.","severity":"breaking","affected_versions":">=6.0.0"},{"fix":"Upgrade to v6.0.1 or later.","message":"v6.0.0 had a bug causing 'TypeError: possibleConfig is not iterable'. Fixed in v6.0.1.","severity":"breaking","affected_versions":"6.0.0"},{"fix":"Use a formatter like Prettier instead. See https://eslint.org/docs/latest/use/formatting","message":"Formatting rules (like semi, quotes) are deprecated and will be removed in v10.0.0.","severity":"deprecated","affected_versions":">=5.5.0"},{"fix":"Use import/export syntax in eslint.config.js if your package.json has type: module, else use module.exports in .cjs.","message":"If your project uses ESM, the config file must be named eslint.config.js (not .mjs) and use export default. CommonJS users should use .cjs or require() in .js.","severity":"gotcha","affected_versions":">=6.0.0"},{"fix":"Add to your config: rules: { 'no-console': ['warn', { allow: ['warn', 'error'] }] }","message":"The 'no-console' rule allows no methods by default; to allow specific methods like 'warn' and 'error', override the rule.","severity":"gotcha","affected_versions":">=6.0.0"},{"fix":"Remove the rule from your config; ESLint will warn if you use it.","message":"The 'no-return-await' rule was removed in v5.4.0 as it is deprecated in ESLint v8.46.0+.","severity":"deprecated","affected_versions":">=5.4.0"},{"fix":"Use `export default [...tui, { ... }]` instead of `export default tui`.","message":"Since v6.0.0, the config is an array of flat config objects. Spreading is required; using the config as a single object will cause errors.","severity":"gotcha","affected_versions":">=6.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Upgrade to eslint-config-tui@6.0.1 or later.","cause":"Bug in v6.0.0 that failed to export the config as an array.","error":"TypeError: possibleConfig is not iterable"},{"fix":"Use ['warn', { allow: ['warn'] }] as the rule value.","cause":"Misunderstanding of the rule format; the array must contain severity and options object.","error":"ESLint: Configuration for rule 'no-console' is invalid. Value [\"warn\",{\"allow\":[\"warn\"]}] should be array."},{"fix":"Create an eslint.config.js (or .mjs) file and use the flat config format.","cause":"ESLint v9 dropped support for eslintrc format.","error":".eslintrc.js is not supported in eslint v9. Use eslint.config.js instead."},{"fix":"Set type: module in package.json or rename file to .mjs.","cause":"Using ES module syntax (export) in a CommonJS file (no type: module in package.json).","error":"Parsing error: The keyword 'export' is reserved"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}