{"_id":"@bitovi/eslint-plugin-nx-glue","_rev":"9-0ad905f25aed79ea439d444d0df5bb78","name":"@bitovi/eslint-plugin-nx-glue","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@bitovi/eslint-plugin-nx-glue","version":"1.0.0","author":{"url":"https://www.bitovi.com/","name":"Bitovi","email":"contact@bitovi.com"},"license":"MIT","_id":"@bitovi/eslint-plugin-nx-glue@1.0.0","maintainers":[{"name":"kyle-n","email":"kylebnazario@gmail.com"},{"name":"bitovi-os","email":"os@bitovi.com"},{"name":"bitovi-core-os","email":"core@donejs.com"},{"name":"mickmcgrath13","email":"mick.mc.13@gmail.com"},{"name":"phillipskevin","email":"kphillips86@gmail.com"},{"name":"tehfedaykin","email":"jennifer.wadella@gmail.com"},{"name":"rlmcneary2","email":"rlmcneary2@gmail.com"},{"name":"mhaynie_bitovi","email":"mhaynie@bitovi.com"},{"name":"fabioemoutinho","email":"fabioemoutinho@gmail.com"},{"name":"christopherjbaker","email":"slithytove2@gmail.com"},{"name":"justinbmeyer","email":"justin@bitovi.com"},{"name":"cherif_b","email":"cherif.bouchelaghem@gmail.com"},{"name":"connorg","email":"connormwg@gmail.com"},{"name":"jazzy_michael","email":"thejazzymichael@gmail.com"},{"name":"alishouman","email":"alyshouman@gmail.com"}],"homepage":"https://github.com/bitovi/eslint-plugin-nx-glue#readme","bugs":{"url":"https://github.com/bitovi/eslint-plugin-nx-glue/issues"},"dist":{"shasum":"5f1d5d6d823790e00cc91b4cd3381b9582511803","tarball":"https://registry.npmjs.org/@bitovi/eslint-plugin-nx-glue/-/eslint-plugin-nx-glue-1.0.0.tgz","fileCount":8,"integrity":"sha512-OcteIZQktIzlcI0eFe87fKuVIMJKPgengx2Q/26SQBQyowZZsbcFYoj11NjEXz1NU4cTmelahVi5u2f7EJ6/Qw==","signatures":[{"sig":"MEUCIQCTTcsHONfcx+zhZlPOoOmxSpKv3t6xb/MkN05/8yfu1AIgcAb6Al2gLK6mpW020pS1BIQy6enPeaBTqw8M2bWM/eo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj9DyAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo17w/+MT/1bhVYl3xCWrjLytpSTLJ7SC9nUvEUXSsMFMEEgPzCHGSm\r\nXxsTD2SNZ2q3hSeozobsTCnmwj2QoE2936unaJShA/5BL2MST08l6rWgmmUJ\r\njj7/FgPqo7cVpMdsLA+Pr2f6IZbg94FHBdDhC2KidAqAbIQbMNm1H6R0U3gI\r\nkWsGrX7++iZnDmwjA0qpfeUX01yF7nRKo7Jues6E4IgBnLH3HUtv/MwZ65og\r\nuNaqjKrCzCJ/L6SDrH7JhhmwBlF3mWmhxUDhuVV0DfheG+QYS23x8x17qS6G\r\nuWYlMFBBcFpUgqUI9/cKL6hcMo1eHgBGD+MSB6oW8h+Yl0+0vRFgW22Xkmq4\r\nW/cFp4z/Pv9s9B8W+Twrs1MDG8S+Kt9OEhb0Tl9ET/rnGLOORZuEAx2knxRv\r\nmRtPUeD2Yhco/eEFydsjdJaPBpVhvgQXaIiAZ23w046SyVBmNvpjXXpnM2Ku\r\nZqkgqhO3Fq9skb9esqaCkgBeqAxCq0LdD5Jre/QCqxSuzBlGRh4wUhq4SBy5\r\nYTi8J46CW8mcx/lakM+vm/5oTNEnKagbpMGEoiDNWjiu73Oif/NtLJT2GQ3B\r\nKH9F8A79jetofidBtFW7VJ1w7ABXprU1ffv1qifVEjFtfoxvkuby7oZLo3g2\r\nFuaBZbjmtzMzwBWEFGI9wfT0BmkWb2qb1rQ=\r\n=XBBY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"98aaf7c2d0b97e87536cb10da357e1bdec82c7cf","scripts":{"copy":"cp package.json dist/ && cp README.md dist/","build":"rimraf dist && tsc && npm run copy"},"_npmUser":{"name":"bitovi-os","email":"os@bitovi.com"},"repository":{"url":"git+https://github.com/bitovi/eslint-plugin-nx-glue.git","type":"git"},"_npmVersion":"8.19.3","description":"Allows local ESLint Rules written in TypeScript to be available within Nx workspace","directories":{},"_nodeVersion":"16.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^4.1.2","typescript":"~4.9.5","@types/node":"^18.14.0","@typescript-eslint/utils":"^5.36.1"},"peerDependencies":{"nx":"~15"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-nx-glue_1.0.0_1676950656237_0.5969210018871747","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@bitovi/eslint-plugin-nx-glue","version":"1.2.0","author":{"url":"https://www.bitovi.com/","name":"Bitovi","email":"contact@bitovi.com"},"license":"MIT","_id":"@bitovi/eslint-plugin-nx-glue@1.2.0","maintainers":[{"name":"kyle-n","email":"kylebnazario@gmail.com"},{"name":"bitovi-os","email":"os@bitovi.com"},{"name":"bitovi-core-os","email":"core@donejs.com"},{"name":"mickmcgrath13","email":"mick.mc.13@gmail.com"},{"name":"phillipskevin","email":"kphillips86@gmail.com"},{"name":"tehfedaykin","email":"jennifer.wadella@gmail.com"},{"name":"rlmcneary2","email":"rlmcneary2@gmail.com"},{"name":"mhaynie_bitovi","email":"mhaynie@bitovi.com"},{"name":"fabioemoutinho","email":"fabioemoutinho@gmail.com"},{"name":"christopherjbaker","email":"slithytove2@gmail.com"},{"name":"justinbmeyer","email":"justin@bitovi.com"},{"name":"cherif_b","email":"cherif.bouchelaghem@gmail.com"},{"name":"connorg","email":"connormwg@gmail.com"},{"name":"jazzy_michael","email":"thejazzymichael@gmail.com"},{"name":"alishouman","email":"alyshouman@gmail.com"}],"homepage":"https://github.com/bitovi/eslint-plugin-nx-glue#readme","bugs":{"url":"https://github.com/bitovi/eslint-plugin-nx-glue/issues"},"dist":{"shasum":"4050dfcdd2013cbb3edffe65342f040a27c8b5bf","tarball":"https://registry.npmjs.org/@bitovi/eslint-plugin-nx-glue/-/eslint-plugin-nx-glue-1.2.0.tgz","fileCount":8,"integrity":"sha512-PEpQB6StmJ5AIfx84pbi8n2z8B3jgbxkzAGrPac/3d38J7oHU0nnHp8zG0tsGwLLL5JlYKUymCutp6fQRwvYUw==","signatures":[{"sig":"MEYCIQCaUcafySGRW2Ty1wUVKRo5tapPs+D0vbmttxy12w66BgIhAOKmBYHBxepxYJL8rbTA+S0z6K1kiotRHlZ+1ksAghMb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGm5kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrb2RAAhHHkCaqhEAixPmnxKMk1TuZsdCM4AKE45v01AGgt2ehFZVt7\r\nUqph0QvPOP1lAtNGfO0FCl8RFzfMaLPwSMknD7+Nkaa5kzeC1FkhnpHSzO+d\r\nSqImhhPN/Hvq9H8ZBTzvz6h0QGhkkB4Y0/A9Uek5/t9/G1dRUmbUrc1Wk8ka\r\nr9OWfULfMGk6imGzz++QrJMdahaO7mNyczZbYNjG3BqzH1SLNrDR4m8bsdJa\r\noKjsg9GmbjoF0e+EQZ1o6BvbVoSoJUQMFmqMuuD5c+YYbA04qATaRks2QjWS\r\nqNIOHvKry3tGySrghVr0NPxoZAfnTAAHzHjEaxzkCg+bs9OgZVOeGN2b/Dey\r\npFvvZ6zvFsIkXNBRh7Y8hHxIQD18llOYs58xtJHsg6ACSH4REUnC94f5PaiM\r\nzMcOVW78YG7B2llmgEXvQK7ytVocdV0OcZQWJq4thw17eWlyUDnqdRPh0psK\r\nnqG3cdfsd/H1NpxPc0YMm7sNgQY19qHDv7wrbTx5VlCh4i10I/VIShrsJdKj\r\nrKf9kVRIyIfvMLIF0X3PWskKT35MntBtax76KUKa/cBk0YJnInRx8hCLZaDg\r\nBIRS4xuG7YzQR31+fAqWGRnYGddnFNOp4Zf2PGrTXyw5qLdte+gNaKb9IQ61\r\nIoD6qjY+5rQnmCdFQk5FLz0uBCdk2FlJFis=\r\n=oq7U\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"16f30d83ba35bf2ddeea7885d027e685151c35c3","scripts":{"copy":"cp package.json dist/ && cp README.md dist/","build":"rimraf dist && tsc && npm run copy"},"_npmUser":{"name":"bitovi-os","email":"os@bitovi.com"},"repository":{"url":"git+https://github.com/bitovi/eslint-plugin-nx-glue.git","type":"git"},"_npmVersion":"8.19.3","description":"Allows local ESLint Rules written in TypeScript to be available within Nx workspace","directories":{},"_nodeVersion":"16.19.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^4.1.2","typescript":"~4.9.5","@types/node":"^18.14.0","@typescript-eslint/utils":"^5.36.1"},"peerDependencies":{"nx":"~15"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-nx-glue_1.2.0_1679453796485_0.3674879828118063","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-02-21T03:37:36.167Z","modified":"2026-05-21T14:19:03.704Z","1.0.0":"2023-02-21T03:37:36.403Z","1.2.0":"2023-03-22T02:56:36.644Z"},"bugs":{"url":"https://github.com/bitovi/eslint-plugin-nx-glue/issues"},"author":{"url":"https://www.bitovi.com/","name":"Bitovi","email":"contact@bitovi.com"},"license":"MIT","homepage":"https://github.com/bitovi/eslint-plugin-nx-glue#readme","repository":{"url":"git+https://github.com/bitovi/eslint-plugin-nx-glue.git","type":"git"},"description":"Allows local ESLint Rules written in TypeScript to be available within Nx workspace","maintainers":[{"email":"justin@bitovi.com","name":"justinbmeyer"},{"email":"cherif.bouchelaghem@gmail.com","name":"cherif_b"},{"email":"alyshouman@gmail.com","name":"alishouman"},{"email":"os@bitovi.com","name":"bitovi-os"},{"email":"kylebnazario@gmail.com","name":"kyle-n"},{"email":"mhaynie@bitovi.com","name":"mhaynie_bitovi"},{"email":"brad@bitovi.com","name":"bmomberger-bitovi"},{"email":"fabioemoutinho@gmail.com","name":"fabioemoutinho"},{"email":"rich@limnous.com","name":"rlmcneary2"},{"email":"jennifer.wadella@gmail.com","name":"tehfedaykin"},{"email":"kphillips86@gmail.com","name":"phillipskevin"},{"email":"mick.mc.13@gmail.com","name":"mickmcgrath13"},{"email":"core@donejs.com","name":"bitovi-core-os"},{"email":"jane@bitovi.com","name":"janebitovi"},{"email":"DanD.Tran89@gmail.com","name":"dandamantran89"},{"email":"sandover@gmail.com","name":"sandover"}],"readme":"# ESLint Plugin Nx Glue\n\nAllows local ESLint Rules written in TypeScript to be available within a Nx workspace or any project. This means that developers can create their own custom ESLint Plugins within a project and consume them within that project without having to publish or use Symlinks.\n\n## Installation\n\n```bash\nnpm install -D @bitovi/eslint-plugin-nx-glue\n```\n\nThis library assumes your project is an [Nx workspace](https://nx.dev/). If you are not, you will have to also install `nx` as a dev-dependency:\n\n```bash\nnpm install -D nx@15\n```\n\n## How to Use\n\nCreate an `eslint-plugin-nx-glue.config.js` file at the root of your project. This file will export your ESLint Plugins by name, a path to its exported rules, and which TypeScript configuration to use:\n\n```js\n// eslint-plugin-nx-glue.config.js\n\nmodule.exports = {\n  'my-plugin': {\n    dir: 'tools/my-rules',\n    tsconfig: 'tools/my-rules/tsconfig.json',\n  },\n};\n```\n\nThis example will check `tools/my-rules` for `index.ts` that exports an [ESLint Plugin](https://eslint.org/docs/latest/extend/plugins):\n\n```ts\n// tools/my-rules/index.ts\n\nimport { myCustomRule} from './rules/my-custom-rule';\nimport { mySecondCustomRule } from './rules/my-second-custom-rule';\n\nmodule.exports = {\n  rules: {\n    'some-custom-rule-name': myCustomRule,\n    'another-custom-rule-name': mySecondCustomRule,\n  },\n};\n```\n\nNow you can include these rules into your eslint configuration by adding `@bitovi/nx-glue` to your plugins and listing which rules you want to use within `overrides`:\n\n```json\n// .eslintrc\n\n{\n  \"plugins\": [\"@bitovi/nx-glue\"],\n  \"overrides\": [\n    {\n      \"files\": [\"*.ts\"],\n      \"rules\": {\n        \"@bitovi/nx-glue/my-plugin/some-custom-rule-name\": \"error\",\n        \"@bitovi/nx-glue/my-plugin/another-custom-rule-name\": \"warn\"\n      }\n    }\n  ]\n}\n```\n\n## Configuration Schema\n\nListed below is a detailed explaination of how the `eslint-plugin-glue` configuration schema affects how you can consume your custom rules:\n\n```js\n// eslint-plugin-nx-glue.config.js\n\nmodule.exports = {\n    '<plugin-name>': {\n      dir: 'path/to/rules/from/root/of/project',\n      tsconfig: 'path/to/tsconfig/from/root/of/project/tsconfig.json',\n    },\n    '<plugin-name-2>': {\n      dir: 'path/to/rules/from/root/of/project',\n      tsconfig: 'path/to/tsconfig/from/root/of/project/tsconfig.json',\n    },\n    // ...\n};\n```\n\nConfiguration schema:\n\n1. `plugin-name`: Used to distinguish each plugin. This allows for plugins to have the same named rules within the same project.\n2. `dir`: Path to `index.ts` from root of project. This is the location of the exported ESLint Plugin.\n3. `tsconfig`: Path to TypeScript configuration from root of project.\n\nThis allows you to consume your custom rules exported by your local ESLint Plugins:\n\n```json\n// .eslintrc\n\n{\n  \"plugins\": [\"@bitovi/nx-glue\"],\n  \"overrides\": [\n    {\n      \"files\": [\"...\"],\n      \"rules\": {\n        \"@bitovi/nx-glue/<plugin-name>/<custom-rule-name>\": \"...\",\n        \"@bitovi/nx-glue/<plugin-name>/<custom-rule-name-2>\": \"...\",\n        \"@bitovi/nx-glue/<plugin-name-2>/<another-custom-rule-name>\": \"...\"\n      }\n    }\n  ]\n}\n```\n\n## ESLint Extention\n\nIf you are using [VSCode's ESLint extention](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint), you will have to restart your ESLint server whenever you make changes to your ESLint Plugin(s). You can quickly restart your ESLint server by using the [Command Palette](https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_command-palette) and selecting `ESLint: Restart ESLint Server`.\n\n## Overriding Configuration Path\n\nYou can set path to your `eslint-plugin-glue` configuration by setting `ESLINT_PLUGIN_GLUE_CONFIG_PATH` environment variable. By default, eslint-plugin-glue configuration is expected to be at the root of your project and to be named `eslint-plugin-glue.config.js`.\n","readmeFilename":"README.md"}