vite-plugin-react-server 0.3.9 → 0.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/dist/client.d.ts +1 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +1 -1
  4. package/dist/index.d.ts +3 -6
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/package.json +2 -4
  9. package/dist/plugin/assertServerCondition.d.ts +5 -1
  10. package/dist/plugin/assertServerCondition.d.ts.map +1 -1
  11. package/dist/plugin/assertServerCondition.js +1 -3
  12. package/dist/plugin/checkFilesExist.js +10 -7
  13. package/dist/plugin/checkFilesExist.js.map +1 -1
  14. package/dist/plugin/components.js +1 -1
  15. package/dist/plugin/components.js.map +1 -1
  16. package/dist/plugin/config/createModuleIdGenerator.d.ts +11 -0
  17. package/dist/plugin/config/createModuleIdGenerator.d.ts.map +1 -0
  18. package/dist/plugin/config/createModuleIdGenerator.js +44 -0
  19. package/dist/plugin/config/createModuleIdGenerator.js.map +1 -0
  20. package/dist/plugin/config/defaults.d.ts +31 -19
  21. package/dist/plugin/config/defaults.d.ts.map +1 -1
  22. package/dist/plugin/config/defaults.js +22 -27
  23. package/dist/plugin/config/defaults.js.map +1 -1
  24. package/dist/plugin/config/resolveOptions.d.ts +1 -1
  25. package/dist/plugin/config/resolveOptions.d.ts.map +1 -1
  26. package/dist/plugin/config/resolveOptions.js +202 -16
  27. package/dist/plugin/config/resolveOptions.js.map +1 -1
  28. package/dist/plugin/config/resolvePages.d.ts +2 -0
  29. package/dist/plugin/config/resolvePages.d.ts.map +1 -1
  30. package/dist/plugin/config/resolvePages.js.map +1 -1
  31. package/dist/plugin/config/resolveUserConfig.d.ts +2 -2
  32. package/dist/plugin/config/resolveUserConfig.d.ts.map +1 -1
  33. package/dist/plugin/config/resolveUserConfig.js +161 -50
  34. package/dist/plugin/config/resolveUserConfig.js.map +1 -1
  35. package/dist/plugin/helpers/getBundleManifest.d.ts +20 -0
  36. package/dist/plugin/helpers/getBundleManifest.d.ts.map +1 -0
  37. package/dist/plugin/helpers/getBundleManifest.js +43 -0
  38. package/dist/plugin/helpers/getBundleManifest.js.map +1 -0
  39. package/dist/plugin/helpers/getModuleManifest.d.ts +5 -0
  40. package/dist/plugin/helpers/getModuleManifest.d.ts.map +1 -1
  41. package/dist/plugin/helpers/getModuleManifest.js +20 -21
  42. package/dist/plugin/helpers/inputNormalizer.d.ts +15 -1
  43. package/dist/plugin/helpers/inputNormalizer.d.ts.map +1 -1
  44. package/dist/plugin/helpers/inputNormalizer.js +122 -16
  45. package/dist/plugin/helpers/inputNormalizer.js.map +1 -1
  46. package/dist/plugin/helpers/inputNormalizerWorker.d.ts +2 -1
  47. package/dist/plugin/helpers/inputNormalizerWorker.d.ts.map +1 -1
  48. package/dist/plugin/helpers/inputNormalizerWorker.js +10 -7
  49. package/dist/plugin/helpers/tryManifest.d.ts +2 -0
  50. package/dist/plugin/helpers/tryManifest.d.ts.map +1 -1
  51. package/dist/plugin/helpers/tryManifest.js +1 -1
  52. package/dist/plugin/helpers/tryManifest.js.map +1 -1
  53. package/dist/plugin/loader/createBuildLoader.d.ts +6 -2
  54. package/dist/plugin/loader/createBuildLoader.d.ts.map +1 -1
  55. package/dist/plugin/loader/createBuildLoader.js +35 -10
  56. package/dist/plugin/loader/createBuildLoader.js.map +1 -1
  57. package/dist/plugin/loader/createPageLoader.d.ts.map +1 -1
  58. package/dist/plugin/loader/createPageLoader.js +0 -7
  59. package/dist/plugin/plugin.d.ts +0 -1
  60. package/dist/plugin/plugin.d.ts.map +1 -1
  61. package/dist/plugin/plugin.js +2 -1
  62. package/dist/plugin/preserver/plugin.d.ts.map +1 -1
  63. package/dist/plugin/preserver/plugin.js +3 -2
  64. package/dist/plugin/preserver/plugin.js.map +1 -1
  65. package/dist/plugin/react-client/index.d.ts +2 -1
  66. package/dist/plugin/react-client/index.d.ts.map +1 -1
  67. package/dist/plugin/react-client/index.js +19 -1
  68. package/dist/plugin/react-client/index.js.map +1 -0
  69. package/dist/plugin/react-client/plugin.d.ts +2 -2
  70. package/dist/plugin/react-client/plugin.d.ts.map +1 -1
  71. package/dist/plugin/react-client/plugin.js +106 -10
  72. package/dist/plugin/react-client/plugin.js.map +1 -1
  73. package/dist/plugin/react-server/createHandler.d.ts +2 -2
  74. package/dist/plugin/react-server/createHandler.d.ts.map +1 -1
  75. package/dist/plugin/react-server/createHandler.js +5 -5
  76. package/dist/plugin/react-server/createHandler.js.map +1 -1
  77. package/dist/plugin/react-server/createRscStream.d.ts.map +1 -1
  78. package/dist/plugin/react-server/createRscStream.js +15 -1
  79. package/dist/plugin/react-server/createRscStream.js.map +1 -1
  80. package/dist/plugin/react-server/createSsrHandler.d.ts +2 -2
  81. package/dist/plugin/react-server/createSsrHandler.d.ts.map +1 -1
  82. package/dist/plugin/react-server/createSsrHandler.js +5 -12
  83. package/dist/plugin/react-server/index.js +18 -9
  84. package/dist/plugin/react-server/index.js.map +1 -0
  85. package/dist/plugin/react-server/plugin.d.ts.map +1 -1
  86. package/dist/plugin/react-server/plugin.js +133 -127
  87. package/dist/plugin/react-server/plugin.js.map +1 -1
  88. package/dist/plugin/transformer/plugin.d.ts +2 -1
  89. package/dist/plugin/transformer/plugin.d.ts.map +1 -1
  90. package/dist/plugin/transformer/plugin.js +52 -72
  91. package/dist/plugin/transformer/plugin.js.map +1 -1
  92. package/dist/plugin/transformer/transformer-client-components.d.ts +12 -3
  93. package/dist/plugin/transformer/transformer-client-components.d.ts.map +1 -1
  94. package/dist/plugin/transformer/transformer-client-components.js +71 -10
  95. package/dist/plugin/transformer/transformer-client-components.js.map +1 -1
  96. package/dist/plugin/transformer/transformer-server-actions.d.ts +3 -3
  97. package/dist/plugin/transformer/transformer-server-actions.d.ts.map +1 -1
  98. package/dist/plugin/transformer/transformer-server-actions.js +80 -66
  99. package/dist/plugin/transformer/types.d.ts +4 -0
  100. package/dist/plugin/transformer/types.d.ts.map +1 -1
  101. package/dist/plugin/types.d.ts +51 -20
  102. package/dist/plugin/types.d.ts.map +1 -1
  103. package/dist/plugin/worker/html/messageHandler.d.ts.map +1 -1
  104. package/dist/plugin/worker/html/messageHandler.js +37 -23
  105. package/dist/plugin/worker/html/messageHandler.js.map +1 -1
  106. package/dist/plugin/worker/html/plugin.d.ts.map +1 -1
  107. package/dist/plugin/worker/html/plugin.js +10 -5
  108. package/dist/plugin/worker/html/renderPages.d.ts +7 -6
  109. package/dist/plugin/worker/html/renderPages.d.ts.map +1 -1
  110. package/dist/plugin/worker/html/renderPages.js +112 -57
  111. package/dist/plugin/worker/html/renderPages.js.map +1 -1
  112. package/dist/plugin/worker/loader.d.ts +1 -11
  113. package/dist/plugin/worker/loader.d.ts.map +1 -1
  114. package/dist/plugin/worker/loader.js +2 -2
  115. package/dist/plugin/worker/loader.js.map +1 -1
  116. package/dist/plugin/worker/plugin.d.ts +10 -1
  117. package/dist/plugin/worker/plugin.d.ts.map +1 -1
  118. package/dist/plugin/worker/plugin.js +10 -1
  119. package/dist/plugin/worker/types.d.ts +17 -4
  120. package/dist/plugin/worker/types.d.ts.map +1 -1
  121. package/dist/server.d.ts +1 -3
  122. package/dist/server.d.ts.map +1 -1
  123. package/dist/server.js +1 -3
  124. package/dist/server.js.map +1 -1
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +2 -4
  127. package/plugin/assertServerCondition.ts +2 -3
  128. package/plugin/checkFilesExist.ts +10 -10
  129. package/plugin/components.tsx +1 -1
  130. package/plugin/config/createModuleIdGenerator.ts +52 -0
  131. package/plugin/config/defaults.ts +24 -15
  132. package/plugin/config/resolveOptions.ts +253 -25
  133. package/plugin/config/resolvePages.ts +1 -1
  134. package/plugin/config/resolveUserConfig.ts +197 -62
  135. package/plugin/helpers/getBundleManifest.ts +75 -0
  136. package/plugin/helpers/getModuleManifest.ts +5 -0
  137. package/plugin/helpers/inputNormalizer.ts +175 -26
  138. package/plugin/helpers/inputNormalizerWorker.ts +13 -8
  139. package/plugin/helpers/tryManifest.ts +2 -0
  140. package/plugin/loader/createBuildLoader.ts +54 -10
  141. package/plugin/loader/createPageLoader.ts +1 -7
  142. package/plugin/plugin.ts +2 -1
  143. package/plugin/preserver/plugin.ts +2 -1
  144. package/plugin/react-client/index.ts +12 -1
  145. package/plugin/react-client/plugin.ts +127 -12
  146. package/plugin/react-server/createHandler.ts +7 -13
  147. package/plugin/react-server/createRscStream.ts +14 -2
  148. package/plugin/react-server/createSsrHandler.ts +7 -26
  149. package/plugin/react-server/plugin.ts +176 -144
  150. package/plugin/transformer/plugin.ts +69 -94
  151. package/plugin/transformer/transformer-client-components.ts +98 -24
  152. package/plugin/transformer/transformer-server-actions.ts +22 -7
  153. package/plugin/transformer/types.ts +4 -0
  154. package/plugin/types.ts +118 -64
  155. package/plugin/worker/html/messageHandler.ts +46 -31
  156. package/plugin/worker/html/plugin.ts +15 -11
  157. package/plugin/worker/html/renderPages.ts +175 -88
  158. package/plugin/worker/loader.ts +4 -13
  159. package/plugin/worker/plugin.ts +10 -1
  160. package/plugin/worker/types.ts +24 -3
  161. package/dist/node_modules/magic-string/dist/magic-string.es.js +0 -1283
  162. package/dist/node_modules/magic-string/dist/magic-string.es.js.map +0 -1
  163. package/dist/plugin/build/createClientBuildConfig.d.ts +0 -3
  164. package/dist/plugin/build/createClientBuildConfig.d.ts.map +0 -1
  165. package/dist/plugin/build/createClientBuildConfig.js +0 -14
  166. package/dist/plugin/build/createServerBuildConfig.d.ts +0 -12
  167. package/dist/plugin/build/createServerBuildConfig.d.ts.map +0 -1
  168. package/dist/plugin/build/createServerBuildConfig.js +0 -40
  169. package/dist/plugin/build/createSharedBuildConfig.d.ts +0 -5
  170. package/dist/plugin/build/createSharedBuildConfig.d.ts.map +0 -1
  171. package/dist/plugin/build/createSharedBuildConfig.js +0 -28
  172. package/dist/plugin/build/mergeInputs.d.ts +0 -9
  173. package/dist/plugin/build/mergeInputs.d.ts.map +0 -1
  174. package/dist/plugin/build/mergeInputs.js +0 -56
  175. package/dist/plugin/config/moduleIdDefault.d.ts +0 -8
  176. package/dist/plugin/config/moduleIdDefault.d.ts.map +0 -1
  177. package/dist/plugin/config/moduleIdDefault.js +0 -23
  178. package/dist/plugin/config/moduleIdDefault.js.map +0 -1
  179. package/dist/plugin/helpers/getModuleManifest.js.map +0 -1
  180. package/dist/plugin/react-server/createDevMiddleware.d.ts +0 -8
  181. package/dist/plugin/react-server/createDevMiddleware.d.ts.map +0 -1
  182. package/dist/plugin/react-server/createDevMiddleware.js +0 -68
  183. package/dist/plugin/react-server/createDevServer.d.ts +0 -4
  184. package/dist/plugin/react-server/createDevServer.d.ts.map +0 -1
  185. package/dist/plugin/react-server/createDevServer.js +0 -4
  186. package/dist/plugin/react-server/createReactNodeStreamer.d.ts +0 -10
  187. package/dist/plugin/react-server/createReactNodeStreamer.d.ts.map +0 -1
  188. package/dist/plugin/react-server/createReactNodeStreamer.js +0 -7
  189. package/dist/plugin/transformer/transformer-server-actions.js.map +0 -1
  190. package/plugin/build/createClientBuildConfig.ts +0 -21
  191. package/plugin/build/createServerBuildConfig.ts +0 -66
  192. package/plugin/build/createSharedBuildConfig.ts +0 -35
  193. package/plugin/build/mergeInputs.ts +0 -58
  194. package/plugin/config/moduleIdDefault.ts +0 -23
  195. package/plugin/react-server/createDevMiddleware.ts +0 -91
  196. package/plugin/react-server/createDevServer.ts +0 -9
  197. package/plugin/react-server/createReactNodeStreamer.ts +0 -26
