diff --git a/.eslintrc b/.eslintrc index 863b8d6ab5d..b17f3bafc21 100644 --- a/.eslintrc +++ b/.eslintrc @@ -10,7 +10,8 @@ }, "plugins": [ "flowtype", - "import" + "import", + "jsdoc" ], "rules": { // temporarily disabled due to https://github.com/babel/babel-eslint/issues/485 @@ -73,8 +74,32 @@ }], "no-multiple-empty-lines": [ "error", { "max": 1 - }] + }], + "jsdoc/check-param-names": "warn", + "jsdoc/require-param": "warn", + "jsdoc/require-param-description": "warn", + "jsdoc/require-param-name": "warn", + "jsdoc/require-returns": "warn", + "jsdoc/require-returns-description": "warn" + }, + "settings": { + "jsdoc":{ + "ignorePrivate": true + } }, + "overrides": [ + { + "files": ["debug/**", "bench/**", "test/**", "src/style-spec/**"], + "rules": { + "jsdoc/check-param-names": "off", + "jsdoc/require-param": "off", + "jsdoc/require-param-description": "off", + "jsdoc/require-param-name": "off", + "jsdoc/require-returns": "off", + "jsdoc/require-returns-description": "off" + } + } + ], "globals": { "performance": true }, diff --git a/package.json b/package.json index e0ca6bc7552..35665731981 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "eslint-plugin-flowtype": "^3.9.1", "eslint-plugin-html": "^5.0.5", "eslint-plugin-import": "^2.16.0", + "eslint-plugin-jsdoc": "^17.1.2", "eslint-plugin-react": "^7.12.4", "esm": "~3.0.84", "flow-bin": "^0.100.0", diff --git a/yarn.lock b/yarn.lock index 629cad1493c..baaef26680e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2465,6 +2465,11 @@ commander@2, commander@^2.20.0, commander@^2.6.0, commander@~2.20.3: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +comment-parser@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-0.7.0.tgz#9dc1f689a60d81fbcaf867d3c9eba3eb061ccfc1" + integrity sha512-m0SGP0RFO4P3hIBlIor4sBFPe5Y4HUeGgo/UZK/1Zdea5eUiqxroQ3lFqBDDSfWo9z9Q6LLnt2u0JqwacVEd/A== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -3906,6 +3911,18 @@ eslint-plugin-import@^2.16.0: read-pkg-up "^2.0.0" resolve "^1.11.0" +eslint-plugin-jsdoc@^17.1.2: + version "17.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-17.1.2.tgz#1d2bcdd918c2665dfabe1d60714663f4afe4ae88" + integrity sha512-x3XbsYUF8VFTMi+Ssdezh4g77PodQyFcZ0DPQOeSkvI5EyHGV31yH3ekcD69JChEb5BkmcUu07FtLFuaxE97PQ== + dependencies: + comment-parser "^0.7.0" + debug "^4.1.1" + jsdoctypeparser "^6.0.0" + lodash "^4.17.15" + object.entries-ponyfill "^1.0.1" + regextras "^0.6.1" + eslint-plugin-react@^7.12.4: version "7.16.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz#9928e4f3e2122ed3ba6a5b56d0303ba3e41d8c09" @@ -5708,6 +5725,11 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jsdoctypeparser@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-6.0.0.tgz#b6778772339138cbddb6c7b0d182d105afe1d8ae" + integrity sha512-61VtBXLkHfOFSIdp/VDVNMksxK0ID0cPTNvxDR92tPA6K7r2AX0OcJegYxhJIwtpWKU4p3D9L3U02hhlP1kQLQ== + jsdom@^13.0.0: version "13.2.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-13.2.0.tgz#b1a0dbdadc255435262be8ea3723d2dba0d7eb3a" @@ -7028,6 +7050,11 @@ object.assign@^4.0.4, object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" +object.entries-ponyfill@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.entries-ponyfill/-/object.entries-ponyfill-1.0.1.tgz#29abdf77cbfbd26566dd1aa24e9d88f65433d256" + integrity sha1-Kavfd8v70mVm3RqiTp2I9lQz0lY= + object.entries@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" @@ -8480,6 +8507,11 @@ regexpu-core@^4.5.4, regexpu-core@^4.6.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.1.0" +regextras@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.6.1.tgz#9689641bbb338e0ff7001a5c507c6a2008df7b36" + integrity sha512-EzIHww9xV2Kpqx+corS/I7OBmf2rZ0pKKJPsw5Dc+l6Zq1TslDmtRIP9maVn3UH+72MIXmn8zzDgP07ihQogUA== + regjsgen@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"