{"_id":"@dennisvash/eslint-config","_rev":"8-4cf4538dd7452df7da1a1a491cade9cb","name":"@dennisvash/eslint-config","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.0":{"name":"@dennisvash/eslint-config","version":"1.0.0","description":"Default ESLint configuration","main":"index.js","repository":{"type":"git","url":"git+https://github.com/denvash/eslint-config.git"},"keywords":["eslint","eslintconfig","config","javascript","Dennis Vash","denvash"],"author":{"name":"Dennis Vash","email":"dennisvash@gmail.com"},"license":"ISC","homepage":"https://github.com/denvash/eslint-config","bugs":{"url":"https://github.com/denvash/eslint-config/issues"},"peerDependencies":{"eslint":"^5.x.x","babel-eslint":"^10.x.x","prettier":"^1.x.x","eslint-config-prettier":"^4.x.x"},"gitHead":"218324ff2e8ec6f2138e64cc9fa9071e5eade12d","_id":"@dennisvash/eslint-config@1.0.0","_nodeVersion":"12.1.0","_npmVersion":"6.10.3","dist":{"integrity":"sha512-NROx4TkK5/TDLauWTA6C2DBt3oNzzDw59MDi1LizRWyUlVsltrDbHI4Tbg06XYGm637pVXZAdmMp6IX3AOSkUA==","shasum":"5f1f4896fa9d919a552d3242abd0a434901c2991","tarball":"https://registry.npmjs.org/@dennisvash/eslint-config/-/eslint-config-1.0.0.tgz","fileCount":7,"unpackedSize":23861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqxHOCRA9TVsSAnZWagAAikAP/1fUEF4v5r/KmFiV1PBd\nFMuart/URWX37B0ZqtNhmEHW3WBe9RIZH7izdKgo/DIhpMa88MXRXxJvZZNR\nQFmXq9kpjD/9ofLc/aYUODFWWzyJcJOL/RP4PI5S5gK0AeaCuHaLBN1YDSN4\n69Eu9juukfMH0QoTqADhPINhcrtR38cytefdi2yz6hOgxhY5S7xzjvWQSqQ+\neBuNbjcy606o9l4FpMmaBixOKx+vVds1ws4PGF/DqsotvXofnrdUDixP+O7D\nHikGiN+ebshRe/rL5fNomUqX2+M6N/Dd2g0fYKsSowZuXqcQBre29qI7a/5f\ntwc9m5jgpt8liSKTJAZpJz4V8vHDwmzm4tPM/25U3f4EJDh95BZYxuFT5C5t\nEjxvJ27d+hxma17gz+WnsVFhp+0oz/tLgufnilmZoPD300uOXywaFKA0QkwS\nJ0pnZWlVkBnVEvJI7L2Iibc0rnlLO1iYt9FkTqGU1h2PUUcYmP5ps7RCj4eB\nJ6JWdm5r/EpOp8u1tTu8su1ni33uBM4/oly914lDZPIQy0o1eQUPQ55XSDU/\ngo6Btk0JgwrbCzCn5EF8lh59I2ABTcF7pSqTaNCw7S7erzD58hBS8mH5rmms\nih84H0X1CEkIu3FFV9J4F2oNeuibWFc/52SXLHuKI2hMeWKzR+suFKWgytq+\nqsE4\r\n=yn2j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGZy4I44hL2JfuYLBJJrZI3cYKTV1Ul6TgbHF+Cl1rqmAiBTpl/qsSAvx4BnatDywn5P44dbt3XxAGGcuiGaX4p8zQ=="}]},"maintainers":[{"name":"dennisvash","email":"dennisvash@gmail.com"}],"_npmUser":{"name":"dennisvash","email":"dennisvash@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config_1.0.0_1571492301987_0.03893796478738931"},"_hasShrinkwrap":false},"1.1.0":{"name":"@dennisvash/eslint-config","version":"1.1.0","description":"Default ESLint configuration","main":"index.js","repository":{"type":"git","url":"git+https://github.com/denvash/eslint-config.git"},"keywords":["eslint","eslintconfig","config","javascript","Dennis Vash","denvash"],"author":{"name":"Dennis Vash","email":"dennisvash@gmail.com"},"license":"ISC","homepage":"https://github.com/denvash/eslint-config","bugs":{"url":"https://github.com/denvash/eslint-config/issues"},"peerDependencies":{"eslint":"^5.x.x","babel-eslint":"^10.x.x","prettier":"^1.x.x","eslint-config-prettier":"^4.x.x"},"gitHead":"4e102c9ab8f6bc5badb8ece8408d91e195f0b354","_id":"@dennisvash/eslint-config@1.1.0","_nodeVersion":"12.1.0","_npmVersion":"6.10.3","dist":{"integrity":"sha512-auDHsIqyCA+BZtwuV0eZ2dDheVKfpGCRB4VBSLFG+KP0eD6pvpr8c1WhVCCw9eX4lxTvm932jPw2ijgVv6K2jA==","shasum":"309a0dd94de23a931b4f34b397b2579f1f298e1f","tarball":"https://registry.npmjs.org/@dennisvash/eslint-config/-/eslint-config-1.1.0.tgz","fileCount":7,"unpackedSize":24004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqxKOCRA9TVsSAnZWagAAV1kQAJ7yuyoro5EdO1tRxbc3\nRe70v1YNMSaBj6F8LBlhrh7WfsTNgK0FChgLA1XRkiQxeKdDY8air10lLiNR\nLMOT1glow4eL+3ZivxO7I1G3Ry/8WMLw+Jmmkrp+0qr8T4j2HdcZOoMYSZU2\n8M/R74sioIG5iSbZaGOohx8oMErVMNIRECixPTBFhKFTHF5BFNfbPf2D7Qt2\nhV7+e9T1+KYMR3OY59DW7ieJ46GkGsZPh6z1BAaiGCw2MqwgJc8VihKUPQg4\nYweR6uSmcDa0aoaWtISg1XrdOSHb3iGIQnrChYXVL4oc6nw7IJO2pBJ+G9l+\niT1aqrBJHCpZWaNVoV8JrwMo7EbD4u+nMHoTZSwMi9BETUX82E6NfrP97vNl\n2j8T/uCgWZkZlx/qeamk7Plk9ya3ym+fZ+qRZlNhTrzGg+LI3bWN5Rpfwf+f\nXtBK5ParXpF/Z6QTK0jvu2tgCvq01KM50BNGLIguTvteG86yKE1z5t5ii91F\nJb60j+64YscaOBH/D+LbIs1XnZvhWbF1eRI1f3PE3LjAKBdpVWmUvxI3TdPf\n5aTaq3q4ibb6/WM0Uhl/gZ1/X151YH1RXPzoA+RI8rkNaHMQMc+eLb+9vLpu\nHV9k1q6X4WIJp+XGoLsefZmqpKXPe7Mt7A+Bl6Detq0kJcIOT3j813ns+0KZ\neUDh\r\n=VCvW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAw0vzLnzEUm2MM5mbIoUqgmKvymqcel/Euoui57vMNdAiAdqFLikhp0+weSJNYJ+MqysvysDEkoBGxIfBcZuyBsgg=="}]},"maintainers":[{"name":"dennisvash","email":"dennisvash@gmail.com"}],"_npmUser":{"name":"dennisvash","email":"dennisvash@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config_1.1.0_1571492493805_0.4869248302047364"},"_hasShrinkwrap":false},"2.0.0":{"name":"@dennisvash/eslint-config","version":"2.0.0","description":"Default ESLint configuration","main":"index.js","repository":{"type":"git","url":"git+https://github.com/denvash/eslint-config.git"},"keywords":["eslint","eslintconfig","config","javascript","Dennis Vash","denvash"],"author":{"name":"Dennis Vash","email":"dennisvash@gmail.com"},"license":"MIT","homepage":"https://github.com/denvash/eslint-config","bugs":{"url":"https://github.com/denvash/eslint-config/issues"},"peerDependencies":{"eslint":"^6.x.x","babel-eslint":"^10.x.x","prettier":"^1.x.x","eslint-config-prettier":"^6.x.x"},"gitHead":"5b65b2374e89078c7f377b6504b6a476b02f4642","_id":"@dennisvash/eslint-config@2.0.0","_nodeVersion":"12.10.0","_npmVersion":"6.13.2","dist":{"integrity":"sha512-pq6Izd4zOUnIfgYNSz74n3dUcELFvBQg9AqynDfViTU7YmJgpDKvj/oKKvcIa94rnJIE2m8MaXDm0FcSOyi7TA==","shasum":"8040165aa4623d40bca7a6b5dbb0bf8987ea670f","tarball":"https://registry.npmjs.org/@dennisvash/eslint-config/-/eslint-config-2.0.0.tgz","fileCount":7,"unpackedSize":22776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDNJTCRA9TVsSAnZWagAAFn4P/jXwDIkdgZCpUhJyipjC\nxf6KwmxRgA5iQyAnLtr/qQFGfwLb429jactxj9vOFwClxwOC6mfU9FdPRvS8\n1tH9E3ADRy1+k5TcVohcuQ3kGohNvbDjluwZCvnMIqwcomGc+s4Ai1LpPMfL\nEjgPvirKKHqsNtp2rUpH8HNtsJS5xICEhydLcl624x+elcn5D9Q8MVD8n5bY\nipJIGNt17VfvHX2QR2bKdl6VNojaEzSr6sDJplUbBTeGJ1Ja17+vHVG0M/3o\ncmeK5kxtyzgWjUnBVjgU6BrcrnNuhBwOufLHkL/s2edl1ZAK7ByKHiZ+LNIz\ncJfq8GYKUsFLdl8/syJH1t/vMq/EfXRpJZ5YVGCDWlhfnH4FVZ2ybbKYxSB1\n5jS/JNcIUQbLhzGuLgsN0HW4DQ20x+3pa4rjkoZtvtnB8WNGjll+CqLpwWGa\nHPlJOWA9biAbdFYpd2K2N8I3H9yp6IjlWWbHDkSSeCa8krPwyJN4jgaOgJrN\nizAiP5aOPOVoTyfXqu7gCq3Xe4fXDJb66inIKQ/vvlC/1lHegc6TnmAnnE/u\nnqImB7XBBIWoQ45+eu8EGYbJ1/9lBs+qoIxbHY9lmk9YARWIJYBKdt5sz1LU\n2lbM3SWI7t0emdJ3cRziiFpeEu+oLUXmGfKzt0G17UC61KnkERaRoFZDAvXB\nDA7l\r\n=QL5d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDu79AuzemF4F607pd/LR8MyA96v8I0eRCv9C3fPP2oLAiEAm7US4fNhpuKF5UUsTQdcKnpQlAPsY5JfGHPt1zclVFU="}]},"maintainers":[{"name":"dennisvash","email":"dennisvash@gmail.com"}],"_npmUser":{"name":"dennisvash","email":"dennisvash@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config_2.0.0_1577898579433_0.46247261368827863"},"_hasShrinkwrap":false},"2.1.0":{"name":"@dennisvash/eslint-config","version":"2.1.0","description":"Default ESLint configuration","main":"index.js","repository":{"type":"git","url":"git+https://github.com/denvash/eslint-config.git"},"keywords":["eslint","eslintconfig","config","javascript","Dennis Vash","denvash"],"author":{"name":"Dennis Vash","email":"dennisvash@gmail.com"},"license":"MIT","homepage":"https://github.com/denvash/eslint-config","bugs":{"url":"https://github.com/denvash/eslint-config/issues"},"peerDependencies":{"eslint":"^6.x.x","babel-eslint":"^10.x.x","prettier":"^1.x.x","eslint-config-prettier":"^6.x.x"},"gitHead":"912551a742d1a047f44b5ed40f1bf528858a3896","_id":"@dennisvash/eslint-config@2.1.0","_nodeVersion":"12.10.0","_npmVersion":"6.13.2","dist":{"integrity":"sha512-5zNNlR9locBs6cRODU4pYii6aWlcxRyq+o4LwGkt8jY7Kb0xTWDBAEoqtJJh6K0nWXw1WY5tXlWRKMAYo3ef0A==","shasum":"1732833ed27aea30f8e788394857f61a914877d4","tarball":"https://registry.npmjs.org/@dennisvash/eslint-config/-/eslint-config-2.1.0.tgz","fileCount":7,"unpackedSize":22778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDNOnCRA9TVsSAnZWagAA0DMQAJAIbO34w5Nynotpw3Rg\nxRrxa87Ks9q4l38C8HyFmQxuXNmguvjzqNneeb18rEJYPfZmMNQTtH5nS+/R\nT1uEhih3uxb4uT5dYw4p1b8CVljwuCrkVMUPJb2xrsmvcI/V6jXcSla0eSMJ\nntk+d+n4JpyF3YeXTORyT1SdK1te7r+cRjqb06hWqOLYKkd17PUJG6feuUqs\n8623iy1TDEl7pxXDa335SnCBorN1a51hHZSyUZRhs1iVmy4Yo0WdOjkSjG+Y\nipGVlm9IutB/hy6awbf0uM2Z2QbwROgwuqexZwb6Z9wBMOMb7TkU0FzbnS9A\nhPFFx0u/7JNbKur8ML0qJBKZ3g3UYN2YDCcYUSB238OTvXNPNU+aZIsVXNVi\n60UdeLG4SMAGjEDNZn+Utdkb8DKsDs7NPpmpDU5jxjVz4dTqgAUgVa57Eh4E\nc8yxM/6RnYiNrMxGYNu+bs+0QXngXSwfyz1ISOcWw9OZRKpzs3l9ciOJVG59\nJSg+R8IzNxT/Ejz+J1Gy0bSgOZfiG6kQBAmurbln82+JreIPZiiRuaQqbYzK\ngrWfXENwxqvTxl7XA+XJ0aLR2jAc5jLbcRh4jkimwAi5+4bj4xCIqSLhdcJh\nLt/kQhBldncoDX+Wfhh7dL3FBCLjHhJoz1wqci7nkBH4xdp2dNjaWTD3owrm\neLwH\r\n=jV0n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSx1+Bx9ZOiUOeE8ZsAeQ9BQpJXrGrTEFy7JMgSI6RXwIhAOR2YI0dXD6ErYMVRZmM5taqrbALjUR/dt15tmPbTZNW"}]},"maintainers":[{"name":"dennisvash","email":"dennisvash@gmail.com"}],"_npmUser":{"name":"dennisvash","email":"dennisvash@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config_2.1.0_1577898919460_0.12579497408710005"},"_hasShrinkwrap":false},"2.2.0":{"name":"@dennisvash/eslint-config","version":"2.2.0","description":"Default ESLint configuration","main":"index.js","repository":{"type":"git","url":"git+https://github.com/denvash/eslint-config.git"},"keywords":["eslint","eslintconfig","config","javascript","Dennis Vash","denvash"],"author":{"name":"Dennis Vash","email":"dennisvash@gmail.com"},"license":"MIT","homepage":"https://github.com/denvash/eslint-config","bugs":{"url":"https://github.com/denvash/eslint-config/issues"},"peerDependencies":{"eslint":"^6.x.x","babel-eslint":"^10.x.x","prettier":"^1.x.x","eslint-config-prettier":"^6.x.x","eslint-plugin-react-hooks":"^2.x.x"},"gitHead":"73e4d7cab62406bc7308512d085c74a080d4b786","_id":"@dennisvash/eslint-config@2.2.0","_nodeVersion":"12.10.0","_npmVersion":"6.13.2","dist":{"integrity":"sha512-s6Y/w5FhrHZ3Pi9CKBD5Vx4fJW7I5N9c59U0oNgygQcTF5WYIrSAi4W2lACwVR0TYs0I/cvq+aHLe4m1D8pjMA==","shasum":"8c2becaeb15c1414090b2f1fae881c5193312569","tarball":"https://registry.npmjs.org/@dennisvash/eslint-config/-/eslint-config-2.2.0.tgz","fileCount":7,"unpackedSize":22923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDNU5CRA9TVsSAnZWagAA8ccP/1fzF7cPn3CJPLB6J1VK\nN1fwhx6QKvab4oWPmNuNra44AsW3af1fZVZ38jDMqae9UkjRYDWjS+HDbOjb\nX2n0O47l21CI7wSHplnXYUIfS+GLetMyiZLkS72DKpTYILpG7j1afifYAERK\ntbiyNFfENFjRN08yhF7rGaYjAqJKlvXR6NCWNx8l4S5uB/2r0ir+BOt1LY0m\n+jFF6mfPhECbeCFbciyL/i4xD0tbO5wDS6+AozzjAsovm8kN64BzEdkYl2J0\ncI8nJ7j0ohysYqeYzd1Yl9nF59Aw5yV5CSBUWUvnNw4rJiiYcC2qIk8+z3bk\n6s+1WWz+Bkv51gzEds9Mhb2pi/M5BVeJwPXgQ7w/rsrY9epyv4QRCiI6IEF0\nsoAn+ZdLWuJ22dZ1EpF27curwLD9D9hxdGrWOAONtjuiIDNFQhPjx2OkD1Gd\nYZUlUxeFlCjqAIk9OFLPlglPYny0rQlsicqqey+hfKBMt07J2aKk/jOsWGSD\nHyjJqhtrbG8Gd070G+7oxE2cgN8hh0Op8RBXo2YtmjuXbcucYwZRp/wRVojD\nPfsLoWxiLJl93uzZTJPRZJgtJ1LzRlu+vskylafpBpAo1IZNGf0wOzzXlcSd\niPvPJ00cWvNZ6R2/IYrD7aQJOWkBwjiizMpUuRynk/9YjI5Fg44T1XKiXzsC\naKFJ\r\n=Z7ml\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG4gKhqsRDf6uV3Ok6dH95TmdwHewNloEAKxlOvkZO6CAiAB8MM7p3XP8ysX+UkS/PgSBx5b6+zS55WlRwgEOTfTtA=="}]},"maintainers":[{"name":"dennisvash","email":"dennisvash@gmail.com"}],"_npmUser":{"name":"dennisvash","email":"dennisvash@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config_2.2.0_1577899321324_0.28152751042525503"},"_hasShrinkwrap":false},"2.2.1":{"name":"@dennisvash/eslint-config","version":"2.2.1","description":"Default ESLint configuration","main":"index.js","repository":{"type":"git","url":"git+https://github.com/denvash/eslint-config.git"},"keywords":["eslint","eslintconfig","config","javascript","Dennis Vash","denvash"],"author":{"name":"Dennis Vash","email":"dennisvash@gmail.com"},"license":"MIT","homepage":"https://github.com/denvash/eslint-config","bugs":{"url":"https://github.com/denvash/eslint-config/issues"},"peerDependencies":{"eslint":"^6.x.x","babel-eslint":"^10.x.x","prettier":"^1.x.x","eslint-config-prettier":"^6.x.x","eslint-plugin-react-hooks":"^2.x.x"},"gitHead":"f8f8af8151523d82f7bcb388eb38bb74ee80dd16","_id":"@dennisvash/eslint-config@2.2.1","_nodeVersion":"12.10.0","_npmVersion":"6.13.2","dist":{"integrity":"sha512-IccAVKOLQX2VTMbDRsNLcdBHCPs7eCCHNKYrt0hiQ411d2PBEEisjjjtC/tT8uoQPARlFkMsuJEjBgw4O58NBw==","shasum":"f1fb15e0032d01e42cc2584ed61524675ea195fd","tarball":"https://registry.npmjs.org/@dennisvash/eslint-config/-/eslint-config-2.2.1.tgz","fileCount":7,"unpackedSize":22794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDNczCRA9TVsSAnZWagAAIewP/2OhPiCSNEHP7oOEVVyz\neejV2SanrEPE4/bLGBGgob7Svv6+ARhCey4qk+BSfhTETzqJ1QN7Yg1+wZC/\nJpng7O6bPjrVDFVtARMKCGRgiIJIkNYD06qlrBAEPXHIoixue1J1IpLYGda7\nv2Y5p37ak3P6YPp+zWIzZnrbu+lTKSVzHeqZ2vR9QFey5zO+dHETU/53ReSg\niZJdlpFq2hN9sL4ZFOhrLIafo9kCBT/ihNCGABDyZox4ql3y7tgiwBL0O1km\nqR9Q6Tac1tZHZi0KeetHD5OxcZu+79THuDBz7mnZVcyI9aV+++uwBh48HWDj\nZYd7HSOK4jHDxGvBRPZOWDtz53SyQ3cp1VBiuWUpvq/nO7OzKk8PVTR7vkbC\n6tmaIXMOuLHmklQpoTqNN+Ng1VaGS4vpobyTcEQHlHw9aV1mpyH5hDui6g1F\n1sr8bnHdCbcxteLHjDq9gbZwYOQbGAung+03l/4oHjikM0HELzUNI+1AVUNY\nLorg95i+ygvrOuA/s+GaPLfMbPpXEupS+/YdhWfH+vEzRYhlGcDJ51r1EkhZ\n0O5e3deK4IUnsgo067vuN1OnBdqT+wfSlxGs9a9QyjUHcKTOaVGG2xUnpLL/\nwU63MvFmc6FfsCLer8Ew/THbxCJ7CMm1IcwBBqxAZietfWGD1ht4o/8K2Pfu\nEzzi\r\n=tNCX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH3PR/P8kl4VudSesua/swlpnmyjIps7VZ2tDHEOo8XSAiB1rIt52Dwkv/gehQum1CY6qqsjPLrLLLzjJ1bZ8Sfz4A=="}]},"maintainers":[{"name":"dennisvash","email":"dennisvash@gmail.com"}],"_npmUser":{"name":"dennisvash","email":"dennisvash@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config_2.2.1_1577899827630_0.3995480391386874"},"_hasShrinkwrap":false},"2.2.2":{"name":"@dennisvash/eslint-config","version":"2.2.2","description":"Default ESLint configuration","main":"index.js","repository":{"type":"git","url":"git+https://github.com/denvash/eslint-config.git"},"keywords":["eslint","eslintconfig","config","javascript","Dennis Vash","denvash"],"author":{"name":"Dennis Vash","email":"dennisvash@gmail.com"},"license":"MIT","homepage":"https://github.com/denvash/eslint-config","bugs":{"url":"https://github.com/denvash/eslint-config/issues"},"peerDependencies":{"eslint":"^6.x.x","babel-eslint":"^10.x.x","prettier":"^1.x.x","eslint-config-prettier":"^6.x.x","eslint-plugin-react-hooks":"^2.x.x"},"gitHead":"96d19ca802c163705ff1bea1712147e1f02b4f80","_id":"@dennisvash/eslint-config@2.2.2","_nodeVersion":"12.10.0","_npmVersion":"6.13.2","dist":{"integrity":"sha512-1mnJ9wlr8wyJKjmh3134mRtglwdhxj3shHi7jY/9Z1WX+tZXVMR5vQb7HAzkCzKp+jkVWGRkYnplK3e4WUs05g==","shasum":"0b0bfd727b3fde4f37d373bcb309c2228ffb79e2","tarball":"https://registry.npmjs.org/@dennisvash/eslint-config/-/eslint-config-2.2.2.tgz","fileCount":7,"unpackedSize":22792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeDhwxCRA9TVsSAnZWagAAhBwQAKEQeiVzaju8zrJXdMcS\nu577A6JgnB3eKbluakeonGOczfMEiUXfq016Uf07HpFdACW2qXmTutePgRke\nJvS1jlbbBsqvH+0xg57GivION1C0rPbOBcaUgOTY9ogJVxA8iLMagD0swND+\nQdsaUevMqhkjz2CoqAKO/WsfuuwDX9fE1Ad5Q4hKX6YGeJlfV3AcOiCFxC+8\nvSXE9xiPdYadi1BpPW2ExggTws+BiPcYYS2zpAy42xh00ZnhgapcLiXdwTgY\nvTQekzu8kj1eTC83VmRlzcumW/0EJ7jvbzxSzXa4jDER7xK3VmkMNEg5u6o3\nyf5SD6lnYQqe4x75HRgbErtcocd09FWSvlnZnTlE7dPIYcxiEY/glWc3ua4s\nql4fqEJRMHaJ28ck7zxWIpUTQrauU+uxz36ZS0HEjYDnXGqA0NjnLzl26JUW\n5PZ/PHhesLqI3q0PfLC34HBHzACJ78JgSOE0uI7zEsgXMyS+riR+IOodAmIK\nyscI500EqM4i0fXfTYB9AdkqZGGUg9LDaF4SExDXmIdozkceebFNlpGup5Xt\nOYh1L+A2NbUP8WxVJAEUmiaJOv0ZNbJaED6/pvJ4oFQscLYkuWu1qRhylVs2\n1q4nqCXFc5lRi+ye/xZFpjWvn9Q/hPXvYDMYr+8JXMpPHATyBX5rtP/O6P5+\nQYPO\r\n=45oi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvU0B/Pigc5lfGR8yd9M1DAvl0VUlS1QXyvK2vqmz3tAIhAM5yYTsjMobs+kn7W2Loy9kmnr2eBoURusL/gW+R8SJR"}]},"maintainers":[{"name":"dennisvash","email":"dennisvash@gmail.com"}],"_npmUser":{"name":"dennisvash","email":"dennisvash@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config_2.2.2_1577983024754_0.14309454620522488"},"_hasShrinkwrap":false},"3.0.0":{"name":"@dennisvash/eslint-config","version":"3.0.0","description":"Default ESLint configuration","main":"index.js","repository":{"type":"git","url":"git+https://github.com/denvash/eslint-config.git"},"keywords":["eslint","eslintconfig","config","javascript","Dennis Vash","denvash"],"author":{"name":"Dennis Vash","email":"dennisvash@gmail.com"},"license":"MIT","homepage":"https://github.com/denvash/eslint-config","bugs":{"url":"https://github.com/denvash/eslint-config/issues"},"peerDependencies":{"eslint":"^6.x.x","babel-eslint":"^10.x.x","prettier":"^2.x.x","eslint-config-prettier":"^6.x.x","eslint-plugin-react-hooks":"^2.x.x"},"gitHead":"2740d092095be9990169038fc0fca181ca09f8ca","_id":"@dennisvash/eslint-config@3.0.0","_nodeVersion":"12.1.0","_npmVersion":"6.14.2","dist":{"integrity":"sha512-pJtQjOFa9azZGWeQvKDdP293Qq4y1tPNkt2w66QMUI66HzDZrWBW+wu/LxGXllSeNjmma/bMrL4l3u43WLSFXg==","shasum":"9a120218cc548fc9d145fe0693acd69cf62913bf","tarball":"https://registry.npmjs.org/@dennisvash/eslint-config/-/eslint-config-3.0.0.tgz","fileCount":7,"unpackedSize":22838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJed3SjCRA9TVsSAnZWagAA5H0QAIcodjbAg6VxDAcCIMzh\nOpPt8iq0QYZytnipVqx/XXJNg8u8yPcCPrSlytk/bv/yOZwsilXKgYlNgif0\nB5/Ofmj94ZlqHvsn2EJ0WP6Vc4VQ9ODpgmEis2x+TlNbwZocQpU4A4EHG4hy\nAzM4qH0tizpmn/FZ7TFvDknrfjauhGREsMjxDpX52IjDtLZEWnuHreQBcOhf\n3BQwhGSGIDTzbGxAdqtWwTmPbR/9hQSGuoIULjuVFFOVFt2F8dsJwE01TuaT\nozJ1spF3LxFwS2X/+YTra2e2M9zG2GsBoFJ9vyQPZavqxW9g4KltOMWQYL+J\n07aWtxMeaJk5M/DtIP5UOCEaJZcCi1h45DNR9w4W9fNZvBTmmd+Kxjxmsd2z\nqXE3NWKCWO83l5UY60C3r697cRaEJ7tq468cKlhXSqsFtBrqKei08eF4Jqm8\n0ZQqAwPq3WtBMN6F05a8IStBrL0Z7BapCkSDxoPguqJBgdfb0dtovwRLP+90\n0aXTr+/gsMblF7roNrzUJ1oqyEmd7vypB2ga+FvQw9fwReK0f8jqgOsrRMfY\nhWXDDWQyQc4AjVir10oLLeU65JrvG9rvmFf9ScrZEOv21080hpfE8n1InU5N\n99jHxIHtbOivTipwQ1Aog0dmduCNlnKiqU/0u7h33YimCqXzsJkvqra2q7Ym\n0LK0\r\n=iZDx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDc/5Iwj6LDX9AL5c4OxDQda+wbAvZTjC/bbcxOWuaiDQIhAPSYdDxatLlPqeuBfqHpiT9HppazW3OVdkLwUGBzhjxS"}]},"maintainers":[{"name":"dennisvash","email":"dennisvash@gmail.com"}],"_npmUser":{"name":"dennisvash","email":"dennisvash@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config_3.0.0_1584886946978_0.9423439613504749"},"_hasShrinkwrap":false}},"time":{"created":"2019-10-19T13:38:21.758Z","1.0.0":"2019-10-19T13:38:22.094Z","modified":"2022-04-05T03:46:15.297Z","1.1.0":"2019-10-19T13:41:33.917Z","2.0.0":"2020-01-01T17:09:39.572Z","2.1.0":"2020-01-01T17:15:19.615Z","2.2.0":"2020-01-01T17:22:01.438Z","2.2.1":"2020-01-01T17:30:27.729Z","2.2.2":"2020-01-02T16:37:04.869Z","3.0.0":"2020-03-22T14:22:27.058Z"},"maintainers":[{"name":"dennisvash","email":"dennisvash@gmail.com"}],"description":"Default ESLint configuration","homepage":"https://github.com/denvash/eslint-config","keywords":["eslint","eslintconfig","config","javascript","Dennis Vash","denvash"],"repository":{"type":"git","url":"git+https://github.com/denvash/eslint-config.git"},"author":{"name":"Dennis Vash","email":"dennisvash@gmail.com"},"bugs":{"url":"https://github.com/denvash/eslint-config/issues"},"license":"MIT","readme":"# eslint-config\n\n[![npm](https://img.shields.io/npm/v/@dennisvash/eslint-config?style=for-the-badge)](https://www.npmjs.com/package/@dennisvash/eslint-config)\n\n[My](https://dennisvash.com) default [`ESLint`](https://eslint.org/) configuration , pairs well with [`Prettier configuration`](https://www.npmjs.com/package/@dennisvash/prettier-config).\n\n- [eslint-config](#eslint-config)\n  - [Quick Start](#quick-start)\n  - [Default Config Installation](#default-config-installation)\n  - [Configurations](#configurations)\n    - [Default Config](#default-config)\n    - [Four Spaces Config](#four-spaces-config)\n    - [React Config](#react-config)\n    - [Vue Config](#vue-config)\n  - [Specifying Environments](#specifying-environments)\n  - [Editor Integration &amp; Autoformatting](#editor-integration-amp-autoformatting)\n    - [VS Code](#vs-code)\n    - [Sublime Text](#sublime-text)\n    - [Atom](#atom)\n  - [Pre-commit Hook](#pre-commit-hook)\n  - [Overriding Rules](#overriding-rules)\n  - [Publishing to npm](#publishing-to-npm)\n  - [Enforced Rules](#enforced-rules)\n\n## Quick Start\n\nPre-commit + prettier + eslint for React project:\n\n1. Install deps\n\n   ```sh\n   yarn add -D @dennisvash/eslint-config eslint babel-eslint prettier eslint-config-prettier eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y lint-staged husky pretty-quick\n   ```\n\n2. In `.eslintrc`:\n\n   ```json\n   {\n     \"extends\": \"@dennisvash/eslint-config/react\"\n   }\n   ```\n\n3. In `package.json`\n\n   ```json\n   {\n    \"husky\": {\n      \"hooks\": {\n        \"pre-commit\": \"pretty-quick --staged && lint-staged\"\n      }\n    },\n    \"lint-staged\": {\n      \"*.js\": [\n        \"eslint --fix\",\n        \"prettier --write\",\n        \"git add\"\n      ]\n    }\n   }\n   ```\n\n## Default Config Installation\n\n1. Install all dependencies\n\n   ```sh\n     # npx\n     npx install-peerdeps --dev @dennisvash/eslint-config\n\n     # yarn\n     yarn add --dev @dennisvash/eslint-config eslint babel-eslint prettier eslint-config-prettier\n\n     # npm\n     npm install --save-dev @dennisvash/eslint-config eslint babel-eslint prettier eslint-config-prettier\n   ```\n\n## Configurations\n\nExport four ESLint configurations for your usage:\n\n1. [Default (2 space)](#default-config)\n2. [Four Spaces](#four-spaces-config)\n3. [React](#react-config)\n4. [Vue](#vue-config)\n\n### Default Config\n\nIn `.eslintrc`:\n\n```json\n{\n  \"extends\": \"@dennisvash\"\n}\n```\n\n> **NOTE:** Make sure to [specify your environment](#specifying-environments) based on your project\n\n### Four Spaces Config\n\nIncludes everything in the default config, but replaces the indent rule with 4 spaces instead of 2 spaces.\n\n**In your `.eslintrc`:**\n\n```json\n{\n  \"extends\": \"@dennisvash/eslint-config/four-spaces\"\n}\n```\n\n> **NOTE:** Make sure to [specify your environment](#specifying-environments) based on your project\n\n### React Config\n\nIncludes everything in the default config, plus environment specification and react-specific rules with\n\n- [`eslint-plugin-react`](https://github.com/yannickcr/eslint-plugin-react)\n- [`eslint-plugin-jsx-a11y`](https://github.com/evcohen/eslint-plugin-jsx-a11y)\n- [`eslint-plugin-react-hooks`](https://github.com/facebook/react)\n\nCheck [Quick Start](#quick-start)\n\n### Vue Config\n\nIncludes everything in the default config, plus environment specification and vue-specific rules with\n\n- [`eslint-plugin-vue`](https://github.com/vuejs/eslint-plugin-vue)\n- [`vue-eslint-parser`](https://github.com/mysticatea/vue-eslint-parser)\n\n```sh\nnpm install --save-dev @dennisvash/eslint-config eslint babel-eslint prettier eslint-config-prettier eslint-plugin-vue vue-eslint-parser\n```\n\nIn your `.eslintrc`:\n\n```json\n{\n  \"extends\": \"@dennisvash/eslint-config/vue\"\n}\n```\n\n## Specifying Environments\n\nFor **default** & **four spaces** configs purposefully do not specify a certain environment as to not make any assumptions about your project. The only environment it specifies is `es6`. You can see all the [default settings here](https://github.com/dennisvash/eslint-config/blob/master/index.js).\n\nTherefore, you should specify your project's environment yourself in your ESLint config. For example:\n\n```json\n{\n  \"extends\": \"@dennisvash\",\n  \"env\": {\n    \"browser\": true,\n    \"node\": true\n  }\n}\n```\n\nView all available environments in the [ESLint Docs](https://eslint.org/docs/user-guide/configuring#specifying-environments)\n\n## Editor Integration & Autoformatting\n\nOnce you've installed the config, you probably want your editor to lint and fix your code for you.\n\n### VS Code\n\n1. Install the [ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint): `View → Extensions` then find and install ESLint\n2. Reload the editor\n3. In your VS Code user settings `Code/File → Preferences → Settings` or `CMD/CTRL + ,` click the `{}` icon in the top right corner to modify your `settings.json` file\n\n   ```json\n   // Format on save with Prettier rules\n   \"editor.formatOnSave\": true,\n   // Turn it off for vue files, we will do this via ESLint\n   \"[vue]\": {\n     \"editor.formatOnSave\": false\n   },\n   \"eslint.alwaysShowStatus\": true,\n   // Tell the ESLint plugin to run on save\n   \"eslint.autoFixOnSave\": true,\n   // An array of language identifiers specify the files to be validated\n   \"eslint.validate\": [\n     { \"language\": \"html\", \"autoFix\": true },\n     { \"language\": \"vue\", \"autoFix\": true },\n     { \"language\": \"javascript\", \"autoFix\": true },\n     { \"language\": \"javascriptreact\", \"autoFix\": true }\n   ],\n   // Turn off prettier extension for js, jsx, and vue files since we're handling that with ESLint\n   \"prettier.disableLanguages\": [\"javascript\", \"javascriptreact\", \"vue\"],\n   ```\n\n### Sublime Text\n\n1. Install [Package Control](https://packagecontrol.io/installation)\n2. Install [ESLint-Formatter](https://github.com/TheSavior/ESLint-Formatter)\n3. And then allow auto fix on save: `Preferences → Package Settings → ESLint Formatter → Settings` then add `\"format_on_save\": true` to the settings file\n\n### Atom\n\n1. Install [linter-eslint](https://github.com/AtomLinter/linter-eslint) plugin: `Preferences → Install` then type and install `linter-eslint`\n2. Install all dependencies (and restart the editor couple of times during installation)\n3. Enable auto fix on save: `Preferences → Packages → linter-eslint` then check `Fix errors on save checkbox`\n\n## Pre-commit Hook\n\nAs another line of defense, if you want ESLint to automatically fix your errors on commit, you can use [`lint-staged`](https://github.com/okonet/lint-staged) with [`husky`](https://github.com/typicode/husky), which manages git hooks.\n\n1. `npm install --save-dev lint-staged husky`\n2. In your `package.json`:\n\n   ```json\n   {\n     \"lint-staged\": {\n       \"*.js\": [\"eslint --fix\", \"git add\"]\n     },\n     \"husky\": {\n       \"hooks\": {\n         \"pre-commit\": \"lint-staged\"\n       }\n     }\n   }\n   ```\n\n## Overriding Rules\n\nIf you'd like to override any rules, you can add the rules to your `.eslintrc` file.\n\n```json\n{\n  \"extends\": \"@dennisvash\",\n  \"rules\": {\n    \"no-console\": \"off\"\n  }\n}\n```\n\n## Publishing to npm\n\nRead npm's docs on [How to Update a Package](https://docs.npmjs.com/getting-started/publishing-npm-packages#how-to-update-a-package).\n\n1. `npm login`\n   - Make sure you're logged into npm account with the credentials from 1pass. `npm whoami` will tell you if you're already logged in.\n2. `npm version <update_type>`\n   - `update_type` can be `patch`, `minor`, or `major`. If you don't know which one to use, read up about [semantic versioning](https://docs.npmjs.com/getting-started/semantic-versioning).\n3. `npm publish`\n\n## Enforced Rules\n\nMine ESLint config extends `eslint:recommended` which enables rules that report common problems, which are marked with check marks in the large [list of ESLint rules](https://eslint.org/docs/rules/).\n\nThe rules listed below are rules we have enabled on top of those enabled by `eslint:recommended`.\n\n<details>\n<summary>no-console</summary>\n\nIt's perfectly fine to use `console.log` during development, but you shouldn't use `console.log` in production code. If you _really_ need to print something to the console, use `console.warn` or `console.error`.\n\n> Why? In JavaScript that's designed to be executed in the browser, it’s considered a best practice to avoid using methods on console. Such messages are considered to be for debugging purposes and therefore not suitable to ship to the client. In general, calls using console should be stripped before being pushed to production.\n\n```js\n// bad\nconsole.log(\"bad\");\n\n// good\nconsole.warn(\"Log a warn level message.\");\nconsole.error(\"Log an error level message.\");\n```\n\n</details>\n\n<details>\n<summary>curly</summary>\n\nAlways use curly braces.\n\n> Why? Omitting curly braces can cause bugs and decrease code clarity.\n\n```js\n// bad\nif (foo) foo++;\n\nif (foo) {\n  baz();\n} else qux();\n\n// good\nif (foo) {\n  foo++;\n}\n\nif (foo) {\n  baz();\n} else {\n  qux();\n}\n```\n\n</details>\n\n<details>\n<summary>eqeqeq</summary>\n\nUse `===` and `!==` over `==` and `!=`.\n\n> Why? It's considered good practice to use the type-safe equality operators `===` and `!==` instead of their regular counterparts `==` and `!=`. The reason for this is that `==` and `!=` do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:\n>\n> - [] == false\n> - [] == ![]\n> - 3 == 03\n\nTL;DR JavaScript is _**WILD**_\n\n```js\n// bad\na == b;\nfoo == true;\nbananas != 1;\nvalue == undefined;\ntypeof foo == \"undefined\";\n\n// good\na === b;\nfoo === true;\nbananas !== 1;\nvalue === undefined;\ntypeof foo === \"undefined\";\n```\n\n</details>\n\n<details>\n<summary>no-eq-null</summary>\n\nDon't write `null` comparisons without type-checking operators.\n\n> Why? Comparing to `null` without a type-checking operator (`==` or `!=`), can have unintended results as the comparison will evaluate to true when comparing to not just a `null`, but also an `undefined` value.\n\n```js\n// bad\nif (foo == null) {\n  bar();\n}\n\nwhile (qux != null) {\n  baz();\n}\n\n// good\nif (foo === null) {\n  bar();\n}\n\nwhile (qux !== null) {\n  baz();\n}\n```\n\n</details>\n\n<details>\n<summary>no-use-before-define</summary>\n\nDon't use constiables before they are defined.\n\n> Why? In JavaScript, prior to ES6, constiable and function declarations are hoisted to the top of a scope, so it’s possible to use identifiers before their formal declarations in code. This can be confusing and some believe it is best to always declare constiables and functions before using them.\n> In ES6, block-level bindings (`let` and `const`) introduce a “temporal dead zone” where a `ReferenceError` will be thrown with any attempt to access the constiable before its declaration.\n\n```js\n// bad\nalert(a);\nconst a = 10;\n\nf();\nfunction f() {}\n\n// good\nlet a;\na = 10;\nalert(a);\n\nfunction f() {}\nf(1);\n```\n\n</details>\n\n<details>\n<summary>brace-style</summary>\n\nBe consistent with brace style for blocks. Keep `else` on the same line as the preceding curly brace.\n\n```js\n// bad\nif (foo) {\n  bar();\n} else {\n  baz();\n}\n\n// good\nif (foo) {\n  bar();\n} else {\n  baz();\n}\n```\n\n</details>\n\n<details>\n<summary>comma-dangle</summary>\n\nUse trailing commas when possible.\n\n> Why? Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. They improve the clarity of diffs when an item is added or removed from an object or array.\n\n```js\n// bad\nconst foo = {\n  bar: baz,\n  qux: quux\n};\n\nconst arr = [1, 2];\n\n// good\nconst foo = {\n  bar: baz,\n  qux: quux\n};\n\nconst arr = [1, 2];\n```\n\n</details>\n\n<details>\n<summary>comma-spacing</summary>\n\nPut spaces after commas. Don't put spaces before commas.\n\n```js\n// bad\nconst foo = 1,\n  bar = 2;\nconst arr = [1, 2];\nconst obj = { foo: bar, baz: qur };\nfoo(a, b);\n\n// good\nconst foo = 1,\n  bar = 2;\nconst arr = [1, 2];\nconst obj = { foo: bar, baz: qur };\nfoo(a, b);\n```\n\n</details>\n\n<details>\n<summary>comma-style</summary>\n\nCommas should come after and on the same line as an array element, object property, or constiable declaration.\n\n```js\n// bad\nconst foo = 1,\n  bar = 2;\n\nconst foo = 1,\n  bar = 2;\n\nconst foo = [\"apples\", \"oranges\"];\n\nfunction bar() {\n  return {\n    a: 1,\n    b: 2\n  };\n}\n\n// good\nconst foo = 1,\n  bar = 2;\n\nconst foo = [\"apples\", \"oranges\"];\n\nfunction bar() {\n  return {\n    a: 1,\n    b: 2\n  };\n}\n```\n\n</details>\n\n<details>\n<summary>func-call-spacing</summary>\n\nDon't add a space between a function name and the opening parenthesis.\n\n```js\n// bad\nfn();\n\n// good\nfn();\n```\n\n</details>\n\n<details>\n<summary>indent</summary>\n\nThis ESLint config defaults to 2 space indentation.\n\n> Why? The general convention within the JavaScript community is 2 spaces, and ESLint is a \"pluggable linting utility for JavaScript and JSX\". We could debate 2 spaces vs 4 spaces all day long, so that's why we've provided another configuration for 4 spaces.\n\n```js\n// bad\nif (a) {\n  b = c;\n  function foo(d) {\n    e = f;\n  }\n}\n\n// good\nif (a) {\n  b = c;\n  function foo(d) {\n    e = f;\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>key-spacing</summary>\n\nUse consistent spacing between keys and values in object literals. Use a space after the colon and disallows a space before the colon.\n\n```js\n// bad\nconst obj = { foo: 42 };\nconst obj = { foo: 42 };\n\n// good\nconst obj = { foo: 42 };\n```\n\n</details>\n\n<details>\n<summary>keyword-spacing</summary>\n\nUse consistent spacing before and after keywords. Use at least one space before and after keywords.\n\n```js\n// bad\nif (foo) {\n  //...\n} else if (bar) {\n  //...\n} else {\n  //...\n}\n\n// good\nif (foo) {\n  //...\n} else if (bar) {\n  //...\n} else {\n  //...\n}\n```\n\n</details>\n\n<details>\n<summary>object-curly-spacing</summary>\n\nUse a space inside of braces (except `{}`)\n\n```js\n// bad\nconst obj = { foo: \"bar\" };\nconst obj = { foo: \"bar\" };\nconst obj = { foo: \"bar\" };\nconst { x } = y;\nimport { foo } from \"bar\";\n\n// good\nconst obj = {};\nconst obj = { foo: \"bar\" };\nconst obj = {\n  foo: \"bar\"\n};\nconst { x } = y;\nimport { foo } from \"bar\";\n```\n\n</details>\n\n<details>\n<summary>one-const</summary>\n\nUse multiple constiable declarations per scope.\n\n> Why? It simplifies adding and removing constiables, since only the lines you are modifying must be touched. It improves the clarity of diffs when a constiable is added to a scope.\n\n```js\n// bad\nfunction foo() {\n  let bar, baz;\n  const bar = true,\n    baz = false;\n}\n\n// good\nfunction foo() {\n  let bar;\n  let baz;\n  const bar = true;\n  const baz = false;\n}\n```\n\n</details>\n\n<details>\n<summary>quotes</summary>\n\nUse single quotes wherever possible. Use backticks with template literals.\n\n```js\n// bad\nconst double = double;\nconst unescaped = 'a string containing \"double\" quotes';\n\n// good\nconst single = \"single\";\nconst backtick = `back${x}tick`;\n```\n\n</details>\n\n<details>\n<summary>semi</summary>\n\nUse semicolons at the end of statements.\n\n> Why? When JavaScript encounters a line break without a semicolon, it uses a set of rules called Automatic Semicolon Insertion to determine whether or not it should regard that line break as the end of a statement, and (as the name implies) place a semicolon into your code before the line break if it thinks so. ASI contains a few eccentric behaviors, though, and your code will break if JavaScript misinterprets your line break. These rules will become more complicated as new features become a part of JavaScript. Explicitly terminating your statements and configuring your linter to catch missing semicolons will help prevent you from encountering issues.\n\n```js\n// bad\nconst name = \"ESLint\";\nlet object = {};\n\nobject.method = function() {\n  // ...\n};\n\n// good\nconst name = \"ESLint\";\nlet object = {};\n\nobject.method = function() {\n  // ...\n};\n```\n\n</details>\n\n<details>\n<summary>space-before-function-paren</summary>\n\nDon't put a space before the `(` of arguments.\n\n```js\n// bad\nfunction foo() {\n  // ...\n}\n\nconst bar = function() {\n  // ...\n};\n\n// good\nfunction foo() {\n  // ...\n}\n\nconst bar = function() {\n  // ...\n};\n```\n\n</details>\n\n<details>\n<summary>space-infix-ops</summary>\n\nPut spaces around infix operators.\n\n```js\n// bad\na + b;\n\na + b;\n\na ? b : c;\n\nconst a = { b: 1 };\n\n// good\na + b;\n\na ? b : c;\n\nconst a = { b: 1 };\n```\n\n</details>\n\n<details>\n<summary>arrow-body-style</summary>\n\nDisallow the use of braces around arrow function body as needed. One-liners can be more readable!\n\n```js\n// bad\nlet foo = () => {\n  return 0;\n};\nlet foo = () => {\n  return {\n    bar: {\n      foo: 1,\n      bar: 2\n    }\n  };\n};\n\n// good\nlet foo = () => 0;\nlet foo = (retv, name) => {\n  retv[name] = true;\n  return retv;\n};\nlet foo = () => ({\n  bar: {\n    foo: 1,\n    bar: 2\n  }\n});\n```\n\n</details>\n\n<details>\n<summary>arrow-parens</summary>\n\nOmit parens when there is only one argument. Unnecessary parens make code less readable.\n\n```js\n// bad\na => {};\na => a;\na => {\n  \"\\n\";\n};\na.then(foo => {});\na.then(foo => a);\na(foo => {\n  if (true) {\n  }\n});\n\n// good\n() => {};\na => {};\na => a;\n() => {\n  \"\\n\";\n};\n```\n\n</details>\n\n<details>\n<summary>arrow-spacing</summary>\n\nPut spaces before and after an arrow function’s arrow.\n\n```js\n// bad\n() => {};\n() => {};\na => {};\na => {};\n\n// good\n() => {};\na => {};\na => a;\n() => {\n  \"\\n\";\n};\n```\n\n</details>\n\n<details>\n<summary>no-duplicate-imports</summary>\n\nAll imports from a single module should exist in a single import statement.\n\n```js\n// bad\nimport { merge } from \"module\";\nimport something from \"another-module\";\nimport { find } from \"module\";\n\n// good\nimport { merge, find } from \"module\";\nimport something from \"another-module\";\n```\n\n</details>\n\n<details>\n<summary>no-useless-constructor</summary>\n\nDon't include useless class constructors that can be safely removed without changing how the class works.\n\n```js\n// bad\nclass A {\n  constructor() {}\n}\n\nclass A extends B {\n  constructor(...args) {\n    super(...args);\n  }\n}\n\n// good\n\nclass A {\n  constructor() {\n    doSomething();\n  }\n}\n\nclass A extends B {\n  constructor() {\n    super(\"foo\");\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>no-var</summary>\n\nUse `let` or `const` instead of `var`.\n\n> Why? ECMAScript 6 allows programmers to create constiables with block scope instead of function scope using the `let` and `const` keywords.\n\n```js\n// bad\nvar x = y;\nvar CONFIG = {};\n\n// good\nlet x = y;\nconst CONFIG = {};\n```\n\n</details>\n\n<details>\n<summary>prefer-const</summary>\n\nUse `const` instead of `let` when a constiable is never reassigned.\n\n> Why? If a constiable is never reassigned, using the `const` declaration is better.\n> `const` declaration tells readers, “this constiable is never reassigned,” reducing cognitive load and improving maintainability.\n\n```js\n// bad\n\n// it's initialized and never reassigned.\nlet a = 3;\nconsole.log(a);\n\nlet a;\na = 0;\nconsole.log(a);\n\n// good\n\n// it's reassigned after initialized.\nlet a;\na = 0;\na = 1;\nconsole.log(a);\n\n// it's initialized in a different block from the declaration.\nlet a;\nif (true) {\n  a = 0;\n}\nconsole.log(a);\n```\n\n</details>\n\n<details>\n<summary>prefer-template</summary>\n\nUse template literals instead of string concatenation.\n\n```js\n// bad\nconst str = \"Hello,\" + name + \"!\";\nconst str = \"Time: \" + 12 * 60 * 60 * 1000;\n\n// good\nconst str = \"Hello World!\";\nconst str = `Hello, ${name}!`;\nconst str = `Time: ${12 * 60 * 60 * 1000}`;\n```\n\n</details>\n","readmeFilename":"README.md"}