@@ -4,46 +4,232 @@
4
4
  * MIT License
5
5
  */
6
6
  import { DEFAULT_CONFIG } from './defaults.js';
7
+ import 'path';
8
+ import { createModuleIdGenerator } from './createModuleIdGenerator.js';
7
9
 
8
- const resolveOptions = (options) => {
10
+ const resolveAutoDiscoverMatcher = (options, fallback) => {
11
+ if (!options) {
12
+ if (typeof fallback === "function") {
13
+ return fallback;
14
+ } else {
15
+ return (path) => fallback.test(path);
16
+ }
17
+ }
18
+ if (typeof options === "string") {
19
+ const matcher = new RegExp(options);
20
+ return (path) => matcher.test(path);
21
+ } else if (typeof options === "function") {
22
+ return options;
23
+ } else {
24
+ return (path) => options.test(path);
25
+ }
26
+ };
27
+ const resolveOptions = (options, isClient = false) => {
9
28
  const projectRoot = options.projectRoot ?? process.cwd();
10
- const build = options.build ?? DEFAULT_CONFIG.BUILD;
29
+ const { pageExportName = DEFAULT_CONFIG.PAGE_EXPORT, propsExportName = DEFAULT_CONFIG.PROPS_EXPORT } = options;
30
+ const pages = typeof options.build?.pages === "function" ? options.build.pages : Array.isArray(options.build?.pages) ? options.build.pages : DEFAULT_CONFIG.BUILD.pages;
31
+ let client = options.build?.client ?? DEFAULT_CONFIG.BUILD.client;
32
+ let server = options.build?.server ?? DEFAULT_CONFIG.BUILD.server;
33
+ const api = options.build?.api ?? DEFAULT_CONFIG.BUILD.api;
34
+ const staticBuild = options.build?.static ?? DEFAULT_CONFIG.BUILD.static;
35
+ const outDir = options.build?.outDir ?? DEFAULT_CONFIG.BUILD.outDir;
36
+ const assetsDir = options.build?.assetsDir ?? `${DEFAULT_CONFIG.CLIENT_ASSETS_DIR}`;
37
+ const ensureModuleBase = (n) => {
38
+ if (!n) return "";
39
+ return n.startsWith(moduleBase + "/") ? n.slice(moduleBase.length + 1) : n;
40
+ };
41
+ const testModulePattern = resolveAutoDiscoverMatcher(
42
+ options.autoDiscover?.modulePattern,
43
+ DEFAULT_CONFIG.AUTO_DISCOVER.modulePattern
44
+ );
45
+ const testJson = resolveAutoDiscoverMatcher(
46
+ options.autoDiscover?.jsonPattern,
47
+ DEFAULT_CONFIG.AUTO_DISCOVER.jsonPattern
48
+ );
49
+ const testCss = resolveAutoDiscoverMatcher(
50
+ options.autoDiscover?.cssPattern,
51
+ DEFAULT_CONFIG.AUTO_DISCOVER.cssPattern
52
+ );
53
+ const testHtml = resolveAutoDiscoverMatcher(
54
+ options.autoDiscover?.htmlPattern,
55
+ DEFAULT_CONFIG.AUTO_DISCOVER.htmlPattern
56
+ );
57
+ const testClientComponents = resolveAutoDiscoverMatcher(
58
+ options.autoDiscover?.clientComponents,
59
+ DEFAULT_CONFIG.AUTO_DISCOVER.clientComponents
60
+ );
61
+ const testServerFunctions = resolveAutoDiscoverMatcher(
62
+ options.autoDiscover?.serverFunctions,
63
+ DEFAULT_CONFIG.AUTO_DISCOVER.serverFunctions
64
+ );
65
+ const testPropsPattern = resolveAutoDiscoverMatcher(
66
+ options.autoDiscover?.propsPattern,
67
+ DEFAULT_CONFIG.AUTO_DISCOVER.propsPattern
68
+ );
69
+ const testPagePattern = resolveAutoDiscoverMatcher(
70
+ options.autoDiscover?.pagePattern,
71
+ DEFAULT_CONFIG.AUTO_DISCOVER.pagePattern
72
+ );
73
+ const testCssModule = resolveAutoDiscoverMatcher(
74
+ options.autoDiscover?.cssModulePattern,
75
+ DEFAULT_CONFIG.AUTO_DISCOVER.cssModulePattern
76
+ );
77
+ const testVendor = resolveAutoDiscoverMatcher(
78
+ options.autoDiscover?.vendorPattern,
79
+ DEFAULT_CONFIG.AUTO_DISCOVER.vendorPattern
80
+ );
81
+ const preserveModulesRoot = options.build?.preserveModulesRoot ?? DEFAULT_CONFIG.BUILD.preserveModulesRoot;
82
+ const hashOption = typeof options.build?.hash === "string" ? options.build.hash : DEFAULT_CONFIG.BUILD.hash;
83
+ const hashString = hashOption === "" ? "" : `-[${hashOption}]`;
84
+ const hash = (n) => {
85
+ if (!n) return "";
86
+ if (hashString === "" || !isClient && !testClientComponents(n)) return n;
87
+ const extensionIndex = n.lastIndexOf(".");
88
+ if (extensionIndex !== -1 && !testClientComponents(n)) {
89
+ const extension = n.slice(extensionIndex);
90
+ const filename = n.slice(0, extensionIndex);
91
+ return filename + hashString + extension;
92
+ } else {
93
+ return n + hashString;
94
+ }
95
+ };
96
+ const getOutputPath = (n) => {
97
+ if (!n) return "";
98
+ const path = n.startsWith(moduleBase + "/") ? n.slice(moduleBase.length + 1) : n;
99
+ if (testClientComponents(path)) {
100
+ return `${assetsDir}/${path}`;
101
+ }
102
+ if (testCss(path)) {
103
+ return `${path}`;
104
+ }
105
+ if (testHtml(path)) {
106
+ if (options.autoDiscover?.htmlPattern && typeof options.autoDiscover.htmlPattern !== "function") {
107
+ return `${path.replace(options.autoDiscover.htmlPattern, ".js")}`;
108
+ } else {
109
+ return `${path.replace(".html", "")}`;
110
+ }
111
+ }
112
+ if (testJson(path)) {
113
+ if (options.autoDiscover?.jsonPattern && typeof options.autoDiscover.jsonPattern !== "function") {
114
+ return `${path.replace(options.autoDiscover.jsonPattern, ".js")}`;
115
+ } else {
116
+ return `${path}`;
117
+ }
118
+ }
119
+ if (testPropsPattern(path)) {
120
+ return `${path}`;
121
+ }
122
+ if (testPagePattern(path)) {
123
+ return `${path}`;
124
+ }
125
+ if (testServerFunctions(path)) {
126
+ return `${api}/${path}`;
127
+ }
128
+ if (testCssModule(path)) {
129
+ if (options.autoDiscover?.cssModulePattern && typeof options.autoDiscover.cssModulePattern !== "function") {
130
+ return `${path.replace(options.autoDiscover.cssModulePattern, ".js")}`;
131
+ } else {
132
+ return `${path.replace(".css.js", ".js")}`;
133
+ }
134
+ }
135
+ if (testVendor(path)) {
136
+ return `vendor`;
137
+ }
138
+ return `${path}`;
139
+ };
140
+ const entryFile = (n) => {
141
+ if (testCss(n.name)) {
142
+ const result2 = `${hash(getOutputPath(ensureModuleBase(n.name + ".js")))}`;
143
+ return result2;
144
+ }
145
+ const result = `${hash(getOutputPath(ensureModuleBase(n.name)))}.js`;
146
+ return result;
147
+ };
148
+ const chunkFile = (n) => {
149
+ const result = `${hash(getOutputPath(ensureModuleBase(n.name)))}.js`;
150
+ return result;
151
+ };
152
+ const assetFile = (n) => {
153
+ const result = `${hash(getOutputPath(ensureModuleBase(n.names[0])))}`;
154
+ return result;
155
+ };
156
+ const build = typeof options.build === "object" && options.build !== null ? {
157
+ pages,
158
+ client,
159
+ server,
160
+ static: staticBuild,
161
+ outDir,
162
+ assetsDir,
163
+ api,
164
+ hash: hashOption,
165
+ preserveModulesRoot,
166
+ entryFile: typeof options.build?.entryFile === "function" ? options.build.entryFile : entryFile,
167
+ chunkFile: typeof options.build?.chunkFile === "function" ? options.build.chunkFile : chunkFile,
168
+ assetFile: typeof options.build?.assetFile === "function" ? options.build.assetFile : assetFile
169
+ } : {
170
+ pages,
171
+ client,
172
+ server,
173
+ static: staticBuild,
174
+ outDir,
175
+ assetsDir,
176
+ api,
177
+ hash: hashOption,
178
+ preserveModulesRoot,
179
+ entryFile,
180
+ chunkFile,
181
+ assetFile
182
+ };
11
183
  const moduleBase = typeof options.moduleBase === "string" ? options.moduleBase : DEFAULT_CONFIG.MODULE_BASE;
12
184
  const moduleBasePath = typeof options.moduleBasePath === "string" ? options.moduleBasePath : options.moduleBase.startsWith("/") ? options.moduleBase : "/" + options.moduleBase;
13
185
  const moduleBaseURL = typeof options.moduleBaseURL === "string" ? options.moduleBaseURL : moduleBasePath ?? DEFAULT_CONFIG.MODULE_BASE_URL;
186
+ const autoDiscover = {
187
+ modulePattern: testModulePattern,
188
+ cssPattern: testCss,
189
+ jsonPattern: testJson,
190
+ clientComponents: testClientComponents,
191
+ serverFunctions: testServerFunctions,
192
+ propsPattern: testPropsPattern,
193
+ pagePattern: testPagePattern,
194
+ cssModulePattern: testCssModule,
195
+ vendorPattern: testVendor
196
+ };
197
+ const moduleId = typeof options.moduleId === "function" ? options.moduleId : createModuleIdGenerator({
198
+ isProduction: process.env["NODE_ENV"] === "production",
199
+ inputRoot: projectRoot,
200
+ client,
201
+ server,
202
+ moduleBase,
203
+ preserveModulesRoot,
204
+ removeExtension: DEFAULT_CONFIG.FILE_REGEX,
205
+ imports: {}
206
+ });
14
207
  try {
15
208
  return {
16
209
  type: "success",
17
210
  userOptions: {
18
211
  projectRoot,
212
+ moduleId,
19
213
  moduleBase,
20
214
  moduleBasePath,
21
215
  moduleBaseURL,
22
- build: {
23
- pages: build.pages ?? DEFAULT_CONFIG.BUILD.pages,
24
- client: build.client ?? DEFAULT_CONFIG.BUILD.client,
25
- server: build.server ?? DEFAULT_CONFIG.BUILD.server,
26
- static: build.static ?? DEFAULT_CONFIG.BUILD.static
27
- },
216
+ build,
28
217
  Page: options.Page ?? DEFAULT_CONFIG.PAGE,
29
218
  props: options.props ?? DEFAULT_CONFIG.PROPS,
30
219
  Html: options.Html ?? DEFAULT_CONFIG.HTML,
31
- pageExportName: options.pageExportName ?? DEFAULT_CONFIG.PAGE_EXPORT,
32
- propsExportName: options.propsExportName ?? DEFAULT_CONFIG.PROPS_EXPORT,
220
+ pageExportName,
221
+ propsExportName,
33
222
  collectCss: options.collectCss ?? DEFAULT_CONFIG.COLLECT_CSS,
34
223
  collectAssets: options.collectAssets ?? DEFAULT_CONFIG.COLLECT_ASSETS,
35
- assetsDir: options.assetsDir ?? DEFAULT_CONFIG.CLIENT_ASSETS_DIR,
36
224
  htmlWorkerPath: options.htmlWorkerPath ?? DEFAULT_CONFIG.HTML_WORKER_PATH,
37
225
  rscWorkerPath: options.rscWorkerPath ?? DEFAULT_CONFIG.RSC_WORKER_PATH,
38
226
  loaderPath: options.loaderPath ?? DEFAULT_CONFIG.LOADER_PATH,
39
227
  clientEntry: options.clientEntry ?? DEFAULT_CONFIG.CLIENT_ENTRY,
40
228
  serverEntry: options.serverEntry ?? DEFAULT_CONFIG.SERVER_ENTRY,
41
229
  moduleBaseExceptions: options.moduleBaseExceptions ?? [],
42
- autoDiscover: {
43
- pagePattern: options.autoDiscover?.pagePattern ?? DEFAULT_CONFIG.AUTO_DISCOVER.pagePattern,
44
- propsPattern: options.autoDiscover?.propsPattern ?? DEFAULT_CONFIG.AUTO_DISCOVER.propsPattern,
45
- clientComponents: options.autoDiscover?.clientComponents ?? DEFAULT_CONFIG.AUTO_DISCOVER.clientComponents,
46
- serverFunctions: options.autoDiscover?.serverFunctions ?? DEFAULT_CONFIG.AUTO_DISCOVER.serverFunctions
230
+ autoDiscover,
231
+ pipableStreamOptions: options.pipableStreamOptions ?? {
232
+ bootstrapModules: [options.clientEntry ?? DEFAULT_CONFIG.CLIENT_ENTRY]
47
233
  }
48
234
  }
49
235
  };
@@ -1 +1 @@
1
- {"version":3,"file":"resolveOptions.js","sources":["../../../plugin/config/resolveOptions.ts"],"sourcesContent":["import type { StreamPluginOptions, ResolvedUserOptions } from \"../types.js\";\nimport { DEFAULT_CONFIG } from \"./defaults.js\";\n\nexport const resolveOptions = (\n options: StreamPluginOptions\n):\n | { type: \"success\"; userOptions: ResolvedUserOptions }\n | { type: \"error\"; error: Error } => {\n const projectRoot = options.projectRoot ?? process.cwd();\n\n const build = options.build ?? DEFAULT_CONFIG.BUILD;\n\n const moduleBase = typeof options.moduleBase === \"string\" ? options.moduleBase : DEFAULT_CONFIG.MODULE_BASE;\n const moduleBasePath =\n typeof options.moduleBasePath === \"string\"\n ? options.moduleBasePath\n : options.moduleBase.startsWith(\"/\")\n ? options.moduleBase\n : \"/\" + options.moduleBase;\n const moduleBaseURL =\n typeof options.moduleBaseURL === \"string\"\n ? options.moduleBaseURL\n : moduleBasePath ?? DEFAULT_CONFIG.MODULE_BASE_URL;\n try {\n return {\n type: \"success\",\n userOptions: {\n projectRoot,\n moduleBase,\n moduleBasePath,\n moduleBaseURL,\n build: {\n pages: build.pages ?? DEFAULT_CONFIG.BUILD.pages,\n client: build.client ?? DEFAULT_CONFIG.BUILD.client,\n server: build.server ?? DEFAULT_CONFIG.BUILD.server,\n static: build.static ?? DEFAULT_CONFIG.BUILD.static,\n },\n Page: options.Page ?? DEFAULT_CONFIG.PAGE,\n props: options.props ?? DEFAULT_CONFIG.PROPS,\n Html: options.Html ?? DEFAULT_CONFIG.HTML,\n pageExportName: options.pageExportName ?? DEFAULT_CONFIG.PAGE_EXPORT,\n propsExportName: options.propsExportName ?? DEFAULT_CONFIG.PROPS_EXPORT,\n collectCss: options.collectCss ?? DEFAULT_CONFIG.COLLECT_CSS,\n collectAssets: options.collectAssets ?? DEFAULT_CONFIG.COLLECT_ASSETS,\n assetsDir: options.assetsDir ?? DEFAULT_CONFIG.CLIENT_ASSETS_DIR,\n htmlWorkerPath:\n options.htmlWorkerPath ?? DEFAULT_CONFIG.HTML_WORKER_PATH,\n rscWorkerPath: options.rscWorkerPath ?? DEFAULT_CONFIG.RSC_WORKER_PATH,\n loaderPath: options.loaderPath ?? DEFAULT_CONFIG.LOADER_PATH,\n clientEntry: options.clientEntry ?? DEFAULT_CONFIG.CLIENT_ENTRY,\n serverEntry: options.serverEntry ?? DEFAULT_CONFIG.SERVER_ENTRY,\n moduleBaseExceptions: options.moduleBaseExceptions ?? [],\n autoDiscover: {\n pagePattern:\n options.autoDiscover?.pagePattern ??\n DEFAULT_CONFIG.AUTO_DISCOVER.pagePattern,\n propsPattern:\n options.autoDiscover?.propsPattern ??\n DEFAULT_CONFIG.AUTO_DISCOVER.propsPattern,\n clientComponents:\n options.autoDiscover?.clientComponents ??\n DEFAULT_CONFIG.AUTO_DISCOVER.clientComponents,\n serverFunctions:\n options.autoDiscover?.serverFunctions ??\n DEFAULT_CONFIG.AUTO_DISCOVER.serverFunctions,\n },\n },\n };\n } catch (error) {\n return {\n type: \"error\",\n error:\n error instanceof Error ? error : new Error(\"Failed to resolve options\"),\n };\n }\n};\n"],"names":[],"mappings":";;;;;;;AAGa,MAAA,cAAA,GAAiB,CAC5B,OAGqC,KAAA;AACrC,EAAA,MAAM,WAAc,GAAA,OAAA,CAAQ,WAAe,IAAA,OAAA,CAAQ,GAAI,EAAA;AAEvD,EAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,KAAA,IAAS,cAAe,CAAA,KAAA;AAE9C,EAAA,MAAM,aAAa,OAAO,OAAA,CAAQ,eAAe,QAAW,GAAA,OAAA,CAAQ,aAAa,cAAe,CAAA,WAAA;AAChG,EAAA,MAAM,cACJ,GAAA,OAAO,OAAQ,CAAA,cAAA,KAAmB,WAC9B,OAAQ,CAAA,cAAA,GACR,OAAQ,CAAA,UAAA,CAAW,WAAW,GAAG,CAAA,GACjC,OAAQ,CAAA,UAAA,GACR,MAAM,OAAQ,CAAA,UAAA;AACpB,EAAM,MAAA,aAAA,GACJ,OAAO,OAAQ,CAAA,aAAA,KAAkB,WAC7B,OAAQ,CAAA,aAAA,GACR,kBAAkB,cAAe,CAAA,eAAA;AACvC,EAAI,IAAA;AACF,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,WAAa,EAAA;AAAA,QACX,WAAA;AAAA,QACA,UAAA;AAAA,QACA,cAAA;AAAA,QACA,aAAA;AAAA,QACA,KAAO,EAAA;AAAA,UACL,KAAO,EAAA,KAAA,CAAM,KAAS,IAAA,cAAA,CAAe,KAAM,CAAA,KAAA;AAAA,UAC3C,MAAQ,EAAA,KAAA,CAAM,MAAU,IAAA,cAAA,CAAe,KAAM,CAAA,MAAA;AAAA,UAC7C,MAAQ,EAAA,KAAA,CAAM,MAAU,IAAA,cAAA,CAAe,KAAM,CAAA,MAAA;AAAA,UAC7C,MAAQ,EAAA,KAAA,CAAM,MAAU,IAAA,cAAA,CAAe,KAAM,CAAA;AAAA,SAC/C;AAAA,QACA,IAAA,EAAM,OAAQ,CAAA,IAAA,IAAQ,cAAe,CAAA,IAAA;AAAA,QACrC,KAAA,EAAO,OAAQ,CAAA,KAAA,IAAS,cAAe,CAAA,KAAA;AAAA,QACvC,IAAA,EAAM,OAAQ,CAAA,IAAA,IAAQ,cAAe,CAAA,IAAA;AAAA,QACrC,cAAA,EAAgB,OAAQ,CAAA,cAAA,IAAkB,cAAe,CAAA,WAAA;AAAA,QACzD,eAAA,EAAiB,OAAQ,CAAA,eAAA,IAAmB,cAAe,CAAA,YAAA;AAAA,QAC3D,UAAA,EAAY,OAAQ,CAAA,UAAA,IAAc,cAAe,CAAA,WAAA;AAAA,QACjD,aAAA,EAAe,OAAQ,CAAA,aAAA,IAAiB,cAAe,CAAA,cAAA;AAAA,QACvD,SAAA,EAAW,OAAQ,CAAA,SAAA,IAAa,cAAe,CAAA,iBAAA;AAAA,QAC/C,cAAA,EACE,OAAQ,CAAA,cAAA,IAAkB,cAAe,CAAA,gBAAA;AAAA,QAC3C,aAAA,EAAe,OAAQ,CAAA,aAAA,IAAiB,cAAe,CAAA,eAAA;AAAA,QACvD,UAAA,EAAY,OAAQ,CAAA,UAAA,IAAc,cAAe,CAAA,WAAA;AAAA,QACjD,WAAA,EAAa,OAAQ,CAAA,WAAA,IAAe,cAAe,CAAA,YAAA;AAAA,QACnD,WAAA,EAAa,OAAQ,CAAA,WAAA,IAAe,cAAe,CAAA,YAAA;AAAA,QACnD,oBAAA,EAAsB,OAAQ,CAAA,oBAAA,IAAwB,EAAC;AAAA,QACvD,YAAc,EAAA;AAAA,UACZ,WACE,EAAA,OAAA,CAAQ,YAAc,EAAA,WAAA,IACtB,eAAe,aAAc,CAAA,WAAA;AAAA,UAC/B,YACE,EAAA,OAAA,CAAQ,YAAc,EAAA,YAAA,IACtB,eAAe,aAAc,CAAA,YAAA;AAAA,UAC/B,gBACE,EAAA,OAAA,CAAQ,YAAc,EAAA,gBAAA,IACtB,eAAe,aAAc,CAAA,gBAAA;AAAA,UAC/B,eACE,EAAA,OAAA,CAAQ,YAAc,EAAA,eAAA,IACtB,eAAe,aAAc,CAAA;AAAA;AACjC;AACF,KACF;AAAA,WACO,KAAO,EAAA;AACd,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,OACE,KAAiB,YAAA,KAAA,GAAQ,KAAQ,GAAA,IAAI,MAAM,2BAA2B;AAAA,KAC1E;AAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"resolveOptions.js","sources":["../../../plugin/config/resolveOptions.ts"],"sourcesContent":["import type { PreRenderedAsset } from \"rollup\";\nimport type { PreRenderedChunk } from \"rollup\";\nimport type { StreamPluginOptions, ResolvedUserOptions } from \"../types.js\";\nimport { DEFAULT_CONFIG } from \"./defaults.js\";\nimport { join } from \"path\";\nimport { createModuleIdGenerator } from \"./createModuleIdGenerator.js\";\n\nconst resolveAutoDiscoverMatcher = (\n options: undefined | string | RegExp | ((path: string) => boolean),\n fallback: RegExp | ((path: string) => boolean)\n) => {\n if (!options) {\n if (typeof fallback === \"function\") {\n return fallback;\n } else {\n return (path: string) => fallback.test(path);\n }\n }\n if (typeof options === \"string\") {\n const matcher = new RegExp(options);\n return (path: string) => matcher.test(path);\n } else if (typeof options === \"function\") {\n return options;\n } else {\n return (path: string) => options.test(path);\n }\n};\n\nexport const resolveOptions = (\n options: StreamPluginOptions,\n isClient: boolean = false\n):\n | { type: \"success\"; userOptions: ResolvedUserOptions }\n | { type: \"error\"; error: Error } => {\n const projectRoot = options.projectRoot ?? process.cwd();\n const { pageExportName = DEFAULT_CONFIG.PAGE_EXPORT, propsExportName = DEFAULT_CONFIG.PROPS_EXPORT } = options;\n const pages =\n typeof options.build?.pages === \"function\"\n ? options.build.pages\n : Array.isArray(options.build?.pages)\n ? options.build.pages\n : DEFAULT_CONFIG.BUILD.pages;\n let client = options.build?.client ?? DEFAULT_CONFIG.BUILD.client;\n let server = options.build?.server ?? DEFAULT_CONFIG.BUILD.server;\n\n const api = options.build?.api ?? DEFAULT_CONFIG.BUILD.api;\n const staticBuild = options.build?.static ?? DEFAULT_CONFIG.BUILD.static;\n const outDir = options.build?.outDir ?? DEFAULT_CONFIG.BUILD.outDir;\n const assetsDir =\n options.build?.assetsDir ??\n `${DEFAULT_CONFIG.CLIENT_ASSETS_DIR}`;\n\n const ensureModuleBase = (n: string | null) => {\n if(!n) return '';\n return n.startsWith(moduleBase + \"/\") ? n.slice(moduleBase.length + 1) : n;\n }\n\n const testModulePattern = resolveAutoDiscoverMatcher(\n options.autoDiscover?.modulePattern,\n DEFAULT_CONFIG.AUTO_DISCOVER.modulePattern\n );\n\n const testJson = resolveAutoDiscoverMatcher(\n options.autoDiscover?.jsonPattern,\n DEFAULT_CONFIG.AUTO_DISCOVER.jsonPattern\n );\n\n const testCss = resolveAutoDiscoverMatcher(\n options.autoDiscover?.cssPattern,\n DEFAULT_CONFIG.AUTO_DISCOVER.cssPattern\n );\n const testHtml = resolveAutoDiscoverMatcher(\n options.autoDiscover?.htmlPattern,\n DEFAULT_CONFIG.AUTO_DISCOVER.htmlPattern\n );\n const testClientComponents = resolveAutoDiscoverMatcher(\n options.autoDiscover?.clientComponents,\n DEFAULT_CONFIG.AUTO_DISCOVER.clientComponents\n );\n const testServerFunctions = resolveAutoDiscoverMatcher(\n options.autoDiscover?.serverFunctions,\n DEFAULT_CONFIG.AUTO_DISCOVER.serverFunctions\n );\n const testPropsPattern = resolveAutoDiscoverMatcher(\n options.autoDiscover?.propsPattern,\n DEFAULT_CONFIG.AUTO_DISCOVER.propsPattern\n );\n const testPagePattern = resolveAutoDiscoverMatcher(\n options.autoDiscover?.pagePattern,\n DEFAULT_CONFIG.AUTO_DISCOVER.pagePattern\n );\n const testCssModule = resolveAutoDiscoverMatcher(\n options.autoDiscover?.cssModulePattern,\n DEFAULT_CONFIG.AUTO_DISCOVER.cssModulePattern\n );\n const testVendor = resolveAutoDiscoverMatcher(\n options.autoDiscover?.vendorPattern,\n DEFAULT_CONFIG.AUTO_DISCOVER.vendorPattern\n );\n const preserveModulesRoot = options.build?.preserveModulesRoot ?? DEFAULT_CONFIG.BUILD.preserveModulesRoot;\n const hashOption = typeof options.build?.hash === \"string\" ? options.build.hash : DEFAULT_CONFIG.BUILD.hash\n const hashString = hashOption === '' ? '' : `-[${hashOption}]`;\n const hash = (n: string | null) => {\n if(!n) return '';\n if(hashString === '' || (!isClient && !testClientComponents(n))) return n;\n const extensionIndex = n.lastIndexOf('.') \n if(extensionIndex !== -1 && !testClientComponents(n)) {\n // put hash between extension and filename\n const extension = n.slice(extensionIndex)\n const filename = n.slice(0, extensionIndex)\n return filename + hashString + extension;\n } else {\n return n + hashString;\n }\n }\n\n const getOutputPath = (n: string | null) => {\n if(!n) return '';\n // Remove src/ prefix if present\n const path = n.startsWith(moduleBase + \"/\")\n ? n.slice(moduleBase.length + 1)\n : n;\n\n if (testClientComponents(path)) {\n return `${assetsDir}/${path}`; \n }\n if (testCss(path)) {\n return `${path}`; \n }\n if(testHtml(path)) {\n if(options.autoDiscover?.htmlPattern && typeof options.autoDiscover.htmlPattern !== \"function\") {\n // if it's not a function, use it as an option for replace\n return `${path.replace(options.autoDiscover.htmlPattern, '.js')}`;\n } else {\n return `${path.replace('.html', '')}`; \n }\n }\n if(testJson(path)) {\n if(options.autoDiscover?.jsonPattern && typeof options.autoDiscover.jsonPattern !== \"function\") {\n // if it's not a function, use it as an option for replace\n return `${path.replace(options.autoDiscover.jsonPattern, '.js')}`;\n } else {\n return `${path}`; \n }\n }\n if (testPropsPattern(path)) {\n return `${path}`; \n }\n if (testPagePattern(path)) {\n return `${path}`; \n }\n if (testServerFunctions(path)) {\n return `${api}/${path}`; // \n }\n if(testCssModule(path)) {\n if(options.autoDiscover?.cssModulePattern && typeof options.autoDiscover.cssModulePattern !== \"function\") {\n // if it's not a function, use it as an option for replace\n return `${path.replace(options.autoDiscover.cssModulePattern, '.js')}`;\n } else {\n return `${path.replace('.css.js', '.js')}`;\n }\n }\n if(testVendor(path)) {\n return `vendor`;\n }\n return `${path}`;\n };\n\n const entryFile = (n: PreRenderedChunk) => {\n if(testCss(n.name)) {\n // this is the css.js chunk for ssr, which (if we keep the .css) would go into client, this prevents that.\n const result = `${hash(getOutputPath(ensureModuleBase(n.name + '.js')))}`;\n return result;\n }\n const result = `${hash(getOutputPath(ensureModuleBase(n.name)))}.js`;\n return result;\n }\n\n const chunkFile = (n: PreRenderedChunk) => {\n const result = `${hash(getOutputPath(ensureModuleBase(n.name)))}.js`;\n return result;\n }\n\n const assetFile = (n: PreRenderedAsset) => {\n const result = `${hash(getOutputPath(ensureModuleBase(n.names[0])))}`;\n return result;\n }\n\n const build =\n typeof options.build === \"object\" && options.build !== null\n ? {\n pages,\n client,\n server,\n static: staticBuild,\n outDir,\n assetsDir,\n api,\n hash: hashOption,\n preserveModulesRoot,\n entryFile:\n typeof options.build?.entryFile === \"function\"\n ? options.build.entryFile\n : entryFile,\n chunkFile:\n typeof options.build?.chunkFile === \"function\"\n ? options.build.chunkFile\n : chunkFile,\n assetFile:\n typeof options.build?.assetFile === \"function\"\n ? options.build.assetFile\n : assetFile,\n }\n : {\n pages,\n client,\n server,\n static: staticBuild,\n outDir,\n assetsDir,\n api,\n hash: hashOption,\n preserveModulesRoot,\n entryFile,\n chunkFile,\n assetFile,\n };\n\n const moduleBase =\n typeof options.moduleBase === \"string\"\n ? options.moduleBase\n : DEFAULT_CONFIG.MODULE_BASE;\n const moduleBasePath =\n typeof options.moduleBasePath === \"string\"\n ? options.moduleBasePath\n : options.moduleBase.startsWith(\"/\")\n ? options.moduleBase\n : \"/\" + options.moduleBase;\n const moduleBaseURL =\n typeof options.moduleBaseURL === \"string\"\n ? options.moduleBaseURL\n : moduleBasePath ?? DEFAULT_CONFIG.MODULE_BASE_URL;\n \n const autoDiscover = {\n modulePattern: testModulePattern,\n cssPattern: testCss,\n jsonPattern: testJson,\n clientComponents: testClientComponents,\n serverFunctions: testServerFunctions,\n propsPattern: testPropsPattern,\n pagePattern: testPagePattern,\n cssModulePattern: testCssModule,\n vendorPattern: testVendor,\n };\n\n const moduleId = typeof options.moduleId === \"function\" ? options.moduleId : createModuleIdGenerator({\n isProduction: process.env['NODE_ENV'] === \"production\",\n inputRoot: projectRoot,\n client: client,\n server: server,\n moduleBase: moduleBase,\n preserveModulesRoot: preserveModulesRoot,\n removeExtension: DEFAULT_CONFIG.FILE_REGEX,\n imports: {},\n });\n\n try {\n return {\n type: \"success\",\n userOptions: {\n projectRoot,\n moduleId,\n moduleBase,\n moduleBasePath,\n moduleBaseURL,\n build: build,\n Page: options.Page ?? DEFAULT_CONFIG.PAGE,\n props: options.props ?? DEFAULT_CONFIG.PROPS,\n Html: options.Html ?? DEFAULT_CONFIG.HTML,\n pageExportName: pageExportName,\n propsExportName: propsExportName,\n collectCss: options.collectCss ?? DEFAULT_CONFIG.COLLECT_CSS,\n collectAssets: options.collectAssets ?? DEFAULT_CONFIG.COLLECT_ASSETS,\n htmlWorkerPath:\n options.htmlWorkerPath ?? DEFAULT_CONFIG.HTML_WORKER_PATH,\n rscWorkerPath: options.rscWorkerPath ?? DEFAULT_CONFIG.RSC_WORKER_PATH,\n loaderPath: options.loaderPath ?? DEFAULT_CONFIG.LOADER_PATH,\n clientEntry: options.clientEntry ?? DEFAULT_CONFIG.CLIENT_ENTRY,\n serverEntry: options.serverEntry ?? DEFAULT_CONFIG.SERVER_ENTRY,\n moduleBaseExceptions: options.moduleBaseExceptions ?? [],\n autoDiscover: autoDiscover,\n pipableStreamOptions: options.pipableStreamOptions ?? {\n bootstrapModules: [options.clientEntry ?? DEFAULT_CONFIG.CLIENT_ENTRY],\n },\n },\n };\n } catch (error) {\n return {\n type: \"error\",\n error:\n error instanceof Error ? error : new Error(\"Failed to resolve options\"),\n };\n }\n};\n"],"names":["result"],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import type { ResolvedUserOptions } from '../types.js';
2
2
  export declare function resolvePages(pages: ResolvedUserOptions["build"]["pages"]): Promise<{
3
3
  type: "success";
4
+ error?: never;
4
5
  pages: string[];
5
6
  } | {
6
7
  type: "error";
7
8
  error: Error;
9
+ pages?: never;
8
10
  }>;
9
11
  //# sourceMappingURL=resolvePages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvePages.d.ts","sourceRoot":"","sources":["../../../plugin/config/resolvePages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,wBAAsB,YAAY,CAChC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAC3C,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAsCjF"}
1
+ {"version":3,"file":"resolvePages.d.ts","sourceRoot":"","sources":["../../../plugin/config/resolvePages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,wBAAsB,YAAY,CAChC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAC3C,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAC,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAC,KAAK,CAAA;CAAE,CAAC,CAsC7G"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolvePages.js","sources":["../../../plugin/config/resolvePages.ts"],"sourcesContent":["import type { ResolvedUserOptions } from '../types.js';\n\nexport async function resolvePages(\n pages: ResolvedUserOptions[\"build\"][\"pages\"]\n): Promise<{ type: \"success\"; pages: string[] } | { type: \"error\"; error: Error }> {\n if (!pages) {\n return { type: \"success\", pages: [] };\n }\n\n try {\n // Handle function\n if (typeof pages === \"function\") {\n const result = await Promise.resolve(pages());\n return resolvePages(result);\n }\n\n // Handle Promise\n if (pages instanceof Promise) {\n const result = await pages;\n return resolvePages(result);\n }\n\n // Handle string\n if (typeof pages === \"string\") {\n return { type: \"success\", pages: [pages] };\n }\n\n // Handle array\n if (Array.isArray(pages)) {\n if (pages.every(page => typeof page === \"string\")) {\n return { type: \"success\", pages };\n }\n throw new Error('All pages must be strings');\n }\n\n throw new Error('Invalid pages format');\n } catch (error) {\n return {\n type: \"error\",\n error: error instanceof Error ? error : new Error('Failed to resolve pages')\n };\n }\n} "],"names":[],"mappings":";;;;;AAEA,eAAsB,aACpB,KACiF,EAAA;AACjF,EAAA,IAAI,CAAC,KAAO,EAAA;AACV,IAAA,OAAO,EAAE,IAAA,EAAM,SAAW,EAAA,KAAA,EAAO,EAAG,EAAA;AAAA;AAGtC,EAAI,IAAA;AAEF,IAAI,IAAA,OAAO,UAAU,UAAY,EAAA;AAC/B,MAAA,MAAM,MAAS,GAAA,MAAM,OAAQ,CAAA,OAAA,CAAQ,OAAO,CAAA;AAC5C,MAAA,OAAO,aAAa,MAAM,CAAA;AAAA;AAI5B,IAAA,IAAI,iBAAiB,OAAS,EAAA;AAC5B,MAAA,MAAM,SAAS,MAAM,KAAA;AACrB,MAAA,OAAO,aAAa,MAAM,CAAA;AAAA;AAI5B,IAAI,IAAA,OAAO,UAAU,QAAU,EAAA;AAC7B,MAAA,OAAO,EAAE,IAAM,EAAA,SAAA,EAAW,KAAO,EAAA,CAAC,KAAK,CAAE,EAAA;AAAA;AAI3C,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,MAAA,IAAI,MAAM,KAAM,CAAA,CAAA,IAAA,KAAQ,OAAO,IAAA,KAAS,QAAQ,CAAG,EAAA;AACjD,QAAO,OAAA,EAAE,IAAM,EAAA,SAAA,EAAW,KAAM,EAAA;AAAA;AAElC,MAAM,MAAA,IAAI,MAAM,2BAA2B,CAAA;AAAA;AAG7C,IAAM,MAAA,IAAI,MAAM,sBAAsB,CAAA;AAAA,WAC/B,KAAO,EAAA;AACd,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,OAAO,KAAiB,YAAA,KAAA,GAAQ,KAAQ,GAAA,IAAI,MAAM,yBAAyB;AAAA,KAC7E;AAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"resolvePages.js","sources":["../../../plugin/config/resolvePages.ts"],"sourcesContent":["import type { ResolvedUserOptions } from '../types.js';\n\nexport async function resolvePages(\n pages: ResolvedUserOptions[\"build\"][\"pages\"]\n): Promise<{ type: \"success\"; error?:never; pages: string[] } | { type: \"error\"; error: Error; pages?:never }> {\n if (!pages) {\n return { type: \"success\", pages: [] };\n }\n\n try {\n // Handle function\n if (typeof pages === \"function\") {\n const result = await Promise.resolve(pages());\n return resolvePages(result);\n }\n\n // Handle Promise\n if (pages instanceof Promise) {\n const result = await pages;\n return resolvePages(result);\n }\n\n // Handle string\n if (typeof pages === \"string\") {\n return { type: \"success\", pages: [pages] };\n }\n\n // Handle array\n if (Array.isArray(pages)) {\n if (pages.every(page => typeof page === \"string\")) {\n return { type: \"success\", pages };\n }\n throw new Error('All pages must be strings');\n }\n\n throw new Error('Invalid pages format');\n } catch (error) {\n return {\n type: \"error\",\n error: error instanceof Error ? error : new Error('Failed to resolve pages')\n };\n }\n} "],"names":[],"mappings":";;;;;AAEA,eAAsB,aACpB,KAC6G,EAAA;AAC7G,EAAA,IAAI,CAAC,KAAO,EAAA;AACV,IAAA,OAAO,EAAE,IAAA,EAAM,SAAW,EAAA,KAAA,EAAO,EAAG,EAAA;AAAA;AAGtC,EAAI,IAAA;AAEF,IAAI,IAAA,OAAO,UAAU,UAAY,EAAA;AAC/B,MAAA,MAAM,MAAS,GAAA,MAAM,OAAQ,CAAA,OAAA,CAAQ,OAAO,CAAA;AAC5C,MAAA,OAAO,aAAa,MAAM,CAAA;AAAA;AAI5B,IAAA,IAAI,iBAAiB,OAAS,EAAA;AAC5B,MAAA,MAAM,SAAS,MAAM,KAAA;AACrB,MAAA,OAAO,aAAa,MAAM,CAAA;AAAA;AAI5B,IAAI,IAAA,OAAO,UAAU,QAAU,EAAA;AAC7B,MAAA,OAAO,EAAE,IAAM,EAAA,SAAA,EAAW,KAAO,EAAA,CAAC,KAAK,CAAE,EAAA;AAAA;AAI3C,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,MAAA,IAAI,MAAM,KAAM,CAAA,CAAA,IAAA,KAAQ,OAAO,IAAA,KAAS,QAAQ,CAAG,EAAA;AACjD,QAAO,OAAA,EAAE,IAAM,EAAA,SAAA,EAAW,KAAM,EAAA;AAAA;AAElC,MAAM,MAAA,IAAI,MAAM,2BAA2B,CAAA;AAAA;AAG7C,IAAM,MAAA,IAAI,MAAM,sBAAsB,CAAA;AAAA,WAC/B,KAAO,EAAA;AACd,IAAO,OAAA;AAAA,MACL,IAAM,EAAA,OAAA;AAAA,MACN,OAAO,KAAiB,YAAA,KAAA,GAAQ,KAAQ,GAAA,IAAI,MAAM,yBAAyB;AAAA,KAC7E;AAAA;AAEJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  import type { ConfigEnv, UserConfig } from "vite";
2
2
  import type { CheckFilesExistReturn, ResolvedUserConfig, ResolvedUserOptions } from "../types.js";
3
3
  export type ResolveUserConfigProps = {
4
- condition: "react-client" | "react-server" | "";
4
+ isClient?: boolean;
5
5
  config: UserConfig;
6
6
  configEnv: ConfigEnv;
7
7
  userOptions: ResolvedUserOptions;
@@ -14,5 +14,5 @@ export type ResolveUserConfigReturn = {
14
14
  type: "error";
15
15
  error: Error;
16
16
  };
17
- export declare function resolveUserConfig({ condition, config, configEnv, userOptions, files }: ResolveUserConfigProps): ResolveUserConfigReturn;
17
+ export declare function resolveUserConfig({ isClient, config, configEnv, userOptions, files, }: ResolveUserConfigProps): ResolveUserConfigReturn;
18
18
  //# sourceMappingURL=resolveUserConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveUserConfig.d.ts","sourceRoot":"","sources":["../../../plugin/config/resolveUserConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIlG,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,cAAc,GAAG,cAAc,GAAG,EAAE,CAAC;IAChD,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;IACjC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,kBAAkB,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpC,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,KAAK,EACN,EAAE,sBAAsB,GAAG,uBAAuB,CAwElD"}
1
+ {"version":3,"file":"resolveUserConfig.d.ts","sourceRoot":"","sources":["../../../plugin/config/resolveUserConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAMrB,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,mBAAmB,CAAC;IACjC,KAAK,CAAC,EAAE,qBAAqB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,kBAAkB,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpC,wBAAgB,iBAAiB,CAAC,EAChC,QAAgB,EAChB,MAAM,EACN,SAAS,EACT,WAAW,EACX,KAAK,GACN,EAAE,sBAAsB,GAAG,uBAAuB,CAyMlD"}
@@ -3,11 +3,12 @@
3
3
  * Copyright (c) Nico Brinkkemper
4
4
  * MIT License
5
5
  */
6
- import { DEFAULT_CONFIG } from './defaults.js';
7
6
  import { createInputNormalizer } from '../helpers/inputNormalizer.js';
7
+ import { join } from 'path';
8
+ import { globSync } from 'fs';
8
9
 
9
10
  function resolveUserConfig({
10
- condition,
11
+ isClient = false,
11
12
  config,
12
13
  configEnv,
13
14
  userOptions,
@@ -15,61 +16,171 @@ function resolveUserConfig({
15
16
  }) {
16
17
  try {
17
18
  const root = config.root ?? userOptions.projectRoot ?? process.cwd();
18
- const existingInput = config.build?.rollupOptions?.input || {};
19
- const currentInputs = typeof existingInput === "string" ? { default: existingInput } : existingInput;
20
- const normalizer = createInputNormalizer(root);
21
- const serverEntry = userOptions.serverEntry ? [userOptions.serverEntry, userOptions.serverEntry] : [];
22
- const inputs = {
23
- ...currentInputs,
24
- ...condition === "react-server" && files ? {
25
- "index.html": "/index.html",
26
- ...Object.fromEntries([
27
- ...serverEntry,
28
- ...Array.from(files.pageMap.entries()),
29
- ...Array.from(files.propsMap.entries())
30
- ].map(normalizer))
31
- } : {
32
- client: userOptions.clientEntry
19
+ const normalizer = createInputNormalizer({
20
+ root,
21
+ preserveModulesRoot: void 0
22
+ });
23
+ const serverEntry = userOptions.serverEntry ? Object.fromEntries([
24
+ normalizer([userOptions.serverEntry, userOptions.serverEntry])
25
+ ]) : null;
26
+ const clientEntry = userOptions.clientEntry ? Object.fromEntries(
27
+ [
28
+ [userOptions.clientEntry, userOptions.clientEntry],
29
+ ["index.html", "index.html"]
30
+ ].map(normalizer)
31
+ ) : { "index.html": "index.html" };
32
+ const autoDiscoveredClientFiles = (inputs2) => {
33
+ const allFiles = globSync(`**/*.client.*`, {
34
+ cwd: join(root, userOptions.moduleBase)
35
+ });
36
+ for (const [key, value] of Object.entries(allFiles).map(([n, path]) => {
37
+ if (typeof path !== "string") {
38
+ throw new Error(`Invalid path: ${JSON.stringify(path)}`);
39
+ }
40
+ const [key2, value2] = normalizer(join(userOptions.moduleBase, path));
41
+ return [key2, value2];
42
+ })) {
43
+ if (!inputs2[key]) {
44
+ inputs2[key] = value;
45
+ }
33
46
  }
47
+ return inputs2;
34
48
  };
35
- const userConfig = {
36
- ...config,
37
- root,
38
- mode: configEnv.command === "build" ? "production" : "development",
39
- build: {
40
- ...config.build,
41
- outDir: condition === "react-server" ? userOptions.build.server : userOptions.build.client,
42
- assetsDir: condition === "react-server" ? "" : DEFAULT_CONFIG.CLIENT_ASSETS_DIR,
43
- ssr: condition === "react-server",
44
- target: condition === "react-server" ? "node18" : "es2020",
45
- minify: condition === "react-server" ? false : true,
46
- manifest: true,
47
- ssrManifest: false,
48
- ssrEmitAssets: true,
49
- rollupOptions: {
50
- ...config.build?.rollupOptions,
51
- input: inputs,
52
- preserveEntrySignatures: "strict",
53
- output: condition === "react-server" ? {
54
- preserveModules: true,
55
- entryFileNames: "[name].js",
56
- assetFileNames: "[name].[ext]",
57
- chunkFileNames: "[name].[ext]",
58
- format: "esm",
59
- exports: "named",
60
- hoistTransitiveImports: false,
61
- generatedCode: {
62
- constBindings: true,
63
- objectShorthand: true
64
- },
65
- interop: "auto"
66
- } : void 0
49
+ const autoDiscoveredServerFiles = (inputs2) => {
50
+ const allFiles = globSync(`${userOptions.moduleBase}/**/*.server.*`, {
51
+ cwd: join(root, userOptions.moduleBase)
52
+ });
53
+ for (const [key, value] of Object.entries(allFiles).map(normalizer)) {
54
+ if (!inputs2[key]) {
55
+ inputs2[key] = value;
56
+ }
57
+ }
58
+ return inputs2;
59
+ };
60
+ const autoDiscoveredFiles = (inputs2) => {
61
+ if (!files) {
62
+ return inputs2;
63
+ }
64
+ for (const [key, value] of Object.entries(Array.from(files.pageMap.entries())).map(normalizer)) {
65
+ if (!inputs2[key]) {
66
+ inputs2[key] = value;
67
+ }
68
+ }
69
+ for (const [key, value] of Object.entries(Array.from(files.propsMap.entries())).map(normalizer)) {
70
+ if (!inputs2[key]) {
71
+ inputs2[key] = value;
67
72
  }
68
73
  }
74
+ return inputs2;
69
75
  };
76
+ let inputs = isClient ? autoDiscoveredClientFiles(clientEntry) : autoDiscoveredServerFiles(autoDiscoveredFiles(serverEntry ?? {}));
77
+ if (userOptions.build.preserveModulesRoot) {
78
+ inputs = Object.fromEntries(
79
+ Object.entries(inputs).map(([key, value]) => {
80
+ if (key.startsWith(userOptions.moduleBase + "/")) {
81
+ return [key.slice(userOptions.moduleBase.length + 1), value];
82
+ }
83
+ return [key, value];
84
+ })
85
+ );
86
+ }
87
+ const envDir = isClient ? userOptions.build.client : userOptions.build.server;
88
+ if (isClient) {
89
+ return {
90
+ type: "success",
91
+ userConfig: {
92
+ ...config,
93
+ root,
94
+ mode: configEnv.command === "build" ? "production" : "development",
95
+ resolve: {
96
+ external: ["react", "react-dom"],
97
+ alias: {
98
+ [userOptions.moduleBasePath]: join(root, userOptions.moduleBasePath),
99
+ [userOptions.moduleBase]: join(root, userOptions.moduleBase),
100
+ ["index.html"]: join(root, "index.html")
101
+ }
102
+ },
103
+ ssr: {
104
+ target: "node",
105
+ external: ["react", "react-dom", "react-server-dom-esm/client.browser"],
106
+ resolve: {
107
+ conditions: ["react-server"],
108
+ externalConditions: ["react-server"]
109
+ }
110
+ },
111
+ build: {
112
+ ...config.build,
113
+ emptyOutDir: config.build?.emptyOutDir ?? true,
114
+ outDir: join(userOptions.build.outDir, envDir),
115
+ assetsDir: userOptions.build.assetsDir,
116
+ // modern browsers
117
+ target: ["esnext"],
118
+ minify: true,
119
+ ssr: true,
120
+ manifest: config.build?.manifest ?? `.vite/manifest.json`,
121
+ ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,
122
+ ssrEmitAssets: true,
123
+ rollupOptions: {
124
+ ...config.build?.rollupOptions,
125
+ input: inputs,
126
+ output: {
127
+ ...config.build?.rollupOptions?.output,
128
+ preserveModulesRoot: userOptions.build.preserveModulesRoot ? userOptions.moduleBase : void 0
129
+ }
130
+ }
131
+ }
132
+ }
133
+ };
134
+ }
135
+ const mergeOutputArray = Array.isArray(config.build?.rollupOptions?.output);
136
+ const pluginOutput = {
137
+ preserveModules: true,
138
+ preserveModulesRoot: userOptions.build.preserveModulesRoot ? userOptions.moduleBase : void 0,
139
+ entryFileNames: userOptions.build.entryFile,
140
+ assetFileNames: userOptions.build.assetFile,
141
+ chunkFileNames: userOptions.build.chunkFile,
142
+ format: "esm",
143
+ exports: "named",
144
+ hoistTransitiveImports: false,
145
+ generatedCode: {
146
+ constBindings: true,
147
+ objectShorthand: true
148
+ },
149
+ interop: "auto"
150
+ };
151
+ const newOutput = Array.isArray(config.build?.rollupOptions?.output) ? [...config.build?.rollupOptions?.output, pluginOutput] : typeof config.build?.rollupOptions?.output === "object" && config.build?.rollupOptions?.output !== null ? [config.build?.rollupOptions?.output, pluginOutput] : pluginOutput;
70
152
  return {
71
153
  type: "success",
72
- userConfig
154
+ userConfig: {
155
+ ...config,
156
+ root,
157
+ mode: configEnv.command === "build" ? "production" : "development",
158
+ resolve: {
159
+ alias: {
160
+ [userOptions.moduleBasePath]: join(root, userOptions.moduleBasePath),
161
+ [userOptions.moduleBase]: join(root, userOptions.moduleBase),
162
+ ["index.html"]: join(root, "index.html")
163
+ }
164
+ },
165
+ build: {
166
+ ...config.build,
167
+ emptyOutDir: config.build?.emptyOutDir ?? true,
168
+ outDir: join(userOptions.build.outDir, envDir),
169
+ target: "node18",
170
+ minify: true,
171
+ ssr: true,
172
+ manifest: config.build?.manifest ?? `.vite/manifest.json`,
173
+ ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,
174
+ ssrEmitAssets: true,
175
+ assetsDir: config.build?.assetsDir ?? userOptions.build.assetsDir,
176
+ rollupOptions: {
177
+ ...config.build?.rollupOptions,
178
+ input: inputs,
179
+ preserveEntrySignatures: "strict",
180
+ output: newOutput
181
+ }
182
+ }
183
+ }
73
184
  };
74
185
  } catch (error) {
75
186
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"resolveUserConfig.js","sources":["../../../plugin/config/resolveUserConfig.ts"],"sourcesContent":["import type { ConfigEnv, UserConfig } from \"vite\";\nimport type { CheckFilesExistReturn, ResolvedUserConfig, ResolvedUserOptions } from \"../types.js\";\nimport { DEFAULT_CONFIG } from \"./defaults.js\";\nimport { createInputNormalizer } from \"../helpers/inputNormalizer.js\";\n\nexport type ResolveUserConfigProps = {\n condition: \"react-client\" | \"react-server\" | \"\";\n config: UserConfig;\n configEnv: ConfigEnv;\n userOptions: ResolvedUserOptions;\n files?: CheckFilesExistReturn;\n};\n\nexport type ResolveUserConfigReturn = \n | { type: \"success\"; userConfig: ResolvedUserConfig }\n | { type: \"error\"; error: Error };\n\nexport function resolveUserConfig({\n condition,\n config,\n configEnv,\n userOptions,\n files\n}: ResolveUserConfigProps): ResolveUserConfigReturn {\n\n\n try {\n // Get existing inputs\n const root = config.root ?? userOptions.projectRoot ?? process.cwd();\n const existingInput = config.build?.rollupOptions?.input || {};\n const currentInputs = typeof existingInput === 'string' ? { default: existingInput } : existingInput;\n const normalizer = createInputNormalizer(root);\n\n const serverEntry = userOptions.serverEntry ? [userOptions.serverEntry, userOptions.serverEntry] : [];\n // Add inputs based on condition\n const inputs = {\n ...currentInputs,\n ...(condition === 'react-server' && files ? {\n 'index.html': '/index.html',\n ...Object.fromEntries([\n ...serverEntry,\n ...Array.from(files.pageMap.entries()),\n ...Array.from(files.propsMap.entries())\n ].map(normalizer))\n } : {\n client: userOptions.clientEntry\n })\n };\n\n const userConfig = {\n ...config,\n root: root,\n mode: configEnv.command === 'build' ? 'production' : 'development',\n build: {\n ...config.build,\n outDir: condition === 'react-server' ? userOptions.build.server : userOptions.build.client,\n assetsDir: condition === 'react-server' ? \"\" : DEFAULT_CONFIG.CLIENT_ASSETS_DIR,\n ssr: condition === 'react-server',\n target: condition === 'react-server' ? 'node18' : 'es2020',\n minify: condition === 'react-server' ? false : true,\n manifest: true,\n ssrManifest: false,\n ssrEmitAssets: true,\n rollupOptions: {\n ...config.build?.rollupOptions,\n input: inputs,\n preserveEntrySignatures: 'strict',\n output: condition === 'react-server' ? {\n preserveModules: true,\n entryFileNames: '[name].js',\n assetFileNames: '[name].[ext]',\n chunkFileNames: '[name].[ext]',\n format: 'esm',\n exports: 'named',\n hoistTransitiveImports: false,\n generatedCode: {\n constBindings: true,\n objectShorthand: true\n },\n interop: 'auto'\n } : undefined\n }\n }\n };\n\n return {\n type: \"success\",\n userConfig: userConfig as ResolvedUserConfig\n };\n } catch (error) {\n return {\n type: \"error\",\n error: error instanceof Error ? error : new Error(\"Failed to resolve config\")\n };\n }\n} "],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveUserConfig.js","sources":["../../../plugin/config/resolveUserConfig.ts"],"sourcesContent":["import type { ConfigEnv, UserConfig } from \"vite\";\nimport type {\n CheckFilesExistReturn,\n ResolvedUserConfig,\n ResolvedUserOptions,\n} from \"../types.js\";\nimport { createInputNormalizer } from \"../helpers/inputNormalizer.js\";\nimport { join } from \"path\";\n// @ts-ignore\nimport { globSync } from \"fs\";\nimport type { OutputOptions } from \"rollup\";\nexport type ResolveUserConfigProps = {\n isClient?: boolean;\n config: UserConfig;\n configEnv: ConfigEnv;\n userOptions: ResolvedUserOptions;\n files?: CheckFilesExistReturn;\n};\n\nexport type ResolveUserConfigReturn =\n | { type: \"success\"; userConfig: ResolvedUserConfig }\n | { type: \"error\"; error: Error };\n\nexport function resolveUserConfig({\n isClient = false,\n config,\n configEnv,\n userOptions,\n files,\n}: ResolveUserConfigProps): ResolveUserConfigReturn {\n try {\n // Get existing inputs\n const root = config.root ?? userOptions.projectRoot ?? process.cwd();\n\n const normalizer = createInputNormalizer({\n root,\n preserveModulesRoot: undefined,\n });\n\n const serverEntry = userOptions.serverEntry\n ? Object.fromEntries([\n normalizer([userOptions.serverEntry, userOptions.serverEntry]),\n ])\n : null;\n const clientEntry = userOptions.clientEntry\n ? Object.fromEntries(\n [\n [userOptions.clientEntry, userOptions.clientEntry],\n [\"index.html\", \"index.html\"],\n ].map(normalizer)\n )\n : { \"index.html\": \"index.html\" };\n\n const autoDiscoveredClientFiles = (inputs: Record<string, string>) => {\n const allFiles = globSync(`**/*.client.*`, {\n cwd: join(root, userOptions.moduleBase),\n });\n for (const [key, value] of Object.entries(allFiles).map(([n, path]) => {\n if (typeof path !== \"string\") {\n throw new Error(`Invalid path: ${JSON.stringify(path)}`);\n }\n const [key, value] = normalizer(join(userOptions.moduleBase, path));\n return [key, value];\n })) {\n // check if not already in the inputs\n if (!inputs[key]) {\n inputs[key] = value;\n }\n }\n return inputs;\n };\n const autoDiscoveredServerFiles = (inputs: Record<string, string>) => {\n const allFiles = globSync(`${userOptions.moduleBase}/**/*.server.*`, {\n cwd: join(root, userOptions.moduleBase),\n });\n for (const [key, value] of Object.entries(allFiles).map(normalizer)) {\n if (!inputs[key]) {\n inputs[key] = value;\n }\n }\n return inputs;\n };\n const autoDiscoveredFiles = (inputs: Record<string, string>) => {\n if(!files) {\n return inputs;\n }\n for (const [key, value] of Object.entries( Array.from(files.pageMap.entries())).map(normalizer)) {\n if (!inputs[key]) {\n inputs[key] = value;\n }\n }\n for (const [key, value] of Object.entries( Array.from(files.propsMap.entries())).map(normalizer)) {\n if (!inputs[key]) {\n inputs[key] = value;\n }\n }\n return inputs;\n };\n\n // Add inputs based on condition\n let inputs = isClient\n ? autoDiscoveredClientFiles(clientEntry)\n : autoDiscoveredServerFiles(autoDiscoveredFiles(serverEntry ?? {}));\n\n if (userOptions.build.preserveModulesRoot) {\n inputs = Object.fromEntries(\n Object.entries(inputs).map(([key, value]) => {\n if (key.startsWith(userOptions.moduleBase + \"/\")) {\n return [key.slice(userOptions.moduleBase.length + 1), value];\n }\n return [key, value];\n })\n );\n }\n\n const envDir = isClient\n ? userOptions.build.client\n : userOptions.build.server;\n if (isClient) {\n return {\n type: \"success\",\n userConfig: {\n ...config,\n root: root,\n mode: configEnv.command === \"build\" ? \"production\" : \"development\",\n resolve: {\n external: [\"react\", \"react-dom\"],\n alias: {\n [userOptions.moduleBasePath]: join(root, userOptions.moduleBasePath),\n [userOptions.moduleBase]: join(root, userOptions.moduleBase),\n ['index.html']: join(root, 'index.html')\n }\n },\n ssr: {\n target: \"node\",\n external: [\"react\", \"react-dom\", \"react-server-dom-esm/client.browser\"],\n resolve: {\n conditions: [\"react-server\"],\n externalConditions: [\"react-server\"],\n },\n },\n build: {\n ...config.build,\n emptyOutDir: config.build?.emptyOutDir ?? true,\n outDir: join(userOptions.build.outDir, envDir),\n assetsDir: userOptions.build.assetsDir,\n // modern browsers\n target: [\"esnext\"],\n minify: true,\n ssr: true,\n manifest: config.build?.manifest ?? `.vite/manifest.json`,\n ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,\n ssrEmitAssets: true,\n rollupOptions: {\n ...config.build?.rollupOptions,\n input: inputs,\n output: {\n ...config.build?.rollupOptions?.output,\n preserveModulesRoot: userOptions.build.preserveModulesRoot\n ? userOptions.moduleBase\n : undefined,\n },\n },\n },\n },\n };\n }\n const mergeOutputArray = (Array.isArray(config.build?.rollupOptions?.output)) \n const pluginOutput = {\n preserveModules: true,\n preserveModulesRoot: userOptions.build.preserveModulesRoot\n ? userOptions.moduleBase\n : undefined,\n entryFileNames: userOptions.build.entryFile,\n assetFileNames: userOptions.build.assetFile,\n chunkFileNames: userOptions.build.chunkFile,\n format: \"esm\",\n exports: \"named\",\n hoistTransitiveImports: false,\n generatedCode: {\n constBindings: true,\n objectShorthand: true,\n },\n interop: \"auto\",\n } satisfies OutputOptions;\n const newOutput = Array.isArray(config.build?.rollupOptions?.output) ? \n [...config.build?.rollupOptions?.output, pluginOutput]\n : typeof config.build?.rollupOptions?.output === 'object' && config.build?.rollupOptions?.output !== null ?\n [config.build?.rollupOptions?.output, pluginOutput]\n : pluginOutput\n return {\n type: \"success\",\n userConfig: {\n ...config,\n root: root,\n mode: configEnv.command === \"build\" ? \"production\" : \"development\",\n resolve: {\n alias: {\n [userOptions.moduleBasePath]: join(root, userOptions.moduleBasePath),\n [userOptions.moduleBase]: join(root, userOptions.moduleBase),\n ['index.html']: join(root, 'index.html')\n }\n },\n build: {\n ...config.build,\n emptyOutDir: config.build?.emptyOutDir ?? true,\n outDir: join(userOptions.build.outDir, envDir),\n target: \"node18\",\n minify: true,\n ssr: true,\n manifest: config.build?.manifest ?? `.vite/manifest.json`,\n ssrManifest: config.build?.ssrManifest ?? `.vite/ssr-manifest.json`,\n ssrEmitAssets: true,\n assetsDir: config.build?.assetsDir ?? userOptions.build.assetsDir,\n rollupOptions: {\n ...config.build?.rollupOptions,\n input: inputs,\n preserveEntrySignatures: \"strict\",\n output: newOutput,\n },\n },\n },\n };\n } catch (error) {\n return {\n type: \"error\",\n error:\n error instanceof Error ? error : new Error(\"Failed to resolve config\"),\n };\n }\n}\n"],"names":["inputs","key","value"],"mappings":"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"}