main.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { defineMain } from "storybook-solidjs-vite"
  2. import path from "node:path"
  3. import { fileURLToPath } from "node:url"
  4. import tailwindcss from "@tailwindcss/vite"
  5. import { playgroundCss } from "./playground-css-plugin"
  6. const here = path.dirname(fileURLToPath(import.meta.url))
  7. const ui = path.resolve(here, "../../ui")
  8. const sessionUi = path.resolve(here, "../../session-ui")
  9. const app = path.resolve(here, "../../app/src")
  10. const mocks = path.resolve(here, "./mocks")
  11. export default defineMain({
  12. framework: {
  13. name: "storybook-solidjs-vite",
  14. options: {},
  15. },
  16. addons: [
  17. "@storybook/addon-onboarding",
  18. "@storybook/addon-docs",
  19. "@storybook/addon-links",
  20. "@storybook/addon-a11y",
  21. "@storybook/addon-vitest",
  22. ],
  23. stories: [
  24. "../../ui/src/**/*.stories.@(js|jsx|mjs|ts|tsx)",
  25. "../../session-ui/src/**/*.stories.@(js|jsx|mjs|ts|tsx)",
  26. "../../app/src/**/*.stories.@(js|jsx|mjs|ts|tsx)",
  27. ],
  28. async viteFinal(config) {
  29. const { mergeConfig, searchForWorkspaceRoot } = await import("vite")
  30. return mergeConfig(config, {
  31. plugins: [tailwindcss(), playgroundCss()],
  32. resolve: {
  33. dedupe: ["solid-js", "solid-js/web", "@solidjs/meta"],
  34. alias: [
  35. { find: "@solidjs/router", replacement: path.resolve(mocks, "solid-router.tsx") },
  36. { find: /^@\/context\/local$/, replacement: path.resolve(mocks, "app/context/local.ts") },
  37. { find: /^@\/context\/file$/, replacement: path.resolve(mocks, "app/context/file.ts") },
  38. { find: /^@\/context\/prompt$/, replacement: path.resolve(mocks, "app/context/prompt.ts") },
  39. { find: /^@\/context\/layout$/, replacement: path.resolve(mocks, "app/context/layout.ts") },
  40. { find: /^@\/context\/sdk$/, replacement: path.resolve(mocks, "app/context/sdk.ts") },
  41. { find: /^@\/context\/sync$/, replacement: path.resolve(mocks, "app/context/sync.ts") },
  42. { find: /^@\/context\/comments$/, replacement: path.resolve(mocks, "app/context/comments.ts") },
  43. { find: /^@\/context\/command$/, replacement: path.resolve(mocks, "app/context/command.ts") },
  44. { find: /^@\/context\/permission$/, replacement: path.resolve(mocks, "app/context/permission.ts") },
  45. { find: /^@\/context\/language$/, replacement: path.resolve(mocks, "app/context/language.ts") },
  46. { find: /^@\/context\/platform$/, replacement: path.resolve(mocks, "app/context/platform.ts") },
  47. { find: /^@\/context\/global-sync$/, replacement: path.resolve(mocks, "app/context/global-sync.ts") },
  48. { find: /^@\/hooks\/use-providers$/, replacement: path.resolve(mocks, "app/hooks/use-providers.ts") },
  49. {
  50. find: /^@\/components\/dialog-select-model$/,
  51. replacement: path.resolve(mocks, "app/components/dialog-select-model.tsx"),
  52. },
  53. {
  54. find: /^@\/components\/dialog-select-model-unpaid$/,
  55. replacement: path.resolve(mocks, "app/components/dialog-select-model-unpaid.tsx"),
  56. },
  57. { find: "@", replacement: app },
  58. ],
  59. },
  60. worker: {
  61. format: "es",
  62. },
  63. server: {
  64. fs: {
  65. allow: [searchForWorkspaceRoot(process.cwd()), ui, sessionUi, app, mocks],
  66. },
  67. },
  68. })
  69. },
  70. })