From 053aa06bc610a0736ae221b05093802e4900024a Mon Sep 17 00:00:00 2001 From: libetl Date: Wed, 3 Jul 2019 23:56:56 +0200 Subject: [PATCH 1/9] =?UTF-8?q?#7192=20=E2=9C=82=20I=20have=20removed=20th?= =?UTF-8?q?e=20storysource=20older=20loader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- addons/storysource/README.md | 10 +- addons/storysource/loader.js | 2 +- addons/storysource/package.json | 3 +- addons/storysource/src/StoryPanel.js | 3 +- addons/storysource/src/events.js | 2 +- .../inject-decorator.test.js.snap | 732 ------------------ .../storysource/src/loader/default-options.js | 12 - .../src/loader/generate-helpers.js | 99 --- addons/storysource/src/loader/index.js | 29 - .../src/loader/inject-decorator.js | 46 -- .../src/loader/inject-decorator.test.js | 216 ------ .../storysource/src/loader/parse-helpers.js | 110 --- .../storysource/src/loader/parsers/index.js | 20 - .../src/loader/parsers/parser-flow.js | 9 - .../src/loader/parsers/parser-js.js | 9 - .../src/loader/parsers/parser-ts.js | 9 - .../src/loader/traverse-helpers.js | 38 - .../angular-cli/.storybook/webpack.config.ts | 2 +- examples/angular-cli/package.json | 1 + .../ember-cli/.storybook/webpack.config.js | 2 +- .../.storybook/webpack.config.js | 2 +- .../marko-cli/.storybook/webpack.config.js | 2 +- .../.storybook/webpack.config.js | 2 +- .../polymer-cli/.storybook/webpack.config.js | 2 +- .../.storybook/webpack.config.js | 2 +- .../.storybook/webpack.config.js | 2 +- .../.storybook/webpack.config.js | 2 +- .../.storybook/webpack.config.js | 2 +- .../.storybook/webpack.config.js | 2 +- 30 files changed, 23 insertions(+), 1351 deletions(-) delete mode 100644 addons/storysource/src/loader/__snapshots__/inject-decorator.test.js.snap delete mode 100644 addons/storysource/src/loader/default-options.js delete mode 100644 addons/storysource/src/loader/generate-helpers.js delete mode 100644 addons/storysource/src/loader/index.js delete mode 100644 addons/storysource/src/loader/inject-decorator.js delete mode 100644 addons/storysource/src/loader/inject-decorator.test.js delete mode 100644 addons/storysource/src/loader/parse-helpers.js delete mode 100644 addons/storysource/src/loader/parsers/index.js delete mode 100644 addons/storysource/src/loader/parsers/parser-flow.js delete mode 100644 addons/storysource/src/loader/parsers/parser-js.js delete mode 100644 addons/storysource/src/loader/parsers/parser-ts.js delete mode 100644 addons/storysource/src/loader/traverse-helpers.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 591df49ba51e..18782f4f37e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -424,7 +424,7 @@ Publish failed - Addon-docs: Docs page bugfix - Addon-docs: Fix source block for legacy stories -NOTE: use `@storybook/addon-storysource/loader` with option `injectParameters: true` for legacy source +NOTE: use `@storybook/source-loader` with option `injectParameters: true` for legacy source ## 5.2.0-alpha.6 (May 14, 2019) diff --git a/addons/storysource/README.md b/addons/storysource/README.md index 5aea05d32b03..5b42c500f44b 100644 --- a/addons/storysource/README.md +++ b/addons/storysource/README.md @@ -26,7 +26,7 @@ Use this hook to a custom webpack.config. This will generate a decorator call in module.exports = function({ config }) { config.module.rules.push({ test: /\.stories\.jsx?$/, - loaders: [require.resolve('@storybook/addon-storysource/loader')], + loaders: [require.resolve('@storybook/source-loader')], enforce: 'pre', }); @@ -56,7 +56,7 @@ module.exports = function({ config }) { test: /\.stories\.jsx?$/, loaders: [ { - loader: require.resolve('@storybook/addon-storysource/loader'), + loader: require.resolve('@storybook/source-loader'), options: { parser: 'typescript' }, }, ], @@ -91,7 +91,7 @@ module.exports = function({ config }) { test: /\.stories\.jsx?$/, loaders: [ { - loader: require.resolve('@storybook/addon-storysource/loader'), + loader: require.resolve('@storybook/source-loader'), options: { prettierConfig: { printWidth: 100, @@ -125,7 +125,7 @@ module.exports = function({ config }) { test: /\.stories\.jsx?$/, loaders: [ { - loader: require.resolve('@storybook/addon-storysource/loader'), + loader: require.resolve('@storybook/source-loader'), options: { uglyCommentsRegex: [/^eslint-.*/, /^global.*/], }, @@ -152,7 +152,7 @@ module.exports = function({ config }) { test: /\.stories\.jsx?$/, loaders: [ { - loader: require.resolve('@storybook/addon-storysource/loader'), + loader: require.resolve('@storybook/source-loader'), options: { injectDecorator: false }, }, ], diff --git a/addons/storysource/loader.js b/addons/storysource/loader.js index 6cc4e38b8d14..526e141378b6 100644 --- a/addons/storysource/loader.js +++ b/addons/storysource/loader.js @@ -1 +1 @@ -module.exports = require('./dist/loader'); +module.exports = require('@storybook/source-loader'); diff --git a/addons/storysource/package.json b/addons/storysource/package.json index 1cf826a2f3f3..30c10ab95f21 100644 --- a/addons/storysource/package.json +++ b/addons/storysource/package.json @@ -35,7 +35,8 @@ "regenerator-runtime": "^0.12.1" }, "peerDependencies": { - "react": "*" + "react": "*", + "@storybook/source-loader": "*" }, "publishConfig": { "access": "public" diff --git a/addons/storysource/src/StoryPanel.js b/addons/storysource/src/StoryPanel.js index afa1d63ce276..01c50b731946 100644 --- a/addons/storysource/src/StoryPanel.js +++ b/addons/storysource/src/StoryPanel.js @@ -66,9 +66,8 @@ export default class StoryPanel extends Component { this.selectedStoryRef = ref; }; - listener = ({ source, currentLocation, locationsMap }) => { + listener = ({ edition: { source }, location: { currentLocation, locationsMap } }) => { const locationsKeys = getLocationKeys(locationsMap); - this.setState({ source, currentLocation, diff --git a/addons/storysource/src/events.js b/addons/storysource/src/events.js index 37a7edb2496a..80572092f96e 100644 --- a/addons/storysource/src/events.js +++ b/addons/storysource/src/events.js @@ -1,3 +1,3 @@ -export const ADDON_ID = 'storybook/storysource'; +export const ADDON_ID = 'storybook/source-loader'; export const PANEL_ID = `${ADDON_ID}/panel`; export const EVENT_ID = `${ADDON_ID}/set`; diff --git a/addons/storysource/src/loader/__snapshots__/inject-decorator.test.js.snap b/addons/storysource/src/loader/__snapshots__/inject-decorator.test.js.snap deleted file mode 100644 index 71a9f6f70c70..000000000000 --- a/addons/storysource/src/loader/__snapshots__/inject-decorator.test.js.snap +++ /dev/null @@ -1,732 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`inject-decorator injectDecorator option is false - angular does not inject stories decorator after the all "storiesOf" functions 1`] = ` -"import { Component } from '@angular/core'; -import { storiesOf } from '@storybook/angular'; - -@Component({ - selector: 'storybook-with-ng-content', - template: \`
\`, -}) -class WithNgContentComponent {} - -storiesOf('Custom|ng-content', module).add('Default', () => ({ - template: \`

This is rendered in ng-content

\`, - moduleMetadata: { - declarations: [WithNgContentComponent], - }, -})); -" -`; - -exports[`inject-decorator injectDecorator option is false - flow does not inject stories decorator after the all "storiesOf" functions 1`] = ` -"// @flow -import React from 'react'; -import { storiesOf } from '@storybook/react'; -import { withInfo } from '@storybook/addon-info'; - -import TableComponent from '../components/TableComponent'; - -import type { JssClasses } from '../types'; - -type State = { - value: any, -}; - -type Props = { - classes: JssClasses, - name: string, -}; - -class Table extends React.Component { - constructor(props) { - super(props); - this.state = { - value: undefined, - }; - } - - state: State; - - render() { - return ; - } -} - -const stories = storiesOf('Table', module); -stories.add('Flow Class', withInfo('Lorum Ipsum Nem')(() => )); -" -`; - -exports[`inject-decorator injectDecorator option is false - ts does not inject stories decorator after the all "storiesOf" functions 1`] = ` -"import { Component } from '@angular/core'; -import { Store, StoreModule } from '@ngrx/store'; -import { storiesOf, moduleMetadata } from '@storybook/angular'; - -@Component({ - selector: 'storybook-comp-with-store', - template: '
{{this.getSotreState()}}
', -}) -class WithStoreComponent { - private store: Store; - - constructor(store: Store) { - this.store = store; - } - - getSotreState(): string { - return this.store === undefined ? 'Store is NOT injected' : 'Store is injected'; - } -} - -storiesOf('ngrx|Store', module) - .addDecorator( - moduleMetadata({ - imports: [StoreModule.forRoot({})], - declarations: [WithStoreComponent], - }) - ) - .add('With component', () => { - return { - component: WithStoreComponent, - }; - });" -`; - -exports[`inject-decorator injectDecorator option is false does not inject stories decorator after the all "storiesOf" functions 1`] = ` -"import React from 'react'; -import { storiesOf } from '@storybook/react'; -import { withInfo } from '@storybook/addon-info'; -import { action } from '@storybook/addon-actions'; - -import DocgenButton from '../components/DocgenButton'; -import FlowTypeButton from '../components/FlowTypeButton'; -import BaseButton from '../components/BaseButton'; -import TableComponent from '../components/TableComponent'; - -storiesOf('Addons|Info.React Docgen', module) - .add( - 'Comments from PropType declarations', - withInfo( - 'Comments above the PropType declarations should be extracted from the React component file itself and rendered in the Info Addon prop table' - )(() => ) - ) - .add( - 'Comments from Flow declarations', - withInfo( - 'Comments above the Flow declarations should be extracted from the React component file itself and rendered in the Info Addon prop table' - )(() => ) - ) - .add( - 'Comments from component declaration', - withInfo( - 'Comments above the component declaration should be extracted from the React component file itself and rendered below the Info Addon heading' - )(() => ) - ); - -const markdownDescription = \` -#### You can use markdown in your withInfo() description. - -Sometimes you might want to manually include some code examples: -~~~js -const Button = () =>