UNPKG

@applitools/eyes-storybook

Version:
100 lines (91 loc) 2.73 kB
const thirdPartyFrameworks = ['storybook-solidjs-vite', 'storybook-framework-qwik']; const storybookFrameworks = [ '@storybook/angular', '@storybook/ember', '@storybook/html-vite', '@storybook/nextjs-vite', '@storybook/nextjs', '@storybook/preact-vite', '@storybook/react-native-web-vite', '@storybook/react-vite', '@storybook/react-webpack5', '@storybook/server-webpack5', '@storybook/svelte-vite', '@storybook/sveltekit', '@storybook/vue3-vite', '@storybook/web-components-vite', ]; const storybookRenderers = [ '@storybook/html', '@storybook/preact', '@storybook/react', '@storybook/server', '@storybook/svelte', '@storybook/vue3', '@storybook/web-components', ]; // Superset list of frameworks (ignoring vite, webpack, kit, etc.) const frameworksSuperset = [ 'angular', 'ember', 'html', 'nextjs', 'preact', 'react', 'react-native-web', 'server', 'svelte', 'sveltekit', 'vue3', 'web-components', 'solidjs', 'qwik', ]; const mapFrameworksToSuperset = { '@storybook/angular': 'angular', '@storybook/ember': 'ember', '@storybook/html-vite': 'html', '@storybook/nextjs-vite': 'nextjs', '@storybook/nextjs': 'nextjs', '@storybook/preact-vite': 'preact', '@storybook/react-native-web-vite': 'react-native-web', '@storybook/react-vite': 'react', '@storybook/react-webpack5': 'react', '@storybook/server-webpack5': 'server', '@storybook/svelte-vite': 'svelte', '@storybook/sveltekit': 'sveltekit', '@storybook/vue3-vite': 'vue3', '@storybook/web-components-vite': 'web-components', '@storybook/html': 'html', '@storybook/preact': 'preact', '@storybook/react': 'react', '@storybook/server': 'server', '@storybook/svelte': 'svelte', '@storybook/vue3': 'vue3', '@storybook/web-components': 'web-components', 'storybook-solidjs-vite': 'solidjs', 'storybook-framework-qwik': 'qwik', }; const reduceFrameworks = fw => { const reducedSet = new Set(); fw.forEach(element => { const mapped = mapFrameworksToSuperset[element]; if (mapped) reducedSet.add(mapped); }); return Array.from(reducedSet); }; const frameworksSet = new Set([ ...thirdPartyFrameworks, ...storybookFrameworks, ...storybookRenderers, ]); function getStorybookFrameworks(dependencies = {}, devDependencies = {}, peerDependencies = {}) { const allDeps = Object.assign({}, dependencies, devDependencies, peerDependencies); const dependencyFrameworks = Object.keys(allDeps).filter(dep => frameworksSet.has(dep)); const superSet = reduceFrameworks(dependencyFrameworks); return {frameworksCommaSeparated: superSet.join(','), dependencyFrameworks}; } module.exports = { frameworksSuperset, getStorybookFrameworks, };