{"_id":"eslint-config-5minds","_rev":"27-b1e71df137da4925d49df8a60501735f","name":"eslint-config-5minds","dist-tags":{"next":"1.0.0-alpha.1","latest":"1.0.2"},"versions":{"0.0.2":{"name":"eslint-config-5minds","version":"0.0.2","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@0.0.2","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"}],"dist":{"shasum":"a4af901865c21cd507f51d4441d62b6f89308f5b","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-0.0.2.tgz","integrity":"sha512-Wq2v6QGjNns01Q7clk2hHYG3ghL4kbo+VqxKH5xrIhOIHE7bzVpRB3x/Sqry3/S/fS7eVH0+T71vlULm3qCOjg==","signatures":[{"sig":"MEUCIQD4Em+SM0LuhdLU2EjzYnB5jPbckVA6BvsEGBmLI9nvWQIgTXJLGQNa4co6JdgK7k2PLtfO5MMU1yeLYwL0ajIQeRc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"a4af901865c21cd507f51d4441d62b6f89308f5b","scripts":{},"_npmUser":{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","_npmVersion":"2.15.8","description":"Provide the eslint configs","directories":{},"_nodeVersion":"4.4.7","dependencies":{"eslint":"^3.3.1","eslint-plugin-import":"^1.13.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"peerDependencies":{"eslint":"^3.3.0","eslint-plugin-import":"^1.13.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds-0.0.2.tgz_1472221226651_0.49846552941016853","host":"packages-12-west.internal.npmjs.com"}},"0.0.3":{"name":"eslint-config-5minds","version":"0.0.3","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@0.0.3","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"}],"dist":{"shasum":"28fd986ce6c2fbebdb5450ca5a689a55f05e58d7","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-0.0.3.tgz","integrity":"sha512-cygyCUJhbkqV2jfw/NxeKtTSYoQJ62oK4bCpuznFTTjyyHMozBkUhG25fy8Wa6pgsd2IC8t3QgNO/IMebR80cQ==","signatures":[{"sig":"MEQCIEcqEGyLA706zNF/E8yZdYcFoOgVZfBKj4NDukIbZ1rCAiBeew70567HnWwdkmRYjW0Y9pDpW02gUr2vWZ2pEUzg0g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"28fd986ce6c2fbebdb5450ca5a689a55f05e58d7","scripts":{},"_npmUser":{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","_npmVersion":"2.15.8","description":"Provide the eslint configs","directories":{},"_nodeVersion":"4.4.7","dependencies":{"eslint":"^3.3.1","eslint-plugin-import":"^1.13.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"peerDependencies":{"eslint":"^3.3.0","eslint-plugin-import":"^1.13.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds-0.0.3.tgz_1472224077574_0.5996170651633292","host":"packages-12-west.internal.npmjs.com"}},"0.0.4":{"name":"eslint-config-5minds","version":"0.0.4","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@0.0.4","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"}],"dist":{"shasum":"582abf12f6ec7ac77fdd65800abca761613eb727","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-0.0.4.tgz","integrity":"sha512-hCtJwEN4GWPVtEkLrnu2kTUdmeVASFkvLz5bQAVr3WzUwbiOi5MqahYxrZjckmSRVwLxmuLUi2lPVg2a2fJ2ew==","signatures":[{"sig":"MEUCIHR9Ij7SXdzTzcNmKjoUEX01YD3lfbKtJ236j1iE/V12AiEA9O1rIxVmYPjCnINwqPmDTmDG/RxMIIDTjyWmHZNxn9A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"582abf12f6ec7ac77fdd65800abca761613eb727","scripts":{},"_npmUser":{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","_npmVersion":"2.15.9","description":"Provide the eslint configs","directories":{},"_nodeVersion":"4.5.0","dependencies":{"eslint":"^3.3.1","eslint-plugin-import":"^1.13.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"peerDependencies":{"eslint":"^3.3.0","eslint-plugin-import":"^1.13.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds-0.0.4.tgz_1472903543291_0.554439336527139","host":"packages-12-west.internal.npmjs.com"}},"0.0.5":{"name":"eslint-config-5minds","version":"0.0.5","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@0.0.5","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"}],"dist":{"shasum":"71dbadac97ad1c3de3baddf1031c545060a01594","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-0.0.5.tgz","integrity":"sha512-8QeD0JF/PyO+GyfNe7Kks1cZ2giwta8ceEjNrGT3OvqbsMl8pclIOdHIuu7H3HtgFHqccYWcv7VFkpNcC4KJqg==","signatures":[{"sig":"MEYCIQC8qr1/Y9HngaEm2nwmWSCqP3gB/NbaymkMgaugofk9XAIhAL9cH31//A98tm5vWEIM45U89Gu3pgw8i9IIDWxuHrHe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"71dbadac97ad1c3de3baddf1031c545060a01594","scripts":{},"_npmUser":{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","_npmVersion":"3.10.3","description":"Provide the eslint configs","directories":{},"_nodeVersion":"6.7.0","dependencies":{"eslint":"^3.3.1","eslint-plugin-import":"^1.13.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"peerDependencies":{"eslint":"^3.3.0","eslint-plugin-import":"^1.13.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds-0.0.5.tgz_1476365542571_0.9003236854914576","host":"packages-16-east.internal.npmjs.com"}},"0.0.6":{"name":"eslint-config-5minds","version":"0.0.6","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@0.0.6","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","dist":{"shasum":"8cc5612fb12ee9e89ad9ad165eaa7bba4541c72d","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-0.0.6.tgz","integrity":"sha512-pauPCA2PiaLN55p9gxZPlK9O0FMB0hbbeh1tRPtWQq7QAWh9W6XvNfXOkHiqft4R9Lma8FTngE1l/Zofmy0W0Q==","signatures":[{"sig":"MEUCIQCGMFK/VeHVSFNyMJaa4lN+BxoS+wkdN4mre7fzDFqXzQIgI+M+4jome6f3x5EPwTfusMJtcmE+Oq142vyxFI7w0Q0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"8cc5612fb12ee9e89ad9ad165eaa7bba4541c72d","gitHead":"4dec344ec44d0b47a08e4e5fd9b36b008bc48484","scripts":{},"_npmUser":{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","_npmVersion":"3.10.8","description":"Provide the eslint configs","directories":{},"_nodeVersion":"6.9.1","dependencies":{"eslint":"^3.3.1","eslint-plugin-import":"^1.13.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"peerDependencies":{"eslint":"^3.3.0","eslint-plugin-import":"^1.13.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds-0.0.6.tgz_1478941864557_0.35879721073433757","host":"packages-12-west.internal.npmjs.com"}},"0.0.7":{"name":"eslint-config-5minds","version":"0.0.7","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@0.0.7","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"dist":{"shasum":"6f538ee3a13a99b68a5940195d7ef33bae62143d","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-0.0.7.tgz","integrity":"sha512-/iWCSUfU1/m4grdnFXBuxR7HsZ+xk379bXomdyhDCPs32gqxCairfYxgKLSEWLJltmGtHH9MdMpWgyBgMkS72Q==","signatures":[{"sig":"MEQCICr4tJR5dj1oqAOzhwqbPeh0dXHXdLQn5IvHI/ZTozKIAiBgBWoTiS+jyS4vBgv5B0+t03uLCY+QdrgVcav4Zr06jw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"6f538ee3a13a99b68a5940195d7ef33bae62143d","gitHead":"545f1a64a11becec52c0d7155fa1f2bc72167aa8","scripts":{},"_npmUser":{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"_npmVersion":"3.10.8","description":"Provide the eslint configs","directories":{},"_nodeVersion":"6.9.1","dependencies":{"eslint":"^3.3.1","eslint-plugin-import":"^1.13.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"peerDependencies":{"eslint":"^3.3.0","eslint-plugin-import":"^1.13.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds-0.0.7.tgz_1478941987836_0.30570638505741954","host":"packages-18-east.internal.npmjs.com"}},"0.1.0":{"name":"eslint-config-5minds","version":"0.1.0","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@0.1.0","maintainers":[{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"dist":{"shasum":"746f0eee4714f9de3e1483a49ddff6539e87dd63","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-0.1.0.tgz","integrity":"sha512-577dK9/XhTiUP2gcwd5wl8Vpo7rZxACvD2+/V/k9O2B6WG9Y45REzTW2edpO/AHqiLlzZkyy/2+Wc+Q+ztxQBA==","signatures":[{"sig":"MEUCIQCFg8Ukzw6LpeAj8jMYrlEJ0Yn5XUxfd2MeOHAJ+ua0cgIgUq35tkzcTqCxkH8KvmaaPb42RIC7zR8tUQBKhDej92o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"746f0eee4714f9de3e1483a49ddff6539e87dd63","gitHead":"b343bbbb439b2881b56de0c29fa4930e16a310f3","scripts":{},"_npmUser":{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"_npmVersion":"3.10.8","description":"Provide the eslint configs","directories":{},"_nodeVersion":"6.9.1","dependencies":{"eslint":"^3.3.1","eslint-plugin-import":"^1.13.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"peerDependencies":{"eslint":"^3.3.0","eslint-plugin-import":"^1.13.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds-0.1.0.tgz_1480062947232_0.14180897967889905","host":"packages-18-east.internal.npmjs.com"}},"0.2.0-pre1":{"name":"eslint-config-5minds","version":"0.2.0-pre1","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@0.2.0-pre1","maintainers":[{"name":"developers5minds","email":"developers@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"sebastian.meier","email":"sebastian.meier@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"dist":{"shasum":"1c77bdc2bd23bc079b527deeae6d0b3cb9bc7766","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-0.2.0-pre1.tgz","fileCount":14,"integrity":"sha512-Ne1BeEU/ey4Z30+0AiLyVbCwmDjTNMzXo6W+Tk7dwUvp05+xn4T5gIyKP7eYpXaI6NvroAF4hECkEBbiK0sjQQ==","signatures":[{"sig":"MEYCIQDGDt76blItcyxOFjBiLBlmJLks6nnD7y3sTUx5XsC8TAIhAK0JwiP6aWkRDnej8ojtRPNUKumVnIX1L/t3cAI5Qm5N","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4vWnCRA9TVsSAnZWagAABKwP/2Kt6e+QiUwxND6ACzks\n3K8QbXvo3hZrmSOxkzM5SkKDlm3jE1E1DUb0bIa3hsvqzy98TRSyu3kiOQ6t\nRmYev5AASmISNQ72Sxn2x/w1zgHnfrr74+SNScxjfZ5ADMQ0VoxxP8Efib5R\n+l7Z1zX5/bBRtbFCCmXcErnv1gUt33rO9Pg4OBPRqrWyk90XyHkqFUJ9BlK0\nThSzkMbgMVnaV0xABdWFIsVF/5TA9g/6ykNQLxGlkgyCan3PLHAuBV9tX//B\n69AUVIDxTW3k5BQjiAY35sSepXAP//y/+gWdI2LIIESZqkiNzO2Nm258c3cC\n+gZj13WdV26TgwzEFkzuBuQolp7vAI4/3w4W8jeWs5dumUNtEx2i1Kht3qpa\ngWii8MRjI/rcSORTuN21AbNKVCaJMz8YnQ486YIfG2K1guYhzQqkrMvBOI1x\nfixa9PP2gh5yXgAl8DM9+BR7anWc1qeFPgGCeY/tPQbPzCr/JUwvaY0yLSQ1\n/FXnbA95NG4VrHn+ycdcdcCTF/lYMl43oZ8Z1QBW01KBUzmuPtKytFMJZvRI\nhLeihkCVyHCANEQlC4LH4otnzqHYuJ/9zhfccNJ+NWz5lhAwiV0ezfq0jFrX\nd7d2p70hHhfsZubYGqiGYmh+6+LFEoCMto+bl7pGwNzFHqaKWBaaoN9J8qLJ\n/Za2\r\n=TUlA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"developers5minds","email":"developers+npm@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"_npmVersion":"5.6.0","description":"Provide the eslint configs","directories":{},"_nodeVersion":"8.9.4","dependencies":{"eslint":"^4.19.1","eslint-plugin-import":"^2.11.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":"^4.19.1","eslint-plugin-import":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds_0.2.0-pre1_1524823461197_0.4569986080597488","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"eslint-config-5minds","version":"0.2.0","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@0.2.0","maintainers":[{"name":"developers5minds","email":"developers@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"sebastian.meier","email":"sebastian.meier@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"dist":{"shasum":"73ee637bc82d83767b3d509f7dd723a32b3f1cc6","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-0.2.0.tgz","fileCount":14,"integrity":"sha512-aX3tE+I0j3c+sEhL6TKeFQFOPRt7ZP+oJhvHCdl1yTtK4PPhcn3AQIoASkJx8o6K9n4FK+tmIUJAFRp8iHJfuw==","signatures":[{"sig":"MEYCIQCkayqNjsWU7q1eqbxIaQWqHp2LCsa/xeLJ/Gy9EM7W9QIhANO+RKPwNqwSB2TGKVdO7G1NACGwu67kSCEI10qGJvsS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74422,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4voiCRA9TVsSAnZWagAAah8P/i+IwEjjPGhbOMXVJ7Bl\nhnr5ZON2TAOWEDN2Uv8z6joMzbfvNn1Wtf83lrmkE+RmGXXNaKgJ3lgijpGN\n17lXF5H+LAJzvI5sGb8G2xNgw4Pcs91yQCCKFOBfAIyXYmrFIsqgjCRfhzEu\nqJenW6bEBAi6YS0dyDpxiYvU4hS2wL0VSJX2fdGqYN1CQj2sH2RUTMsc8dPE\nznkzh42ZMjVaeJ8Cxz9jPV/zXOpKe90ofrk3lNRa7sVF9chzpLoepKelTH+e\n5AZVKUBlTlkYY0H7cpe7qyYEkPL05ZTm2QfaLzofSR5RZRy50t84B1IW32Yg\nJbsPqknCa/baWt1cIWbvDAGKnXN4/xCkYRSsmQgHE4Er5+qbwdd7B/sXl4Hd\nOrbz/NmyVWIhffqSfr8Kv8JOza5bIL30GeasLSqnT8ZXL9oJcI3J1OE62ZoR\nzsUYhGW8SpKEY2QWza+OK2i3icM9AZNaQS2GjlwqGRTdnKJKHcpf2Wpdq652\nVhh+9olP6wn2bS5ZhDLj9Yb9n2Q3ADGUcHI9D2PJi9h2AbAZpHH24S390qTQ\nRpYaMR163Ex2jCAkh/i0ZOr5X4zBlMpdMMMpJ+pN/YfiytWa48FdKahuRFGb\nD5bpX7pNYdaO5Ytz/IJJG12y4yPcdpFjMyG8M0RuJnInFl29B2dJ/bWgwxOD\nctze\r\n=8c0y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"developers5minds","email":"developers+npm@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"_npmVersion":"5.6.0","description":"Provide the eslint configs","directories":{},"_nodeVersion":"8.9.4","dependencies":{"eslint":"^4.19.1","eslint-plugin-import":"^2.11.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":"^4.19.1","eslint-plugin-import":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds_0.2.0_1524824608302_0.0998159501828173","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"eslint-config-5minds","version":"0.2.1","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@0.2.1","maintainers":[{"name":"developers5minds","email":"developers@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"sebastian.meier","email":"sebastian.meier@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"dist":{"shasum":"8243838b6e5337a102269b0e8c6f4fa4d7eecc52","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-0.2.1.tgz","fileCount":14,"integrity":"sha512-XrpIpsMNiWmFzT36vI7proQwHrBCqeVMTV+r8pZZ50hMfP3BVkJwmrpU2NPEGlL3freYP6QsScFUHkHQ7g6/0w==","signatures":[{"sig":"MEUCIGRt3gHmSZd50glDAARLNUwuYIweeiML95fwuDX248gzAiEA4jGQP1Bmpra3U27ZRRazJczXGzC5KrnQT0NecW7BFJ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":74422,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4wChCRA9TVsSAnZWagAAwEUP/2sLnDJ2pMo5+Jt9xFsX\nJwIeGER847E2L3PwBe20Vk50LSA55Ve5hpIaq8G+Ouk53MlRQG+Oqfy/IHps\ntB0Siydp3kdjLl+eBrjnbZLLiFG9gfen+D+zRN9ARuFUqn068b/cG6w/hWQN\nQS6FJjUM6GyNmGEKc8p7Mvqt2nVCcxIcCdBOrV482BjwgYp1uk+3iMncBEEi\nFTdnqY2WQJGDd33JfKeqDs1/ezZTgd3/k3iAns6vbICz66EGG7B8OWvz87Fk\nCu0M+f1ZR3ul4UlM2O4Z0LpLmTUpgVbMYbmz9dsJ5yu+76t9nV1L6uLvsc3C\nkjIKLHF7POzhIux4qO6cAegy5I2BCEcYlLAYSVKBjdYO1MaZbhVNCFjBGojw\nor0139TOkFS607bBhIM3jGsOdAh1FlJV7gtuzAIWSUJ9uPCZM4sBJZos5ybh\nfbYlLA81HewJiyMmyzVTyJSEAYZoED3SSTLnvq49d6Fq3iY2NCAu3lkYyQL7\nF1z5g5KJp02rTsh1ylI0MO/s8n1Dr4Uv0g1r1+PcZgkKAFcH/m4LHtWrL8Rx\nbSoT0ggsSRh15J7E6vnFTpjJRrSaevDlfeEKCCMyMOylwKMj+PEbv/pW7Sst\nADyYENGpMB+oemYzwb4ArNMx0ggGNeekfJgMxRhowBQk6AQ4AeF/w5TL80Ce\nCtSP\r\n=m/ut\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"developers5minds","email":"developers+npm@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"_npmVersion":"5.6.0","description":"Provide the eslint configs","directories":{},"_nodeVersion":"8.9.4","dependencies":{"eslint":"^4.19.1","eslint-plugin-import":"^2.11.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":"^4.19.1","eslint-plugin-import":"^2.11.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds_0.2.1_1524826271458_0.43427370501957085","host":"s3://npm-registry-packages"}},"1.0.0-alpha.1":{"name":"eslint-config-5minds","version":"1.0.0-alpha.1","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@1.0.0-alpha.1","maintainers":[{"name":"developers5minds","email":"developers@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"sebastian.meier","email":"sebastian.meier@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"dist":{"shasum":"9edb20fdd78f7ae0430e547145bd3c2ae7bfc986","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-1.0.0-alpha.1.tgz","fileCount":5,"integrity":"sha512-QM0c100menu+9Qo8lFH8Rse7k3mAgM5qyoos4thF9zzGnVPvtU8NnQok/1Rpu88+9G/WpUeEeLSrGwVV54DGIw==","signatures":[{"sig":"MEUCIQDY4am1ddfsgT2DPF1Jmy5BRD8tVA8NyFTBM7ueKMeFzQIgJ+4NHKFxnf/YDBAnVMRwYl1hfRTAXfkkAMOyQ9quRrE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43277,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn+P8CRA9TVsSAnZWagAAtV8QAJklbjKd2GoXEuSD7qZj\nphGigh+2DyzYCQX9YLSBwD1WWyYfaZgDChLJ7jInKM1teq/IbXAuGNOhv4M8\nYXkv6P47+We1KZfweIRC2azAszd1rA8RwDqLwnung9wm3628N26v/+foZsEv\niItXl/f2xhZ36Q484B3mKgSgXsXUH8vnpNs6T4yo9AJ4WBIwPE1aFLysZRy4\nLmZz1kR9AnwSPhr8+KD4u3MY48uWKHAVg4MpJVkrfpNBfKIbepZ8iWi+6TWT\nJxgHoFWxA843Lhk1KY9QnE5/EW4UqhcAf7JCigkLyujGltMyZZvzGVpg8Yl8\ndAOsiXBTUZdH813ewPod+OrY9MBK4Tj1w1lYWrvrEa8wcbi74Pw2rJ7HpDkn\nxX34yBjEgnx73O80Ad8dHmb/ZIOlWsKfVsjqTqNYRLKAYilkRGiE/TCBxWWw\nHp3VKXjBnZoUgV0KOqfftyA0mXwYgXfWYSxHYiYqSaIDlZwbX0IlHhNplsww\n6vsoYYaeL0ecstKW1wfByp9g5owOv8Xqv76r96nHQSRb2BSJ/SAOOtaWCSC6\nq4CjIsWacZDXHtHpop0yhveWu/YsLBJvraZs2/wmovdIKQ346EHfXcx/Zu7d\nkEMuFuFbuiSUVacVzXMxmH9J0mBDuC1AIOi5rn4N7pct7Cia/CfU6Gd+Ann3\nVY8h\r\n=IwaP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# ESLint config for 5Minds projects\n\n- install with npm install --save-dev eslint-config-5minds\n- create a .eslintrc config with\n\n```json\n{\n    \"extends\": \"5minds\"\n}\n```\n\nHave fun ;-)\n\n# Possible errors\n\n<!-- 1.0 **no-await-in-loop:** disallow `await` inside of loops. -->\n\n<!-- 1.1 **no-compare-neg-zero:** disallow comparing against -0. -->\n\n1.1 **no-cond-assign:** disallow assignment operators in conditional expressions.\n```javascript\n// good\nif (x === 0) {\n\n}\n```\n\n```javascript\n// bad\nif (x = 0) {\n\n}\n```\n\n1.2 **no-console:** disallow the use of `console`.\n\n```javascript\n// bad\nconsole.log('Hello world');\n```\n\n1.3 **no-constant-condition:** disallow constant expressions in conditions.\n\n```javascript\n// bad\nif (false) {\n\n}\n```\n\n1.4 **no-control-regex:** disallow control characters in regular expressions.\n\n```javascript\n// bad\nconst pattern = /\\x1f/;\n```\n\n1.5 **no-debugger:** disallow the use of `debugger`.\n\n```javascript\n// bad\ndebugger;\n```\n\n1.6 **no-dupe-args:** disallow duplicate arguments in `function` definitions.\n\n```javascript\n// bad\nfunction foo(a, b, a) {\n  console.log('value of the second a:', a);\n}\n```\n\n1.7 **no-dupe-keys:** disallow duplicate keys in object literals.\n\n```javascript\n// bad\nconst foo {\n  bar: 1,\n  qux: 2,\n  bar: 3,\n}\n```\n\n1.8 **no-duplicate-case:** disallow duplicate case labels.\n\n```javascript\n// bad\nswitch (weekday) {\n  case 'monday':\n   \tbreak;\n  case 'tuesday':\n    break;\n  case 'monday':\n    break;\n  default:\n    break;\n}\n```\n\n1.9 **no-empty:** disallow empty block statements.\n\n```javascript\n// bad\nfunction doNothing() {\n\n}\n```\n\n1.10 **no-empty-character-class:** disallow empty character classes in regular expressions.\n\n```javascript\n// bad\n'abcdefg'.match(/^abc[]/); // null\n```\n\n\n1.11 **no-ex-assign:** disallow reassigning exceptions in `catch` clauses.\n\n```javascript\n// bad\ntry {\n  parseInt('adf', 10);\n} catch (error) {\n  error = new Error('You cannot parse letters.');\n  throw error;\n}\n```\n\n\n1.12 **no-extra-boolean-cast:** disallow unnecessary boolean casts.\n\n```javascript\n// bad\nfunction negateNumber(num) {\n  if (Boolean(num)) {\n    return -1 * num;\n  } else {\n    throw new Error('missing input');\n  }\n}\n\n```\n```javascript\n// good\nfunction negateNumber(num) {\n  if (num) {\n    return -1 * num;\n  } else {\n    throw new Error('missing input');\n  }\n}\n```\n\n<!-- 1.15 **no-extra-parens:** disallow unnecessary parentheses. -->\n\n1.13 **no-extra-semi:** disallow unnecessary semicolons.\n\n```javascript\n// bad\n;\n```\n\n1.14 **no-func-assign:** disallow reassigning `function` declarations.\n\n```javascript\n// bad\nfunction foo() {\n\n}\nfoo = 'bar';\n```\n\n1.15 **no-inner-declarations:** disallow variable or `function` declarations in nested blocks.\n\n```javascript\nconst Foo = (function() {\n  // good -> This is a function within a function\n  function Foo() {\n\n  }\n  // good -> This is an instance method(same as declared with ES6-Class)\n  Foo.prototype.compare = function compare(otherFoo) {\n    return this === otherFoo;\n  };\n  return Foo;\n}());\n\n// good -> this is a global function\nfunction createFoo() {\n  return new Foo();\n}\n```\n\n```javascript\n// bad -> function in nested block\nif (foo) {\n  function bar() {\n\n  }\n}\n```\n\n1.16 **no-invalid-regexp:** disallow invalid regular expression strings in `RegExp` constructors.\n\n```javascript\n// good\n'bar'.matches(/[a-z]*/);\n```\n\n```javascript\n// bad\n'foo'.matches(/]a-z[*/);\n```\n\n1.17 **no-irregular-whitespace:** disallow irregular whitespace outside of strings and comments.\nVarious whitespace characters can be inputted by programmers by mistake for example from copying or keyboard shortcuts. Pressing Alt + Space on OS X adds in a non breaking space character for example.\n\n1.18 **no-obj-calls:** disallow calling global object properties as functions.\n\n```javascript\n// bad\nMath();\n```\n\n1.19 **no-prototype-builtins:** disallow calling some `Object.prototype` methods directly on objects.\n\n```javascript\n// good\nfoo.hasOwnProperty('bar');\n```\n\n```javascript\n// bad\nObject.prototype.hasOwnProperty.call(foo, 'bar');\n\n```\n\n1.20 **no-regex-spaces:** disallow multiple spaces in regular expressions.\n\n```javascript\n// good\n'  '.match(/ {2}/);\n\n// better\n'  '.match(/\\s{2}/);\n```\n```javascript\n// bad\n'  '.match(/  /);\n```\n\n1.21 **no-sparse-arrays:** disallow sparse arrays.\n\n```javascript\n// good\nconst colors = [ \"red\", \"blue\", ];\ncolors.length === 2; // true\n\n```\n```javascript\n// bad\nconst colors = [ \"red\", ,\"blue\"];\n```\n\n<!--1.25 **no-template-curly-in-string:** disallow template literal placeholder syntax in regular strings. -->\n\n1.22 **no-unexpected-multiline:** disallow confusing multiline expressions.\n\n```javascript\n// good\nconst hello = 'world';\n[1, 2, 3].forEach(addNumber);\n\n```\n```javascript\n// bad\nconst hello = 'world'\n[1, 2, 3].forEach(addNumber);\n```\n\n1.23 **no-unreachable:** disallow unreachable code after `return`, `throw`, `continue`, and `break` statements.\n\n```javascript\n// good\nfunction foo() {\n  console.log(\"done\");\nreturn true;\n}\n```\n```javascript\n// bad\nfunction foo() {\n  return true;\n  console.log(\"done\");\n}\n```\n\n1.24 **no-unsafe-finally:** disallow control flow statements in `finally` blocks.\n\n```javascript\n// bad -> We expect this function to throw an error, then return\n(() => {\n  try {\n    throw new Error(\"Try\"); // error is thrown but suspended until finally block ends\n  } finally {\n    return 3; // 3 is returned before the error is thrown, which we did not expect\n  }\n})();\n```\n\n1.25 **no-unsafe-negation:** disallow negating the left operand of relational operators.\n\n```javascript\n// good\nif (!(key in object)) {\n  // key is not in object\n}\n```\n```javascript\n// bad\nif (!key in object) {\n  // equivalent to (!key) in object\n}\n```\n\n1.26 **use-isnan:** require calls to `isNaN()` when checking for `NaN`.\n\n```javascript\n// good\nif (isNaN(foo)) {\n\n}\n```\n```javascript\n// bad\nif (foo == NaN) {\n\n}\n ```\n\n<!--1.31 **valid-jsdoc:** enforce valid JSDoc comments. -->\n\n1.27 **valid-typeof:** enforce comparing `typeof` expressions against valid strings.\n\n```javascript\n// good\nif (typeof foo === 'string') {\n\n}\n```\n```javascript\n// bad\nif (typeof foo === 'strnng') {\n\n}\n```\n\n# Best practices\n\n<!-- 2.1 **accessor-pairs:** enforce getter and setter pairs in objects. -->\n\n\n2.1 **array-callback-return:** enforce `return` statements in callbacks of array methods.\n\n```javascript\n// good\nlist.forEach((element) => {\n  process(element);\n});\n\n// good\nlist.map((element) => {\n  return process(element);\n});\n```\n\n```javascript\n// bad\nlist.map((element) => {\n  process(element);\n});\n```\n\n2.2 **block-scoped-var:** enforce the use of variables within the scope they are defined.\n\n```javascript\n// good\nfunction doIf() {\n  var build;\n\n  if (true) {\n    build = true;\n  }\n\nconsole.log(build);\n}\n```\n```javascript\n// bad\nfunction doIf() {\n  if (true) {\n    var build = true;\n  }\n\n  console.log(build);\n}\n ```\n\n<!-- 2.4 **class-methods-use-this:** enforce that class methods utilize `this`. -->\n\n\n<!-- 2.5 **complexity:** enforce a maximum cyclomatic complexity allowed in a program. -->\n\n2.3 **consistent-return:** require `return` statements to either always or never specify values.\n\n```javascript\n// good\nfunction doSomething(condition) {\n  if (condition) {\n    return true;\n  } else {\n    return false;\n  }\n}\n```\n```javascript\n// bad\nfunction doSomething(condition) {\n  if (condition) {\n    return true;\n  } else {\n    return;\n  }\n}\n```\n\n2.4 **curly:** enforce consistent brace style for all control statements.\n\n```javascript\n// good\nif (foo) {\n  bar();\n}\n```\n```javascript\n// bad\nif (foo)\n  bar();\nelse\n  baz();\n```\n\n2.5 **default-case:** require `default` cases in `switch` statements.\n\n```javascript\n// good\nswitch (weekday) {\n  case 'Monday':\n    break;\n\n  default:\n    break;\n}\n```\n```javascript\n// bad\nswitch (weekday) {\n  case 'Monday':\n    break;\n}\n```\n\n2.6 **dot-location:** enforce consistent newlines before property dots.\n\n```javascript\n// good\ndocument\n.documentElement\n```\n```javascript\n// bad\ndocument.\ndocumentElement\n```\n\n2.7 **dot-notation:** enforce dot notation whenever possible.\n\n```javascript\n// good\nobject.foo = true;\nobject[foo] = true;\nobject['foo bar'] = true;\n```\n```javascript\n// bad\nobject['foo'] = true;\n```\n\n2.8 **eqeqeq:** require the use of `===` and `!==` except for null-checks.\n\n```javascript\n// good\nif (foo == null) {\n\n}\nif (bar === 0) {\n\n}\n```\n```javascript\n// bad\nif (foo == 0) {\n\n}\n```\n\n\n2.9 **guard-for-in:** require `for-in` loops to include an `if` statement.\n\n```javascript\n// good\nfor (key in foo) {\n  if (Object.prototype.hasOwnProperty.call(foo, key)) {\n    doSomething(key);\n  }\n}\n\n// better\nObject.keys(foo).forEach((key) => {\n  doSomething(key);\n});\n```\n```javascript\n// bad\nfor (key in foo) {\n  doSomething(key);\n}\n```\n\n2.10 **no-alert:** disallow the use of `alert`, `confirm`, and `prompt`.\n\n```javascript\n// bad\nalert('Hello world');\n```\n\n2.11 **no-caller:** disallow the use of `arguments.caller` or `arguments.callee`.\n\n```javascript\n// good\nfunction factorial (n) {\n  return !(n > 1) ? 1 : factorial(n - 1) * n;\n}\n\n[1, 2, 3, 4, 5].map(factorial);\n```\n```javascript\n// bad\n[1, 2, 3, 4, 5].map(function(n) {\n  return !(n > 1) ? 1 : arguments.callee(n - 1) * n;\n});\n```\n\n2.12 **no-case-declarations:** disallow lexical declarations in case clauses.\n\n```javascript\n// good\nswitch (foo) {\n  case 1: {\n    let x = 1;\n    break;\n  }\n  default: {\n    class C {}\n  }\n}\n```\n```javascript\n// bad\nswitch (foo) {\n  case 1:\n    let x = 1;\n    break;\n  default:\n    class C {}\n}\n```\n\n<!-- 2.16 **no-div-regex:** disallow division operators explicitly at the beginning of regular expressions. -->\n\n2.13 **no-else-return:** disallow `else` blocks after `return` statements in `if` statements.\n\n```javascript\n// good\nfunction foo() {\n  if (x) {\n    return y;\n  }\n  var t = \"foo\";\n}\n```\n```javascript\n// bad\nfunction foo() {\n  if (x) {\n    return y;\n  } else {\n    var t = \"foo\";\n  }\n}\n```\n\n2.14 **no-empty-function:** disallow empty functions.\n\n```javascript\n// bad\nfunction emptyFunc() {\n\n}\n```\n\n2.15 **no-empty-pattern:** disallow empty destructuring patterns.\n\n```javascript\n// good -> sets default value\nvar {a= {}} = foo;\n```\n```javascript\n// bad -> does not create a var\nvar {a: {}} = foo;\n```\n\n<!-- 2.20 **no-eq-null:** disallow `null` comparisons without type-checking operators. -->\n\n2.16 **no-eval:** disallow the use of `eval()`.\n```javascript\n// good\nclass Foo {\n\n}\n```\n```javascript\n// bad\neval('class Foo {}');\n```\n\n2.17 **no-extend-native:** disallow extending native types.\n\n```javascript\n// bad\nObject.prototype.foo = 'bar';\n```\n\n2.18 **no-extra-bind:** disallow unnecessary calls to `.bind()`.\n\n```javascript\n// good\nvar boundGetName = (function getName() {\n  return this.name;\n}).bind({ name: \"ESLint\" });\n\nconsole.log(boundGetName());\n```\n```javascript\n// bad  -> useless\nvar boundGetName = (function getName() {\n  return \"ESLint\";\n}).bind({ name: \"ESLint\" });\n\nconsole.log(boundGetName());\n```\n\n2.19 **no-extra-label:** disallow unnecessary labels.\n\n```javascript\n// bad\nA: while (a) {\n  break A;\n}\n```\n\n2.20 **no-fallthrough:** disallow fallthrough of `case` statements.\n\n```javascript\n// good\nswitch(foo) {\n  case 1:\n    doSomething();\n    break;\n\n  case 2:\n    doSomething();\n}\n```\n```javascript\n// bad\nswitch(foo) {\n  case 1:\n    doSomething();\n\n  case 2:\n    doSomething();\n}\n```\n\n2.21 **no-floating-decimal:** disallow leading or trailing decimal points in numeric literals.\n\n  ```javascript\n// good\nvar num = 0.5;\nvar num = 2.0;\nvar num = -0.7;\n```\n```javascript\n// bad\nvar num = .5;\nvar num = 2.;\nvar num = -.7;\n```\n\n2.22 **no-global-assign:** disallow assignments to native objects or read-only global variables.\n\n```javascript\n// bad\nundefined = null;\n```\n\n<!-- 2.28 **no-implicit-coercion:** disallow shorthand type conversions. -->\n\n\n<!-- 2.29 **no-implicit-globals:** disallow variable and `function` declarations in the global scope. -->\n\n2.23 **no-implied-eval:** disallow the use of `eval()`-like methods.\n\n```javascript\n// good\nsetTimeout(\"alert('This is like eval.');\", 100);\n```\n```javascript\n// bad\nsetTimeout(() => {\n  alert('This is not like eval.');\n}, 100);\n```\n<!-- 2.31 **no-invalid-this:** disallow `this` keywords outside of classes or class-like objects. -->\n\n2.24 **no-iterator:** disallow the use of the `__iterator__` property.\n\n```javascript\n// bad\nFoo.prototype.__iterator__ = function() {\n  return new FooIterator(this);\n};\n```\n\n2.25 **no-labels:** disallow labeled statements.\n\n```javascript\n// bad\nA: while (a) {\n  break A;\n}\n```\n\n2.26 **no-lone-blocks:** disallow unnecessary nested blocks.\n\n```javascript\n// good\nfunction bar() {\n  baz();\n}\n```\n```javascript\n// bad\nfunction bar() {\n  {\n    baz();\n  }\n}\n```\n\n2.27 **no-loop-func:** disallow `function` declarations and expressions inside loop statements.\n```javascript\n// good\ndo {\n  function a() { return i; };\n  a();\n} while (i);\n```\n\n<!-- 2.36 **no-magic-numbers:** disallow magic numbers. -->\n\n2.28 **no-multi-spaces:** disallow multiple spaces.\n\n2.29 **no-multi-str:** disallow multiline strings.\n\n```javascript\n// good\nconst blindText = `Lorem ipsum\net dolor`;\n```\n```javascript\n// good\nconst blindText = 'Lorem ipsum et dolor';\n```\n```javascript\n// bad\nconst blindText = 'Lorem ipsum \\\net dolor';\n```\n\n2.30 **no-new:** disallow `new` operators outside of assignments or comparisons.\n\n```javascript\n// good\nvar thing = new Thing();\n\nThing();\n```\n```javascript\n// bad\nnew Thing();\n```\n\n2.31 **no-new-func:** disallow `new` operators with the `Function` object.\n\n```javascript\n// bad\nvar x = new Function(\"a\", \"b\", \"return a + b\");\n```\n\n2.32 **no-new-wrappers:** disallow `new` operators with the `String`, `Number`, and `Boolean` objects.\n\n```javascript\n// good\nconst stringObject = 'Hello world';\n```\n```javascript\n// bad\nconst stringObject = new String('Hello world');\n```\n\n2.33 **no-octal:** disallow octal literals.\n\n```javascript\n// bad\nconst num = 071;\n\n```\n\n2.34 **no-octal-escape:** disallow octal escape sequences in string literals.\n\n```javascript\n// good\nconst foo = \"Copyright \\u00A9\";   // unicode\n```\n```javascript\n// bad\nconst foo = \"Copyright \\251\"; // octal\n\n```\n\n2.35 **no-param-reassign:** disallow reassigning `function` parameters.\n\n```javascript\n// bad\nfunction foo(bar) {\n  bar++;\n}\n```\n\n2.36 **no-proto:** disallow the use of the `__proto__` property.\n\n```javascript\n// good\nconst a = Object.getPrototypeOf(obj);\n```\n```javascript\n// bad\nconst a = obj.__proto__;\n```\n\n2.37 **no-redeclare:** disallow variable redeclaration.\n\n  ```javascript\n// good\nlet a = 3;\na = 10;\n```\n```javascript\n// bad\nlet a = 3;\nlet a = 10;\n```\n\n<!-- 2.47 **no-restricted-properties:** disallow certain properties on certain objects. -->\n\n\n2.38 **no-return-assign:** disallow assignment operators in `return` statements.\n\n```javascript\n// bad\nfunction doSomething() {\n  return foo = bar + 2;\n}\n\n```\n\n<!-- 2.49 **no-return-await:** disallow unnecessary `return await`. -->\n\n\n2.39 **no-script-url:** disallow `javascript:` urls.\n\n```javascript\n// bad\nlocation.href = \"javascript:void(0)\";\n```\n\n2.40 **no-self-assign:** disallow assignments where both sides are exactly the same.\n\n```javascript\n// good\nfoo = bar;\n```\n```javascript\n// bad\nfoo = foo;\n```\n\n2.41 **no-self-compare:** disallow comparisons where both sides are exactly the same.\n\n```javascript\n// bad\nif (x === x) {\n\n}\n```\n\n2.42 **no-sequences:** disallow comma operators.\n\n```javascript\n// good -> init and update of for is an exception\nfor (i = 0, j = 10; i < j; i++, j--);\n```\n```javascript\n// bad -> use && instead\nwhile (val = foo(), val < 42);\n```\n\n2.43 **no-throw-literal:** disallow throwing literals as exceptions.\n\n  ```javascript\n// good\nthrow new Error('error');\n```\n```javascript\n// bad\nthrow 'error';\n```\n\n<!-- 2.55 **no-unmodified-loop-condition:** disallow unmodified loop conditions. -->\n\n2.44 **no-unused-expressions:** disallow unused expressions.\n\n  ```javascript\n// good\na ? b() : c();\n```\n```javascript\n// bad\na ? b : 0;\n```\n\n2.45 **no-unused-labels:** disallow unused labels.\n\n```javascript\n// good\nA: {\n  if (foo()) {\n    break A;\n  }\n  bar();\n}\n```\n```javascript\n// bad\nA: var foo = 0;\n```\n\n\n2.46 **no-useless-call:** disallow unnecessary calls to `.call()` and `.apply()`.\n\n```javascript\n// good\nfoo.call(obj, 1, 2, 3);\n```\n```javascript\n// bad\nfoo.call(undefined, 1, 2, 3);\n```\n\n2.47 **no-useless-concat:** disallow unnecessary concatenation of literals or template literals.\n\n```javascript\n// good\nconst a = a + '1';\n```\n```javascript\n// bad\nconst a = `some` + `string`;\n```\n\n2.48 **no-useless-escape:** disallow unnecessary escape characters.\n\n```javascript\n// bad\nlet foo = \"hol\\a\"; // > foo = \"hola\"\n```\n\n\n2.49 **no-useless-return:** disallow redundant return statements.\n```javascript\n// good\nfunction foo() {\n  doSomething();\n}\n```\n```javascript\n// bad\nfunction foo() {\n  doSomething();\n  return;\n}\n```\n\n2.50 **no-void:** disallow `void` operators.\n\n```javascript\n// bad\nvar foo = void bar();\n```\n\n<!-- 2.63 **no-warning-comments:** disallow specified warning terms in comments. -->\n\n2.51 **no-with:** disallow `with` statements.\n\n```javascript\n// bad\nwith (point) {\n  r = Math.sqrt(x * x + y * y); // is r a member of point?\n}\n```\n\n<!-- 2.65 **prefer-promise-reject-errors:** require using Error objects as Promise rejection reasons. -->\n\n2.52 **radix:** enforce the consistent use of the radix argument when using `parseInt()`.\n\n```javascript\n// good\nparseInt('2000', 10);\n```\n```javascript\n// bad\nparseInt('2000');\n```\n\n<!-- 2.67 **require-await:** disallow async functions which have no `await` expression. -->\n\n2.53 **vars-on-top:** require `var` declarations to be placed at the top of their containing scope.\n\n```javascript\n// good\nfunction doSomething() {\n  var first;\n  var second;\n  if (true) {\n    first = true;\n  }\n}\n```\n```javascript\n// bad\nfunction doSomething() {\n  var first;\n  if (true) {\n    first = true;\n  }\n  var second;\n}\n```\n\n2.54 **wrap-iife:** require parentheses around immediate `function` invocations.\n\n```javascript\n// good\nvar x = (function () { return { y: 1 };}());\n```\n```javascript\n// bad\nvar x = function () { return { y: 1 };}();\nvar x = (function () { return { y: 1 };})();\n```\n\n2.55 **yoda:** disallow “Yoda” conditions.\n\n```javascript\n// good\nif (color === 'red') {\n  // ...\n}\n```\n```javascript\n// bad\nif ('red' === color) {\n  // ...\n}\n```\n\n# Strict\n\n<!-- 3.1 **strict:** require or disallow strict mode directives. -->\n\n# Variables\n\n<!-- 4.1 **init-declarations:** require or disallow initialization in variable declarations. -->\n\n\n<!-- 4.2 **no-catch-shadow:** disallow `catch` clause parameters from shadowing variables in the outer scope. -->\n\n\n4.1 **no-delete-var:** disallow deleting variables.\n\n```javascript\n// bad\nvar x;\ndelete x;\n```\n\n4.2 **no-label-var:** disallow labels that share a name with a variable.\n\n```javascript\n// bad\nvar x = foo;\nfunction bar() {\nx:\n  for (;;) {\n    break x;\n  }\n}\n```\n\n<!-- 4.5 **no-restricted-globals:** disallow specified global variables. -->\n\n\n\n4.3 **no-shadow:** disallow variable declarations from shadowing variables declared in the outer scope.\n\n```javascript\n// bad\nvar a = 3;\nfunction b() {\n  var a = 10;\n}\n```\n\n4.4 **no-shadow-restricted-names:** disallow identifiers from shadowing restricted names.\n\n```javascript\n// bad\nfunction NaN(){}\n```\n\n4.5 **no-undef:** disallow the use of undeclared variables unless mentioned in `/*global */` comments.\n\n```javascript\n// good\nconst b = 10;\n```\n```javascript\n// bad\nb = 10;\n```\n\n\n4.6 **no-undef-init:** disallow initializing variables to `undefined`.\n\n```javascript\n// good\nconst undef = undefined;\n```\n```javascript\n// bad\nlet undef = undefined;\n```\n\n<!--1.114 **no-undefined:** disallow the use of `undefined` as an identifier. -->\n\n4.7 **no-unused-vars:** disallow unused variables.\n\n```javascript\n// good\nvar y = 10;\nprocessSomehow(y);\n```\n```javascript\n// bad\nvar y = 10;\ny = 2;\n```\n\n\n4.8 **no-use-before-define:** disallow the use of variables before they are defined.\n\n```javascript\n// bad\nprocessSomehow(y);\nvar y = 10;\n```\n\n# Node.Js and CommonJS\n\n<!-- 4.117 **callback-return:** require `return` statements after callbacks. -->\n\n5.1 **global-require:** require `require()` calls to be placed at top-level module scope.\n\n```javascript\n// good\nvar fs = require(\"fs\");\n```\n```javascript\n// bad\nfunction foo() {\n  if (condition) {\n    var fs = require(\"fs\");\n  }\n}\n```\n\n<!-- 4.119 **handle-callback-err:** require error handling in callbacks. -->\n\n\n\n<!-- 4.120 **no-mixed-requires:** disallow `require` calls to be mixed with regular variable declarations. -->\n\n\n\n5.2 **no-new-require:** disallow `new` operators with calls to `require`.\n\n```javascript\n// good\nvar AppHeader = require('app-header');\nvar appHeader = new AppHeader();\n```\n```javascript\n// bad\nvar appHeader = new require('app-header');\n```\n\n5.3 **no-path-concat:** disallow string concatenation with `__dirname` and `__filename`.\n\n```javascript\n// good\nvar fullPath = path.join(__dirname, \"foo.js\");\n```\n```javascript\n// bad\nvar fullPath = __dirname + \"/foo.js\";\n```\n\n<!-- 4.123 **no-process-env:** disallow the use of `process.env`. -->\n\n<!-- 4.124 **no-process-exit:** disallow the use of `process.exit()`. -->\n\n<!-- 4.125 **no-restricted-modules:** disallow specified modules when loaded by `require`. -->\n\n<!-- 4.126 **no-sync:** disallow synchronous methods. -->\n\n# Stylistic Issues\n\n6.1 **array-bracket-spacing:** enforce no spacing inside array brackets.\n\n```javascript\n// good\nvar arr = ['foo', 'bar'];\nvar [x, y] = z;\n```\n```javascript\n// bad\nvar arr = [ 'foo', 'bar' ];\nvar [ x, y ] = z;\n```\n\n6.2 **block-spacing:** enforce consistent spacing inside single-line blocks.\n\n```javascript\n// good\nfunction foo() { return true; }\nif (foo) { bar = 0; }\n```\n```javascript\n// bad\nfunction foo() {return true;}\nif (foo) {bar = 0;}\n```\n\n6.3 **brace-style:** enforce consistent brace style for blocks(1TBS).\n\n```javascript\n// good\nif (foo) {\n  bar();\n} else {\n  baz();\n}\n```\n```javascript\n// bad\nif (foo) {\n  bar();\n}\nelse {\n  baz();\n}\n```\n\n\n6.4 **camelcase:** enforce camelcase naming convention.\n\n```javascript\n// good\nconst camelCase = 'good';\n```\n```javascript\n// bad\nconst snake_case = 'bad';\n```\n\n<!-- 6.131 **capitalized-comments:** enforce or disallow capitalization of the first letter of a comment. -->\n\n6.5 **comma-dangle:** require or disallow trailing commas.\n\n```javascript\n// good\nconst foo = {\n  bar: 'baz',\n  qux: 'quux',\n};\n```\n```javascript\n// bad\nconst foo = {\n  bar: 'baz',\n  qux: 'quux'\n};\n```\n\n\n6.6 **comma-spacing:** enforce consistent spacing before and after commas.\n\n```javascript\n// good\nconst arr = [1, 2];\n```\n```javascript\n// bad\nconst arr = [1 , 2];\n```\n\n\n6.7 **comma-style:** enforce consistent comma style.\n\n```javascript\n// good\nfunction bar() {\n  return {\n    'a': 1,\n    'b:': 2\n  };\n}\n```\n```javascript\n// bad\nfunction bar() {\n  return {\n    'a': 1\n    ,'b:': 2\n  };\n}\n```\n\n\n6.8 **computed-property-spacing:** enforce consistent spacing inside computed property brackets.\n\n```javascript\n// good\nobj[key]\n```\n```javascript\n// bad\nobj[ key]\n```\n\n<!-- 6.136 **consistent-this:** enforce consistent naming when capturing the current execution context. -->\n\n6.9 **eol-last:** require or disallow newline at the end of files.\n\n<!-- 6.138 **func-call-spacing:** require or disallow spacing between function identifiers and their invocations. -->\n\n6.10 **func-name-matching:** require function names to match the name of the variable or property to which they are assigned.\n\n```javascript\n// good\nvar foo = function bar() {};\n```\n```javascript\n// bad\nvar foo = function foo() {};\n```\n\n\n6.11 **func-names:** require or disallow named `function` expressions.\n\n```javascript\n// good\narr.filter(function isEven(a) {\n  return (a % 2) === 0;\n});\n```\n```javascript\n// bad\narr.filter(function(a) {\n  return (a % 2) === 0;\n});\n```\n\n<!-- 6.141 **func-style:** enforce the consistent use of either `function` declarations or expressions. -->\n\n<!-- 6.142 **id-blacklist:** disallow specified identifiers. -->\n\n<!-- 6.143 **id-length:** enforce minimum and maximum identifier lengths. -->\n\n<!-- 6.144 **id-match:** require identifiers to match a specified regular expression. -->\n\n6.12 **indent:** enforce consistent indentation(2 spaces).\n\n<!-- 6.146 **jsx-quotes:** enforce the consistent use of either double or single quotes in JSX attributes. -->\n\n6.13 **key-spacing:** enforce consistent spacing between keys and values in object literal properties.\n\n  ```javascript\n// good\nvar obj = { \"foo\": 42 };\n\n```\n```javascript\n// bad\nvar obj = { \"foo\" : 42 };\n```\n\n\n6.14 **keyword-spacing:** enforce consistent spacing before and after keywords.\n\n```javascript\n// good\nif (foo) {\n  //...\n} else if (bar) {\n  //...\n} else {\n  //...\n}\n```\n```javascript\n// bad\nif (foo) {\n  //...\n}else if (bar) {\n  //...\n} else{\n  //...\n}\n```\n\n\n<!-- 6.149 **line-comment-position:** enforce position of line comments. -->\n\n\n6.15 **linebreak-style:** enforce consistent linebreak style(unix -> LF instead of CRLF)\n\n\n\n<!-- 6.151 **lines-around-comment:** require empty lines around comments. -->\n\n\n\n<!-- 6.152 **lines-around-directive:** require or disallow newlines around directives. -->\n\n<!-- 6.153 **max-depth:** enforce a maximum depth that blocks can be nested. -->\n\n\n\n6.16 **max-len:** enforce a maximum line length of 100 characters.\n\n<!--  6.155 **max-lines:** enforce a maximum number of lines per file. -->\n\n<!-- 300 -->\n\n<!-- 6.156 **max-nested-callbacks:** enforce a maximum depth that callbacks can be nested. -->\n\n\n\n<!-- 6.157 **max-params:** enforce a maximum number of parameters in function definitions. -->\n\n\n\n<!-- 6.158 **max-statements:** enforce a maximum number of statements allowed in function blocks. -->\n\n\n\n<!-- 6.159 **max-statements-per-line:** enforce a maximum number of statements allowed per line. -->\n\n\n\n<!-- 6.160 **multiline-ternary:** enforce newlines between operands of ternary expressions. -->\n\n\n\n6.17 **new-cap:** require constructor names to begin with a capital letter.\n\n```javascript\n// good\nconst c = new Constructor();\n```\n```javascript\n// bad\nconst c = new constructor();\n```\n\n\n6.18 **new-parens:** require parentheses when invoking a constructor with no arguments.\n\n```javascript\n// good\nconst c = new Constructor();\n```\n```javascript\n// bad\nconst c = new Constructor;\n```\n\n<!-- 6.163 **newline-after-var:** require or disallow an empty line after variable declarations. -->\n\n<!-- 6.164 **newline-before-return:** require an empty line before `return` statements. -->\n\n6.19 **newline-per-chained-call:** require a newline after each call in a method chain.\n\n```javascript\n// good\ndoSomething()\n.then(()=> {\n  // ..\n});\n\n```\n```javascript\n// bad\ndoSomething().then(()=> {\n  // ..\n});\n```\n\n6.20 **no-array-constructor:** disallow `Array` constructors.\n\n```javascript\n// bad\nnew Array(0, 1, 2)\n```\n\n<!-- 6.167 **no-bitwise:** disallow bitwise operators. -->\n\n6.21 **no-continue:** disallow `continue` statements.\n```javascript\n// bad\ncontinue;\n```\n\n<!-- 6.169 **no-inline-comments:** disallow inline comments after code. -->\n\n6.22 **no-lonely-if:** disallow `if` statements as the only statement in `else` blocks.\n\n```javascript\n// good\nif (foo) {\n  // ...\n} else if (bar) {\n    // ...\n  }\n}\n```\n```javascript\n// bad\nif (foo) {\n  // ...\n} else {\n  if (bar) {\n    // ...\n  }\n}\n```\n\n\n6.23 **no-mixed-operators:** disallow mixed binary operators.\n\n```javascript\n// good\nlet i = 2 + (2 * 2);\n```\n```javascript\n// bad\nlet i = 2 + 2 * 2;\n```\n\n\n6.24 **no-mixed-spaces-and-tabs:** disallow mixed spaces and tabs for indentation.\n\n6.25 **no-multi-assign:** disallow use of chained assignment expressions.\n\n```javascript\n// bad\nvar a = b = c = 5;\n```\n\n6.26 **no-multiple-empty-lines:** disallow multiple empty lines.\n\n```javascript\n// good\ndoSomething();\n\ndoSomeOtherThing();\nyetAnotherThing();\n```\n```javascript\n// bad\ndoSomething();\n\n\ndoSomeOtherThing();\n```\n<!-- 6.175 **no-negated-condition:** disallow negated conditions. -->\n\n\n\n6.27 **no-nested-ternary:** disallow nested ternary expressions.\n\n```javascript\n// bad\nvar foo = bar ? baz : qux === quxx ? bing : bam;\n```\n\n\n6.28 **no-new-object:** disallow `Object` constructors.\n\n```javascript\n// good\nvar myObject = {};\n```\n```javascript\n// bad\nvar myObject = new Object();\n```\n\n<!-- 6.178 **no-plusplus:** disallow the unary operators `++` and `--`. -->\n\n6.29 **no-restricted-syntax:** disallow specified syntax(e.g. debugger, with, labels)\n\n<!-- 6.180 **no-tabs:** disallow all tabs. -->\n\n<!-- 6.181 **no-ternary:** disallow ternary operators. -->\n\n6.30 **no-underscore-dangle:** disallow dangling underscores in identifiers.\n\n```javascript\n// bad\nvar _foo;\n```\n\n6.31 **no-unneeded-ternary:** disallow ternary operators when simpler alternatives exist.\n\n```javascript\n// good\nconst a = Boolean(condition);\n```\n```javascript\n// bad\nconst a = (condition) ? true : false;\n```\n\n6.32 **no-whitespace-before-property:** disallow whitespace before properties.\n\n```javascript\n// good\nfoo.bar.baz.quz\n```\n```javascript\n// bad\nfoo. bar .baz . quz\n```\n\n<!-- 6.186 **nonblock-statement-body-position:** enforce the location of single-line statements. -->\n\n<!-- 6.187 **object-curly-newline:** enforce consistent line breaks inside braces. -->\n\n6.33 **object-curly-spacing:** enforce consistent spacing inside braces.\n\n```javascript\n// good\nvar obj = {'foo': 'bar'};\n```\n```javascript\n// bad\nvar obj = { 'foo': 'bar' };\n```\n\n6.34 **object-property-newline:** enforce placing object properties on separate lines.\n\n```javascript\n// good\nvar obj = {\n  foo: \"foo\",\n  bar: \"bar\",\n  baz: \"baz\"\n};\n```\n```javascript\n// bad\nvar obj = {foo: \"foo\", bar: \"bar\", baz: \"baz\"};\n```\n\n6.35 **one-var:** enforce variables to be declared separately in functions.\n\n```javascript\n// good\nvar bar;\nvar baz;\n```\n```javascript\n// bad\nvar bar, baz;\n```\n\n6.36 **one-var-declaration-per-line:** require or disallow newlines around variable declarations.\n\n```javascript\n// good\nconst a = 0,\n  b = 0;\n```\n```javascript\n// bad\nconst a = 0,  b = 0;\n```\n\n6.37 **operator-assignment:** require or disallow assignment operator shorthand where possible.\n\n```javascript\n// good\nx += y;\n```\n```javascript\n// bad\nx = x + y;\n```\n\n<!-- 6.193 **operator-linebreak:** enforce consistent linebreak style for operators. -->\n\n6.38 **padded-blocks:** disallow padding within blocks.\n\n```javascript\n// good\nif (a) {\n  b();\n}\n```\n```javascript\n// bad\nif (a) {\n\n  b();\n\n}\n```\n\n6.39 **quote-props:** require quotes around object literal property names if needed, otherwise forbid them.\n\n```javascript\n// good\nvar object1 = {\n  \"a-b\": 0,\n  \"0x0\": 0,\n  \"1e2\": 0,\n  foo: 0,\n};\n```\n```javascript\n// bad\nvar object = {\n  \"a\": 0,\n  \"0\": 0,\n  \"true\": 0,\n  \"null\": 0\n};\n```\n\n6.40 **quotes:** enforce the consistent use of single quotes. Template-Strings are still allowed(if they contain a JS-Expression).\n\n```javascript\n// good\nconst hw = 'Hello world';\n// good\nconst hw2 = `${greet()} world`;\n```\n```javascript\n// bad\nconst hw = \"Hello world\";\n// bad\nconst hw2 = `Hello world`;\n```\n\n<!-- 6.197 **require-jsdoc:** require JSDoc comments. -->\n\n6.41 **semi:** require semicolons instead of ASI(automatic semicolon insertion).\n\n```javascript\n// good\nvar name = \"ESLint\";\n```\n```javascript\n// bad\nvar name = \"ESLint\"\n```\n\n6.42 **semi-spacing:** enforce consistent spacing before and after semicolons.\n\n```javascript\n// good\nvar foo;\n```\n```javascript\n// bad\nvar foo ;\n```\n\n<!-- 6.200 **sort-keys:** require object keys to be sorted. -->\n\n<!-- 6.201 **sort-vars:** require variables within the same declaration block to be sorted. -->\n\n6.43 **space-before-blocks:** enforce consistent spacing before blocks.\n\n```javascript\n// good\nif (a) {\n  b();\n}\n```\n```javascript\n// bad\nif (a){\n  b();\n}\n```\n\n6.44 **space-before-function-paren:** disallow spacing before `function` definition opening parenthesis(except for anonymous functions).\n\n```javascript\n// good\nfunction foo() {\n  return function () {\n\n  }\n};\n\n```\n```javascript\n// bad\nfunction foo () {\n  // ...\n};\n\n```\n\n6.45 **space-in-parens:** enforce consistent spacing inside parentheses.\n\n```javascript\n// good\nfoo('bar');\n```\n```javascript\n// bad\nfoo( 'bar');\nfoo('bar' );\nfoo( 'bar' );\n```\n\n6.46 **space-infix-ops:** require spacing around infix operators.\n\n```javascript\n// good\na + b\n  ```\n```javascript\n// bad\na+b\n```\n\n6.47 **space-unary-ops:** enforce consistent spacing before or after unary operators.\n\n```javascript\n// good\ntypeof (foo);\n```\n```javascript\n// bad\ntypeof(foo);\n```\n\n6.48 **spaced-comment:** enforce consistent spacing after the `//` or `/*` in a comment.\n\n```javascript\n// good\n// This is a comment with a whitespace at the beginning\n```\n```javascript\n// bad\n//This is a comment with no whitespace at the beginning\n```\n\n<!-- 6.208 **template-tag-spacing:** require or disallow spacing between template tags and their literals. -->\n\n6.49 **unicode-bom:** require or disallow Unicode byte order mark (BOM).\n\nThe Unicode Byte Order Mark (BOM) is used to specify whether code units are big endian or little endian. That is, whether the most significant or least significant bytes come first. UTF-8 does not require a BOM because byte ordering does not matter when characters are a single byte. Since UTF-8 is the dominant encoding of the web, we make \"never\" the default option.\n\n<!-- 1.210 **wrap-regex:** require parenthesis around regex literals. -->\n\n# ECMAScript 6\n\n\n7.1 **arrow-body-style:** require braces around arrow function bodies.\n\n```javascript\n// good\nconst foo = () => {\n  return 0;\n};\n```\n```javascript\n// bad\nconst foo = () => 0;\n```\n\n<!-- 7.211 **arrow-parens:** require parentheses around arrow function arguments. -->\n\n7.2 **arrow-spacing:** enforce consistent spacing before and after the arrow in arrow functions.\n```javascript\n// good\n() => {};\n```\n```javascript\n// bad\n()=> {};\n() =>{};\n()=>{};\n```\n\n\n7.3 **constructor-super:** require `super()` calls in constructors.\n```javascript\n// good\nclass A {\n  constructor() { }\n}\n// good\nclass A extends B {\n  constructor() {\n    super();\n  }\n}\n```\n```javascript\n// bad\nclass A {\n  constructor() {\n    super();\n  }\n}\n// bad\nclass A extends B {\n  constructor() { }\n}\n```\n\n\n7.4 **generator-star-spacing:** enforce consistent spacing behind `*` operators in generator functions.\n```javascript\n// good\nfunction* generator() {}\n```\n```javascript\n// bad\nfunction *generator() {}\n```\n\n\n7.5 **no-class-assign:** disallow reassigning class members.\n```javascript\n// good\nlet A = class A { }\nA = 0;\n\n```\n```javascript\n// bad\nclass A { }\nA = 0;\n```\n\n\n7.6 **no-confusing-arrow:** disallow arrow functions where they could be confused with comparisons.\n```javascript\n// good\nvar x = a => 1 ? 2 : 3;\n```\n```javascript\n// bad\nvar x = a => { return 1 ? 2 : 3; };\n```\n\n\n7.7 **no-const-assign:** disallow reassigning `const` variables.\n```javascript\n// bad\nconst a = 0;\na = 1;\n```\n\n\n7.8 **no-dupe-class-members:** disallow duplicate class members.\n```javascript\n// bad\nclass Foo {\n  bar() { }\n  bar() { }\n}\n```\n\n\n7.9 **no-duplicate-imports:** disallow duplicate module imports.\n```javascript\n// good\nimport {merge, find} from 'module';\n```\n```javascript\n// bad\nimport {merge} from 'module';\nimport {find} from 'module';\n```\n\n\n7.10 **no-new-symbol:** disallow `new` operators with the `Symbol` object.\n\n```javascript\n// bad\nvar foo = new Symbol('foo');\n```\n\n<!-- 7.221 **no-restricted-imports:** disallow specified modules when loaded by `import`. -->\n\n7.11 **no-this-before-super:** disallow `this`/`super` before calling `super()` in constructors.\n\n```javascript\n// good\nclass A extends B {\n  constructor() {\n    super();\n    this.a = 0;\n  }\n}\n```\n```javascript\n// bad\nclass A extends B {\n  constructor() {\n    this.a = 0;\n    super();\n  }\n}\n```\n\n7.12 **no-useless-computed-key:** disallow unnecessary computed property keys in object literals.\n\n```javascript\n// good\nvar a = { x: 0 };\n```\n```javascript\n// bad\nvar a = { ['x']: 0 };\n  ```\n\n7.13 **no-useless-constructor:** disallow unnecessary constructors.\n\n```javascript\n// good\nclass A {\n  constructor () {\n    doSomething();\n  }\n}\n```\n```javascript\n// bad\nclass A {\n  constructor () {\n  }\n}\n```\n\n7.14 **no-useless-rename:** disallow renaming import, export, and destructured assignments to the same name.\n\n```javascript\n// good\nimport { foo } from \"bar\";\n```\n```javascript\n// bad\nimport { foo as foo } from \"bar\";\n```\n\n7.15 **no-var:** require `let` or `const` instead of `var`.\n\n```javascript\n// good\nlet foo;\nconst bar;\n```\n```javascript\n// bad\nvar qux;\n```\n\n7.16 **object-shorthand:** require or disallow method and property shorthand syntax for object literals.\n\n```javascript\n// good\nvar foo = {\n  \"bar-baz\": function() {},\n  \"qux\": qux\n};\n```\n```javascript\n// bad\nvar foo = {\n  \"bar-baz\"() {}\n};\n```\n\n7.17 **prefer-arrow-callback:** require arrow functions as callbacks.\n\n```javascript\n// good\napp.get((req, res, next) => {\n  res.send(this.response);\n});\n```\n```javascript\n// bad\napp.get(function (req, res, next) {\n  res.send(this.response); // this is not what you might expect here\n});\n```\n\n7.18 **prefer-const:** require `const` declarations for variables that are never reassigned after declared.\n\n```javascript\n// good\nconst pi = 3.14;\n```\n```javascript\n// bad\nlet pi = 3.14\n```\n\n<!-- 7.230 **prefer-destructuring:** require destructuring from arrays and/or objects. -->\n\n7.19 **prefer-numeric-literals:** disallow `parseInt()` in favor of binary, octal, and hexadecimal literals.\n\n```javascript\n// bad\nparseInt(\"111110111\", 2) === 503;\n```\n\n7.20 **prefer-rest-params:** require rest parameters instead of `arguments`.\n\n```javascript\n// good\nfunction foo(...args) {\n  console.log(args);\n}\n```\n```javascript\n// bad\nfunction foo() {\n  console.log(arguments);\n}\n```\n\n7.21 **prefer-spread:** require spread operators instead of `.apply()`.\n\n```javascript\n// good\nfoo(...args);\n```\n```javascript\n// bad\nfoo.apply(undefined, args);\n```\n\n7.22 **prefer-template:** require template literals instead of string concatenation.\n```javascript\n// good\nvar str = `Hello ${name}!`;\n```\n```javascript\n// bad\nvar str = 'Hello, ' + name + '!';\n```\n\n7.23 **require-yield:** require generator functions to contain `yield`.\n\n```javascript\n// good\nfunction* foo() {\n  yield 5;\n  return 10;\n}\n\n```\n```javascript\n// bad\nfunction* foo() {\n  return 10;\n}\n```\n\n7.24 **rest-spread-spacing:** enforce spacing between rest and spread operators and their expressions.\n```javascript\n// good\nfn(...args)\n```\n```javascript\n// bad\nfn(... args)\n```\n\n<!-- 7.237 **sort-imports:** enforce sorted import declarations within modules. -->\n\n<!-- 7.238 **symbol-description:** require symbol descriptions. -->\n\n7.25 **template-curly-spacing:**  disallow spacing around embedded expressions of template strings.\n\n```javascript\n// good\n`hello, ${people.name}!`;\n```\n```javascript\n// bad\n`hello, ${ people.name}!`;\n```\n\n7.26 **yield-star-spacing:** require spacing after the `*` in `yield*` expressions.\n\n```javascript\n// good\nfunction* generator() {\n  yield* other();\n}\n```\n","_npmUser":{"name":"developers5minds","email":"developers+npm@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"_npmVersion":"6.4.1","description":"Provide the eslint configs","directories":{},"_nodeVersion":"10.14.1","dependencies":{"eslint":"^5.15.3","eslint-config-airbnb":"17.1.0","eslint-plugin-import":"^2.16.0","eslint-plugin-no-null":"^1.0.2","confusing-browser-globals":"^1.0.6"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"eslint":"^5.15.3","eslint-plugin-import":"^2.16.0","eslint-plugin-no-null":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds_1.0.0-alpha.1_1553982459984_0.11725943547675088","host":"s3://npm-registry-packages"}},"1.0.0-alpha.2":{"name":"eslint-config-5minds","version":"1.0.0-alpha.2","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@1.0.0-alpha.2","maintainers":[{"name":"developers5minds","email":"developers@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"sebastian.meier","email":"sebastian.meier@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"dist":{"shasum":"9c6881f55c2d5ff20786da51873f6ead464b982e","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-1.0.0-alpha.2.tgz","fileCount":5,"integrity":"sha512-i7t3Ubya62icYjUVMtBhHV1BAKtOSSBw/WGaejpaAjxyqL9v418K7WO0sOCR5RxYXYxEGc8OYjer31n3Hj7UAg==","signatures":[{"sig":"MEUCIHtae9PoHmdsMuLjrwjPQSLXKXcc8k6jvg7vnUhTWx+FAiEAlORu4BMZHsv7O9D7FlRfcwX1+yt+tQseF74hPFcgxPk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcp7ZWCRA9TVsSAnZWagAA2dQP/igW9xTpNAQE7E7O0Qxw\nD/f35jvzj923QAlbzwKc1Y/uZOIa5/JqHP1BBcqtmzWNtfWE5C0SdFd8FKOA\nSWfH8s3tHsMikuoozTwQEvFyBiXXqSpSdXwkuUlrqEJNcESuwmsyVDrx+D/S\nzjmUWMdjxzInvPgHDaE3EOJFLElgL66J8KI9L+B6e5PLYkvFvdRK68q7vnZa\nTsBUijXibhXKig8AsEliN8ZJ24KQN3aN0meBV817nsd0A736IUQEFcp+gZzi\nEftJrIzqqWWeNl3jG2yyBHl8k7q01abKRDRkXAdU5ayW1brWRdvBFbBN/uGE\nFAFuG4t0gYrIEqs4GJnjgCzZPrv7hESfVPBwuno9dQUyjkLftYL9AZNWvEqB\nsf/oXA8hNhiDFRHTwpn/9umrQH8FVaIImlrJ4b511kPnHWGTm0SQEYxFY+bA\nZ0DKCgqb0RuwxG/gYjY7a7CW3Sx/iFvDuSrsMHddOQnLfM5peI+qGWLeyqk9\nLolpkaQQ3NVxJKQPjkHzp8DbRtRdaMzYKD2hkzRy7qlxjsbpIgw0nmv8UmQM\n7dqZtNB0me+hMhXhaG78q19QoLAxERxZORS/W9lOWaWSSc3kfAsUlydD3ZME\n5b3OVWpbWH4vJLV8sR/rMVyRcFzhEE20HXR2pe9rJovICYsijeNC7oRyYYIP\nFnxr\r\n=yey5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"developers5minds","email":"developers+npm@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"_npmVersion":"6.7.0","description":"Provide the eslint configs","directories":{},"_nodeVersion":"11.12.0","dependencies":{"eslint":"^5.15.3","eslint-config-airbnb":"17.1.0","eslint-plugin-import":"^2.16.0","eslint-plugin-no-null":"^1.0.2","confusing-browser-globals":"^1.0.6"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":"^5.15.3","eslint-plugin-import":"^2.16.0","eslint-plugin-no-null":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds_1.0.0-alpha.2_1554495061392_0.6473427095740274","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"eslint-config-5minds","version":"1.0.0","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@1.0.0","maintainers":[{"name":"developers5minds","email":"developers@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"sebastian.meier","email":"sebastian.meier@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"dist":{"shasum":"ced7a4df461e647d193cc29c12918d7e16513a22","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-1.0.0.tgz","fileCount":5,"integrity":"sha512-o6y2HeLFot6zkmj5QSAANuOvP8BFz0p3hnkVHhAlfnRRQA0pS4C+TIzZNbePqzj0q5zBCEDHB04KEAUQMar49Q==","signatures":[{"sig":"MEUCIQCSq8EmCl6Ojkd6jaokSRxwpC8r167W3o5SqttJWh3lqgIgK7vA4yRflyYx5vRXKN1HnlE5fMX9W1Fst35IzPLmnbc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43328,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcydCUCRA9TVsSAnZWagAAZPkP/01vzVYo+ScZjsiEtOJi\nAF7wJZh/6vmipwkFhE2k4b5KkqHHC6s/0CN9lsvIZfm9WgGC6icoGcSARemt\n6ibZ+ILTL+IKUnCu0ju25i9TBD7AE0QODNf2hZvD+fJgZbXo0YAsP1JiurTi\nRoTsl9ylT6JwRI0ricjUUbqjQcoZCM+dfY8fGAFn5OkeVq6lnLjyJx4Vx/py\n1ckM2MAvc+uRlKFFDoPIbVQm67j9sU6zd73ysnl/nPMzbid4YNyFOhu6du/q\nXGLarVVRDDf6u8jxJ+BinzFOehn3oWXeRyD4fkangJtuuOl/WbY5Ujmzzdzt\nWGXJurqGZbj//60wg0jYAUvbWUEiiA/WTlshhwqtaHkJambvjOm/gfl/85dj\nUqxidYdK87kRPaX/tpAo5HYywn20p1ajltrsdAFRdXzmxKKHQBEFA++aYIHR\nPa7KNPtrb51iUCbA7FmQ7p10SJKLH90zJ/+Q8Dm+sYzfXXnzlOUYpM33JOTz\nYFHF51XiVr03FgKXzDSfMXTF+hlHHZWnzTc0o0FYzqE9X+njAFbBCgp1aeen\nEq5cU7WM8LU7ktLYlfnGFpWXQrOlfv1hVPb3hAYIvXgUMfSJkOmB5BvcbUw0\nEo7rPEEbqjLrJUmnTwagDe4idDIypTBpAiSVJUkGuBDUzoiwzfRHbz3tAbMS\nul9r\r\n=QMPP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"developers5minds","email":"developers+npm@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"_npmVersion":"6.9.0","description":"Provide the eslint configs","directories":{},"_nodeVersion":"12.0.0","dependencies":{"eslint":"^5.15.3","eslint-config-airbnb":"17.1.0","eslint-plugin-import":"^2.16.0","eslint-plugin-no-null":"^1.0.2","confusing-browser-globals":"^1.0.6"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":"^5.15.3","eslint-plugin-import":"^2.16.0","eslint-plugin-no-null":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds_1.0.0_1556730003479_0.37675472788690234","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"eslint-config-5minds","version":"1.0.1","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@1.0.1","maintainers":[{"name":"developers5minds","email":"developers@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"sebastian.meier","email":"sebastian.meier@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"dist":{"shasum":"6c32c39169b8f7c4979cb66af660c0e1bee29eba","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-1.0.1.tgz","fileCount":5,"integrity":"sha512-o5mfEOtAALwhHaQqjd6WayHfh2T8axNKgiYyht6lIuT9aQYQrXIFYmSHh1W5EavWWw9B0DHUL8b5IKRzM3dWaQ==","signatures":[{"sig":"MEUCIQC0ekXHymdrLBgJsNNHnqN4Uv4XSmvBYZOskoPTFUTh/AIgbyfXSIBnjSoGav1bU4+4ym0QyzCxTeQysVrjp5eo1fg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyhFlCRA9TVsSAnZWagAABa8P/jmF1WdTVFNFAv9dJzKy\nsRsl6/jVZWRJnIO3rG+AAaCfb9Fga0rqF96xvyTYrs8dQfDJqEc0RDt2KTdm\nLECUJOCUOGLgAV3V0EX7M0nZP2uEf6ZdhF+2SMGY3aRzBy940TXRHw4g/YcL\ncF3F/e1ddHec1Iu53K0yO2mwAFs1Kwmc3ByqX/OKJgCe4C4ejL118CxkjhNe\n6r9pjDXqZdHO3Gb3sYYgoYm/sbffqfKv7Mfr3fGp7R98W0jWDIvAq9ILjuwL\np2OdWveTgpEu3RUGKOwQjElZ5zqrfW7DZVaQ3KskdIYQ1WoPhSvMzLRNclgv\nUz/pYLmoNaOcClQ2lw+fczV3NQF81IkC0rDht06gvIfi6WvRzhLwjvb/jlqH\nXMJe9Lzkudl856wiSFUbu38XV/vMa9Ts8tZ74d+xRcxDFxoYnxPCMXh1a6K6\nFbcwEbStzi/15e8j5cnn5tLfAtnpqaPxTvEXMhb+1GDdlLNzrt1suoDOoa48\nflEE+8UGruMYA2RNdrMFMCrPNvkeW6hyaY9Ig9pj/igfA61P0sWOBqf5pdFO\n+RQM1E9F2drWCzd1W8w2gkEzGttPa7Qxlg1bfqRZ63QFhxN5vQeUt1InyuFx\n4LLS/lZZcBaY1L/C6DNWlyuzGqS/Qdkg4o94/GB7KWCQHnQaNPGoHAaxZM/E\n9TUR\r\n=Vznu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"developers5minds","email":"developers+npm@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"_npmVersion":"6.9.0","description":"Provide the eslint configs","directories":{},"_nodeVersion":"12.0.0","dependencies":{"eslint":"^5.15.3","eslint-config-airbnb":"17.1.0","eslint-plugin-import":"^2.16.0","eslint-plugin-no-null":"^1.0.2","confusing-browser-globals":"^1.0.6"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":"^5.16.0","eslint-plugin-import":"^2.16.0","eslint-plugin-no-null":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds_1.0.1_1556746596554_0.49323966268187713","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"eslint-config-5minds","version":"1.0.2","keywords":["eslint","editorconfig"],"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","_id":"eslint-config-5minds@1.0.2","maintainers":[{"name":"developers5minds","email":"developers@5minds.de"},{"name":"moellenbeck","email":"martin.moellenbeck@5minds.de"},{"name":"sebastian.meier","email":"sebastian.meier@5minds.de"}],"homepage":"https://github.com/5minds/eslint-config-5minds","bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"dist":{"shasum":"08059ad385d2bbf4b83096162422928b3baab589","tarball":"https://registry.npmjs.org/eslint-config-5minds/-/eslint-config-5minds-1.0.2.tgz","fileCount":5,"integrity":"sha512-7TyvcwQ5OZ0/itAuuauTPN8eqsg/WkPJo48XGefnAjU5dkvsGTbT5Z9kJh1AC8UZXouom8MFuzzMJ9a3u4G6UQ==","signatures":[{"sig":"MEYCIQCmDtVfRI/Q/JiYt5hoqCHwfWaHeEj6ioVrvJLkeS53RwIhAKTlQSdOwo0NwJcX/mCbzkq5QqNBX9aZEUELJ3Sb/lSC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":43448,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcysx2CRA9TVsSAnZWagAAF4wP/0A5b9h2nqorj+elazqu\nyov4oWSO1j0ZWqbrGTTAXtRvSpdTd127uC5ACqwz19AGdaYeqjJx9vSykDJ2\n+l7mGSS3ezErpwy0+BfWcwpB+plIL2iUq9bWoqpuUWp1NKLpyglDd8PDRgBK\n27jxkrC5q1ErCSNA6pZ9iyOOiUrzYMAN1GbR7iZYgTYerclvVOT496OVjk64\nSWUZcsJO8viyFpF4S+foe1J+t9XzyYPwc6vrfXL4l7Avxq7itMob+kk2e15W\naR4NwoVexYOzIOVnzivpavWsmanZRbSSp1aAVcrxdaYluVw56h/yV8SeO/hg\nLINvU2NcBeNfuwyl349RmO2DunQ2N8amquAhcChmtHoWLqJG46o7L8muhYnn\n+L/fSvuGpbsJTLXtnPBDkeNHYXTkaHgguJbgQtUQJUhSTQea+AIJihDLue5u\ng9CB0RKaix0sLRKGAyvDWS/LYBYTJ4EEu3ZCBm0K5VvSV5BOs6J+DP5oFcXt\nyNovqNngJnZ9IQqwd+qHJaK8im6eyhTaOo9FdIuOERdKXSEBMj8RXXzXJ4Ci\n6iMixDuNyKmhkTBKaDq6EBDE6s4ubWgC5bKJ7F2cGH0JdqqpWrRkAWUz4IPg\nUx0txtcgHEDK2T204jjuZp/jk10lr99N2uG8JgCwX8LvWnAIRkfcVT9pspGm\nJMaa\r\n=j5vU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_npmUser":{"name":"developers5minds","email":"developers+npm@5minds.de"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.","maintainer":"Martin Möllenbeck <martin.moellenbeck@5minds.de>","repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"_npmVersion":"6.9.0","description":"Provide the eslint configs","directories":{},"_nodeVersion":"12.0.0","dependencies":{"eslint":"^5.15.3","eslint-plugin-import":"^2.16.0","eslint-plugin-no-null":"^1.0.2","confusing-browser-globals":"^1.0.6","eslint-config-airbnb-base":"13.1.0"},"publishConfig":{"registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":"^5.16.0","eslint-plugin-import":"^2.16.0","eslint-plugin-no-null":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/eslint-config-5minds_1.0.2_1556794485652_0.9980310681641833","host":"s3://npm-registry-packages"}}},"time":{"created":"2016-08-26T14:20:28.595Z","modified":"2026-05-20T12:08:13.418Z","0.0.2":"2016-08-26T14:20:28.595Z","0.0.3":"2016-08-26T15:07:59.504Z","0.0.4":"2016-09-03T11:52:25.107Z","0.0.5":"2016-10-13T13:32:23.518Z","0.0.6":"2016-11-12T09:11:06.300Z","0.0.7":"2016-11-12T09:13:08.357Z","0.1.0":"2016-11-25T08:35:47.771Z","0.2.0-pre1":"2018-04-27T10:04:21.267Z","0.2.0":"2018-04-27T10:23:28.646Z","0.2.1":"2018-04-27T10:51:11.593Z","1.0.0-alpha.1":"2019-03-30T21:47:40.222Z","1.0.0-alpha.2":"2019-04-05T20:11:01.617Z","1.0.0":"2019-05-01T17:00:04.100Z","1.0.1":"2019-05-01T21:36:36.719Z","1.0.2":"2019-05-02T10:54:45.838Z"},"bugs":{"url":"https://github.com/5minds/eslint-config-5minds/issues"},"author":{"name":"5Minds IT-Solutions GmbH & Co. KG","email":"info@5minds.de"},"license":"SEE LICENSE IN LICENSE.md","homepage":"https://github.com/5minds/eslint-config-5minds","keywords":["eslint","editorconfig"],"repository":{"url":"git+https://github.com/5minds/eslint-config-5minds.git","type":"git"},"description":"Provide the eslint configs","maintainers":[{"email":"mm@processcube.io","name":"moellenbeck"}],"readme":"# ESLint config for 5Minds projects\n\n- install with npm install --save-dev eslint-config-5minds\n- create a .eslintrc config with\n\n```json\n{\n    \"extends\": \"5minds\"\n}\n```\n\nHave fun ;-)\n\n# Possible errors\n\n<!-- 1.0 **no-await-in-loop:** disallow `await` inside of loops. -->\n\n<!-- 1.1 **no-compare-neg-zero:** disallow comparing against -0. -->\n\n1.1 **no-cond-assign:** disallow assignment operators in conditional expressions.\n```javascript\n// good\nif (x === 0) {\n\n}\n```\n\n```javascript\n// bad\nif (x = 0) {\n\n}\n```\n\n1.2 **no-console:** disallow the use of `console`.\n\n```javascript\n// bad\nconsole.log('Hello world');\n```\n\n1.3 **no-constant-condition:** disallow constant expressions in conditions.\n\n```javascript\n// bad\nif (false) {\n\n}\n```\n\n1.4 **no-control-regex:** disallow control characters in regular expressions.\n\n```javascript\n// bad\nconst pattern = /\\x1f/;\n```\n\n1.5 **no-debugger:** disallow the use of `debugger`.\n\n```javascript\n// bad\ndebugger;\n```\n\n1.6 **no-dupe-args:** disallow duplicate arguments in `function` definitions.\n\n```javascript\n// bad\nfunction foo(a, b, a) {\n  console.log('value of the second a:', a);\n}\n```\n\n1.7 **no-dupe-keys:** disallow duplicate keys in object literals.\n\n```javascript\n// bad\nconst foo {\n  bar: 1,\n  qux: 2,\n  bar: 3,\n}\n```\n\n1.8 **no-duplicate-case:** disallow duplicate case labels.\n\n```javascript\n// bad\nswitch (weekday) {\n  case 'monday':\n   \tbreak;\n  case 'tuesday':\n    break;\n  case 'monday':\n    break;\n  default:\n    break;\n}\n```\n\n1.9 **no-empty:** disallow empty block statements.\n\n```javascript\n// bad\nfunction doNothing() {\n\n}\n```\n\n1.10 **no-empty-character-class:** disallow empty character classes in regular expressions.\n\n```javascript\n// bad\n'abcdefg'.match(/^abc[]/); // null\n```\n\n\n1.11 **no-ex-assign:** disallow reassigning exceptions in `catch` clauses.\n\n```javascript\n// bad\ntry {\n  parseInt('adf', 10);\n} catch (error) {\n  error = new Error('You cannot parse letters.');\n  throw error;\n}\n```\n\n\n1.12 **no-extra-boolean-cast:** disallow unnecessary boolean casts.\n\n```javascript\n// bad\nfunction negateNumber(num) {\n  if (Boolean(num)) {\n    return -1 * num;\n  } else {\n    throw new Error('missing input');\n  }\n}\n\n```\n```javascript\n// good\nfunction negateNumber(num) {\n  if (num) {\n    return -1 * num;\n  } else {\n    throw new Error('missing input');\n  }\n}\n```\n\n<!-- 1.15 **no-extra-parens:** disallow unnecessary parentheses. -->\n\n1.13 **no-extra-semi:** disallow unnecessary semicolons.\n\n```javascript\n// bad\n;\n```\n\n1.14 **no-func-assign:** disallow reassigning `function` declarations.\n\n```javascript\n// bad\nfunction foo() {\n\n}\nfoo = 'bar';\n```\n\n1.15 **no-inner-declarations:** disallow variable or `function` declarations in nested blocks.\n\n```javascript\nconst Foo = (function() {\n  // good -> This is a function within a function\n  function Foo() {\n\n  }\n  // good -> This is an instance method(same as declared with ES6-Class)\n  Foo.prototype.compare = function compare(otherFoo) {\n    return this === otherFoo;\n  };\n  return Foo;\n}());\n\n// good -> this is a global function\nfunction createFoo() {\n  return new Foo();\n}\n```\n\n```javascript\n// bad -> function in nested block\nif (foo) {\n  function bar() {\n\n  }\n}\n```\n\n1.16 **no-invalid-regexp:** disallow invalid regular expression strings in `RegExp` constructors.\n\n```javascript\n// good\n'bar'.matches(/[a-z]*/);\n```\n\n```javascript\n// bad\n'foo'.matches(/]a-z[*/);\n```\n\n1.17 **no-irregular-whitespace:** disallow irregular whitespace outside of strings and comments.\nVarious whitespace characters can be inputted by programmers by mistake for example from copying or keyboard shortcuts. Pressing Alt + Space on OS X adds in a non breaking space character for example.\n\n1.18 **no-obj-calls:** disallow calling global object properties as functions.\n\n```javascript\n// bad\nMath();\n```\n\n1.19 **no-prototype-builtins:** disallow calling some `Object.prototype` methods directly on objects.\n\n```javascript\n// good\nfoo.hasOwnProperty('bar');\n```\n\n```javascript\n// bad\nObject.prototype.hasOwnProperty.call(foo, 'bar');\n\n```\n\n1.20 **no-regex-spaces:** disallow multiple spaces in regular expressions.\n\n```javascript\n// good\n'  '.match(/ {2}/);\n\n// better\n'  '.match(/\\s{2}/);\n```\n```javascript\n// bad\n'  '.match(/  /);\n```\n\n1.21 **no-sparse-arrays:** disallow sparse arrays.\n\n```javascript\n// good\nconst colors = [ \"red\", \"blue\", ];\ncolors.length === 2; // true\n\n```\n```javascript\n// bad\nconst colors = [ \"red\", ,\"blue\"];\n```\n\n<!--1.25 **no-template-curly-in-string:** disallow template literal placeholder syntax in regular strings. -->\n\n1.22 **no-unexpected-multiline:** disallow confusing multiline expressions.\n\n```javascript\n// good\nconst hello = 'world';\n[1, 2, 3].forEach(addNumber);\n\n```\n```javascript\n// bad\nconst hello = 'world'\n[1, 2, 3].forEach(addNumber);\n```\n\n1.23 **no-unreachable:** disallow unreachable code after `return`, `throw`, `continue`, and `break` statements.\n\n```javascript\n// good\nfunction foo() {\n  console.log(\"done\");\nreturn true;\n}\n```\n```javascript\n// bad\nfunction foo() {\n  return true;\n  console.log(\"done\");\n}\n```\n\n1.24 **no-unsafe-finally:** disallow control flow statements in `finally` blocks.\n\n```javascript\n// bad -> We expect this function to throw an error, then return\n(() => {\n  try {\n    throw new Error(\"Try\"); // error is thrown but suspended until finally block ends\n  } finally {\n    return 3; // 3 is returned before the error is thrown, which we did not expect\n  }\n})();\n```\n\n1.25 **no-unsafe-negation:** disallow negating the left operand of relational operators.\n\n```javascript\n// good\nif (!(key in object)) {\n  // key is not in object\n}\n```\n```javascript\n// bad\nif (!key in object) {\n  // equivalent to (!key) in object\n}\n```\n\n1.26 **use-isnan:** require calls to `isNaN()` when checking for `NaN`.\n\n```javascript\n// good\nif (isNaN(foo)) {\n\n}\n```\n```javascript\n// bad\nif (foo == NaN) {\n\n}\n ```\n\n<!--1.31 **valid-jsdoc:** enforce valid JSDoc comments. -->\n\n1.27 **valid-typeof:** enforce comparing `typeof` expressions against valid strings.\n\n```javascript\n// good\nif (typeof foo === 'string') {\n\n}\n```\n```javascript\n// bad\nif (typeof foo === 'strnng') {\n\n}\n```\n\n# Best practices\n\n<!-- 2.1 **accessor-pairs:** enforce getter and setter pairs in objects. -->\n\n\n2.1 **array-callback-return:** enforce `return` statements in callbacks of array methods.\n\n```javascript\n// good\nlist.forEach((element) => {\n  process(element);\n});\n\n// good\nlist.map((element) => {\n  return process(element);\n});\n```\n\n```javascript\n// bad\nlist.map((element) => {\n  process(element);\n});\n```\n\n2.2 **block-scoped-var:** enforce the use of variables within the scope they are defined.\n\n```javascript\n// good\nfunction doIf() {\n  var build;\n\n  if (true) {\n    build = true;\n  }\n\nconsole.log(build);\n}\n```\n```javascript\n// bad\nfunction doIf() {\n  if (true) {\n    var build = true;\n  }\n\n  console.log(build);\n}\n ```\n\n<!-- 2.4 **class-methods-use-this:** enforce that class methods utilize `this`. -->\n\n\n<!-- 2.5 **complexity:** enforce a maximum cyclomatic complexity allowed in a program. -->\n\n2.3 **consistent-return:** require `return` statements to either always or never specify values.\n\n```javascript\n// good\nfunction doSomething(condition) {\n  if (condition) {\n    return true;\n  } else {\n    return false;\n  }\n}\n```\n```javascript\n// bad\nfunction doSomething(condition) {\n  if (condition) {\n    return true;\n  } else {\n    return;\n  }\n}\n```\n\n2.4 **curly:** enforce consistent brace style for all control statements.\n\n```javascript\n// good\nif (foo) {\n  bar();\n}\n```\n```javascript\n// bad\nif (foo)\n  bar();\nelse\n  baz();\n```\n\n2.5 **default-case:** require `default` cases in `switch` statements.\n\n```javascript\n// good\nswitch (weekday) {\n  case 'Monday':\n    break;\n\n  default:\n    break;\n}\n```\n```javascript\n// bad\nswitch (weekday) {\n  case 'Monday':\n    break;\n}\n```\n\n2.6 **dot-location:** enforce consistent newlines before property dots.\n\n```javascript\n// good\ndocument\n.documentElement\n```\n```javascript\n// bad\ndocument.\ndocumentElement\n```\n\n2.7 **dot-notation:** enforce dot notation whenever possible.\n\n```javascript\n// good\nobject.foo = true;\nobject[foo] = true;\nobject['foo bar'] = true;\n```\n```javascript\n// bad\nobject['foo'] = true;\n```\n\n2.8 **eqeqeq:** require the use of `===` and `!==` except for null-checks.\n\n```javascript\n// good\nif (foo == null) {\n\n}\nif (bar === 0) {\n\n}\n```\n```javascript\n// bad\nif (foo == 0) {\n\n}\n```\n\n\n2.9 **guard-for-in:** require `for-in` loops to include an `if` statement.\n\n```javascript\n// good\nfor (key in foo) {\n  if (Object.prototype.hasOwnProperty.call(foo, key)) {\n    doSomething(key);\n  }\n}\n\n// better\nObject.keys(foo).forEach((key) => {\n  doSomething(key);\n});\n```\n```javascript\n// bad\nfor (key in foo) {\n  doSomething(key);\n}\n```\n\n2.10 **no-alert:** disallow the use of `alert`, `confirm`, and `prompt`.\n\n```javascript\n// bad\nalert('Hello world');\n```\n\n2.11 **no-caller:** disallow the use of `arguments.caller` or `arguments.callee`.\n\n```javascript\n// good\nfunction factorial (n) {\n  return !(n > 1) ? 1 : factorial(n - 1) * n;\n}\n\n[1, 2, 3, 4, 5].map(factorial);\n```\n```javascript\n// bad\n[1, 2, 3, 4, 5].map(function(n) {\n  return !(n > 1) ? 1 : arguments.callee(n - 1) * n;\n});\n```\n\n2.12 **no-case-declarations:** disallow lexical declarations in case clauses.\n\n```javascript\n// good\nswitch (foo) {\n  case 1: {\n    let x = 1;\n    break;\n  }\n  default: {\n    class C {}\n  }\n}\n```\n```javascript\n// bad\nswitch (foo) {\n  case 1:\n    let x = 1;\n    break;\n  default:\n    class C {}\n}\n```\n\n<!-- 2.16 **no-div-regex:** disallow division operators explicitly at the beginning of regular expressions. -->\n\n2.13 **no-else-return:** disallow `else` blocks after `return` statements in `if` statements.\n\n```javascript\n// good\nfunction foo() {\n  if (x) {\n    return y;\n  }\n  var t = \"foo\";\n}\n```\n```javascript\n// bad\nfunction foo() {\n  if (x) {\n    return y;\n  } else {\n    var t = \"foo\";\n  }\n}\n```\n\n2.14 **no-empty-function:** disallow empty functions.\n\n```javascript\n// bad\nfunction emptyFunc() {\n\n}\n```\n\n2.15 **no-empty-pattern:** disallow empty destructuring patterns.\n\n```javascript\n// good -> sets default value\nvar {a= {}} = foo;\n```\n```javascript\n// bad -> does not create a var\nvar {a: {}} = foo;\n```\n\n<!-- 2.20 **no-eq-null:** disallow `null` comparisons without type-checking operators. -->\n\n2.16 **no-eval:** disallow the use of `eval()`.\n```javascript\n// good\nclass Foo {\n\n}\n```\n```javascript\n// bad\neval('class Foo {}');\n```\n\n2.17 **no-extend-native:** disallow extending native types.\n\n```javascript\n// bad\nObject.prototype.foo = 'bar';\n```\n\n2.18 **no-extra-bind:** disallow unnecessary calls to `.bind()`.\n\n```javascript\n// good\nvar boundGetName = (function getName() {\n  return this.name;\n}).bind({ name: \"ESLint\" });\n\nconsole.log(boundGetName());\n```\n```javascript\n// bad  -> useless\nvar boundGetName = (function getName() {\n  return \"ESLint\";\n}).bind({ name: \"ESLint\" });\n\nconsole.log(boundGetName());\n```\n\n2.19 **no-extra-label:** disallow unnecessary labels.\n\n```javascript\n// bad\nA: while (a) {\n  break A;\n}\n```\n\n2.20 **no-fallthrough:** disallow fallthrough of `case` statements.\n\n```javascript\n// good\nswitch(foo) {\n  case 1:\n    doSomething();\n    break;\n\n  case 2:\n    doSomething();\n}\n```\n```javascript\n// bad\nswitch(foo) {\n  case 1:\n    doSomething();\n\n  case 2:\n    doSomething();\n}\n```\n\n2.21 **no-floating-decimal:** disallow leading or trailing decimal points in numeric literals.\n\n  ```javascript\n// good\nvar num = 0.5;\nvar num = 2.0;\nvar num = -0.7;\n```\n```javascript\n// bad\nvar num = .5;\nvar num = 2.;\nvar num = -.7;\n```\n\n2.22 **no-global-assign:** disallow assignments to native objects or read-only global variables.\n\n```javascript\n// bad\nundefined = null;\n```\n\n<!-- 2.28 **no-implicit-coercion:** disallow shorthand type conversions. -->\n\n\n<!-- 2.29 **no-implicit-globals:** disallow variable and `function` declarations in the global scope. -->\n\n2.23 **no-implied-eval:** disallow the use of `eval()`-like methods.\n\n```javascript\n// good\nsetTimeout(\"alert('This is like eval.');\", 100);\n```\n```javascript\n// bad\nsetTimeout(() => {\n  alert('This is not like eval.');\n}, 100);\n```\n<!-- 2.31 **no-invalid-this:** disallow `this` keywords outside of classes or class-like objects. -->\n\n2.24 **no-iterator:** disallow the use of the `__iterator__` property.\n\n```javascript\n// bad\nFoo.prototype.__iterator__ = function() {\n  return new FooIterator(this);\n};\n```\n\n2.25 **no-labels:** disallow labeled statements.\n\n```javascript\n// bad\nA: while (a) {\n  break A;\n}\n```\n\n2.26 **no-lone-blocks:** disallow unnecessary nested blocks.\n\n```javascript\n// good\nfunction bar() {\n  baz();\n}\n```\n```javascript\n// bad\nfunction bar() {\n  {\n    baz();\n  }\n}\n```\n\n2.27 **no-loop-func:** disallow `function` declarations and expressions inside loop statements.\n```javascript\n// good\ndo {\n  function a() { return i; };\n  a();\n} while (i);\n```\n\n<!-- 2.36 **no-magic-numbers:** disallow magic numbers. -->\n\n2.28 **no-multi-spaces:** disallow multiple spaces.\n\n2.29 **no-multi-str:** disallow multiline strings.\n\n```javascript\n// good\nconst blindText = `Lorem ipsum\net dolor`;\n```\n```javascript\n// good\nconst blindText = 'Lorem ipsum et dolor';\n```\n```javascript\n// bad\nconst blindText = 'Lorem ipsum \\\net dolor';\n```\n\n2.30 **no-new:** disallow `new` operators outside of assignments or comparisons.\n\n```javascript\n// good\nvar thing = new Thing();\n\nThing();\n```\n```javascript\n// bad\nnew Thing();\n```\n\n2.31 **no-new-func:** disallow `new` operators with the `Function` object.\n\n```javascript\n// bad\nvar x = new Function(\"a\", \"b\", \"return a + b\");\n```\n\n2.32 **no-new-wrappers:** disallow `new` operators with the `String`, `Number`, and `Boolean` objects.\n\n```javascript\n// good\nconst stringObject = 'Hello world';\n```\n```javascript\n// bad\nconst stringObject = new String('Hello world');\n```\n\n2.33 **no-octal:** disallow octal literals.\n\n```javascript\n// bad\nconst num = 071;\n\n```\n\n2.34 **no-octal-escape:** disallow octal escape sequences in string literals.\n\n```javascript\n// good\nconst foo = \"Copyright \\u00A9\";   // unicode\n```\n```javascript\n// bad\nconst foo = \"Copyright \\251\"; // octal\n\n```\n\n2.35 **no-param-reassign:** disallow reassigning `function` parameters.\n\n```javascript\n// bad\nfunction foo(bar) {\n  bar++;\n}\n```\n\n2.36 **no-proto:** disallow the use of the `__proto__` property.\n\n```javascript\n// good\nconst a = Object.getPrototypeOf(obj);\n```\n```javascript\n// bad\nconst a = obj.__proto__;\n```\n\n2.37 **no-redeclare:** disallow variable redeclaration.\n\n  ```javascript\n// good\nlet a = 3;\na = 10;\n```\n```javascript\n// bad\nlet a = 3;\nlet a = 10;\n```\n\n<!-- 2.47 **no-restricted-properties:** disallow certain properties on certain objects. -->\n\n\n2.38 **no-return-assign:** disallow assignment operators in `return` statements.\n\n```javascript\n// bad\nfunction doSomething() {\n  return foo = bar + 2;\n}\n\n```\n\n<!-- 2.49 **no-return-await:** disallow unnecessary `return await`. -->\n\n\n2.39 **no-script-url:** disallow `javascript:` urls.\n\n```javascript\n// bad\nlocation.href = \"javascript:void(0)\";\n```\n\n2.40 **no-self-assign:** disallow assignments where both sides are exactly the same.\n\n```javascript\n// good\nfoo = bar;\n```\n```javascript\n// bad\nfoo = foo;\n```\n\n2.41 **no-self-compare:** disallow comparisons where both sides are exactly the same.\n\n```javascript\n// bad\nif (x === x) {\n\n}\n```\n\n2.42 **no-sequences:** disallow comma operators.\n\n```javascript\n// good -> init and update of for is an exception\nfor (i = 0, j = 10; i < j; i++, j--);\n```\n```javascript\n// bad -> use && instead\nwhile (val = foo(), val < 42);\n```\n\n2.43 **no-throw-literal:** disallow throwing literals as exceptions.\n\n  ```javascript\n// good\nthrow new Error('error');\n```\n```javascript\n// bad\nthrow 'error';\n```\n\n<!-- 2.55 **no-unmodified-loop-condition:** disallow unmodified loop conditions. -->\n\n2.44 **no-unused-expressions:** disallow unused expressions.\n\n  ```javascript\n// good\na ? b() : c();\n```\n```javascript\n// bad\na ? b : 0;\n```\n\n2.45 **no-unused-labels:** disallow unused labels.\n\n```javascript\n// good\nA: {\n  if (foo()) {\n    break A;\n  }\n  bar();\n}\n```\n```javascript\n// bad\nA: var foo = 0;\n```\n\n\n2.46 **no-useless-call:** disallow unnecessary calls to `.call()` and `.apply()`.\n\n```javascript\n// good\nfoo.call(obj, 1, 2, 3);\n```\n```javascript\n// bad\nfoo.call(undefined, 1, 2, 3);\n```\n\n2.47 **no-useless-concat:** disallow unnecessary concatenation of literals or template literals.\n\n```javascript\n// good\nconst a = a + '1';\n```\n```javascript\n// bad\nconst a = `some` + `string`;\n```\n\n2.48 **no-useless-escape:** disallow unnecessary escape characters.\n\n```javascript\n// bad\nlet foo = \"hol\\a\"; // > foo = \"hola\"\n```\n\n\n2.49 **no-useless-return:** disallow redundant return statements.\n```javascript\n// good\nfunction foo() {\n  doSomething();\n}\n```\n```javascript\n// bad\nfunction foo() {\n  doSomething();\n  return;\n}\n```\n\n2.50 **no-void:** disallow `void` operators.\n\n```javascript\n// bad\nvar foo = void bar();\n```\n\n<!-- 2.63 **no-warning-comments:** disallow specified warning terms in comments. -->\n\n2.51 **no-with:** disallow `with` statements.\n\n```javascript\n// bad\nwith (point) {\n  r = Math.sqrt(x * x + y * y); // is r a member of point?\n}\n```\n\n<!-- 2.65 **prefer-promise-reject-errors:** require using Error objects as Promise rejection reasons. -->\n\n2.52 **radix:** enforce the consistent use of the radix argument when using `parseInt()`.\n\n```javascript\n// good\nparseInt('2000', 10);\n```\n```javascript\n// bad\nparseInt('2000');\n```\n\n<!-- 2.67 **require-await:** disallow async functions which have no `await` expression. -->\n\n2.53 **vars-on-top:** require `var` declarations to be placed at the top of their containing scope.\n\n```javascript\n// good\nfunction doSomething() {\n  var first;\n  var second;\n  if (true) {\n    first = true;\n  }\n}\n```\n```javascript\n// bad\nfunction doSomething() {\n  var first;\n  if (true) {\n    first = true;\n  }\n  var second;\n}\n```\n\n2.54 **wrap-iife:** require parentheses around immediate `function` invocations.\n\n```javascript\n// good\nvar x = (function () { return { y: 1 };}());\n```\n```javascript\n// bad\nvar x = function () { return { y: 1 };}();\nvar x = (function () { return { y: 1 };})();\n```\n\n2.55 **yoda:** disallow “Yoda” conditions.\n\n```javascript\n// good\nif (color === 'red') {\n  // ...\n}\n```\n```javascript\n// bad\nif ('red' === color) {\n  // ...\n}\n```\n\n# Strict\n\n<!-- 3.1 **strict:** require or disallow strict mode directives. -->\n\n# Variables\n\n<!-- 4.1 **init-declarations:** require or disallow initialization in variable declarations. -->\n\n\n<!-- 4.2 **no-catch-shadow:** disallow `catch` clause parameters from shadowing variables in the outer scope. -->\n\n\n4.1 **no-delete-var:** disallow deleting variables.\n\n```javascript\n// bad\nvar x;\ndelete x;\n```\n\n4.2 **no-label-var:** disallow labels that share a name with a variable.\n\n```javascript\n// bad\nvar x = foo;\nfunction bar() {\nx:\n  for (;;) {\n    break x;\n  }\n}\n```\n\n<!-- 4.5 **no-restricted-globals:** disallow specified global variables. -->\n\n\n\n4.3 **no-shadow:** disallow variable declarations from shadowing variables declared in the outer scope.\n\n```javascript\n// bad\nvar a = 3;\nfunction b() {\n  var a = 10;\n}\n```\n\n4.4 **no-shadow-restricted-names:** disallow identifiers from shadowing restricted names.\n\n```javascript\n// bad\nfunction NaN(){}\n```\n\n4.5 **no-undef:** disallow the use of undeclared variables unless mentioned in `/*global */` comments.\n\n```javascript\n// good\nconst b = 10;\n```\n```javascript\n// bad\nb = 10;\n```\n\n\n4.6 **no-undef-init:** disallow initializing variables to `undefined`.\n\n```javascript\n// good\nconst undef = undefined;\n```\n```javascript\n// bad\nlet undef = undefined;\n```\n\n<!--1.114 **no-undefined:** disallow the use of `undefined` as an identifier. -->\n\n4.7 **no-unused-vars:** disallow unused variables.\n\n```javascript\n// good\nvar y = 10;\nprocessSomehow(y);\n```\n```javascript\n// bad\nvar y = 10;\ny = 2;\n```\n\n\n4.8 **no-use-before-define:** disallow the use of variables before they are defined.\n\n```javascript\n// bad\nprocessSomehow(y);\nvar y = 10;\n```\n\n# Node.Js and CommonJS\n\n<!-- 4.117 **callback-return:** require `return` statements after callbacks. -->\n\n5.1 **global-require:** require `require()` calls to be placed at top-level module scope.\n\n```javascript\n// good\nvar fs = require(\"fs\");\n```\n```javascript\n// bad\nfunction foo() {\n  if (condition) {\n    var fs = require(\"fs\");\n  }\n}\n```\n\n<!-- 4.119 **handle-callback-err:** require error handling in callbacks. -->\n\n\n\n<!-- 4.120 **no-mixed-requires:** disallow `require` calls to be mixed with regular variable declarations. -->\n\n\n\n5.2 **no-new-require:** disallow `new` operators with calls to `require`.\n\n```javascript\n// good\nvar AppHeader = require('app-header');\nvar appHeader = new AppHeader();\n```\n```javascript\n// bad\nvar appHeader = new require('app-header');\n```\n\n5.3 **no-path-concat:** disallow string concatenation with `__dirname` and `__filename`.\n\n```javascript\n// good\nvar fullPath = path.join(__dirname, \"foo.js\");\n```\n```javascript\n// bad\nvar fullPath = __dirname + \"/foo.js\";\n```\n\n<!-- 4.123 **no-process-env:** disallow the use of `process.env`. -->\n\n<!-- 4.124 **no-process-exit:** disallow the use of `process.exit()`. -->\n\n<!-- 4.125 **no-restricted-modules:** disallow specified modules when loaded by `require`. -->\n\n<!-- 4.126 **no-sync:** disallow synchronous methods. -->\n\n# Stylistic Issues\n\n6.1 **array-bracket-spacing:** enforce no spacing inside array brackets.\n\n```javascript\n// good\nvar arr = ['foo', 'bar'];\nvar [x, y] = z;\n```\n```javascript\n// bad\nvar arr = [ 'foo', 'bar' ];\nvar [ x, y ] = z;\n```\n\n6.2 **block-spacing:** enforce consistent spacing inside single-line blocks.\n\n```javascript\n// good\nfunction foo() { return true; }\nif (foo) { bar = 0; }\n```\n```javascript\n// bad\nfunction foo() {return true;}\nif (foo) {bar = 0;}\n```\n\n6.3 **brace-style:** enforce consistent brace style for blocks(1TBS).\n\n```javascript\n// good\nif (foo) {\n  bar();\n} else {\n  baz();\n}\n```\n```javascript\n// bad\nif (foo) {\n  bar();\n}\nelse {\n  baz();\n}\n```\n\n\n6.4 **camelcase:** enforce camelcase naming convention.\n\n```javascript\n// good\nconst camelCase = 'good';\n```\n```javascript\n// bad\nconst snake_case = 'bad';\n```\n\n<!-- 6.131 **capitalized-comments:** enforce or disallow capitalization of the first letter of a comment. -->\n\n6.5 **comma-dangle:** require or disallow trailing commas.\n\n```javascript\n// good\nconst foo = {\n  bar: 'baz',\n  qux: 'quux',\n};\n```\n```javascript\n// bad\nconst foo = {\n  bar: 'baz',\n  qux: 'quux'\n};\n```\n\n\n6.6 **comma-spacing:** enforce consistent spacing before and after commas.\n\n```javascript\n// good\nconst arr = [1, 2];\n```\n```javascript\n// bad\nconst arr = [1 , 2];\n```\n\n\n6.7 **comma-style:** enforce consistent comma style.\n\n```javascript\n// good\nfunction bar() {\n  return {\n    'a': 1,\n    'b:': 2\n  };\n}\n```\n```javascript\n// bad\nfunction bar() {\n  return {\n    'a': 1\n    ,'b:': 2\n  };\n}\n```\n\n\n6.8 **computed-property-spacing:** enforce consistent spacing inside computed property brackets.\n\n```javascript\n// good\nobj[key]\n```\n```javascript\n// bad\nobj[ key]\n```\n\n<!-- 6.136 **consistent-this:** enforce consistent naming when capturing the current execution context. -->\n\n6.9 **eol-last:** require or disallow newline at the end of files.\n\n<!-- 6.138 **func-call-spacing:** require or disallow spacing between function identifiers and their invocations. -->\n\n6.10 **func-name-matching:** require function names to match the name of the variable or property to which they are assigned.\n\n```javascript\n// good\nvar foo = function bar() {};\n```\n```javascript\n// bad\nvar foo = function foo() {};\n```\n\n\n6.11 **func-names:** require or disallow named `function` expressions.\n\n```javascript\n// good\narr.filter(function isEven(a) {\n  return (a % 2) === 0;\n});\n```\n```javascript\n// bad\narr.filter(function(a) {\n  return (a % 2) === 0;\n});\n```\n\n<!-- 6.141 **func-style:** enforce the consistent use of either `function` declarations or expressions. -->\n\n<!-- 6.142 **id-blacklist:** disallow specified identifiers. -->\n\n<!-- 6.143 **id-length:** enforce minimum and maximum identifier lengths. -->\n\n<!-- 6.144 **id-match:** require identifiers to match a specified regular expression. -->\n\n6.12 **indent:** enforce consistent indentation(2 spaces).\n\n<!-- 6.146 **jsx-quotes:** enforce the consistent use of either double or single quotes in JSX attributes. -->\n\n6.13 **key-spacing:** enforce consistent spacing between keys and values in object literal properties.\n\n  ```javascript\n// good\nvar obj = { \"foo\": 42 };\n\n```\n```javascript\n// bad\nvar obj = { \"foo\" : 42 };\n```\n\n\n6.14 **keyword-spacing:** enforce consistent spacing before and after keywords.\n\n```javascript\n// good\nif (foo) {\n  //...\n} else if (bar) {\n  //...\n} else {\n  //...\n}\n```\n```javascript\n// bad\nif (foo) {\n  //...\n}else if (bar) {\n  //...\n} else{\n  //...\n}\n```\n\n\n<!-- 6.149 **line-comment-position:** enforce position of line comments. -->\n\n\n6.15 **linebreak-style:** enforce consistent linebreak style(unix -> LF instead of CRLF)\n\n\n\n<!-- 6.151 **lines-around-comment:** require empty lines around comments. -->\n\n\n\n<!-- 6.152 **lines-around-directive:** require or disallow newlines around directives. -->\n\n<!-- 6.153 **max-depth:** enforce a maximum depth that blocks can be nested. -->\n\n\n\n6.16 **max-len:** enforce a maximum line length of 100 characters.\n\n<!--  6.155 **max-lines:** enforce a maximum number of lines per file. -->\n\n<!-- 300 -->\n\n<!-- 6.156 **max-nested-callbacks:** enforce a maximum depth that callbacks can be nested. -->\n\n\n\n<!-- 6.157 **max-params:** enforce a maximum number of parameters in function definitions. -->\n\n\n\n<!-- 6.158 **max-statements:** enforce a maximum number of statements allowed in function blocks. -->\n\n\n\n<!-- 6.159 **max-statements-per-line:** enforce a maximum number of statements allowed per line. -->\n\n\n\n<!-- 6.160 **multiline-ternary:** enforce newlines between operands of ternary expressions. -->\n\n\n\n6.17 **new-cap:** require constructor names to begin with a capital letter.\n\n```javascript\n// good\nconst c = new Constructor();\n```\n```javascript\n// bad\nconst c = new constructor();\n```\n\n\n6.18 **new-parens:** require parentheses when invoking a constructor with no arguments.\n\n```javascript\n// good\nconst c = new Constructor();\n```\n```javascript\n// bad\nconst c = new Constructor;\n```\n\n<!-- 6.163 **newline-after-var:** require or disallow an empty line after variable declarations. -->\n\n<!-- 6.164 **newline-before-return:** require an empty line before `return` statements. -->\n\n6.19 **newline-per-chained-call:** require a newline after each call in a method chain.\n\n```javascript\n// good\ndoSomething()\n.then(()=> {\n  // ..\n});\n\n```\n```javascript\n// bad\ndoSomething().then(()=> {\n  // ..\n});\n```\n\n6.20 **no-array-constructor:** disallow `Array` constructors.\n\n```javascript\n// bad\nnew Array(0, 1, 2)\n```\n\n<!-- 6.167 **no-bitwise:** disallow bitwise operators. -->\n\n6.21 **no-continue:** disallow `continue` statements.\n```javascript\n// bad\ncontinue;\n```\n\n<!-- 6.169 **no-inline-comments:** disallow inline comments after code. -->\n\n6.22 **no-lonely-if:** disallow `if` statements as the only statement in `else` blocks.\n\n```javascript\n// good\nif (foo) {\n  // ...\n} else if (bar) {\n    // ...\n  }\n}\n```\n```javascript\n// bad\nif (foo) {\n  // ...\n} else {\n  if (bar) {\n    // ...\n  }\n}\n```\n\n\n6.23 **no-mixed-operators:** disallow mixed binary operators.\n\n```javascript\n// good\nlet i = 2 + (2 * 2);\n```\n```javascript\n// bad\nlet i = 2 + 2 * 2;\n```\n\n\n6.24 **no-mixed-spaces-and-tabs:** disallow mixed spaces and tabs for indentation.\n\n6.25 **no-multi-assign:** disallow use of chained assignment expressions.\n\n```javascript\n// bad\nvar a = b = c = 5;\n```\n\n6.26 **no-multiple-empty-lines:** disallow multiple empty lines.\n\n```javascript\n// good\ndoSomething();\n\ndoSomeOtherThing();\nyetAnotherThing();\n```\n```javascript\n// bad\ndoSomething();\n\n\ndoSomeOtherThing();\n```\n<!-- 6.175 **no-negated-condition:** disallow negated conditions. -->\n\n\n\n6.27 **no-nested-ternary:** disallow nested ternary expressions.\n\n```javascript\n// bad\nvar foo = bar ? baz : qux === quxx ? bing : bam;\n```\n\n\n6.28 **no-new-object:** disallow `Object` constructors.\n\n```javascript\n// good\nvar myObject = {};\n```\n```javascript\n// bad\nvar myObject = new Object();\n```\n\n<!-- 6.178 **no-plusplus:** disallow the unary operators `++` and `--`. -->\n\n6.29 **no-restricted-syntax:** disallow specified syntax(e.g. debugger, with, labels)\n\n<!-- 6.180 **no-tabs:** disallow all tabs. -->\n\n<!-- 6.181 **no-ternary:** disallow ternary operators. -->\n\n6.30 **no-underscore-dangle:** disallow dangling underscores in identifiers.\n\n```javascript\n// bad\nvar _foo;\n```\n\n6.31 **no-unneeded-ternary:** disallow ternary operators when simpler alternatives exist.\n\n```javascript\n// good\nconst a = Boolean(condition);\n```\n```javascript\n// bad\nconst a = (condition) ? true : false;\n```\n\n6.32 **no-whitespace-before-property:** disallow whitespace before properties.\n\n```javascript\n// good\nfoo.bar.baz.quz\n```\n```javascript\n// bad\nfoo. bar .baz . quz\n```\n\n<!-- 6.186 **nonblock-statement-body-position:** enforce the location of single-line statements. -->\n\n<!-- 6.187 **object-curly-newline:** enforce consistent line breaks inside braces. -->\n\n6.33 **object-curly-spacing:** enforce consistent spacing inside braces.\n\n```javascript\n// good\nvar obj = {'foo': 'bar'};\n```\n```javascript\n// bad\nvar obj = { 'foo': 'bar' };\n```\n\n6.34 **object-property-newline:** enforce placing object properties on separate lines.\n\n```javascript\n// good\nvar obj = {\n  foo: \"foo\",\n  bar: \"bar\",\n  baz: \"baz\"\n};\n```\n```javascript\n// bad\nvar obj = {foo: \"foo\", bar: \"bar\", baz: \"baz\"};\n```\n\n6.35 **one-var:** enforce variables to be declared separately in functions.\n\n```javascript\n// good\nvar bar;\nvar baz;\n```\n```javascript\n// bad\nvar bar, baz;\n```\n\n6.36 **one-var-declaration-per-line:** require or disallow newlines around variable declarations.\n\n```javascript\n// good\nconst a = 0,\n  b = 0;\n```\n```javascript\n// bad\nconst a = 0,  b = 0;\n```\n\n6.37 **operator-assignment:** require or disallow assignment operator shorthand where possible.\n\n```javascript\n// good\nx += y;\n```\n```javascript\n// bad\nx = x + y;\n```\n\n<!-- 6.193 **operator-linebreak:** enforce consistent linebreak style for operators. -->\n\n6.38 **padded-blocks:** disallow padding within blocks.\n\n```javascript\n// good\nif (a) {\n  b();\n}\n```\n```javascript\n// bad\nif (a) {\n\n  b();\n\n}\n```\n\n6.39 **quote-props:** require quotes around object literal property names if needed, otherwise forbid them.\n\n```javascript\n// good\nvar object1 = {\n  \"a-b\": 0,\n  \"0x0\": 0,\n  \"1e2\": 0,\n  foo: 0,\n};\n```\n```javascript\n// bad\nvar object = {\n  \"a\": 0,\n  \"0\": 0,\n  \"true\": 0,\n  \"null\": 0\n};\n```\n\n6.40 **quotes:** enforce the consistent use of single quotes. Template-Strings are still allowed(if they contain a JS-Expression).\n\n```javascript\n// good\nconst hw = 'Hello world';\n// good\nconst hw2 = `${greet()} world`;\n```\n```javascript\n// bad\nconst hw = \"Hello world\";\n// bad\nconst hw2 = `Hello world`;\n```\n\n<!-- 6.197 **require-jsdoc:** require JSDoc comments. -->\n\n6.41 **semi:** require semicolons instead of ASI(automatic semicolon insertion).\n\n```javascript\n// good\nvar name = \"ESLint\";\n```\n```javascript\n// bad\nvar name = \"ESLint\"\n```\n\n6.42 **semi-spacing:** enforce consistent spacing before and after semicolons.\n\n```javascript\n// good\nvar foo;\n```\n```javascript\n// bad\nvar foo ;\n```\n\n<!-- 6.200 **sort-keys:** require object keys to be sorted. -->\n\n<!-- 6.201 **sort-vars:** require variables within the same declaration block to be sorted. -->\n\n6.43 **space-before-blocks:** enforce consistent spacing before blocks.\n\n```javascript\n// good\nif (a) {\n  b();\n}\n```\n```javascript\n// bad\nif (a){\n  b();\n}\n```\n\n6.44 **space-before-function-paren:** disallow spacing before `function` definition opening parenthesis(except for anonymous functions).\n\n```javascript\n// good\nfunction foo() {\n  return function () {\n\n  }\n};\n\n```\n```javascript\n// bad\nfunction foo () {\n  // ...\n};\n\n```\n\n6.45 **space-in-parens:** enforce consistent spacing inside parentheses.\n\n```javascript\n// good\nfoo('bar');\n```\n```javascript\n// bad\nfoo( 'bar');\nfoo('bar' );\nfoo( 'bar' );\n```\n\n6.46 **space-infix-ops:** require spacing around infix operators.\n\n```javascript\n// good\na + b\n  ```\n```javascript\n// bad\na+b\n```\n\n6.47 **space-unary-ops:** enforce consistent spacing before or after unary operators.\n\n```javascript\n// good\ntypeof (foo);\n```\n```javascript\n// bad\ntypeof(foo);\n```\n\n6.48 **spaced-comment:** enforce consistent spacing after the `//` or `/*` in a comment.\n\n```javascript\n// good\n// This is a comment with a whitespace at the beginning\n```\n```javascript\n// bad\n//This is a comment with no whitespace at the beginning\n```\n\n<!-- 6.208 **template-tag-spacing:** require or disallow spacing between template tags and their literals. -->\n\n6.49 **unicode-bom:** require or disallow Unicode byte order mark (BOM).\n\nThe Unicode Byte Order Mark (BOM) is used to specify whether code units are big endian or little endian. That is, whether the most significant or least significant bytes come first. UTF-8 does not require a BOM because byte ordering does not matter when characters are a single byte. Since UTF-8 is the dominant encoding of the web, we make \"never\" the default option.\n\n<!-- 1.210 **wrap-regex:** require parenthesis around regex literals. -->\n\n# ECMAScript 6\n\n\n7.1 **arrow-body-style:** require braces around arrow function bodies.\n\n```javascript\n// good\nconst foo = () => {\n  return 0;\n};\n```\n```javascript\n// bad\nconst foo = () => 0;\n```\n\n<!-- 7.211 **arrow-parens:** require parentheses around arrow function arguments. -->\n\n7.2 **arrow-spacing:** enforce consistent spacing before and after the arrow in arrow functions.\n```javascript\n// good\n() => {};\n```\n```javascript\n// bad\n()=> {};\n() =>{};\n()=>{};\n```\n\n\n7.3 **constructor-super:** require `super()` calls in constructors.\n```javascript\n// good\nclass A {\n  constructor() { }\n}\n// good\nclass A extends B {\n  constructor() {\n    super();\n  }\n}\n```\n```javascript\n// bad\nclass A {\n  constructor() {\n    super();\n  }\n}\n// bad\nclass A extends B {\n  constructor() { }\n}\n```\n\n\n7.4 **generator-star-spacing:** enforce consistent spacing behind `*` operators in generator functions.\n```javascript\n// good\nfunction* generator() {}\n```\n```javascript\n// bad\nfunction *generator() {}\n```\n\n\n7.5 **no-class-assign:** disallow reassigning class members.\n```javascript\n// good\nlet A = class A { }\nA = 0;\n\n```\n```javascript\n// bad\nclass A { }\nA = 0;\n```\n\n\n7.6 **no-confusing-arrow:** disallow arrow functions where they could be confused with comparisons.\n```javascript\n// good\nvar x = a => 1 ? 2 : 3;\n```\n```javascript\n// bad\nvar x = a => { return 1 ? 2 : 3; };\n```\n\n\n7.7 **no-const-assign:** disallow reassigning `const` variables.\n```javascript\n// bad\nconst a = 0;\na = 1;\n```\n\n\n7.8 **no-dupe-class-members:** disallow duplicate class members.\n```javascript\n// bad\nclass Foo {\n  bar() { }\n  bar() { }\n}\n```\n\n\n7.9 **no-duplicate-imports:** disallow duplicate module imports.\n```javascript\n// good\nimport {merge, find} from 'module';\n```\n```javascript\n// bad\nimport {merge} from 'module';\nimport {find} from 'module';\n```\n\n\n7.10 **no-new-symbol:** disallow `new` operators with the `Symbol` object.\n\n```javascript\n// bad\nvar foo = new Symbol('foo');\n```\n\n<!-- 7.221 **no-restricted-imports:** disallow specified modules when loaded by `import`. -->\n\n7.11 **no-this-before-super:** disallow `this`/`super` before calling `super()` in constructors.\n\n```javascript\n// good\nclass A extends B {\n  constructor() {\n    super();\n    this.a = 0;\n  }\n}\n```\n```javascript\n// bad\nclass A extends B {\n  constructor() {\n    this.a = 0;\n    super();\n  }\n}\n```\n\n7.12 **no-useless-computed-key:** disallow unnecessary computed property keys in object literals.\n\n```javascript\n// good\nvar a = { x: 0 };\n```\n```javascript\n// bad\nvar a = { ['x']: 0 };\n  ```\n\n7.13 **no-useless-constructor:** disallow unnecessary constructors.\n\n```javascript\n// good\nclass A {\n  constructor () {\n    doSomething();\n  }\n}\n```\n```javascript\n// bad\nclass A {\n  constructor () {\n  }\n}\n```\n\n7.14 **no-useless-rename:** disallow renaming import, export, and destructured assignments to the same name.\n\n```javascript\n// good\nimport { foo } from \"bar\";\n```\n```javascript\n// bad\nimport { foo as foo } from \"bar\";\n```\n\n7.15 **no-var:** require `let` or `const` instead of `var`.\n\n```javascript\n// good\nlet foo;\nconst bar;\n```\n```javascript\n// bad\nvar qux;\n```\n\n7.16 **object-shorthand:** require or disallow method and property shorthand syntax for object literals.\n\n```javascript\n// good\nvar foo = {\n  \"bar-baz\": function() {},\n  \"qux\": qux\n};\n```\n```javascript\n// bad\nvar foo = {\n  \"bar-baz\"() {}\n};\n```\n\n7.17 **prefer-arrow-callback:** require arrow functions as callbacks.\n\n```javascript\n// good\napp.get((req, res, next) => {\n  res.send(this.response);\n});\n```\n```javascript\n// bad\napp.get(function (req, res, next) {\n  res.send(this.response); // this is not what you might expect here\n});\n```\n\n7.18 **prefer-const:** require `const` declarations for variables that are never reassigned after declared.\n\n```javascript\n// good\nconst pi = 3.14;\n```\n```javascript\n// bad\nlet pi = 3.14\n```\n\n<!-- 7.230 **prefer-destructuring:** require destructuring from arrays and/or objects. -->\n\n7.19 **prefer-numeric-literals:** disallow `parseInt()` in favor of binary, octal, and hexadecimal literals.\n\n```javascript\n// bad\nparseInt(\"111110111\", 2) === 503;\n```\n\n7.20 **prefer-rest-params:** require rest parameters instead of `arguments`.\n\n```javascript\n// good\nfunction foo(...args) {\n  console.log(args);\n}\n```\n```javascript\n// bad\nfunction foo() {\n  console.log(arguments);\n}\n```\n\n7.21 **prefer-spread:** require spread operators instead of `.apply()`.\n\n```javascript\n// good\nfoo(...args);\n```\n```javascript\n// bad\nfoo.apply(undefined, args);\n```\n\n7.22 **prefer-template:** require template literals instead of string concatenation.\n```javascript\n// good\nvar str = `Hello ${name}!`;\n```\n```javascript\n// bad\nvar str = 'Hello, ' + name + '!';\n```\n\n7.23 **require-yield:** require generator functions to contain `yield`.\n\n```javascript\n// good\nfunction* foo() {\n  yield 5;\n  return 10;\n}\n\n```\n```javascript\n// bad\nfunction* foo() {\n  return 10;\n}\n```\n\n7.24 **rest-spread-spacing:** enforce spacing between rest and spread operators and their expressions.\n```javascript\n// good\nfn(...args)\n```\n```javascript\n// bad\nfn(... args)\n```\n\n<!-- 7.237 **sort-imports:** enforce sorted import declarations within modules. -->\n\n<!-- 7.238 **symbol-description:** require symbol descriptions. -->\n\n7.25 **template-curly-spacing:**  disallow spacing around embedded expressions of template strings.\n\n```javascript\n// good\n`hello, ${people.name}!`;\n```\n```javascript\n// bad\n`hello, ${ people.name}!`;\n```\n\n7.26 **yield-star-spacing:** require spacing after the `*` in `yield*` expressions.\n\n```javascript\n// good\nfunction* generator() {\n  yield* other();\n}\n```\n","readmeFilename":"README.md","users":{"heikomat":true}}