storybook/lib/api/src/init-provider-api.ts
2019-04-25 17:59:37 +02:00

28 lines
630 B
TypeScript

import { ReactElement } from 'react';
import { Channel } from '@storybook/channels';
import { API } from './index';
import Store from './store';
export interface Provider {
channel?: Channel;
renderPreview?: () => ReactElement;
handleAPI(api: API): void;
[key: string]: any;
}
export interface SubAPI {
renderPreview?: Provider['renderPreview'];
}
export default ({ provider, api }: { provider: Provider; api: API; store: Store }) => {
provider.handleAPI(api);
if (provider.renderPreview) {
// eslint-disable-next-line no-param-reassign
api.renderPreview = provider.renderPreview;
}
return api;
};