From 37e7c8f9606d32feebedb2c4ab1d70bfc83cbb45 Mon Sep 17 00:00:00 2001 From: Tom Coleman Date: Mon, 6 Sep 2021 07:49:21 +1000 Subject: [PATCH] Add `StoryStore.getStoriesJsonData()` --- lib/store/src/StoryStore.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/store/src/StoryStore.ts b/lib/store/src/StoryStore.ts index cfc04dc20de..0f6619444ea 100644 --- a/lib/store/src/StoryStore.ts +++ b/lib/store/src/StoryStore.ts @@ -7,6 +7,8 @@ import { GlobalAnnotations, ComponentTitle, } from '@storybook/csf'; +import mapValues from 'lodash/mapValues'; +import pick from 'lodash/pick'; import { StoriesListStore } from './StoriesListStore'; import { ArgsStore } from './ArgsStore'; @@ -284,6 +286,22 @@ export class StoryStore { }; } + // TODO -- do we need this? + getStoriesJsonData = () => { + const value = this.getSetStoriesPayload(); + const allowedParameters = ['fileName', 'docsOnly', 'framework', '__id', '__isArgsStory']; + + return { + v: 2, + globalParameters: pick(value.globalParameters, allowedParameters), + kindParameters: mapValues(value.kindParameters, (v) => pick(v, allowedParameters)), + stories: mapValues(value.stories, (v: any) => ({ + ...pick(v, ['id', 'name', 'kind', 'story']), + parameters: pick(v.parameters, allowedParameters), + })), + }; + }; + raw() { return this.extract().map(({ id }: { id: StoryId }) => this.fromId(id)); }