{"_id":"@kubit-ui-web/eslint-plugin-no-index-import","_rev":"4-e59d69b42577649bb02c6127f53fcd9f","name":"@kubit-ui-web/eslint-plugin-no-index-import","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@kubit-ui-web/eslint-plugin-no-index-import","version":"1.0.0","keywords":["eslint","eslint-plugin","index","import","barrel","best-practices"],"author":{"url":"https://www.kubit-ui.com/","name":"Kubit","email":"kubit@opendigitalservices.com"},"license":"Apache-2.0","_id":"@kubit-ui-web/eslint-plugin-no-index-import@1.0.0","maintainers":[{"name":"kubit-ui","email":"kubit@opendigitalservices.com"}],"homepage":"https://github.com/kubit-ui/eslint-plugin-no-index-import#readme","bugs":{"url":"https://github.com/kubit-ui/eslint-plugin-no-index-import/issues"},"dist":{"shasum":"b2161b2e1ca4500cbfa85a213bc20e4e10d5bb3a","tarball":"https://registry.npmjs.org/@kubit-ui-web/eslint-plugin-no-index-import/-/eslint-plugin-no-index-import-1.0.0.tgz","fileCount":8,"integrity":"sha512-ukqg5X43foZSUvVcdJqZcDZK4kijl1lQbQ/PsnMB4bp1QmRXHfhnz3sj+61oOJa9xLFd+voPwthy7jjBEzHZXQ==","signatures":[{"sig":"MEUCIHOHSLXS9hqw4eU/ro57eWGgE5Jd8wxlfQXXPyMdrZACAiEA5tPiWYwJu0rtMur564hAm5oLoaVYRVxrtAHhH4Ibkas=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34607},"main":"index.js","gitHead":"b4a39049f073556c038daef5f1fd8d6f3e716206","private":false,"_npmUser":{"name":"kubit-ui","email":"kubit@opendigitalservices.com"},"repository":{"url":"git+https://github.com/kubit-ui/eslint-plugin-no-index-import.git","type":"git"},"_npmVersion":"10.8.1","description":"An ESLint plugin to disallow imports from index files.","directories":{},"_nodeVersion":"22.3.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-no-index-import_1.0.0_1730822385226_0.47409060805857184","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@kubit-ui-web/eslint-plugin-no-index-import","version":"1.0.1","keywords":["eslint","eslint-plugin","index","import","barrel","best-practices"],"author":{"url":"https://www.kubit-ui.com/","name":"Kubit","email":"kubit@opendigitalservices.com"},"license":"Apache-2.0","_id":"@kubit-ui-web/eslint-plugin-no-index-import@1.0.1","maintainers":[{"name":"kubit-ui","email":"kubit@opendigitalservices.com"}],"homepage":"https://github.com/kubit-ui/eslint-plugin-no-index-import#readme","bugs":{"url":"https://github.com/kubit-ui/eslint-plugin-no-index-import/issues"},"dist":{"shasum":"73fec7507e895e48cc9015ed31bc9b75f44be59c","tarball":"https://registry.npmjs.org/@kubit-ui-web/eslint-plugin-no-index-import/-/eslint-plugin-no-index-import-1.0.1.tgz","fileCount":8,"integrity":"sha512-cDPru1diA4yReeJI9P+dw4Z1NMfOBLVFGOS31EvqUyk8j8UTM+gj9itgFWC0BgXGZoV9P89mnv1pbmu7xUq+vQ==","signatures":[{"sig":"MEUCIQD6pbMYipVTmfSr6J+rZ8NTAOTazFLTXNisHOBS15O1/gIgC2RFKCsx+FTmXj9DODlV3jtwpiVnLi14iwd3K3XG960=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34724},"main":"index.js","gitHead":"813ca9bf2b9fbbdd2fc5b308ed590df872939911","private":false,"_npmUser":{"name":"kubit-ui","email":"kubit@opendigitalservices.com"},"repository":{"url":"git+https://github.com/kubit-ui/eslint-plugin-no-index-import.git","type":"git"},"_npmVersion":"10.8.1","description":"An ESLint plugin to disallow imports from index files.","directories":{},"_nodeVersion":"22.3.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-no-index-import_1.0.1_1730825984628_0.5600680283118173","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@kubit-ui-web/eslint-plugin-no-index-import","version":"1.0.2","keywords":["eslint","eslint-plugin","index","import","barrel","best-practices"],"author":{"url":"https://www.kubit-ui.com/","name":"Kubit","email":"kubit@opendigitalservices.com"},"license":"Apache-2.0","_id":"@kubit-ui-web/eslint-plugin-no-index-import@1.0.2","maintainers":[{"name":"kubit-ui","email":"kubit@opendigitalservices.com"}],"homepage":"https://github.com/kubit-ui/eslint-plugin-no-index-import#readme","bugs":{"url":"https://github.com/kubit-ui/eslint-plugin-no-index-import/issues"},"dist":{"shasum":"5a7734149edafe47b95377b99a0643f12d7b2e2b","tarball":"https://registry.npmjs.org/@kubit-ui-web/eslint-plugin-no-index-import/-/eslint-plugin-no-index-import-1.0.2.tgz","fileCount":8,"integrity":"sha512-+VA/sFst5eXftppdC2ZtXCuGZRTcIddZmVLVPvv0nae3e+S0LwxmVanZW4is1uiZjWccN570w8UXXaODFdEyqw==","signatures":[{"sig":"MEUCIQD1akbwQndMrlLZ0Bi6wr1wzGmVI41hyY3FegufTRBCmgIgdcO5Pl5C3mZaKRUiIHUsEosOAXz6nzWFFsbIViZhLqM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35312},"main":"index.js","gitHead":"87e55123a713c5a1e1fef74c53e80dfe0733c402","private":false,"_npmUser":{"name":"kubit-ui","email":"kubit@opendigitalservices.com"},"repository":{"url":"git+https://github.com/kubit-ui/eslint-plugin-no-index-import.git","type":"git"},"_npmVersion":"10.8.1","description":"An ESLint plugin to disallow imports from index files.","directories":{},"_nodeVersion":"22.3.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-no-index-import_1.0.2_1730895361035_0.025727419553356556","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@kubit-ui-web/eslint-plugin-no-index-import","version":"1.1.0","description":"An ESLint plugin to disallow imports from index files.","main":"index.js","keywords":["eslint","eslint-plugin","index","import","barrel","best-practices"],"author":{"name":"Kubit","email":"kubit@opendigitalservices.com","url":"https://www.kubit-ui.com/"},"repository":{"type":"git","url":"git+https://github.com/kubit-ui/eslint-plugin-no-index-import.git"},"private":false,"license":"Apache-2.0","devDependencies":{"eslint":"^8.0.0"},"bugs":{"url":"https://github.com/kubit-ui/eslint-plugin-no-index-import/issues"},"_id":"@kubit-ui-web/eslint-plugin-no-index-import@1.1.0","gitHead":"04ea12ecb885181dc7758804a33dd3012cfecd05","homepage":"https://github.com/kubit-ui/eslint-plugin-no-index-import#readme","_nodeVersion":"24.2.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-y6do1cofUNHuGzZX8VwSfrAo5dQM7UmNISkATg8t4wwLFWULK5ULujvvxLtXNbZrCX05c7qtEqH7U/3EKtnX+Q==","shasum":"db62b7590d7d016b05bdd40a4c061151540af5fd","tarball":"https://registry.npmjs.org/@kubit-ui-web/eslint-plugin-no-index-import/-/eslint-plugin-no-index-import-1.1.0.tgz","fileCount":8,"unpackedSize":35368,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDF0oxLg9uvQUL6o/QDhKfBSorkRWa3fR9DlNFuw7RaAIgHzWgUhkNvnqPaDY5wNwHW/jiN4hR7jd0+e+dEiRX2vs="}]},"_npmUser":{"name":"kubit-ui","email":"kubit.lab.dev@gmail.com"},"directories":{},"maintainers":[{"name":"kubit-ui","email":"kubit.lab.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin-no-index-import_1.1.0_1771918575039_0.7573984344060865"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-05T15:59:45.059Z","modified":"2026-02-24T07:36:15.340Z","1.0.0":"2024-11-05T15:59:45.431Z","1.0.1":"2024-11-05T16:59:44.927Z","1.0.2":"2024-11-06T12:16:01.240Z","1.1.0":"2026-02-24T07:36:15.193Z"},"bugs":{"url":"https://github.com/kubit-ui/eslint-plugin-no-index-import/issues"},"author":{"name":"Kubit","email":"kubit@opendigitalservices.com","url":"https://www.kubit-ui.com/"},"license":"Apache-2.0","homepage":"https://github.com/kubit-ui/eslint-plugin-no-index-import#readme","keywords":["eslint","eslint-plugin","index","import","barrel","best-practices"],"repository":{"type":"git","url":"git+https://github.com/kubit-ui/eslint-plugin-no-index-import.git"},"description":"An ESLint plugin to disallow imports from index files.","maintainers":[{"name":"kubit-ui","email":"kubit.lab.dev@gmail.com"}],"readme":"# eslint-plugin-no-index-import\n\nThis ESLint plugin disallows imports from index files to enforce better module structure and avoid potential issues with circular dependencies.\n\n> Compatible with ESLint 8.x and above.\n\n## Installation\n\nTo install the plugin, you need to have ESLint already installed in your project. If you don't have ESLint installed, you can install it using npm or yarn:\n\n```bash\nnpm install eslint --save-dev\n# or\nyarn add eslint --dev\n```\n\nThen, install the eslint-plugin-no-index-import plugin:\n\n```bash\nnpm install @kubit-ui-web/eslint-plugin-no-index-import --save-dev\n# or\nyarn add @kubit-ui-web/eslint-plugin-no-index-import --dev\n```\n\n## Usage\n\nTo use the plugin, you need to add it to your ESLint configuration file (e.g., `.eslintrc.js`).\n\n### Basic Configuration\n\nAdd `no-index-import` to the `plugins` array and configure the rule in the `rules` section:\n\n```js\nmodule.exports = {\n  // Other ESLint configurations...\n  plugins: ['@kubit-ui-web/no-index-import'],\n  rules: {\n    '@kubit-ui-web/no-index-import/no-index-import': 'error',\n  },\n};\n```\n\n### Advanced Configuration\n\nYou can also configure aliases and ignore specific imports:\n\n```js\nmodule.exports = {\n  // Other ESLint configurations...\n  plugins: ['@kubit-ui-web/no-index-import'],\n  rules: {\n    '@kubit-ui-web/no-index-import/no-index-import': [\n      'error',\n      {\n        aliases: {\n          '@components': './src/components',\n          '@utils': './src/utils',\n        },\n        ignoreImports: ['@/components/loader', '@/types/customToken'],\n      },\n    ],\n  },\n};\n```\n\n### Example Configuration\n\nHere is an example of a complete ESLint configuration file with the no-index-import plugin:\n\n```js\nmodule.exports = {\n  env: {\n    browser: true,\n    es2021: true,\n  },\n  extends: [\n    'eslint:recommended',\n    'plugin:react/recommended',\n    'plugin:@typescript-eslint/recommended',\n  ],\n  parser: '@typescript-eslint/parser',\n  parserOptions: {\n    ecmaFeatures: {\n      jsx: true,\n    },\n    ecmaVersion: 12,\n    sourceType: 'module',\n  },\n  plugins: [\n    'react',\n    '@typescript-eslint',\n    '@kubit-ui-web/no-index-import/no-index-import',\n  ],\n  rules: {\n    '@kubit-ui-web/no-index-import/no-index-import': [\n      'error',\n      {\n        aliases: {\n          '@components': './src/components',\n          '@utils': './src/utils',\n        },\n        ignoreImports: ['@/components/loader', '@/types/customToken'],\n      },\n    ],\n  },\n};\n```\n\n## Rule Details\n\nThis rule disallows importing from index files or directories containing an index file. It helps to enforce better module structure and avoid potential issues with circular dependencies.\n\n### Options\n\n- `aliases`: An object where keys are alias names and values are the corresponding paths.\n- `ignoreImports`: An array of import paths to ignore.\n\n### Example\n\nGiven the following project structure:\n\n```plaintext\nsrc/\n  components/\n    index.ts\n    button.ts\n  utils/\n    index.ts\n    logger.ts\n  index.ts\n```\n\nThe following imports would be disallowed:\n\n```js\nimport { Button } from '@/components'; // Disallowed\nimport { Logger } from '@/utils'; // Disallowed\n```\n\nBut the following imports would be allowed:\n\n```js\nimport { Button } from '@/components/button'; // Allowed\nimport { Logger } from '@/utils/logger'; // Allowed\n```\n\n## Contributing\n\nIf you have any ideas, bug reports, or feature requests, feel free to open an issue or submit a pull request. We welcome contributions from the community and are happy to help with any questions you may have.\n","readmeFilename":"README.md"}