storybook/lib/builder-webpack4/src/preview/virtualModuleEntry.template.js
Tom Coleman d9483a05a8 Export decorateStory from frameworks that have it.
And no longer emit warnings for exported `decorateStory` or `renderToDOM`
2021-10-30 14:57:20 +11:00

54 lines
1.4 KiB
JavaScript

/* eslint-disable import/no-unresolved */
import {
addDecorator,
addParameters,
addLoader,
addArgsEnhancer,
addArgTypesEnhancer,
setGlobalRender,
} from '{{clientApi}}';
import { logger } from '{{clientLogger}}';
import * as config from '{{configFilename}}';
Object.keys(config).forEach((key) => {
const value = config[key];
switch (key) {
case 'args':
case 'argTypes': {
return logger.warn('Invalid args/argTypes in config, ignoring.', JSON.stringify(value));
}
case 'decorators': {
return value.forEach((decorator) => addDecorator(decorator, false));
}
case 'loaders': {
return value.forEach((loader) => addLoader(loader, false));
}
case 'parameters': {
return addParameters({ ...value }, false);
}
case 'argTypesEnhancers': {
return value.forEach((enhancer) => addArgTypesEnhancer(enhancer));
}
case 'argsEnhancers': {
return value.forEach((enhancer) => addArgsEnhancer(enhancer));
}
case 'render': {
return setGlobalRender(value);
}
case 'globals':
case 'globalTypes': {
const v = {};
v[key] = value;
return addParameters(v, false);
}
case 'decorateStory':
case 'renderToDOM': {
return null; // This key is not handled directly in v6 mode.
}
default: {
// eslint-disable-next-line prefer-template
return console.log(key + ' was not supported :( !');
}
}
});