hadars 0.1.40 → 0.2.1
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/README.md +85 -70
- package/cli-lib.ts +89 -12
- package/dist/chunk-HWOLYLPF.js +332 -0
- package/dist/{chunk-2ENP7IAW.js → chunk-LY5MTHFV.js} +360 -203
- package/dist/cli.js +506 -274
- package/dist/cloudflare.cjs +1394 -0
- package/dist/cloudflare.d.cts +64 -0
- package/dist/cloudflare.d.ts +64 -0
- package/dist/cloudflare.js +68 -0
- package/dist/{hadars-Bh-V5YXg.d.cts → hadars-DEBSYAQl.d.cts} +1 -36
- package/dist/{hadars-Bh-V5YXg.d.ts → hadars-DEBSYAQl.d.ts} +1 -36
- package/dist/index.cjs +129 -156
- package/dist/index.d.cts +5 -11
- package/dist/index.d.ts +5 -11
- package/dist/index.js +129 -155
- package/dist/lambda.cjs +391 -229
- package/dist/lambda.d.cts +1 -2
- package/dist/lambda.d.ts +1 -2
- package/dist/lambda.js +18 -307
- package/dist/slim-react/index.cjs +361 -203
- package/dist/slim-react/index.d.cts +24 -8
- package/dist/slim-react/index.d.ts +24 -8
- package/dist/slim-react/index.js +3 -1
- package/dist/ssr-render-worker.js +352 -221
- package/dist/utils/Head.tsx +132 -187
- package/package.json +7 -2
- package/src/build.ts +7 -6
- package/src/cloudflare.ts +139 -0
- package/src/index.tsx +0 -3
- package/src/lambda.ts +6 -2
- package/src/slim-react/context.ts +2 -1
- package/src/slim-react/index.ts +21 -18
- package/src/slim-react/render.ts +379 -240
- package/src/slim-react/renderContext.ts +105 -45
- package/src/ssr-render-worker.ts +14 -44
- package/src/types/hadars.ts +0 -1
- package/src/utils/Head.tsx +132 -187
- package/src/utils/cookies.ts +1 -1
- package/src/utils/response.tsx +68 -33
- package/src/utils/serve.ts +29 -27
- package/src/utils/ssrHandler.ts +54 -25
- package/src/utils/staticFile.ts +2 -7
|
@@ -96,9 +96,26 @@ interface RenderOptions {
|
|
|
96
96
|
*/
|
|
97
97
|
declare function renderToStream(element: SlimNode, options?: RenderOptions): ReadableStream<Uint8Array>;
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
99
|
+
* Pass-1 preflight render.
|
|
100
|
+
*
|
|
101
|
+
* Walks the component tree with a NullWriter (discards all HTML output) so
|
|
102
|
+
* that all `useServerData` promises are resolved into the `__hadarsUnsuspend`
|
|
103
|
+
* cache and all `context.head` mutations are applied.
|
|
104
|
+
*
|
|
105
|
+
* Components self-retry on suspension at the component level (see
|
|
106
|
+
* `renderComponent` catch block), so a single tree walk is sufficient.
|
|
107
|
+
*
|
|
108
|
+
* Call this before `renderToString` / `renderToStream` to guarantee a
|
|
109
|
+
* suspension-free, fully-synchronous second pass.
|
|
110
|
+
*/
|
|
111
|
+
declare function renderPreflight(element: SlimNode, options?: RenderOptions): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Render a component tree to a complete HTML string.
|
|
114
|
+
*
|
|
115
|
+
* Components self-retry on suspension at the component level (see
|
|
116
|
+
* `renderComponent` catch block), so a single tree walk is sufficient
|
|
117
|
+
* even when `useServerData` or similar hooks are used without an explicit
|
|
118
|
+
* `<Suspense>` wrapper.
|
|
102
119
|
*/
|
|
103
120
|
declare function renderToString(element: SlimNode, options?: RenderOptions): Promise<string>;
|
|
104
121
|
|
|
@@ -115,10 +132,8 @@ declare const Suspense: symbol;
|
|
|
115
132
|
|
|
116
133
|
declare function isValidElement(obj: unknown): obj is SlimElement;
|
|
117
134
|
declare function cloneElement(element: SlimElement, overrideProps?: Record<string, any>, ...children: SlimNode[]): SlimElement;
|
|
118
|
-
declare function forwardRef<P = any>(render: (props: P, ref: any) => SlimNode):
|
|
119
|
-
|
|
120
|
-
}) => SlimNode;
|
|
121
|
-
declare function memo<P = any>(component: (props: P) => SlimNode): (props: P) => SlimNode;
|
|
135
|
+
declare function forwardRef<P = any>(render: (props: P, ref: any) => SlimNode): any;
|
|
136
|
+
declare function memo<P = any>(component: (props: P) => SlimNode, compare?: (prevProps: P, nextProps: P) => boolean): any;
|
|
122
137
|
declare function lazy<P = any>(factory: () => Promise<{
|
|
123
138
|
default: (props: P) => SlimNode;
|
|
124
139
|
}>): (props: P) => SlimNode;
|
|
@@ -184,7 +199,8 @@ declare const React: {
|
|
|
184
199
|
renderToStream: typeof renderToStream;
|
|
185
200
|
renderToString: typeof renderToString;
|
|
186
201
|
renderToReadableStream: typeof renderToStream;
|
|
202
|
+
renderPreflight: typeof renderPreflight;
|
|
187
203
|
version: string;
|
|
188
204
|
};
|
|
189
205
|
|
|
190
|
-
export { Children, Component, type Context, PureComponent, type RenderOptions, SlimElement, SlimNode, Suspense, cloneElement, createContext, createElement, React as default, forwardRef, isValidElement, lazy, memo, renderToStream as renderToReadableStream, renderToStream, renderToString, startTransition, use, useActionState, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useFormStatus, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
|
|
206
|
+
export { Children, Component, type Context, PureComponent, type RenderOptions, SlimElement, SlimNode, Suspense, cloneElement, createContext, createElement, React as default, forwardRef, isValidElement, lazy, memo, renderPreflight, renderToStream as renderToReadableStream, renderToStream, renderToString, startTransition, use, useActionState, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useFormStatus, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
|
|
@@ -96,9 +96,26 @@ interface RenderOptions {
|
|
|
96
96
|
*/
|
|
97
97
|
declare function renderToStream(element: SlimNode, options?: RenderOptions): ReadableStream<Uint8Array>;
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
99
|
+
* Pass-1 preflight render.
|
|
100
|
+
*
|
|
101
|
+
* Walks the component tree with a NullWriter (discards all HTML output) so
|
|
102
|
+
* that all `useServerData` promises are resolved into the `__hadarsUnsuspend`
|
|
103
|
+
* cache and all `context.head` mutations are applied.
|
|
104
|
+
*
|
|
105
|
+
* Components self-retry on suspension at the component level (see
|
|
106
|
+
* `renderComponent` catch block), so a single tree walk is sufficient.
|
|
107
|
+
*
|
|
108
|
+
* Call this before `renderToString` / `renderToStream` to guarantee a
|
|
109
|
+
* suspension-free, fully-synchronous second pass.
|
|
110
|
+
*/
|
|
111
|
+
declare function renderPreflight(element: SlimNode, options?: RenderOptions): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Render a component tree to a complete HTML string.
|
|
114
|
+
*
|
|
115
|
+
* Components self-retry on suspension at the component level (see
|
|
116
|
+
* `renderComponent` catch block), so a single tree walk is sufficient
|
|
117
|
+
* even when `useServerData` or similar hooks are used without an explicit
|
|
118
|
+
* `<Suspense>` wrapper.
|
|
102
119
|
*/
|
|
103
120
|
declare function renderToString(element: SlimNode, options?: RenderOptions): Promise<string>;
|
|
104
121
|
|
|
@@ -115,10 +132,8 @@ declare const Suspense: symbol;
|
|
|
115
132
|
|
|
116
133
|
declare function isValidElement(obj: unknown): obj is SlimElement;
|
|
117
134
|
declare function cloneElement(element: SlimElement, overrideProps?: Record<string, any>, ...children: SlimNode[]): SlimElement;
|
|
118
|
-
declare function forwardRef<P = any>(render: (props: P, ref: any) => SlimNode):
|
|
119
|
-
|
|
120
|
-
}) => SlimNode;
|
|
121
|
-
declare function memo<P = any>(component: (props: P) => SlimNode): (props: P) => SlimNode;
|
|
135
|
+
declare function forwardRef<P = any>(render: (props: P, ref: any) => SlimNode): any;
|
|
136
|
+
declare function memo<P = any>(component: (props: P) => SlimNode, compare?: (prevProps: P, nextProps: P) => boolean): any;
|
|
122
137
|
declare function lazy<P = any>(factory: () => Promise<{
|
|
123
138
|
default: (props: P) => SlimNode;
|
|
124
139
|
}>): (props: P) => SlimNode;
|
|
@@ -184,7 +199,8 @@ declare const React: {
|
|
|
184
199
|
renderToStream: typeof renderToStream;
|
|
185
200
|
renderToString: typeof renderToString;
|
|
186
201
|
renderToReadableStream: typeof renderToStream;
|
|
202
|
+
renderPreflight: typeof renderPreflight;
|
|
187
203
|
version: string;
|
|
188
204
|
};
|
|
189
205
|
|
|
190
|
-
export { Children, Component, type Context, PureComponent, type RenderOptions, SlimElement, SlimNode, Suspense, cloneElement, createContext, createElement, React as default, forwardRef, isValidElement, lazy, memo, renderToStream as renderToReadableStream, renderToStream, renderToString, startTransition, use, useActionState, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useFormStatus, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
|
|
206
|
+
export { Children, Component, type Context, PureComponent, type RenderOptions, SlimElement, SlimNode, Suspense, cloneElement, createContext, createElement, React as default, forwardRef, isValidElement, lazy, memo, renderPreflight, renderToStream as renderToReadableStream, renderToStream, renderToString, startTransition, use, useActionState, useCallback, useContext, useDebugValue, useDeferredValue, useEffect, useFormStatus, useId, useImperativeHandle, useInsertionEffect, useLayoutEffect, useMemo, useOptimistic, useReducer, useRef, useState, useSyncExternalStore, useTransition, version };
|
package/dist/slim-react/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
isValidElement,
|
|
10
10
|
lazy,
|
|
11
11
|
memo,
|
|
12
|
+
renderPreflight,
|
|
12
13
|
renderToStream,
|
|
13
14
|
renderToString,
|
|
14
15
|
slim_react_default,
|
|
@@ -33,7 +34,7 @@ import {
|
|
|
33
34
|
useSyncExternalStore,
|
|
34
35
|
useTransition,
|
|
35
36
|
version
|
|
36
|
-
} from "../chunk-
|
|
37
|
+
} from "../chunk-LY5MTHFV.js";
|
|
37
38
|
import {
|
|
38
39
|
FRAGMENT_TYPE,
|
|
39
40
|
Fragment,
|
|
@@ -62,6 +63,7 @@ export {
|
|
|
62
63
|
jsx as jsxs,
|
|
63
64
|
lazy,
|
|
64
65
|
memo,
|
|
66
|
+
renderPreflight,
|
|
65
67
|
renderToStream as renderToReadableStream,
|
|
66
68
|
renderToStream,
|
|
67
69
|
renderToString,
|