solidjs / solid-start

SolidStart, the Solid app framework
https://start.solidjs.com
MIT License
5.08k stars 377 forks source link

[Bug?]: Infinite loop in prod builds #1640

Open maxburs opened 1 day ago

maxburs commented 1 day ago

Duplicates

Latest version

Current behavior 😯

When doing a prod build, app freezes. Dev builds unaffected. Static versions of the pages appear ok, GET request responses appear missing?

Expected behavior 🤔

No response

Steps to reproduce 🕹

Reproduction here: https://deploy-preview-23--maxburson.netlify.app/ Code: https://github.com/maxburs/blog/tree/solid-start

Context 🔦

Trying to get SolidStart to statically render the GET requests on my blog. At least, I'm guessing it's related to the GET requests?

https://github.com/maxburs/blog/blob/6f705bf50a1436bc6d9040bbf1697c650d23ae92/src/routes/index.tsx#L13

const getMainRouteData = GET(async () => {
  'use server';

  return getAllPosts().map((p) => {
    const { content: _, ...rest } = p;
    return rest;
  });
});

https://github.com/maxburs/blog/blob/6f705bf50a1436bc6d9040bbf1697c650d23ae92/app.config.ts

import { defineConfig } from '@solidjs/start/config';

// https://docs.solidjs.com/solid-start/reference/entrypoints/app-config

export default defineConfig({
  ssr: true,
  // https://nitro.unjs.io/config
  // https://vinxi.vercel.app/guide/getting-started.html
  server: {
    preset: 'static',
    prerender: {
      crawlLinks: true,
      failOnError: true,
    }
  },
});

Your environment 🌎

Issue reproduces when built on an M3 Mac and on Netlify, both using Node 20
lxsmnsyc commented 20 hours ago

I think part of the mistake here is that there's two use server. Perhaps you don't need the use server inside GET and then fix the types in getAllPosts for it to consistently return Promise<T> because server functions always return them.