{"_id":"@dbarrett24/eslint-config-library","name":"@dbarrett24/eslint-config-library","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@dbarrett24/eslint-config-library","version":"1.0.0","description":"Shared ESLint configuration for React component libraries","main":"index.js","keywords":["eslint","eslintconfig","react","library","typescript"],"author":{"name":"Your Name"},"license":"MIT","dependencies":{"@dbarrett24/eslint-config":"1.0.0"},"peerDependencies":{"eslint":"^8.0.0","prettier":">=3","typescript":">=5"},"publishConfig":{"access":"public"},"_id":"@dbarrett24/eslint-config-library@1.0.0","_integrity":"sha512-e1DNdvQFw80fHCbjj4O1mX2GKOqi00VL3kh2HamGRsXTulBAmcNpFi/OErbxNRNHmeu5AlEHa+emRKR8soAn9Q==","_resolved":"/private/var/folders/q_/z4dwy_td5ts0fdx2klqhf_900000gn/T/786df2b84b0d0ca9c697633239e01dbd/dbarrett24-eslint-config-library-1.0.0.tgz","_from":"file:dbarrett24-eslint-config-library-1.0.0.tgz","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-e1DNdvQFw80fHCbjj4O1mX2GKOqi00VL3kh2HamGRsXTulBAmcNpFi/OErbxNRNHmeu5AlEHa+emRKR8soAn9Q==","shasum":"9dc568008a2cf4906b0858e7aead9b79def02310","tarball":"https://registry.npmjs.org/@dbarrett24/eslint-config-library/-/eslint-config-library-1.0.0.tgz","fileCount":3,"unpackedSize":3610,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH9syeqR+Ejq1bNU82HCE+7SWvsrLN0Mx6n43oYkRjVpAiEAukC4Wuo5C+L+42Y5nK8zZ3xEg4YiUgGJF5BSCSCStaY="}]},"_npmUser":{"name":"dbarrett24","email":"dev.davebarrett@gmail.com"},"directories":{},"maintainers":[{"name":"dbarrett24","email":"dev.davebarrett@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-config-library_1.0.0_1769474807474_0.001038119031359308"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-27T00:46:47.387Z","1.0.0":"2026-01-27T00:46:47.608Z","modified":"2026-01-27T00:46:47.802Z"},"maintainers":[{"name":"dbarrett24","email":"dev.davebarrett@gmail.com"}],"description":"Shared ESLint configuration for React component libraries","keywords":["eslint","eslintconfig","react","library","typescript"],"author":{"name":"Your Name"},"license":"MIT","readme":"# @yourname/eslint-config-library\n\nShared ESLint configuration for React component libraries with stricter rules for published packages.\n\n## Installation\n\n```bash\npnpm add -D @yourname/eslint-config-library eslint prettier typescript\n```\n\n## Usage\n\nCreate `.eslintrc.js` in your library root:\n\n```javascript\nmodule.exports = {\n    extends: ['@yourname/eslint-config-library'],\n    root: true,\n};\n```\n\n## What's Different from @yourname/eslint-config\n\nThis library config extends the base config with stricter rules appropriate for published packages:\n\n### Stricter Rules\n\n- **No `any` types** - Error (not warning) for better type safety\n- **No default exports** - Enforce named exports for better tree-shaking\n- **No console statements** - Keep library code clean\n\n### Exceptions\n\nTest files (`*.spec.ts`, `*.test.tsx`) and Storybook files (`*.stories.tsx`) are exempt from:\n- No default exports rule\n- No `any` type rule\n- No console rule\n\n## Use Cases\n\nPerfect for:\n- Component libraries published to npm\n- Shared utility libraries\n- Design system packages\n- Reusable UI components\n\n## Example Structure\n\n```javascript\n// ✅ Good - Named exports\nexport const Button = ({ children, ...props }) => {\n    return <button {...props}>{children}</button>;\n};\n\nexport const Card = ({ children }) => {\n    return <div className=\"card\">{children}</div>;\n};\n\n// ❌ Bad - Default export\nexport default function Button() {\n    return <button>Click me</button>;\n}\n\n// ❌ Bad - Console statement\nexport const utils = {\n    log: (msg: string) => {\n        console.log(msg); // Error in library code\n    }\n};\n\n// ❌ Bad - Using any\nexport const process = (data: any) => { // Error\n    return data;\n};\n```\n\n## Scripts\n\nAdd to your library's `package.json`:\n\n```json\n{\n  \"scripts\": {\n    \"lint-ts\": \"eslint src --cache\",\n    \"lint-ts-fix\": \"eslint src --cache --fix\"\n  }\n}\n```\n\n## Customization\n\nOverride rules as needed:\n\n```javascript\nmodule.exports = {\n    extends: ['@yourname/eslint-config-library'],\n    rules: {\n        // Allow console.warn in specific cases\n        'no-console': ['error', { allow: ['warn', 'error'] }],\n    },\n    root: true,\n};\n```\n\n## License\n\nMIT\n\n","readmeFilename":"README.md","_rev":"1-7ec230035231b8302ee138a10a1d3698"}