diff --git a/.eslintrc.js b/.eslintrc.js index 5110b2dc2708..fdb38e0e97c1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -33,6 +33,7 @@ module.exports = { 'space-before-function-paren': ignore, 'import/no-unresolved': warn, 'import/extensions': [ + // because of highlight.js and fuse.js warn, { js: 'never', @@ -40,9 +41,12 @@ module.exports = { }, ], 'import/no-extraneous-dependencies': [ - warn, + error, { devDependencies: [ + 'examples/**', + '**/example/**', + '*.js', '**/*.test.js', '**/scripts/*.js', '**/stories/*.js', diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 7d174a73ff81..6fb1f4bebf3c 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -2,12 +2,8 @@ Issue: ## What I did - - ## How to test - - Is this testable with jest or storyshots? Does this need a new example in the kitchen sink apps? diff --git a/addons/centered/package.json b/addons/centered/package.json index 2cb95fa4bb02..46d16c7d1922 100644 --- a/addons/centered/package.json +++ b/addons/centered/package.json @@ -8,10 +8,10 @@ "scripts": { "prepublish": "node ../../scripts/prepublish.js" }, - "peerDependencies": { - "react": "*" - }, "dependencies": { "global": "^4.3.2" + }, + "peerDependencies": { + "react": "*" } } diff --git a/addons/comments/package.json b/addons/comments/package.json index 2c8c7cebbf38..28af3d612280 100644 --- a/addons/comments/package.json +++ b/addons/comments/package.json @@ -36,6 +36,8 @@ "react-textarea-autosize": "^4.3.0" }, "devDependencies": { + "@storybook/react": "^3.2.5", + "@storybook/addon-actions": "^3.2.0", "@kadira/storybook-database-cloud": "*", "@kadira/storybook-deployer": "*", "git-url-parse": "^6.2.2", diff --git a/addons/comments/src/stories/index.js b/addons/comments/src/stories/index.js index 32dbf81bf158..797bc4d97a7e 100644 --- a/addons/comments/src/stories/index.js +++ b/addons/comments/src/stories/index.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved */ - import React from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; diff --git a/addons/notes/package.json b/addons/notes/package.json index 684be6b4c507..c27ed0735514 100644 --- a/addons/notes/package.json +++ b/addons/notes/package.json @@ -21,11 +21,11 @@ "dependencies": { "@storybook/addons": "^3.2.6", "babel-runtime": "^6.23.0", + "prop-types": "^15.5.10", "util-deprecate": "^1.0.2" }, "devDependencies": { "git-url-parse": "^6.2.2", - "prop-types": "^15.5.10", "react": "^15.6.1", "react-addons-test-utils": "^15.5.1", "react-dom": "^15.6.1" diff --git a/addons/notes/src/register.js b/addons/notes/src/register.js index 0eee2bb8383c..13b19425266d 100644 --- a/addons/notes/src/register.js +++ b/addons/notes/src/register.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import addons from '@storybook/addons'; diff --git a/docs/.eslintrc.js b/docs/.eslintrc.js new file mode 100644 index 000000000000..a66a9a1396a5 --- /dev/null +++ b/docs/.eslintrc.js @@ -0,0 +1,5 @@ +module.exports = { + settings: { + 'import/core-modules': ['config'], + }, +}; diff --git a/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap b/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap index 87b857bfac78..7a2ec1259fe3 100644 --- a/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap +++ b/examples/cra-kitchen-sink/src/__snapshots__/storyshots.test.js.snap @@ -345,13 +345,13 @@ exports[`Storyshots AddonInfo.DocgenButton DocgenButton 1`] = ` - enm + label - other + string - no + yes - @@ -360,22 +360,32 @@ exports[`Storyshots AddonInfo.DocgenButton DocgenButton 1`] = ` - label + onClick - string + func - yes + no - - + + + onClick() + + - msg + one other @@ -390,32 +400,22 @@ exports[`Storyshots AddonInfo.DocgenButton DocgenButton 1`] = ` - onClick + two - func + other no - - - onClick() - - + - - one + msg other @@ -430,7 +430,7 @@ exports[`Storyshots AddonInfo.DocgenButton DocgenButton 1`] = ` - two + enm other @@ -1747,50 +1747,50 @@ exports[`Storyshots Button with new info 1`] = ` - age + children - number + node - no + yes - - - 0 - - + - - children + isAmazing - node + bool - yes + no - - + + + false + + - isAmazing + age - bool + number no @@ -1804,7 +1804,7 @@ exports[`Storyshots Button with new info 1`] = ` } } > - false + 0 @@ -2301,50 +2301,50 @@ exports[`Storyshots Button with some info 1`] = ` - age + children - number + node - no + yes - - - 0 - - + - - children + isAmazing - node + bool - yes + no - - + + + false + + - isAmazing + age - bool + number no @@ -2358,7 +2358,7 @@ exports[`Storyshots Button with some info 1`] = ` } } > - false + 0 diff --git a/examples/crna-kitchen-sink/package.json b/examples/crna-kitchen-sink/package.json index 92828d45d65c..932676ba37cc 100644 --- a/examples/crna-kitchen-sink/package.json +++ b/examples/crna-kitchen-sink/package.json @@ -31,6 +31,7 @@ }, "dependencies": { "expo": "^19.0.0", + "prop-types": "^15.5.10", "react": "16.0.0-alpha.12", "react-native": "^0.46.1" } diff --git a/examples/crna-kitchen-sink/storybook/stories/Button/index.android.js b/examples/crna-kitchen-sink/storybook/stories/Button/index.android.js index 751662956de6..44d99c37f12b 100644 --- a/examples/crna-kitchen-sink/storybook/stories/Button/index.android.js +++ b/examples/crna-kitchen-sink/storybook/stories/Button/index.android.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { TouchableNativeFeedback } from 'react-native'; diff --git a/examples/crna-kitchen-sink/storybook/stories/Button/index.ios.js b/examples/crna-kitchen-sink/storybook/stories/Button/index.ios.js index 4886626bfade..a20a7685b2d5 100644 --- a/examples/crna-kitchen-sink/storybook/stories/Button/index.ios.js +++ b/examples/crna-kitchen-sink/storybook/stories/Button/index.ios.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { TouchableHighlight } from 'react-native'; diff --git a/examples/crna-kitchen-sink/storybook/stories/CenterView/index.js b/examples/crna-kitchen-sink/storybook/stories/CenterView/index.js index dcf34c73a04a..d4e042e505b0 100644 --- a/examples/crna-kitchen-sink/storybook/stories/CenterView/index.js +++ b/examples/crna-kitchen-sink/storybook/stories/CenterView/index.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { View } from 'react-native'; diff --git a/examples/crna-kitchen-sink/storybook/stories/Welcome/index.js b/examples/crna-kitchen-sink/storybook/stories/Welcome/index.js index f01c937315fe..2f33bc492b49 100644 --- a/examples/crna-kitchen-sink/storybook/stories/Welcome/index.js +++ b/examples/crna-kitchen-sink/storybook/stories/Welcome/index.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { View, Text } from 'react-native'; diff --git a/examples/react-native-vanilla/package.json b/examples/react-native-vanilla/package.json index 54daaba92faf..df1e11bd4020 100644 --- a/examples/react-native-vanilla/package.json +++ b/examples/react-native-vanilla/package.json @@ -8,6 +8,7 @@ "storybook": "storybook start -p 7007" }, "dependencies": { + "prop-types": "^15.5.10", "react": "16.0.0-alpha.6", "react-native": "0.44.1" }, diff --git a/examples/react-native-vanilla/storybook/stories/Button/index.android.js b/examples/react-native-vanilla/storybook/stories/Button/index.android.js index 751662956de6..44d99c37f12b 100644 --- a/examples/react-native-vanilla/storybook/stories/Button/index.android.js +++ b/examples/react-native-vanilla/storybook/stories/Button/index.android.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { TouchableNativeFeedback } from 'react-native'; diff --git a/examples/react-native-vanilla/storybook/stories/Button/index.ios.js b/examples/react-native-vanilla/storybook/stories/Button/index.ios.js index 4886626bfade..a20a7685b2d5 100644 --- a/examples/react-native-vanilla/storybook/stories/Button/index.ios.js +++ b/examples/react-native-vanilla/storybook/stories/Button/index.ios.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { TouchableHighlight } from 'react-native'; diff --git a/examples/react-native-vanilla/storybook/stories/CenterView/index.js b/examples/react-native-vanilla/storybook/stories/CenterView/index.js index dcf34c73a04a..d4e042e505b0 100644 --- a/examples/react-native-vanilla/storybook/stories/CenterView/index.js +++ b/examples/react-native-vanilla/storybook/stories/CenterView/index.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { View } from 'react-native'; diff --git a/examples/react-native-vanilla/storybook/stories/Welcome/index.js b/examples/react-native-vanilla/storybook/stories/Welcome/index.js index f01c937315fe..2f33bc492b49 100644 --- a/examples/react-native-vanilla/storybook/stories/Welcome/index.js +++ b/examples/react-native-vanilla/storybook/stories/Welcome/index.js @@ -1,5 +1,3 @@ -/* eslint-disable import/no-extraneous-dependencies, import/no-unresolved, import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { View, Text } from 'react-native'; diff --git a/examples/vue-kitchen-sink/package.json b/examples/vue-kitchen-sink/package.json index 66abcce23b9f..cad12030d751 100644 --- a/examples/vue-kitchen-sink/package.json +++ b/examples/vue-kitchen-sink/package.json @@ -7,6 +7,7 @@ "@storybook/addon-actions": "^3.2.0", "@storybook/addon-links": "^3.2.0", "@storybook/addons": "^3.2.0", + "@storybook/addon-centered": "^3.2.1", "@storybook/addon-notes": "^3.2.0", "@storybook/addon-knobs": "^3.2.0", "babel-core": "^6.25.0", diff --git a/lib/cli/generators/.eslintrc.js b/lib/cli/generators/.eslintrc.js index 12e147cfff01..1d03de880fa5 100644 --- a/lib/cli/generators/.eslintrc.js +++ b/lib/cli/generators/.eslintrc.js @@ -1,11 +1,12 @@ const ignore = 0; module.exports = { - rules: { - 'import/no-unresolved': ignore, - 'import/no-extraneous-dependencies': ignore, - 'import/extensions': ignore, - 'global-require': ignore, - 'no-console': ignore, + overrides: { + files: '*/template/**', + rules: { + 'import/no-unresolved': ignore, + 'import/no-extraneous-dependencies': ignore, + 'global-require': ignore, + }, }, }; diff --git a/lib/cli/generators/METEOR/template/.stories/index.js b/lib/cli/generators/METEOR/template/.stories/index.js index 2d21134b3223..4afc99366db0 100644 --- a/lib/cli/generators/METEOR/template/.stories/index.js +++ b/lib/cli/generators/METEOR/template/.stories/index.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import React from 'react'; import { storiesOf } from '@storybook/react'; diff --git a/lib/cli/generators/METEOR/template/.storybook/addons.js b/lib/cli/generators/METEOR/template/.storybook/addons.js index beadf411f7cc..6aed412d04af 100644 --- a/lib/cli/generators/METEOR/template/.storybook/addons.js +++ b/lib/cli/generators/METEOR/template/.storybook/addons.js @@ -1,4 +1,2 @@ -/* eslint-disable import/extensions */ - import '@storybook/addon-actions/register'; import '@storybook/addon-links/register'; diff --git a/lib/cli/generators/METEOR/template/.storybook/config.js b/lib/cli/generators/METEOR/template/.storybook/config.js index f525576eb114..140143dad399 100644 --- a/lib/cli/generators/METEOR/template/.storybook/config.js +++ b/lib/cli/generators/METEOR/template/.storybook/config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import { configure } from '@storybook/react'; function loadStories() { diff --git a/lib/cli/generators/REACT/template/.storybook/addons.js b/lib/cli/generators/REACT/template/.storybook/addons.js index beadf411f7cc..6aed412d04af 100644 --- a/lib/cli/generators/REACT/template/.storybook/addons.js +++ b/lib/cli/generators/REACT/template/.storybook/addons.js @@ -1,4 +1,2 @@ -/* eslint-disable import/extensions */ - import '@storybook/addon-actions/register'; import '@storybook/addon-links/register'; diff --git a/lib/cli/generators/REACT/template/.storybook/config.js b/lib/cli/generators/REACT/template/.storybook/config.js index d109f0da15b1..9154670ab327 100644 --- a/lib/cli/generators/REACT/template/.storybook/config.js +++ b/lib/cli/generators/REACT/template/.storybook/config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import { configure } from '@storybook/react'; function loadStories() { diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/addons.js b/lib/cli/generators/REACT_NATIVE/template/storybook/addons.js index beadf411f7cc..6aed412d04af 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/addons.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/addons.js @@ -1,4 +1,2 @@ -/* eslint-disable import/extensions */ - import '@storybook/addon-actions/register'; import '@storybook/addon-links/register'; diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.android.js b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.android.js index fe87b8224d5e..44d99c37f12b 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.android.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.android.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { TouchableNativeFeedback } from 'react-native'; diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.ios.js b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.ios.js index 4904d2a75515..a20a7685b2d5 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.ios.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Button/index.ios.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { TouchableHighlight } from 'react-native'; diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/CenterView/index.js b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/CenterView/index.js index 3210d678ac5a..d4e042e505b0 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/CenterView/index.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/CenterView/index.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { View } from 'react-native'; diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Welcome/index.js b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Welcome/index.js index 7afe65f6ffd2..2f33bc492b49 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Welcome/index.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/Welcome/index.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import React from 'react'; import PropTypes from 'prop-types'; import { View, Text } from 'react-native'; diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/index.js b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/index.js index 606feb7b6732..99ab2205a9d0 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/stories/index.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/stories/index.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import React from 'react'; import { Text } from 'react-native'; diff --git a/lib/cli/generators/REACT_NATIVE/template/storybook/storybook.js b/lib/cli/generators/REACT_NATIVE/template/storybook/storybook.js index 2e5726511e75..558e7b3af49b 100644 --- a/lib/cli/generators/REACT_NATIVE/template/storybook/storybook.js +++ b/lib/cli/generators/REACT_NATIVE/template/storybook/storybook.js @@ -1,4 +1,4 @@ -/* eslint-disable import/extensions, global-require */ +/* eslint-disable global-require */ import { AppRegistry } from 'react-native'; import { getStorybookUI, configure } from '@storybook/react-native'; diff --git a/lib/cli/generators/REACT_SCRIPTS/index.js b/lib/cli/generators/REACT_SCRIPTS/index.js index 6179797f3621..bff435c71f01 100644 --- a/lib/cli/generators/REACT_SCRIPTS/index.js +++ b/lib/cli/generators/REACT_SCRIPTS/index.js @@ -13,7 +13,6 @@ module.exports = Promise.all([ const packageJson = helpers.getPackageJson(); - packageJson.devDependencies = packageJson.devDependencies || {}; packageJson.devDependencies['@storybook/react'] = `^${storybookVersion}`; diff --git a/lib/cli/generators/REACT_SCRIPTS/template/.storybook/addons.js b/lib/cli/generators/REACT_SCRIPTS/template/.storybook/addons.js index beadf411f7cc..6aed412d04af 100644 --- a/lib/cli/generators/REACT_SCRIPTS/template/.storybook/addons.js +++ b/lib/cli/generators/REACT_SCRIPTS/template/.storybook/addons.js @@ -1,4 +1,2 @@ -/* eslint-disable import/extensions */ - import '@storybook/addon-actions/register'; import '@storybook/addon-links/register'; diff --git a/lib/cli/generators/REACT_SCRIPTS/template/.storybook/config.js b/lib/cli/generators/REACT_SCRIPTS/template/.storybook/config.js index f97e6c899a04..35430210ce65 100644 --- a/lib/cli/generators/REACT_SCRIPTS/template/.storybook/config.js +++ b/lib/cli/generators/REACT_SCRIPTS/template/.storybook/config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import { configure } from '@storybook/react'; function loadStories() { diff --git a/lib/cli/generators/SFC_VUE/template/.storybook/addons.js b/lib/cli/generators/SFC_VUE/template/.storybook/addons.js index 4cfa4a658d52..402ccc13eba3 100644 --- a/lib/cli/generators/SFC_VUE/template/.storybook/addons.js +++ b/lib/cli/generators/SFC_VUE/template/.storybook/addons.js @@ -1,4 +1,2 @@ -/* eslint-disable import/extensions */ - import '@storybook/addon-actions/register' import '@storybook/addon-links/register' diff --git a/lib/cli/generators/SFC_VUE/template/src/stories/index.js b/lib/cli/generators/SFC_VUE/template/src/stories/index.js index 94c5b20ad726..b1f09e9bb3d9 100644 --- a/lib/cli/generators/SFC_VUE/template/src/stories/index.js +++ b/lib/cli/generators/SFC_VUE/template/src/stories/index.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import { storiesOf } from '@storybook/vue'; import { action } from '@storybook/addon-actions'; import { linkTo } from '@storybook/addon-links'; diff --git a/lib/cli/generators/VUE/template/.storybook/addons.js b/lib/cli/generators/VUE/template/.storybook/addons.js index 4cfa4a658d52..402ccc13eba3 100644 --- a/lib/cli/generators/VUE/template/.storybook/addons.js +++ b/lib/cli/generators/VUE/template/.storybook/addons.js @@ -1,4 +1,2 @@ -/* eslint-disable import/extensions */ - import '@storybook/addon-actions/register' import '@storybook/addon-links/register' diff --git a/lib/cli/generators/VUE/template/.storybook/config.js b/lib/cli/generators/VUE/template/.storybook/config.js index f30732660180..a26a91bc2afb 100644 --- a/lib/cli/generators/VUE/template/.storybook/config.js +++ b/lib/cli/generators/VUE/template/.storybook/config.js @@ -1,5 +1,3 @@ -/* eslint-disable import/extensions */ - import { configure } from '@storybook/vue' function loadStories() { diff --git a/lib/cli/package.json b/lib/cli/package.json index 93cb3ef4c966..f8bf5b942102 100644 --- a/lib/cli/package.json +++ b/lib/cli/package.json @@ -31,6 +31,7 @@ "cross-spawn": "^5.0.1", "jscodeshift": "^0.3.30", "json5": "^0.5.1", + "latest-version": "^3.1.0", "merge-dirs": "^0.2.1", "opencollective": "^1.0.3", "shelljs": "^0.7.8", diff --git a/lib/components/package.json b/lib/components/package.json index 8b684f08bedf..2e193966bbac 100644 --- a/lib/components/package.json +++ b/lib/components/package.json @@ -19,6 +19,7 @@ "prop-types": "^15.5.10" }, "devDependencies": { + "enzyme": "^2.9.1", "react": "^15.6.1", "react-dom": "^15.6.1" }, diff --git a/package.json b/package.json index 915a4c3bf9d8..532d3ba88649 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "jest-enzyme": "^3.6.1", "lerna": "2.0.0", "lint-staged": "^4.0.2", + "lodash": "^4.17.4", "nodemon": "^1.11.0", "npmlog": "^4.1.2", "prettier": "^1.5.3",