{"_id":"@alchemisten/eslint-config","_rev":"3-48f677bc765b8fd94e4a64e3936cd788","name":"@alchemisten/eslint-config","dist-tags":{"latest":"3.0.0"},"versions":{"3.0.0":{"name":"@alchemisten/eslint-config","version":"3.0.0","description":"Code style package for Alchemisten projects","main":".eslintrc.js","repository":{"type":"git","url":"git@gitlab.com:alchemisten/internal/packages/eslint-config.git"},"scripts":{"publish:package":"alcm publish","publish:docs":"alcm docs collect && alcm docs publish"},"peerDependencies":{"eslint":">= 7.32.0 < 8","prettier":">= 2.3.2 < 3"},"dependencies":{"eslint-config-airbnb-typescript-prettier":">= 4.2.0 < 5","eslint-import-resolver-typescript":"^2.5.0","eslint-plugin-import":"^2.24.2"},"devDependencies":{"@alchemisten/cli":"^0.2.5","@material-ui/core":"^4.12.3","@types/react":"^17.0.20","eslint":">= 7.32.0 < 8","prettier":"^2.3.2","react":"^17.0.2","typescript":"^4.4.2"},"author":{"name":"Alchemisten AG"},"bugs":{"url":"https://gitlab.com/alchemisten/internal/packages/eslint-config/issues"},"homepage":"https://gitlab.com/alchemisten/internal/packages/eslint-config#readme","gitHead":"59e0206c93a7e5262d70e8a948eeb4e108b7b9fd","_id":"@alchemisten/eslint-config@3.0.0","_nodeVersion":"14.17.6","_npmVersion":"6.14.15","dist":{"integrity":"sha512-ucGeBWdCw9bKfjC4IcKFWuKZSEiN8yEP/U7/Fnz9r+PPpouxw95yoUecJEeSLW/UQYs5Aky7HhLCHgGxfnakGQ==","shasum":"b531de6f161abec585c64209ef13aedb34e9cdee","tarball":"https://registry.npmjs.org/@alchemisten/eslint-config/-/eslint-config-3.0.0.tgz","fileCount":3,"unpackedSize":5091,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiESJVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpFmQ/+NPW3zJUh+JxqGGNDoIhJ0bxKARspNNGfmhF/5SG+wDXbUS3e\r\nicEWogDzu/uDE23ISwjX4bbOVGfE92oQSQnmpO3zrBm8+Fl1W+0MwS0M1uwS\r\nzq5fmknTnan3mV75iCOq9F3yFignG2c+BWZes7HH3XY5iKbhFVYUduO6hgIE\r\no+IyscyNNkN7kwmsQcCnQ3ngtv/P5IXeXR9j/5jko1lz7teFtewl4U1kQFWX\r\nDNxda5oD0R5MBt5oAFB4QygrkCL3TssnQukTe92Tk2uv5l2zVlVWJtXZLJOG\r\nGYV8Y2q7784qFHAxMhhFOJoMNdRuZflI56//+i3TFwiHWHJsprbhGdzc6Z8L\r\nGV9qO5a2VnC5tjziisdTuOngwx0emTK3jBRBgidERTypCysnn79tKuzN4CNp\r\nWBNNoprgqXCSpX246dEduObAu8fyQohvkxQznDs2mJugrfne1xF7RCLU1MAh\r\nlY/auPmgmD7BHFlwTgUfOlaEp7L7NsHt/CElqqCbMfXVTj/vC/nqFEAsKKCU\r\ngwgR2lyni4qTEG3IefL9tuLGFBR3/Gna2dNtbWmpkQds6Qo7v6rFxmZb0ThH\r\njJBRwPnn5JTDL1BPVIn4bmkKEwxTzp6NmIsz2Qvg6YMRq3wEVLn+C2Sr3z34\r\nyB2x7YqIquIenx8zO/k2QGmWMu1acfUfRgM=\r\n=nbw1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDyiE9tyBCZfJx1NPNl9PMpaHsF1D6HTwn9iIojQltu4gIhAOW2eV7klDNqPxBHKTvmnDbhowYCujktau+cjG5cW7zP"}]},"_npmUser":{"name":"gerby","email":"viktor.gerbert@alchemisten.ag"},"directories":{},"maintainers":[{"name":"floriande","email":"floriandecker1993@googlemail.com"},{"name":"gerby","email":"viktor.gerbert@alchemisten.ag"},{"name":"vgerbert","email":"support@alchemisten.ag"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config_3.0.0_1645290068977_0.9554927912893874"},"_hasShrinkwrap":false}},"time":{"created":"2022-02-19T17:01:08.902Z","3.0.0":"2022-02-19T17:01:09.128Z","modified":"2022-10-06T13:41:19.983Z"},"maintainers":[{"email":"techuser@alchemisten.ag","name":"technicalalchemist"},{"email":"gordon.schroeder@alchemisten.ag","name":"alchemistgordon"},{"email":"floriandecker1993@googlemail.com","name":"floriande"},{"email":"viktor.gerbert@alchemisten.ag","name":"gerby"},{"email":"support@alchemisten.ag","name":"vgerbert"}],"description":"Code style package for Alchemisten projects","homepage":"https://gitlab.com/alchemisten/internal/packages/eslint-config#readme","repository":{"type":"git","url":"git@gitlab.com:alchemisten/internal/packages/eslint-config.git"},"author":{"name":"Alchemisten AG"},"bugs":{"url":"https://gitlab.com/alchemisten/internal/packages/eslint-config/issues"},"readme":"# ESLint Config\nPreconfigured ESLint rules and Prettier formatting for plug and play usage in projects. \n\n## How to use\n* Install @alchemisten/eslint-config with: `yarn add @alchemisten/eslint-config`\n* Install the required peer dependencies if not present: `yarn add eslint prettier eslint-config-airbnb-typescript-prettier -D`\n* Use it within your .eslintrc:\n    ```json\n    {\n        \"extends\": \"@alchemisten/eslint-config\"\n    }\n    ```\n\n## New release\nPlease note, that any change to the linting rules that produces an error and not just a warning\nneeds to be major release, because it will break dependent code.\n\n## Custom rules\nThese are all the rules which differ from the AirBnB config or the default Prettier settings:\n\n### ES Lint\n* `import/prefer-default-export`: Default imports are not preferred\n* `no-await-in-loop`: It is more common to have dependent calls in a loop than parallelizable calls\n* `no-cond-assign`: Turned off to allow assigning in while loops\n* `no-console`: Allowed until we have a logger package\n* `no-restricted-imports`: Make sure all Material UI components are imported directly from core\n* `no-restricted-syntax`: `for (of)` considered fast enough for our use cases, beware `for (in)` and check object property yourself\n* `no-return-await`: Debugging is improved with return await at the cost of an extra microtask\n* `no-useless-constructor`: Empty constructor required by some redux implementations\n* `sort-imports`: Members in a multiple member import declaration should be sorted alphabetically\n\n### Typescript\n* `@typescript-eslint/no-unused-vars`: Only produce warnings for unused variables\n* `@typescript-eslint/explicit-module-boundary-types`: Not necessary because IntelliSense catches this in a sufficient fashion\n* `@typescript-eslint/explicit-member-accessibility`: Require explicit accessibility declaration of all class members\n\n### Prettier\n* `printWidth`: Print width is set to 120, instead of 80 for better readability\n* `semi`: Semicolons are required\n* `singleQuote`: Single quotes are used instead of double quotes in normal code\n* `tabWidth`: Tab width is set to 4 spaces instead of 2\n\n## Further reading\n* List of all [ESLint rules](https://eslint.org/docs/rules/)\n* [AirBnB Javascript styleguide](https://github.com/airbnb/javascript) with reasoning and explanations for rules\n* [Prettier options](https://prettier.io/docs/en/options.html)\n","readmeFilename":"README.md"}