Skip to content

Commit 6598f73

Browse files
Merge pull request #28503 from storybookjs/valentin/fix-core-dist-type-creation
Types: Update type signatures of objects and functions
2 parents 3b04c5b + 8be78f2 commit 6598f73

File tree

11 files changed

+61
-12
lines changed

11 files changed

+61
-12
lines changed

code/frameworks/nextjs/src/portable-stories.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import type {
1111
Store_CSFExports,
1212
StoriesWithPartialProps,
1313
NamedOrDefaultProjectAnnotations,
14+
ComposedStoryFn,
1415
} from 'storybook/internal/types';
1516

1617
// ! ATTENTION: This needs to be a relative import so it gets prebundled. This is to avoid ESM issues in Nextjs + Jest setups
@@ -80,7 +81,7 @@ export function composeStory<TArgs extends Args = Args>(
8081
componentAnnotations: Meta<TArgs | any>,
8182
projectAnnotations?: ProjectAnnotations<ReactRenderer>,
8283
exportsName?: string
83-
) {
84+
): ComposedStoryFn<ReactRenderer, Partial<TArgs>> {
8485
return originalComposeStory<ReactRenderer, TArgs>(
8586
story as StoryAnnotationsOrFn<ReactRenderer, Args>,
8687
componentAnnotations,

code/renderers/react/src/docs/extractArgTypes.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { StrictArgTypes } from 'storybook/internal/types';
22
import type { PropDef, ArgTypesExtractor } from 'storybook/internal/docs-tools';
33
import { extractProps } from './extractProps';
44

5-
export const extractArgTypes: ArgTypesExtractor = (component) => {
5+
export const extractArgTypes: ArgTypesExtractor = (component): StrictArgTypes | null => {
66
if (component) {
77
const { rows } = extractProps(component);
88
if (rows) {

code/renderers/react/src/entry-preview-docs.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
11
import type { ArgTypesEnhancer, DecoratorFunction } from 'storybook/internal/types';
2+
import type { ArgTypesExtractor } from 'storybook/internal/docs-tools';
23
import { extractComponentDescription, enhanceArgTypes } from 'storybook/internal/docs-tools';
34

45
import { extractArgTypes } from './docs/extractArgTypes';
56
import { jsxDecorator } from './docs/jsxDecorator';
67
import type { ReactRenderer } from './types';
78

8-
export const parameters = {
9+
export const parameters: {
10+
docs: {
11+
story: {
12+
inline: boolean;
13+
};
14+
extractArgTypes: ArgTypesExtractor;
15+
extractComponentDescription: (component?: any) => string;
16+
};
17+
} = {
918
docs: {
1019
story: { inline: true },
1120
extractArgTypes,

code/renderers/react/src/portable-stories.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import type {
1010
Store_CSFExports,
1111
StoriesWithPartialProps,
1212
ProjectAnnotations,
13+
ComposedStoryFn,
1314
} from 'storybook/internal/types';
1415

1516
import * as reactProjectAnnotations from './entry-preview';
@@ -85,7 +86,7 @@ export function composeStory<TArgs extends Args = Args>(
8586
componentAnnotations: Meta<TArgs | any>,
8687
projectAnnotations?: ProjectAnnotations<ReactRenderer>,
8788
exportsName?: string
88-
) {
89+
): ComposedStoryFn<ReactRenderer, Partial<TArgs>> {
8990
return originalComposeStory<ReactRenderer, TArgs>(
9091
story as StoryAnnotationsOrFn<ReactRenderer, Args>,
9192
componentAnnotations,

code/renderers/svelte/src/docs/extractArgTypes.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@ function hasKeyword(keyword: string, keywords: JSDocKeyword[]): boolean {
1717
return keywords ? keywords.find((k) => k.name === keyword) != null : false;
1818
}
1919

20-
export const extractArgTypes: ArgTypesExtractor = (component: ComponentWithDocgen) => {
20+
export const extractArgTypes: ArgTypesExtractor = (
21+
component: ComponentWithDocgen
22+
): StrictArgTypes | null => {
2123
try {
2224
// eslint-disable-next-line no-underscore-dangle
2325
const docgen = component.__docgen;

code/renderers/svelte/src/entry-preview-docs.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
11
import type { ArgTypesEnhancer, DecoratorFunction } from 'storybook/internal/types';
2+
import type { ArgTypesExtractor } from 'storybook/internal/docs-tools';
23
import { enhanceArgTypes } from 'storybook/internal/docs-tools';
34
import { extractArgTypes } from './docs/extractArgTypes';
45
import { extractComponentDescription } from './docs/extractComponentDescription';
56
import { sourceDecorator } from './docs/sourceDecorator';
67
import type { SvelteRenderer } from './types';
78

8-
export const parameters = {
9+
export const parameters: {
10+
docs: {
11+
story: {
12+
inline: boolean;
13+
};
14+
extractArgTypes: ArgTypesExtractor;
15+
extractComponentDescription: (component?: any) => string;
16+
};
17+
} = {
918
docs: {
1019
story: { inline: true },
1120
extractArgTypes,

code/renderers/svelte/src/portable-stories.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ export function composeStory<TArgs extends Args = Args>(
103103
componentAnnotations: Meta<TArgs | any>,
104104
projectAnnotations?: ProjectAnnotations<SvelteRenderer>,
105105
exportsName?: string
106-
) {
106+
): ComposedStory<TArgs> {
107107
const composedStory = originalComposeStory<SvelteRenderer, TArgs>(
108108
story as StoryAnnotationsOrFn<SvelteRenderer, Args>,
109109
// @ts-expect-error Fix this later: Type 'Partial<{ [x: string]: any; }>' is not assignable to type 'Partial<Simplify<TArgs, {}>>'

code/renderers/vue3/src/docs/extractArgTypes.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type PropertyMetaSchema = VueDocgenInfoEntry<'vue-component-meta', 'props'>['sch
1313
// "exposed" is used by the vue-component-meta plugin while "expose" is used by vue-docgen-api
1414
const ARG_TYPE_SECTIONS = ['props', 'events', 'slots', 'exposed', 'expose'] as const;
1515

16-
export const extractArgTypes: ArgTypesExtractor = (component) => {
16+
export const extractArgTypes: ArgTypesExtractor = (component): StrictArgTypes | null => {
1717
if (!hasDocgen<VueDocgenInfo<VueDocgenPlugin>>(component)) {
1818
return null;
1919
}

code/renderers/vue3/src/entry-preview-docs.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11
import type { ArgTypesEnhancer, DecoratorFunction } from 'storybook/internal/types';
2+
import type { ArgTypesExtractor } from 'storybook/internal/docs-tools';
23
import { extractComponentDescription, enhanceArgTypes } from 'storybook/internal/docs-tools';
34
import { extractArgTypes } from './docs/extractArgTypes';
45
import { sourceDecorator } from './docs/sourceDecorator';
56
import type { VueRenderer } from './types';
67

7-
export const parameters = {
8+
export const parameters: {
9+
docs: {
10+
story: {
11+
inline: boolean;
12+
};
13+
extractArgTypes: ArgTypesExtractor;
14+
extractComponentDescription: (component?: any) => string;
15+
};
16+
} = {
817
docs: {
918
story: { inline: true },
1019
extractArgTypes,

code/renderers/vue3/src/portable-stories.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import type {
1010
StoryAnnotationsOrFn,
1111
Store_CSFExports,
1212
StoriesWithPartialProps,
13+
ComposedStoryFn,
1314
} from 'storybook/internal/types';
1415
import { TestingLibraryMustBeConfiguredError } from 'storybook/internal/preview-errors';
1516
import { h } from 'vue';
@@ -91,7 +92,7 @@ export function composeStory<TArgs extends Args = Args>(
9192
componentAnnotations: Meta<TArgs | any>,
9293
projectAnnotations?: ProjectAnnotations<VueRenderer>,
9394
exportsName?: string
94-
) {
95+
): JSXAble<ComposedStoryFn<VueRenderer, Partial<TArgs>>> {
9596
const composedStory = originalComposeStory<VueRenderer, TArgs>(
9697
story as StoryAnnotationsOrFn<VueRenderer, Args>,
9798
componentAnnotations,

code/renderers/web-components/src/entry-preview-docs.ts

+19-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,29 @@
1-
import type { ArgTypesEnhancer, DecoratorFunction } from 'storybook/internal/types';
1+
import type { ArgTypesEnhancer, DecoratorFunction, InputType } from 'storybook/internal/types';
22
import { SourceType, enhanceArgTypes } from 'storybook/internal/docs-tools';
33
import { extractArgTypes, extractComponentDescription } from './docs/custom-elements';
44
import { sourceDecorator } from './docs/sourceDecorator';
55
import type { WebComponentsRenderer } from './types';
66

77
export const decorators: DecoratorFunction<WebComponentsRenderer>[] = [sourceDecorator];
88

9-
export const parameters = {
9+
export const parameters: {
10+
docs: {
11+
extractArgTypes: (tagName: string) =>
12+
| {
13+
[x: string]: InputType;
14+
}
15+
| null
16+
| undefined;
17+
extractComponentDescription: (tagName: string) => string | null | undefined;
18+
story: {
19+
inline: true;
20+
};
21+
source: {
22+
type: SourceType;
23+
language: string;
24+
};
25+
};
26+
} = {
1027
docs: {
1128
extractArgTypes,
1229
extractComponentDescription,

0 commit comments

Comments
 (0)