diff --git a/packages/frameworks/solid-vite/package.json b/packages/frameworks/solid-vite/package.json index f87e656..ad160d0 100644 --- a/packages/frameworks/solid-vite/package.json +++ b/packages/frameworks/solid-vite/package.json @@ -1,7 +1,7 @@ { "name": "storybook-solidjs-vite", "type": "module", - "version": "1.0.0-beta.4", + "version": "1.0.0-beta.5", "description": "Storybook for SolidJS and Vite: Develop SolidJS in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/packages/renderers/solid/package.json b/packages/renderers/solid/package.json index eb2720a..5445aa9 100644 --- a/packages/renderers/solid/package.json +++ b/packages/renderers/solid/package.json @@ -1,7 +1,7 @@ { "name": "storybook-solidjs", "type": "module", - "version": "1.0.0-beta.4", + "version": "1.0.0-beta.5", "description": "Storybook SolidJS renderer", "keywords": [ "storybook" diff --git a/packages/renderers/solid/src/docs/sourceDecorator.test.tsx b/packages/renderers/solid/src/docs/sourceDecorator.test.tsx index 07b8361..3a2f28e 100644 --- a/packages/renderers/solid/src/docs/sourceDecorator.test.tsx +++ b/packages/renderers/solid/src/docs/sourceDecorator.test.tsx @@ -61,6 +61,19 @@ test('component with method prop', () => { `); }); +test('component with typescript', () => { + const newSrc = generateSolidSource( + 'Component', + '{ args: { double: (x: number) => { return x * 2; } } }', + ); + + expect(newSrc).toMatchInlineSnapshot(` + " { + return x * 2; + }} />" + `); +}); + test('component missing story config', () => { const newSrc = () => generateSolidSource('Component', '5 + 4'); diff --git a/packages/renderers/solid/src/docs/sourceDecorator.tsx b/packages/renderers/solid/src/docs/sourceDecorator.tsx index 5bc035d..68e711d 100644 --- a/packages/renderers/solid/src/docs/sourceDecorator.tsx +++ b/packages/renderers/solid/src/docs/sourceDecorator.tsx @@ -159,7 +159,7 @@ interface SolidProps { * The source code will be in the form of a `Story` object. */ function parseProps(src: string): SolidProps { - const ast = parser.parseExpression(src, { plugins: ['jsx'] }); + const ast = parser.parseExpression(src, { plugins: ['jsx', 'typescript'] }); if (ast.type != 'ObjectExpression') throw 'Expected `ObjectExpression` type'; // Find args property. const args_prop = ast.properties.find((v: any) => {