Skip to content

Commit

Permalink
feat(storybook): vite + chore(pnpm): hoist storybook
Browse files Browse the repository at this point in the history
`storiesOf` are deprecated with `storyStoreV7` so `Icon.stories.tsx` is being explicitly ignored in storybook until it's been refactored
  • Loading branch information
oscario2 committed Jun 11, 2022
1 parent fba7001 commit 312e678
Show file tree
Hide file tree
Showing 9 changed files with 2,791 additions and 694 deletions.
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
public-hoist-pattern[]=*storybook*
53 changes: 42 additions & 11 deletions .storybook/main.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,44 @@
//'../packages/**/*.stories.mdx',
const { sync: glob } = require('fast-glob');
const tsconfigPaths = require('vite-tsconfig-paths');

// do not change
const previewFolder = 'node_modules/.cache/storybook/public';

// create `cache` folder if not exists
require('fs').mkdirSync(previewFolder, { recursive: true });

/** @type {import('@storybook/builder-vite').StorybookViteConfig} */
module.exports = {
stories: [
"../packages/**/*.stories.mdx",
"../packages/**/*.stories.@(js|jsx|ts|tsx)",
],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-interactions",
],
framework: "@storybook/react",
stories: glob('packages/**/*.stories.@(js|jsx|ts|tsx)', {
ignore: [
'packages/**/node_modules/**/*',
'packages/**/Icon.stories.tsx',
],
onlyFiles: true,
absolute: true,
}),
addons: ['@storybook/addon-links', '@storybook/addon-essentials'],
framework: '@storybook/react',
staticDirs: ['../' + previewFolder],
typescript: {
check: true,
},
core: {
builder: '@storybook/builder-vite',
disableTelemetry: true,
},
features: {
storyStoreV7: true,
},
async viteFinal(config, { configType }) {
config.plugins.push(tsconfigPaths.default());
config.resolve = {
...config.resolve,
alias: {
...config.resolve.alias,
fs: require.resolve('rollup-plugin-node-builtins'),
},
};
return config;
},
};
23 changes: 13 additions & 10 deletions .storybook/preview.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
export const parameters = {
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/
}
},
options: {
storySort: (a, b) => (a[1].kind === b[1].kind ? 0 : a[1].id.localeCompare(b[1].id, undefined, { numeric: true }))
}
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
},
options: {
storySort: (a, b) =>
a.title === b.title
? 0
: a.id.localeCompare(b.id, undefined, { numeric: true }),
},
};
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,15 @@
"@vitejs/plugin-react": "^1.3.2",
"eslint": "~8.12.0",
"eslint-config-prettier": "8.1.0",
"fast-glob": "^3.2.11",
"jest": "^28.1.0",
"jest-styled-components": "^7.0.8",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-lazily": "^0.9.1",
"rollup-plugin-dts": "^4.2.1",
"rollup-plugin-node-builtins": "^2.1.2",
"storybook": "^6.5.8",
"styled-components": "^5.3.5",
"ts-jest": "27.1.4",
"ts-node": "9.1.1",
Expand Down
43 changes: 22 additions & 21 deletions packages/config/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,31 +1,32 @@
import react from '@vitejs/plugin-react';
import { PluginOption } from 'vite';
import { UserConfigExport } from 'vite';
import dts from 'vite-plugin-dts';

/**
*
* @param cwd
* @param external
* @param external packages as peer dependencies
*/
const config = (cwd: string, external?: string[]): UserConfigExport => {
return {
root: cwd,
plugins: [
react(),
dts({ entryRoot: cwd + "/src", outputDir: cwd + "/dist" }),
],
build: {
emptyOutDir: true,
lib: {
entry: cwd + '/src/index.ts',
fileName: 'index',
formats: ['es', 'cjs'],
},
outDir: cwd + '/dist',
rollupOptions: {
external,
},
},
};
const cfg: UserConfigExport = {
root: cwd,
plugins: [
react() as PluginOption,
dts({ entryRoot: cwd + '/src', outputDir: cwd + '/dist' }),
],
build: {
emptyOutDir: true,
lib: {
entry: cwd + '/src/index.ts',
fileName: 'index',
formats: ['es', 'cjs'],
},
outDir: cwd + '/dist',
rollupOptions: {
external,
},
},
};
return cfg;
};
export default config;
6 changes: 4 additions & 2 deletions packages/core/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { defineConfig } from 'vite';
import { defineConfig, UserConfigExport } from 'vite';
import config from './node_modules/@web3uikit/config/vite.config';

export default defineConfig({ ...config(__dirname, ['react', 'react-dom']) });
export default defineConfig({
...(config(__dirname, ['react', 'react-dom']) as UserConfigExport),
});
6 changes: 4 additions & 2 deletions packages/icons/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { defineConfig } from 'vite';
import { defineConfig, UserConfigExport } from 'vite';
import config from './node_modules/@web3uikit/config/vite.config';

export default defineConfig({ ...config(__dirname, ['react', 'react-dom']) });
export default defineConfig({
...(config(__dirname, ['react', 'react-dom']) as UserConfigExport),
});
4 changes: 2 additions & 2 deletions packages/ui/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defineConfig } from 'vite';
import { defineConfig, UserConfigExport } from 'vite';
import config from './node_modules/@web3uikit/config/vite.config';

export default defineConfig({
...config(__dirname, ['react', 'react-dom', 'moralis', 'react-moralis']),
...(config(__dirname, ['react', 'react-dom']) as UserConfigExport),
});
Loading

0 comments on commit 312e678

Please sign in to comment.