UNPKG

10.2 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/storybook-addon.js"],"names":["CHROMATIC_PARAMETERS","specFromStory","id","kind","name","parameters","chromatic","param","value","storyId","component","displayName","split","slice","reduce","acc","key","extract","global","__STORYBOOK_CLIENT_API__","Error","storyStore","_storyStore","Object","values","map","getStorybook","stories","getStoryAndParameters","a","b","__renderChromaticSpec__","assign","story","__STORYBOOK_ADDONS_CHANNEL__","sanitize","string","toLowerCase","replace","sanitizeSafe","part","sanitized","toId","k","n","channel","Promise","resolve","reject","on","document","getElementById","error","emit","_handleEvent","type","args","from","body","classList","contains","message","textContent","stack","isDeprecated","__chromaticRuntimeSpecs__","dedent"],"mappings":"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","sourcesContent":["/* eslint-disable no-underscore-dangle */\n/* eslint-env browser */\nimport deprecate from 'util-deprecate';\nimport dedent from 'ts-dedent';\n\nimport isChromatic from './isChromatic';\n\nconst CHROMATIC_PARAMETERS = [\n 'viewports',\n 'delay',\n 'disable',\n 'noScroll',\n 'diffThreshold',\n 'pauseAnimationAtEnd',\n];\n\nfunction specFromStory({ id, kind, name, parameters: { chromatic } = {} }) {\n const param = value => (typeof value === 'function' ? value({ id, kind, name }) : value);\n return {\n storyId: id,\n name,\n component: {\n name: kind,\n displayName: kind.split(/\\||\\/|\\./).slice(-1)[0],\n },\n parameters:\n chromatic &&\n CHROMATIC_PARAMETERS.reduce(\n (acc, key) => (chromatic[key] ? { ...acc, [key]: param(chromatic[key]) } : acc),\n {}\n ),\n };\n}\n\nconst extract = global => {\n const { __STORYBOOK_CLIENT_API__ } = global;\n\n if (!__STORYBOOK_CLIENT_API__) {\n throw new Error(\n `Chromatic requires Storybook version at least 3.4. Please update your Storybook!`\n );\n }\n\n const storyStore = __STORYBOOK_CLIENT_API__._storyStore;\n\n // Storybook 5+ API\n if (storyStore.extract) {\n return Object.values(storyStore.extract()).map(specFromStory);\n }\n\n // Storybook 4- API\n return __STORYBOOK_CLIENT_API__\n .getStorybook()\n .map(({ kind, stories }) =>\n stories.map(({ name }) =>\n specFromStory({\n kind,\n name,\n parameters:\n storyStore.getStoryAndParameters &&\n storyStore.getStoryAndParameters(kind, name).parameters,\n })\n )\n )\n .reduce((a, b) => [...a, ...b], []); // flatten\n};\n\ndeprecate(\n () => {\n global.__renderChromaticSpec__ = Object.assign(\n async ({ storyId, name: story, component: { name: kind } }) => {\n const { __STORYBOOK_CLIENT_API__, __STORYBOOK_ADDONS_CHANNEL__ } = global;\n\n if (!__STORYBOOK_CLIENT_API__ && !__STORYBOOK_ADDONS_CHANNEL__) {\n throw new Error(\n `Chromatic requires Storybook version at least 3.4. Please update your Storybook!`\n );\n }\n\n const sanitize = string => {\n return (\n string\n .toLowerCase()\n // eslint-disable-next-line no-useless-escape\n .replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\\-=?;:'\",.<>\\{\\}\\[\\]\\\\\\/]/gi, '-')\n .replace(/-+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '')\n );\n };\n\n const sanitizeSafe = (string, part) => {\n const sanitized = sanitize(string);\n if (sanitized === '') {\n throw new Error(`Invalid ${part} '${string}', must include alphanumeric characters`);\n }\n return sanitized;\n };\n\n const toId = (k, n) => `${sanitizeSafe(k, 'kind')}--${sanitizeSafe(n, 'name')}`;\n\n const channel = __STORYBOOK_ADDONS_CHANNEL__;\n const storyStore = __STORYBOOK_CLIENT_API__._storyStore;\n\n // In Storybook 5+ we can be sure of the emitting, and we need to use a storyId API\n if (storyStore.extract) {\n return new Promise((resolve, reject) => {\n channel.on('storyRendered', () => resolve(document.getElementById('root')));\n channel.on('storyUnchanged', () => resolve(document.getElementById('root')));\n channel.on('storyErrored', error => reject(error));\n channel.on('storyThrewException', error => reject(error));\n channel.on('storyMissing', () => reject(new Error('storyMissing')));\n\n channel.emit('setCurrentStory', { storyId: storyId || toId(kind, story) });\n });\n }\n\n // We need to emulate the event sent by the manager to the preview.\n // In SB@4+ if we emit a message on the channel it will get picked up by the preview\n // (note that we are on the preview side). However, in SB@3.4, perhaps more correctly,\n // if we emit a message, it won't be picked up by the preview. So we need to reach\n // in and simulate receiving an event\n channel._handleEvent({\n type: 'setCurrentStory',\n args: [{ kind, story }],\n from: 'chromatic',\n });\n\n // If the story has rendered with an error, SB does not return any kind of error\n // (we will fix this...) However, in the meantime, you can pick this up via a class on the body\n if (document.body.classList.contains('sb-show-errordisplay')) {\n const message = document.getElementById('error-message').textContent;\n const stack = document.getElementById('error-stack').textContent;\n const error = new Error(message);\n error.stack = stack;\n throw error;\n }\n\n return document.getElementById('root');\n },\n { isDeprecated: true }\n );\n global.__chromaticRuntimeSpecs__ = Object.assign(async () => extract(global), {\n isDeprecated: true,\n });\n },\n dedent`\n You're importing 'storybook-chromatic' in your config.js\n This is no longer necessary!\n\n If you're importing { isChromatic } in your stories, please change that to:\n \"import isChromatic from \"storybook-chromatic/isChromatic\";\"\n `\n)();\n\nexport { isChromatic };\n"],"file":"storybook-addon.js"}
\No newline at end of file