{"id":25493,"library":"eslint-config-typescript-shareable","title":"eslint-config-typescript-shareable","description":"Shared ESLint, Stylelint, and Prettier configurations for TypeScript projects, version 1.9.0 (stable, last release Oct 2022). Provides consistent linting rules for TypeScript codebases including React, React Hooks, functional programming, import ordering, SCSS, and styled-components. Requires manual installation of many peer dependencies (ESLint 8, Prettier 2, TypeScript 4, etc.). Unlike single-purpose configs, this is a monorepo-style package covering both JS/TS linting and CSS linting with stylelint, aiming for opinionated uniformity across teams.","status":"maintenance","version":"1.9.0","language":"javascript","source_language":"en","source_url":"https://github.com/AxisCommunications/eslint-config-typescript-shareable","tags":["javascript"],"install":[{"cmd":"npm install eslint-config-typescript-shareable","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-typescript-shareable","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-typescript-shareable","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required for TypeScript-specific ESLint rules","package":"@typescript-eslint/eslint-plugin","optional":false},{"reason":"Required to parse TypeScript syntax","package":"@typescript-eslint/parser","optional":false},{"reason":"Core linter engine","package":"eslint","optional":false},{"reason":"Enables functional programming lint rules","package":"eslint-plugin-functional","optional":false},{"reason":"Enables import/export lint rules","package":"eslint-plugin-import","optional":false},{"reason":"Enables React-specific lint rules","package":"eslint-plugin-react","optional":false},{"reason":"Enforce Rules of Hooks","package":"eslint-plugin-react-hooks","optional":false},{"reason":"Required for stylelint parsing","package":"postcss","optional":false},{"reason":"Required for SCSS parsing in stylelint","package":"postcss-scss","optional":false},{"reason":"Required for styled-components parsing in stylelint","package":"postcss-styled","optional":false},{"reason":"Syntax addon for stylelint","package":"postcss-syntax","optional":false},{"reason":"Code formatter integration","package":"prettier","optional":false},{"reason":"CSS linter engine","package":"stylelint","optional":false},{"reason":"Base stylelint config","package":"stylelint-config-recommended","optional":false},{"reason":"Standard SCSS config for stylelint","package":"stylelint-config-standard-scss","optional":false},{"reason":"Styled-components support for stylelint","package":"stylelint-config-styled-components","optional":false},{"reason":"Processor for styled-components in stylelint","package":"stylelint-processor-styled-components","optional":false},{"reason":"TypeScript compiler for linting","package":"typescript","optional":false},{"reason":"TypeScript plugin for styled-components","package":"typescript-styled-plugin","optional":false}],"imports":[{"note":"This config is used via extends in ESLint config file, not imported directly.","wrong":"import { eslintConfigTypescriptShareable } from 'eslint-config-typescript-shareable';","symbol":"eslint-config-typescript-shareable","correct":"module.exports = { extends: ['eslint-config-typescript-shareable'] };"},{"note":"Stylelint config is a separate export path within the package.","wrong":"const config = require('eslint-config-typescript-shareable/stylelint');","symbol":"stylelint-config-typescript-shareable (if available)","correct":"module.exports = { extends: ['eslint-config-typescript-shareable/stylelint'] };"},{"note":"Prettier config is likely a JSON file, use require or spread.","wrong":"import prettierConfig from 'eslint-config-typescript-shareable/prettier';","symbol":"prettier-config-typescript-shareable (if available)","correct":"module.exports = { ...require('eslint-config-typescript-shareable/prettier') };"}],"quickstart":{"code":"// Install all peer dependencies:\nnpm install --save-dev eslint-config-typescript-shareable @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint eslint-plugin-functional eslint-plugin-import eslint-plugin-react eslint-plugin-react-hooks postcss postcss-scss postcss-styled postcss-syntax prettier stylelint stylelint-config-recommended stylelint-config-standard-scss stylelint-config-styled-components stylelint-processor-styled-components typescript typescript-styled-plugin\n\n// .eslintrc.js\nmodule.exports = {\n  extends: ['eslint-config-typescript-shareable'],\n  // Other ESLint settings...\n};\n\n// .stylelintrc.js\nmodule.exports = {\n  extends: ['eslint-config-typescript-shareable/stylelint'],\n};\n\n// .prettierrc.js\nmodule.exports = {\n  ...require('eslint-config-typescript-shareable/prettier'),\n};","lang":"javascript","description":"This shows how to install all required peer dependencies and set up ESLint, Stylelint, and Prettier configurations by extending the shared configs from the package."},"warnings":[{"fix":"Install all peer dependencies as listed in the package.json.","message":"Missing peer dependencies will cause silent errors or unexpected behavior.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Consider migrating to more actively maintained configs like @typescript-eslint/eslint-plugin's own recommended config.","message":"The package's last release was in October 2022; updates to ESLint 9 or newer are not available.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Update Node.js to version 18 or higher.","message":"The package requires Node.js >=18.0.0.","severity":"breaking","affected_versions":">=1.9.0"},{"fix":"Review the source configs in the repository to understand rules, and override as needed.","message":"The configs are very opinionated; they may override or conflict with other ESLint plugins or custom rules.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Lock versions to those specified in peer dependencies or test upgrades carefully.","message":"PostCSS and stylelint plugins may have compatibility issues with newer versions of PostCSS or stylelint.","severity":"gotcha","affected_versions":"<2.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install the missing plugin: npm install eslint-plugin-import --save-dev","cause":"Missing peer dependency.","error":"Error: Failed to load plugin 'typescript' declared in 'eslint-config-typescript-shareable': Cannot find module 'eslint-plugin-import'"},{"fix":"Install: npm install stylelint-config-recommended --save-dev","cause":"Missing peer dependency.","error":"Error: Cannot find module 'stylelint-config-recommended'"},{"fix":"Ensure you have installed the package and use the string 'eslint-config-typescript-shareable' in extends array.","cause":"Config not installed or incorrect extends syntax.","error":"ESLint couldn't find the config 'eslint-config-typescript-shareable' after extending."},{"fix":"Create .stylelintrc.js with 'extends': ['eslint-config-typescript-shareable/stylelint']","cause":"Stylelint config file missing or not properly extended.","error":"Error: No configuration provided for stylelint"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}