mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-01 05:05:25 +08:00
Module story format & framework param
This commit is contained in:
parent
6389e30fce
commit
711c8397f0
1
app/angular/src/client/index.js
vendored
1
app/angular/src/client/index.js
vendored
@ -7,6 +7,7 @@ export {
|
|||||||
getStorybook,
|
getStorybook,
|
||||||
forceReRender,
|
forceReRender,
|
||||||
raw,
|
raw,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
|
||||||
export { moduleMetadata } from './preview/angular/decorators';
|
export { moduleMetadata } from './preview/angular/decorators';
|
||||||
|
6
app/angular/src/client/preview/index.js
vendored
6
app/angular/src/client/preview/index.js
vendored
@ -6,14 +6,18 @@ import render from './render';
|
|||||||
const { clientApi, configApi, forceReRender } = start(render);
|
const { clientApi, configApi, forceReRender } = start(render);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
clearDecorators,
|
clearDecorators,
|
||||||
getStorybook,
|
getStorybook,
|
||||||
raw,
|
raw,
|
||||||
|
load: coreLoad,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'angular';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
export { forceReRender };
|
export { forceReRender };
|
||||||
|
@ -7,6 +7,7 @@ export {
|
|||||||
getStorybook,
|
getStorybook,
|
||||||
forceReRender,
|
forceReRender,
|
||||||
raw,
|
raw,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
|
||||||
if (module && module.hot && module.hot.decline) {
|
if (module && module.hot && module.hot.decline) {
|
||||||
|
@ -3,10 +3,9 @@ import { start } from '@storybook/core/client';
|
|||||||
import './globals';
|
import './globals';
|
||||||
import render from './render';
|
import render from './render';
|
||||||
|
|
||||||
const { clientApi, configApi, forceReRender } = start(render);
|
const { load: coreLoad, clientApi, configApi, forceReRender } = start(render);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
@ -15,5 +14,9 @@ export const {
|
|||||||
raw,
|
raw,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'ember';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
export { forceReRender };
|
export { forceReRender };
|
||||||
|
@ -7,6 +7,7 @@ export {
|
|||||||
getStorybook,
|
getStorybook,
|
||||||
forceReRender,
|
forceReRender,
|
||||||
raw,
|
raw,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
|
||||||
if (module && module.hot && module.hot.decline) {
|
if (module && module.hot && module.hot.decline) {
|
||||||
|
@ -3,10 +3,9 @@ import { start } from '@storybook/core/client';
|
|||||||
import './globals';
|
import './globals';
|
||||||
import render from './render';
|
import render from './render';
|
||||||
|
|
||||||
const { clientApi, configApi, forceReRender } = start(render);
|
const { load: coreLoad, clientApi, configApi, forceReRender } = start(render);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
@ -15,5 +14,9 @@ export const {
|
|||||||
raw,
|
raw,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'html';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
export { forceReRender };
|
export { forceReRender };
|
||||||
|
@ -7,6 +7,7 @@ export {
|
|||||||
getStorybook,
|
getStorybook,
|
||||||
forceReRender,
|
forceReRender,
|
||||||
raw,
|
raw,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
|
||||||
if (module && module.hot && module.hot.decline) {
|
if (module && module.hot && module.hot.decline) {
|
||||||
|
@ -3,10 +3,9 @@ import { start } from '@storybook/core/client';
|
|||||||
import './globals';
|
import './globals';
|
||||||
import render from './render';
|
import render from './render';
|
||||||
|
|
||||||
const { clientApi, configApi, forceReRender } = start(render);
|
const { load: coreLoad, clientApi, configApi, forceReRender } = start(render);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
@ -15,5 +14,9 @@ export const {
|
|||||||
raw,
|
raw,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'marko';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
export { forceReRender };
|
export { forceReRender };
|
||||||
|
@ -7,6 +7,7 @@ export {
|
|||||||
getStorybook,
|
getStorybook,
|
||||||
forceReRender,
|
forceReRender,
|
||||||
raw,
|
raw,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
|
||||||
if (module && module.hot && module.hot.decline) {
|
if (module && module.hot && module.hot.decline) {
|
||||||
|
@ -3,10 +3,9 @@ import { start } from '@storybook/core/client';
|
|||||||
import './globals';
|
import './globals';
|
||||||
import render from './render';
|
import render from './render';
|
||||||
|
|
||||||
const { clientApi, configApi, forceReRender } = start(render);
|
const { load: coreLoad, clientApi, configApi, forceReRender } = start(render);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
@ -15,5 +14,9 @@ export const {
|
|||||||
raw,
|
raw,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'mithril';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
export { forceReRender };
|
export { forceReRender };
|
||||||
|
@ -7,6 +7,7 @@ export {
|
|||||||
getStorybook,
|
getStorybook,
|
||||||
forceReRender,
|
forceReRender,
|
||||||
raw,
|
raw,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
|
||||||
if (module && module.hot && module.hot.decline) {
|
if (module && module.hot && module.hot.decline) {
|
||||||
|
@ -3,10 +3,9 @@ import { start } from '@storybook/core/client';
|
|||||||
import './globals';
|
import './globals';
|
||||||
import render from './render';
|
import render from './render';
|
||||||
|
|
||||||
const { clientApi, configApi, forceReRender } = start(render);
|
const { load: coreLoad, clientApi, configApi, forceReRender } = start(render);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
@ -15,5 +14,9 @@ export const {
|
|||||||
raw,
|
raw,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'polymer';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
export { forceReRender };
|
export { forceReRender };
|
||||||
|
@ -7,4 +7,5 @@ export {
|
|||||||
getStorybook,
|
getStorybook,
|
||||||
forceReRender,
|
forceReRender,
|
||||||
raw,
|
raw,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
@ -3,10 +3,9 @@ import { start } from '@storybook/core/client';
|
|||||||
import './globals';
|
import './globals';
|
||||||
import render from './render';
|
import render from './render';
|
||||||
|
|
||||||
const { clientApi, configApi, forceReRender } = start(render);
|
const { load: coreLoad, clientApi, configApi, forceReRender } = start(render);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
@ -15,5 +14,9 @@ export const {
|
|||||||
raw,
|
raw,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'preact';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
export { forceReRender };
|
export { forceReRender };
|
||||||
|
@ -2,7 +2,7 @@ import Preview from './preview';
|
|||||||
|
|
||||||
const preview = new Preview();
|
const preview = new Preview();
|
||||||
|
|
||||||
export const storiesOf = preview.api().storiesOf.bind(preview);
|
const rawStoriesOf = preview.api().storiesOf.bind(preview);
|
||||||
export const setAddon = preview.api().setAddon.bind(preview);
|
export const setAddon = preview.api().setAddon.bind(preview);
|
||||||
export const addDecorator = preview.api().addDecorator.bind(preview);
|
export const addDecorator = preview.api().addDecorator.bind(preview);
|
||||||
export const addParameters = preview.api().addParameters.bind(preview);
|
export const addParameters = preview.api().addParameters.bind(preview);
|
||||||
@ -11,3 +11,6 @@ export const configure = preview.configure;
|
|||||||
export const getStorybook = preview.api().getStorybook.bind(preview);
|
export const getStorybook = preview.api().getStorybook.bind(preview);
|
||||||
export const getStorybookUI = preview.getStorybookUI;
|
export const getStorybookUI = preview.getStorybookUI;
|
||||||
export const raw = preview.api().raw.bind(preview);
|
export const raw = preview.api().raw.bind(preview);
|
||||||
|
|
||||||
|
export const storiesOf = (...args: any[]) =>
|
||||||
|
rawStoriesOf(...args).addParameters({ framework: 'react-native' });
|
||||||
|
@ -7,6 +7,7 @@ export {
|
|||||||
getStorybook,
|
getStorybook,
|
||||||
raw,
|
raw,
|
||||||
forceReRender,
|
forceReRender,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
|
||||||
if (module && module.hot && module.hot.decline) {
|
if (module && module.hot && module.hot.decline) {
|
||||||
|
@ -3,10 +3,9 @@ import { start } from '@storybook/core/client';
|
|||||||
import './globals';
|
import './globals';
|
||||||
import render from './render';
|
import render from './render';
|
||||||
|
|
||||||
const { clientApi, configApi, forceReRender } = start(render);
|
const { load: coreLoad, clientApi, configApi, forceReRender } = start(render);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
@ -15,5 +14,9 @@ export const {
|
|||||||
raw,
|
raw,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'react';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
export { forceReRender };
|
export { forceReRender };
|
||||||
|
@ -12,6 +12,7 @@ export {
|
|||||||
compileNow,
|
compileNow,
|
||||||
asCompiledCode,
|
asCompiledCode,
|
||||||
raw,
|
raw,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
|
||||||
if (module && module.hot && module.hot.decline) {
|
if (module && module.hot && module.hot.decline) {
|
||||||
|
@ -5,10 +5,9 @@ import riot, { tag2, mount as vendorMount } from 'riot';
|
|||||||
import render from './render';
|
import render from './render';
|
||||||
import { compileNow as unboundCompileNow, asCompiledCode } from './compileStageFunctions';
|
import { compileNow as unboundCompileNow, asCompiledCode } from './compileStageFunctions';
|
||||||
|
|
||||||
const { clientApi, configApi, forceReRender } = start(render);
|
const { load: coreLoad, clientApi, configApi, forceReRender } = start(render);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
@ -17,6 +16,10 @@ export const {
|
|||||||
raw,
|
raw,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'riot';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
const mount = vendorMount.bind(riot, '#root');
|
const mount = vendorMount.bind(riot, '#root');
|
||||||
const compileNow = unboundCompileNow.bind(null, tag2);
|
const compileNow = unboundCompileNow.bind(null, tag2);
|
||||||
|
@ -7,6 +7,7 @@ export {
|
|||||||
getStorybook,
|
getStorybook,
|
||||||
forceReRender,
|
forceReRender,
|
||||||
raw,
|
raw,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
|
||||||
if (module && module.hot && module.hot.decline) {
|
if (module && module.hot && module.hot.decline) {
|
||||||
|
@ -3,10 +3,9 @@ import { start } from '@storybook/core/client';
|
|||||||
import './globals';
|
import './globals';
|
||||||
import render from './render';
|
import render from './render';
|
||||||
|
|
||||||
const { clientApi, configApi, forceReRender } = start(render);
|
const { load: coreLoad, clientApi, configApi, forceReRender } = start(render);
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
@ -15,5 +14,9 @@ export const {
|
|||||||
raw,
|
raw,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'svelte';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
export { forceReRender };
|
export { forceReRender };
|
||||||
|
@ -7,6 +7,7 @@ export {
|
|||||||
getStorybook,
|
getStorybook,
|
||||||
forceReRender,
|
forceReRender,
|
||||||
raw,
|
raw,
|
||||||
|
load,
|
||||||
} from './preview';
|
} from './preview';
|
||||||
|
|
||||||
if (module && module.hot && module.hot.decline) {
|
if (module && module.hot && module.hot.decline) {
|
||||||
|
@ -70,10 +70,9 @@ function decorateStory(getStory, decorators) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const { clientApi, configApi, forceReRender } = start(render, { decorateStory });
|
const { load: coreLoad, clientApi, configApi, forceReRender } = start(render, { decorateStory });
|
||||||
|
|
||||||
export const {
|
export const {
|
||||||
storiesOf,
|
|
||||||
setAddon,
|
setAddon,
|
||||||
addDecorator,
|
addDecorator,
|
||||||
addParameters,
|
addParameters,
|
||||||
@ -82,5 +81,9 @@ export const {
|
|||||||
raw,
|
raw,
|
||||||
} = clientApi;
|
} = clientApi;
|
||||||
|
|
||||||
|
const framework = 'vue';
|
||||||
|
export const storiesOf = (...args) => clientApi.storiesOf(...args).addParameters({ framework });
|
||||||
|
export const load = (...args) => coreLoad(...args, framework);
|
||||||
|
|
||||||
export const { configure } = configApi;
|
export const { configure } = configApi;
|
||||||
export { forceReRender };
|
export { forceReRender };
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { storiesOf, configure, addDecorator, addParameters } from '@storybook/react';
|
import { load, addDecorator, addParameters } from '@storybook/react';
|
||||||
import { Global, ThemeProvider, themes, createReset, convert } from '@storybook/theming';
|
import { Global, ThemeProvider, themes, createReset, convert } from '@storybook/theming';
|
||||||
|
|
||||||
import { withCssResources } from '@storybook/addon-cssresources';
|
import { withCssResources } from '@storybook/addon-cssresources';
|
||||||
@ -58,75 +58,6 @@ addParameters({
|
|||||||
],
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
let previousExports = {};
|
load(require.context('../../lib/ui/src', true, /\.stories\.js$/), module);
|
||||||
if (module && module.hot && module.hot.dispose) {
|
load(require.context('../../lib/components/src', true, /\.stories\.tsx?$/), module);
|
||||||
({ previousExports = {} } = module.hot.data || {});
|
load(require.context('./stories', true, /\.stories\.js$/), module);
|
||||||
|
|
||||||
module.hot.dispose(data => {
|
|
||||||
// eslint-disable-next-line no-param-reassign
|
|
||||||
data.previousExports = previousExports;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// The simplest version of examples would just export this function for users to use
|
|
||||||
function importAll(context) {
|
|
||||||
const storyStore = window.__STORYBOOK_CLIENT_API__._storyStore; // eslint-disable-line no-undef, no-underscore-dangle
|
|
||||||
|
|
||||||
context.keys().forEach(filename => {
|
|
||||||
const fileExports = context(filename);
|
|
||||||
|
|
||||||
// A old-style story file
|
|
||||||
if (!fileExports.default) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { default: component, ...examples } = fileExports;
|
|
||||||
let componentOptions = component;
|
|
||||||
if (component.prototype && component.prototype.isReactComponent) {
|
|
||||||
componentOptions = { component };
|
|
||||||
}
|
|
||||||
const kindName = componentOptions.title || componentOptions.component.displayName;
|
|
||||||
|
|
||||||
if (previousExports[filename]) {
|
|
||||||
if (previousExports[filename] === fileExports) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Otherwise clear this kind
|
|
||||||
storyStore.removeStoryKind(kindName);
|
|
||||||
storyStore.incrementRevision();
|
|
||||||
}
|
|
||||||
|
|
||||||
// We pass true here to avoid the warning about HMR. It's cool clientApi, we got this
|
|
||||||
const kind = storiesOf(kindName, true);
|
|
||||||
|
|
||||||
(componentOptions.decorators || []).forEach(decorator => {
|
|
||||||
kind.addDecorator(decorator);
|
|
||||||
});
|
|
||||||
if (componentOptions.parameters) {
|
|
||||||
kind.addParameters(componentOptions.parameters);
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.keys(examples).forEach(key => {
|
|
||||||
const example = examples[key];
|
|
||||||
const { title = key, parameters } = example;
|
|
||||||
kind.add(title, example, parameters);
|
|
||||||
});
|
|
||||||
|
|
||||||
previousExports[filename] = fileExports;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function loadStories() {
|
|
||||||
let req;
|
|
||||||
req = require.context('../../lib/ui/src', true, /\.stories\.js$/);
|
|
||||||
importAll(req);
|
|
||||||
|
|
||||||
req = require.context('../../lib/components/src', true, /\.stories\.tsx?$/);
|
|
||||||
importAll(req);
|
|
||||||
|
|
||||||
req = require.context('./stories', true, /\.stories\.js$/);
|
|
||||||
importAll(req);
|
|
||||||
}
|
|
||||||
|
|
||||||
configure(loadStories, module);
|
|
||||||
|
@ -219,5 +219,62 @@ export default function start(render, { decorateStory } = {}) {
|
|||||||
window.__STORYBOOK_ADDONS_CHANNEL__ = channel; // may not be defined
|
window.__STORYBOOK_ADDONS_CHANNEL__ = channel; // may not be defined
|
||||||
}
|
}
|
||||||
|
|
||||||
return { context, clientApi, configApi, forceReRender };
|
let previousExports = {};
|
||||||
|
const loadStories = (req, framework) => () => {
|
||||||
|
req.keys().forEach(filename => {
|
||||||
|
const fileExports = req(filename);
|
||||||
|
|
||||||
|
// An old-style story file
|
||||||
|
if (!(fileExports.default && fileExports.default.title)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const { default: meta, ...examples } = fileExports;
|
||||||
|
|
||||||
|
const kindName = meta.title || meta.displayName;
|
||||||
|
|
||||||
|
if (previousExports[filename]) {
|
||||||
|
if (previousExports[filename] === fileExports) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise clear this kind
|
||||||
|
storyStore.removeStoryKind(kindName);
|
||||||
|
storyStore.incrementRevision();
|
||||||
|
}
|
||||||
|
|
||||||
|
// We pass true here to avoid the warning about HMR. It's cool clientApi, we got this
|
||||||
|
const kind = clientApi.storiesOf(kindName, true);
|
||||||
|
kind.addParameters({ framework });
|
||||||
|
|
||||||
|
(meta.decorators || []).forEach(decorator => {
|
||||||
|
kind.addDecorator(decorator);
|
||||||
|
});
|
||||||
|
if (meta.parameters) {
|
||||||
|
kind.addParameters(meta.parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.keys(examples).forEach(key => {
|
||||||
|
const example = examples[key];
|
||||||
|
const { title = example.title || key, parameters } = example;
|
||||||
|
kind.add(title, example, parameters);
|
||||||
|
});
|
||||||
|
|
||||||
|
previousExports[filename] = fileExports;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const load = (req, m, framework) => {
|
||||||
|
if (m && m.hot && m.hot.dispose) {
|
||||||
|
({ previousExports = {} } = m.hot.data || {});
|
||||||
|
|
||||||
|
m.hot.dispose(data => {
|
||||||
|
// eslint-disable-next-line no-param-reassign
|
||||||
|
data.previousExports = previousExports;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
configApi.configure(loadStories(req, framework), m);
|
||||||
|
};
|
||||||
|
|
||||||
|
return { load, context, clientApi, configApi, forceReRender };
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user