Respo / Respo/react.mbt

[P1][条件性 / Conditional][SSR] Node 流式 SSR 与静态预渲染 / Node streaming SSR and static prerendering

Open
#43 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
MoonBit
Stars
1
Forks
1
Avg merge
1h 23m
Merged PRs (30d)
28

Description

中文

决策门槛

此项仅在项目明确把 Node SSR 作为支持目标时进入实现;若主要目标是浏览器与 Edge/Web Streams,应改为记录支持边界后关闭,不为了 API 数量扩张维护面。

目标

为 Node 部署补充 pipeable streaming 与 static prerender 能力,并验证 backpressure、abort、错误处理和 hydration。

候选范围
  • renderToPipeableStream
  • abort 与 backpressure
  • prerender / prerenderToNodeStream
  • 静态输出、流式输出和客户端 hydration
可量化验收
  • Issue 中先记录支持 Node SSR 的明确决策和目标 Node 版本。
  • Node tests 报告 shell/chunk/allReady/abort/error 的精确次数。
  • backpressure 与 abort 不产生重复回调或未处理 rejection。
  • 静态输出和 hydration DOM 结果被精确验证。
  • 非预期 diagnostics 为 0;MoonBit tests、Node tests 和 production build 通过。

English

Decision gate

Implementation starts only if the project explicitly adopts Node SSR as a supported target. If browser and Edge/Web Streams remain the primary targets, document that boundary and close this issue instead of expanding maintenance scope for API-count completeness.

Goal

Add pipeable streaming and static prerendering for Node deployments, with verification for backpressure, aborts, errors, and hydration.

Candidate scope
  • renderToPipeableStream
  • abort and backpressure behavior
  • prerender / prerenderToNodeStream
  • static output, streaming output, and client hydration
Quantitative acceptance
  • Record the explicit Node SSR support decision and target Node version before implementation.
  • Node tests report exact shell, chunk, allReady, abort, and error counts.
  • Backpressure and aborts produce no duplicate callbacks or unhandled rejections.
  • Static output and hydrated DOM results are verified exactly.
  • Unexpected diagnostics are zero; MoonBit tests, Node tests, and the production build pass.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by recording whether Node SSR is an adopted target and the target Node version; the issue does not name implementation files or entry points. Then inspect the Node tests and existing streaming or prerendering entry points, if present. Done means the specified shell, chunk, allReady, abort, error, backpressure, hydration, diagnostics, MoonBit test, Node test, and production-build checks pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, react
Domain
backend, testing, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.