{"id":19611,"library":"eslint-config-uphold","title":"eslint-config-uphold","description":"Uphold-flavored ESLint configuration extending eslint-recommended with Prettier compatibility. Current stable version is 6.12.0, released with moderate cadence (multiple releases per year). Supports ESLint flat config (ESM only) and requires Node >=20.19.0 (v20), >=22.12.0 (v22), or >=23.0.0. Key differentiators: includes TypeScript support via typescript-eslint, separate configs for JavaScript and TypeScript with factory functions for ESM/CJS, and custom rules like require-comment-punctuation and no-trailing-period-in-log-messages. All peer dependencies must be installed manually.","status":"active","version":"6.12.0","language":"javascript","source_language":"en","source_url":"ssh://git@github.com/uphold/eslint-config-uphold","tags":["javascript","config","eslint","lint","shared"],"install":[{"cmd":"npm install eslint-config-uphold","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-uphold","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-uphold","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: core linter, required at runtime","package":"eslint","optional":false},{"reason":"Peer dependency: code formatting, needed to avoid conflicts","package":"prettier","optional":false},{"reason":"Peer dependency: required for TypeScript configs","package":"typescript","optional":true},{"reason":"Peer dependency: provides TypeScript ESLint rules","package":"typescript-eslint","optional":true},{"reason":"Peer dependency: needed for Jest test configs","package":"eslint-plugin-jest","optional":true},{"reason":"Peer dependency: needed for Mocha test configs","package":"eslint-plugin-mocha","optional":true},{"reason":"Peer dependency: needed for Vitest test configs","package":"@vitest/eslint-plugin","optional":true}],"imports":[{"note":"ESM-only package; CommonJS require() fails. For flat config usage.","wrong":"const uphostConfig = require('eslint-config-uphold');","symbol":"default","correct":"import uphostConfig from 'eslint-config-uphold';"},{"note":"Subpath export under /configs. In older versions (<5.x) was under 'eslint-config-uphold/typescript'.","wrong":"import { typescript } from 'eslint-config-uphold';","symbol":"typescript","correct":"import { typescript } from 'eslint-config-uphold/configs';"},{"note":"Subpath export under /configs.","wrong":"import { javascript } from 'eslint-config-uphold';","symbol":"javascript","correct":"import { javascript } from 'eslint-config-uphold/configs';"},{"note":"Factory for custom TypeScript config, e.g., for CommonJS modules.","wrong":"import { createTypeScriptConfig } from 'eslint-config-uphold';","symbol":"createTypeScriptConfig","correct":"import { createTypeScriptConfig } from 'eslint-config-uphold/configs';"},{"note":"Factory for custom JavaScript config, e.g., for ES modules.","wrong":"import { createJavaScriptConfig } from 'eslint-config-uphold';","symbol":"createJavaScriptConfig","correct":"import { createJavaScriptConfig } from 'eslint-config-uphold/configs';"}],"quickstart":{"code":"import uphostConfig from 'eslint-config-uphold';\nimport { defineConfig, globalIgnores } from 'eslint/config';\n\nexport default defineConfig([\n  uphostConfig,\n  {\n    name: 'my-project/config',\n    rules: {\n      'no-console': 'warn'\n    }\n  },\n  globalIgnores(['dist', 'node_modules'])\n]);\n","lang":"typescript","description":"Flat ESLint config using the default Uphold config, with custom rules and global ignores."},"warnings":[{"fix":"Migrate to ESM and use eslint.config.mjs (or .js with type:module). Use import instead of require.","message":"From v6.0.0, the package is ESM-only and uses flat config. CommonJS require() and legacy .eslintrc formats are not supported.","severity":"breaking","affected_versions":">=6.0.0"},{"fix":"Upgrade Node.js to one of the required versions.","message":"Node.js minimum versions are v23.0.0, v22.12.0, or v20.19.0 due to @stylistic/eslint-plugin-js requiring require('esm') module.","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Change imports to 'eslint-config-uphold/configs'.","message":"The subpath 'eslint-config-uphold/typescript' and 'eslint-config-uphold/javascript' are deprecated; use '/configs' instead.","severity":"deprecated","affected_versions":">=6.0.0"},{"fix":"Use the factory function with 'commonjs' as first argument.","message":"The TypeScript config assumes ESM by default. For CJS projects, use createTypeScriptConfig('commonjs', ...).","severity":"gotcha","affected_versions":">=6.0.0"},{"fix":"Use the factory function with 'module' as first argument.","message":"The JavaScript config assumes CJS by default. For ESM projects, use createJavaScriptConfig('module', ...).","severity":"gotcha","affected_versions":">=6.0.0"},{"fix":"Run: npm install eslint eslint-config-uphold prettier typescript typescript-eslint eslint-plugin-jest eslint-plugin-mocha @vitest/eslint-plugin --save-dev","message":"All peer dependencies must be manually installed; they are not auto-installed by npm.","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":"Install all peer dependencies: npm install eslint eslint-config-uphold prettier --save-dev. Use import instead of require.","cause":"Missing peer dependency or incorrect import path (e.g., using require() in ESM project).","error":"Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'eslint-config-uphold'"},{"fix":"Use 'eslint-config-uphold/configs' for subpath exports.","cause":"Trying to import from subpath that doesn't exist (e.g., 'eslint-config-uphold/typescript' in v6).","error":"Error: 'eslint-config-uphold' is not exported from package"},{"fix":"Pass a valid ECMAScript version integer (e.g., 2022) or 'latest'.","cause":"Passing invalid ecmaVersion to createTypeScriptConfig or createJavaScriptConfig factory.","error":"Error: The 'ecmaVersion' option must be a number or 'latest'."},{"fix":"Upgrade Node.js to v20.19.0+, v22.12.0+, or v23.0.0+.","cause":"Using Node.js versions below the minimum requirement.","error":"Error: Node.js version 18.x is not supported. Minimum required versions: v23.0.0, v22.12.0, or v20.19.0."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}