@reckona/mreact-router 0.0.165 → 0.0.166

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.
package/dist/build.js CHANGED
@@ -21,6 +21,7 @@ import { collectRouteCssFilesFromSources, collectSpecialBoundaryFiles } from "./
21
21
  import { existingRouteShellCandidates } from "./route-shells.js";
22
22
  import { sourceModuleCandidates } from "./source-modules.js";
23
23
  import { collectBuildInferredServerActions } from "./server-action-inference.js";
24
+ import { prepareRouteServerActionPlaceholders } from "./actions.js";
24
25
  import { viteDefineCacheKey, vitePluginsCacheKey } from "./vite-plugin-cache-key.js";
25
26
  import { workspacePackageFile } from "./workspace-packages.js";
26
27
  import { prependTailwindSourceDirectives } from "./tailwind-source.js";
@@ -184,12 +185,8 @@ export async function buildApp(options) {
184
185
  routesDir: project.routesDir,
185
186
  })),
186
187
  ]);
187
- const actionRenderBundleExcludedFiles = new Set([...serverActionManifest.routeReferences.entries()]
188
- .filter(([, references]) => references.length > 0)
189
- .map(([file]) => file));
190
188
  const { artifacts: serverModules, sharedChunks: serverModuleSharedChunks } = await (shouldTrackBuildPhases === false
191
189
  ? buildServerModuleArtifacts({
192
- actionRenderBundleExcludedFiles,
193
190
  bundleRequestRuntimePackages: shouldBuildAwsLambda,
194
191
  bundleCache: new Map(),
195
192
  clientRouteInferenceCache: serverClientRouteInferenceCache,
@@ -199,12 +196,12 @@ export async function buildApp(options) {
199
196
  project,
200
197
  projectRoot: project.projectRoot,
201
198
  routes,
199
+ serverActionReferencesByFile: serverActionManifest.routeReferences,
202
200
  sourceAnalysis,
203
201
  serverTransformCache,
204
202
  vitePlugins,
205
203
  })
206
204
  : timeBuildPhase(timingSink, progressSink, "serverModules", () => buildServerModuleArtifacts({
207
- actionRenderBundleExcludedFiles,
208
205
  bundleRequestRuntimePackages: shouldBuildAwsLambda,
209
206
  bundleCache: new Map(),
210
207
  clientRouteInferenceCache: serverClientRouteInferenceCache,
@@ -214,6 +211,7 @@ export async function buildApp(options) {
214
211
  project,
215
212
  projectRoot: project.projectRoot,
216
213
  routes,
214
+ serverActionReferencesByFile: serverActionManifest.routeReferences,
217
215
  sourceAnalysis,
218
216
  serverTransformCache,
219
217
  vitePlugins,
@@ -560,6 +558,10 @@ function analyzeBuildSource(source, filename) {
560
558
  function buildSourceAnalysisForFile(sourceAnalysis, projectRoot, file) {
561
559
  return sourceAnalysis.byFile.get(relative(projectRoot, file).split(sep).join("/"));
562
560
  }
561
+ function canUseBuildServerActionPlaceholders(references) {
562
+ return references.every((reference) => reference.expression === reference.exportName &&
563
+ /^[A-Za-z_$][\w$]*$/u.test(reference.expression));
564
+ }
563
565
  async function buildPublicAssetManifest(project, clientDir) {
564
566
  const [publicAssetPaths, appConventionPublicAssets] = await Promise.all([
565
567
  collectPublicAssetPaths(project.publicDir),
@@ -1355,6 +1357,13 @@ async function buildServerModuleArtifacts(options) {
1355
1357
  const route = routeByFile.get(file);
1356
1358
  const routeAnalysis = options.sourceAnalysis.byRouteFile.get(file);
1357
1359
  const artifact = {};
1360
+ const routeActionReferences = options.serverActionReferencesByFile.get(file) ?? [];
1361
+ const renderSource = routeActionReferences.length === 0
1362
+ ? source
1363
+ : prepareRouteServerActionPlaceholders({
1364
+ code: source,
1365
+ formActionReferences: routeActionReferences,
1366
+ });
1358
1367
  if (requestArtifactFiles.has(file) ||
1359
1368
  loaderArtifactFiles.has(file) ||
1360
1369
  metadataArtifactFiles.has(file)) {
@@ -1429,8 +1438,11 @@ async function buildServerModuleArtifacts(options) {
1429
1438
  const serverOutputs = streamRoute || (route === undefined && closureUsesAwait)
1430
1439
  ? ["stream", "string"]
1431
1440
  : ["string"];
1432
- const code = routeAnalysis?.routeCode ??
1433
- (route === undefined ? source : stripRouteBuildExports(source, absoluteFile));
1441
+ const code = routeActionReferences.length === 0 && routeAnalysis !== undefined
1442
+ ? routeAnalysis.routeCode
1443
+ : route === undefined
1444
+ ? renderSource
1445
+ : stripRouteBuildExports(renderSource, absoluteFile);
1434
1446
  const clientInference = routeAnalysis === undefined
1435
1447
  ? await inferClientRouteModule({
1436
1448
  ...(route === undefined ? {} : { appDir: options.project.routesDir }),
@@ -1490,7 +1502,8 @@ async function buildServerModuleArtifacts(options) {
1490
1502
  return undefined;
1491
1503
  }
1492
1504
  const shouldWriteRenderBundle = options.prebundleServerComponents &&
1493
- options.actionRenderBundleExcludedFiles?.has(file) !== true;
1505
+ (routeActionReferences.length === 0 ||
1506
+ canUseBuildServerActionPlaceholders(routeActionReferences));
1494
1507
  const bundleCode = shouldWriteRenderBundle
1495
1508
  ? await buildServerComponentBundleArtifactCode({
1496
1509
  clientRouteInferenceCache: options.clientRouteInferenceCache,