fbredius/storybook

View on GitHub
addons/docs/src/frameworks/common/enhanceArgTypes.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { AnyFramework, StoryContextForEnhancers } from '@storybook/csf';
import { combineParameters } from '@storybook/store';

export const enhanceArgTypes = <TFramework extends AnyFramework>(
  context: StoryContextForEnhancers<TFramework>
) => {
  const {
    component,
    argTypes: userArgTypes,
    parameters: { docs = {} },
  } = context;
  const { extractArgTypes } = docs;

  const extractedArgTypes = extractArgTypes && component ? extractArgTypes(component) : {};
  const withExtractedTypes = extractedArgTypes
    ? combineParameters(extractedArgTypes, userArgTypes)
    : userArgTypes;

  return withExtractedTypes;
};