@rainfw/core 0.1.2 → 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.
Files changed (63) hide show
  1. package/dist/client/dom.d.ts +4 -0
  2. package/dist/client/dom.d.ts.map +1 -0
  3. package/dist/client/dom.js +130 -0
  4. package/dist/client/dom.js.map +1 -0
  5. package/dist/client/hooks.d.ts +58 -0
  6. package/dist/client/hooks.d.ts.map +1 -0
  7. package/dist/client/hooks.js +173 -0
  8. package/dist/client/hooks.js.map +1 -0
  9. package/dist/client/hydrate.d.ts +14 -0
  10. package/dist/client/hydrate.d.ts.map +1 -0
  11. package/dist/client/hydrate.js +167 -0
  12. package/dist/client/hydrate.js.map +1 -0
  13. package/dist/client/jsx-runtime.d.ts +6 -0
  14. package/dist/client/jsx-runtime.d.ts.map +1 -0
  15. package/dist/client/jsx-runtime.js +20 -0
  16. package/dist/client/jsx-runtime.js.map +1 -0
  17. package/dist/client/reconciler.d.ts +4 -0
  18. package/dist/client/reconciler.d.ts.map +1 -0
  19. package/dist/client/reconciler.js +238 -0
  20. package/dist/client/reconciler.js.map +1 -0
  21. package/dist/client/runtime.d.ts +6 -0
  22. package/dist/client/runtime.d.ts.map +1 -0
  23. package/dist/client/runtime.js +17 -0
  24. package/dist/client/runtime.js.map +1 -0
  25. package/dist/client/scheduler.d.ts +4 -0
  26. package/dist/client/scheduler.d.ts.map +1 -0
  27. package/dist/client/scheduler.js +44 -0
  28. package/dist/client/scheduler.js.map +1 -0
  29. package/dist/compiler/inject.d.ts +6 -0
  30. package/dist/compiler/inject.d.ts.map +1 -0
  31. package/dist/compiler/inject.js +19 -0
  32. package/dist/compiler/inject.js.map +1 -0
  33. package/dist/compiler/server-action.d.ts +9 -0
  34. package/dist/compiler/server-action.d.ts.map +1 -0
  35. package/dist/compiler/server-action.js +98 -0
  36. package/dist/compiler/server-action.js.map +1 -0
  37. package/dist/context.js +1 -1
  38. package/dist/context.js.map +1 -1
  39. package/dist/index.d.ts +5 -3
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +2 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/jsx/index.d.ts +3 -2
  44. package/dist/jsx/index.d.ts.map +1 -1
  45. package/dist/jsx/index.js +2 -2
  46. package/dist/jsx/index.js.map +1 -1
  47. package/dist/jsx/render.d.ts +7 -1
  48. package/dist/jsx/render.d.ts.map +1 -1
  49. package/dist/jsx/render.js +96 -14
  50. package/dist/jsx/render.js.map +1 -1
  51. package/dist/jsx/types.d.ts +4 -0
  52. package/dist/jsx/types.d.ts.map +1 -1
  53. package/dist/jsx/types.js +10 -0
  54. package/dist/jsx/types.js.map +1 -1
  55. package/dist/router.d.ts +7 -1
  56. package/dist/router.d.ts.map +1 -1
  57. package/dist/router.js +84 -3
  58. package/dist/router.js.map +1 -1
  59. package/dist/types.d.ts +2 -0
  60. package/dist/types.d.ts.map +1 -1
  61. package/package.json +7 -2
  62. package/scripts/dev.js +28 -1
  63. package/scripts/generate.js +228 -10
@@ -0,0 +1,238 @@
1
+ import { Fragment } from "../jsx/createElement";
2
+ import { RAIN_ELEMENT } from "../jsx/types";
3
+ import { applyProps, createDomNode } from "./dom";
4
+ import { setCurrentFiber } from "./hooks";
5
+ function isRainElement(value) {
6
+ return (typeof value === "object" &&
7
+ value !== null &&
8
+ value.$$typeof === RAIN_ELEMENT);
9
+ }
10
+ function flattenChildren(children) {
11
+ const flat = [];
12
+ for (const child of children) {
13
+ if (Array.isArray(child)) {
14
+ flat.push(...flattenChildren(child));
15
+ }
16
+ else {
17
+ flat.push(child);
18
+ }
19
+ }
20
+ return flat;
21
+ }
22
+ function getKey(node) {
23
+ if (isRainElement(node)) {
24
+ return node.props["key"];
25
+ }
26
+ return undefined;
27
+ }
28
+ function hasAnyKey(nodes) {
29
+ for (const node of nodes) {
30
+ if (getKey(node) !== undefined)
31
+ return true;
32
+ }
33
+ return false;
34
+ }
35
+ function isSameType(oldNode, newNode) {
36
+ if (isRainElement(oldNode) && isRainElement(newNode)) {
37
+ return oldNode.tag === newNode.tag;
38
+ }
39
+ if (!(isRainElement(oldNode) || isRainElement(newNode))) {
40
+ return true;
41
+ }
42
+ return false;
43
+ }
44
+ function isNullish(node) {
45
+ return node === null || node === undefined || typeof node === "boolean";
46
+ }
47
+ function nodeToText(node) {
48
+ if (typeof node === "number")
49
+ return String(node);
50
+ if (typeof node === "string")
51
+ return node;
52
+ return "";
53
+ }
54
+ function removeOldProps(el, oldProps, newProps) {
55
+ for (const key of Object.keys(oldProps)) {
56
+ if (key === "children" || key === "key" || key === "ref")
57
+ continue;
58
+ if (key in newProps)
59
+ continue;
60
+ if (key.startsWith("on") && typeof oldProps[key] === "function") {
61
+ const eventName = key.slice(2).toLowerCase();
62
+ el.removeEventListener(eventName, oldProps[key]);
63
+ continue;
64
+ }
65
+ if (key === "className") {
66
+ el.removeAttribute("class");
67
+ }
68
+ else {
69
+ el.removeAttribute(key);
70
+ }
71
+ }
72
+ }
73
+ function updateEventListeners(el, oldProps, newProps) {
74
+ for (const key of Object.keys(newProps)) {
75
+ if (!key.startsWith("on") || typeof newProps[key] !== "function")
76
+ continue;
77
+ const eventName = key.slice(2).toLowerCase();
78
+ const oldHandler = oldProps[key];
79
+ const newHandler = newProps[key];
80
+ if (oldHandler === newHandler)
81
+ continue;
82
+ if (typeof oldHandler === "function") {
83
+ el.removeEventListener(eventName, oldHandler);
84
+ }
85
+ el.addEventListener(eventName, newHandler);
86
+ }
87
+ }
88
+ function patchProps(el, oldProps, newProps) {
89
+ removeOldProps(el, oldProps, newProps);
90
+ updateEventListeners(el, oldProps, newProps);
91
+ applyProps(el, newProps);
92
+ }
93
+ function renderFunctionComponent(vnode, fiber) {
94
+ if (typeof vnode.tag !== "function")
95
+ return vnode;
96
+ if (vnode.tag === Fragment)
97
+ return vnode;
98
+ if (fiber) {
99
+ setCurrentFiber(fiber);
100
+ }
101
+ const result = vnode.tag({
102
+ ...vnode.props,
103
+ children: vnode.children,
104
+ });
105
+ if (fiber) {
106
+ setCurrentFiber(null);
107
+ }
108
+ if (result === null)
109
+ return null;
110
+ if (typeof result === "string")
111
+ return null;
112
+ return result;
113
+ }
114
+ function buildKeyedMap(oldFlat, parentEl) {
115
+ const oldKeyed = new Map();
116
+ for (let i = 0; i < oldFlat.length; i++) {
117
+ const key = getKey(oldFlat[i]);
118
+ const domNode = parentEl.childNodes[i];
119
+ if (key !== undefined && domNode) {
120
+ oldKeyed.set(key, {
121
+ node: oldFlat[i],
122
+ domNode,
123
+ index: i,
124
+ });
125
+ }
126
+ }
127
+ return oldKeyed;
128
+ }
129
+ function patchKeyedChild(parentEl, oldKeyed, newChild, existingDom) {
130
+ const newKey = getKey(newChild);
131
+ const cached = newKey === undefined ? undefined : oldKeyed.get(newKey);
132
+ if (cached) {
133
+ parentEl.insertBefore(cached.domNode, existingDom);
134
+ patchNode(cached.domNode, cached.node, newChild);
135
+ }
136
+ else {
137
+ const newDom = createNodeFromChild(newChild);
138
+ if (newDom)
139
+ parentEl.insertBefore(newDom, existingDom);
140
+ }
141
+ }
142
+ function patchChildAtIndex(parentEl, oldChild, newChild, existingDom, oldKeyed) {
143
+ if (oldChild === undefined && newChild !== undefined) {
144
+ const newDom = createNodeFromChild(newChild);
145
+ if (newDom)
146
+ parentEl.appendChild(newDom);
147
+ return;
148
+ }
149
+ if (newChild === undefined && existingDom) {
150
+ parentEl.removeChild(existingDom);
151
+ return;
152
+ }
153
+ if (!(oldChild && newChild && existingDom))
154
+ return;
155
+ const newKey = getKey(newChild);
156
+ const oldKey = getKey(oldChild);
157
+ if (oldKeyed &&
158
+ newKey !== undefined &&
159
+ oldKey !== undefined &&
160
+ newKey !== oldKey) {
161
+ patchKeyedChild(parentEl, oldKeyed, newChild, existingDom);
162
+ return;
163
+ }
164
+ if (!isSameType(oldChild, newChild)) {
165
+ const newDom = createNodeFromChild(newChild);
166
+ if (newDom)
167
+ parentEl.replaceChild(newDom, existingDom);
168
+ return;
169
+ }
170
+ patchNode(existingDom, oldChild, newChild);
171
+ }
172
+ function trimExcessChildren(parentEl, targetLen) {
173
+ while (parentEl.childNodes.length > targetLen) {
174
+ const last = parentEl.lastChild;
175
+ if (last)
176
+ parentEl.removeChild(last);
177
+ else
178
+ break;
179
+ }
180
+ }
181
+ function patchChildren(parentEl, oldChildren, newChildren) {
182
+ const oldFlat = flattenChildren(oldChildren).filter((c) => !isNullish(c));
183
+ const newFlat = flattenChildren(newChildren).filter((c) => !isNullish(c));
184
+ const oldKeyed = hasAnyKey(oldFlat) ? buildKeyedMap(oldFlat, parentEl) : null;
185
+ const maxLen = Math.max(oldFlat.length, newFlat.length);
186
+ for (let i = 0; i < maxLen; i++) {
187
+ patchChildAtIndex(parentEl, oldFlat[i], newFlat[i], parentEl.childNodes[i], oldKeyed);
188
+ }
189
+ trimExcessChildren(parentEl, newFlat.length);
190
+ }
191
+ function createNodeFromChild(child) {
192
+ if (isNullish(child))
193
+ return null;
194
+ if (isRainElement(child))
195
+ return createDomNode(child);
196
+ return document.createTextNode(nodeToText(child));
197
+ }
198
+ function patchNode(dom, oldNode, newNode) {
199
+ if (!(isRainElement(oldNode) || isRainElement(newNode))) {
200
+ const oldText = nodeToText(oldNode);
201
+ const newText = nodeToText(newNode);
202
+ if (oldText !== newText && dom.nodeType === Node.TEXT_NODE) {
203
+ dom.textContent = newText;
204
+ }
205
+ return;
206
+ }
207
+ if (!(isRainElement(oldNode) && isRainElement(newNode)))
208
+ return;
209
+ if (oldNode.tag === Fragment && newNode.tag === Fragment) {
210
+ patchChildren(dom, oldNode.children, newNode.children);
211
+ return;
212
+ }
213
+ if (typeof oldNode.tag === "string" && dom instanceof HTMLElement) {
214
+ patchProps(dom, oldNode.props, newNode.props);
215
+ patchChildren(dom, oldNode.children, newNode.children);
216
+ }
217
+ }
218
+ export function reconcile(container, fiber, newVnode) {
219
+ const oldDom = fiber.dom;
220
+ const resolved = renderFunctionComponent(newVnode, null);
221
+ if (!resolved)
222
+ return;
223
+ const oldResolved = fiber.rendered ?? renderFunctionComponent(fiber.vnode, null);
224
+ if (oldResolved && oldDom.parentNode) {
225
+ if (typeof resolved.tag === "string" && oldDom instanceof HTMLElement) {
226
+ patchProps(oldDom, oldResolved.props, resolved.props);
227
+ patchChildren(oldDom, oldResolved.children, resolved.children);
228
+ }
229
+ else {
230
+ const newDom = createDomNode(resolved);
231
+ container.replaceChild(newDom, oldDom);
232
+ fiber.dom = newDom;
233
+ }
234
+ }
235
+ fiber.rendered = resolved;
236
+ fiber.vnode = newVnode;
237
+ }
238
+ //# sourceMappingURL=reconciler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../src/framework/client/reconciler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { RainComponent } from "../jsx/types";
2
+ import type { Fiber } from "./hooks";
3
+ export declare function registerIsland(id: string, component: RainComponent): void;
4
+ export declare function getRegistry(): ReadonlyMap<string, RainComponent>;
5
+ export declare function startHydration(root?: Node): Fiber[];
6
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/framework/client/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAOrC,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CAEzE;AAED,wBAAgB,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAEhE;AAED,wBAAgB,cAAc,CAAC,IAAI,GAAE,IAAoB,GAAG,KAAK,EAAE,CAKlE"}
@@ -0,0 +1,17 @@
1
+ import { flushPendingEffects } from "./hooks";
2
+ import { hydrateIslands } from "./hydrate";
3
+ import { initScheduler } from "./scheduler";
4
+ const registry = new Map();
5
+ export function registerIsland(id, component) {
6
+ registry.set(id, component);
7
+ }
8
+ export function getRegistry() {
9
+ return registry;
10
+ }
11
+ export function startHydration(root = document.body) {
12
+ initScheduler();
13
+ const fibers = hydrateIslands(root, registry);
14
+ flushPendingEffects();
15
+ return fibers;
16
+ }
17
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/framework/client/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;AAElD,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,SAAwB;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAa,QAAQ,CAAC,IAAI;IACvD,aAAa,EAAE,CAAC;IAChB,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,EAAE,CAAC;IACtB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function initScheduler(): void;
2
+ export declare function flushSync(): void;
3
+ export declare function hasPendingUpdates(): boolean;
4
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/framework/client/scheduler.ts"],"names":[],"mappings":"AAkDA,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
@@ -0,0 +1,44 @@
1
+ import { flushPendingEffects, setCurrentFiber, setScheduleUpdate, } from "./hooks";
2
+ import { reconcile } from "./reconciler";
3
+ const pendingFibers = new Set();
4
+ let flushScheduled = false;
5
+ function rerender(fiber) {
6
+ setCurrentFiber(fiber);
7
+ const { vnode } = fiber;
8
+ if (typeof vnode.tag !== "function")
9
+ return;
10
+ const newVnode = vnode.tag({
11
+ ...vnode.props,
12
+ children: vnode.children,
13
+ });
14
+ setCurrentFiber(null);
15
+ if (newVnode === null || typeof newVnode === "string")
16
+ return;
17
+ reconcile(fiber.dom.parentNode, fiber, newVnode);
18
+ }
19
+ function flush() {
20
+ const fibers = [...pendingFibers];
21
+ pendingFibers.clear();
22
+ flushScheduled = false;
23
+ for (const fiber of fibers) {
24
+ rerender(fiber);
25
+ }
26
+ flushPendingEffects();
27
+ }
28
+ function scheduleUpdate(fiber) {
29
+ pendingFibers.add(fiber);
30
+ if (!flushScheduled) {
31
+ flushScheduled = true;
32
+ queueMicrotask(flush);
33
+ }
34
+ }
35
+ export function initScheduler() {
36
+ setScheduleUpdate(scheduleUpdate);
37
+ }
38
+ export function flushSync() {
39
+ flush();
40
+ }
41
+ export function hasPendingUpdates() {
42
+ return pendingFibers.size > 0;
43
+ }
44
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/framework/client/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAS,CAAC;AACvC,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B,SAAS,QAAQ,CAAC,KAAY;IAC5B,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvB,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAExB,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,UAAU;QAAE,OAAO;IAE5C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;QACzB,GAAG,KAAK,CAAC,KAAK;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IAEH,eAAe,CAAC,IAAI,CAAC,CAAC;IAEtB,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO;IAE9D,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,UAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,KAAK;IACZ,MAAM,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;IAClC,aAAa,CAAC,KAAK,EAAE,CAAC;IACtB,cAAc,GAAG,KAAK,CAAC;IAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IAED,mBAAmB,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,cAAc,CAAC,KAAY;IAClC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,CAAC;QACtB,cAAc,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,KAAK,EAAE,CAAC;AACV,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface ScriptDescriptor {
2
+ src: string;
3
+ nonce?: string;
4
+ }
5
+ export declare function injectScripts(html: string, scripts: ScriptDescriptor[]): string;
6
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/framework/compiler/inject.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAUD,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,gBAAgB,EAAE,GAC1B,MAAM,CAWR"}
@@ -0,0 +1,19 @@
1
+ import { escapeHtml } from "../jsx/escape";
2
+ function buildScriptTag(descriptor) {
3
+ const escapedSrc = escapeHtml(descriptor.src);
4
+ const nonceAttr = descriptor.nonce
5
+ ? ` nonce="${escapeHtml(descriptor.nonce)}"`
6
+ : "";
7
+ return `<script type="module" src="${escapedSrc}"` + `${nonceAttr}></script>`;
8
+ }
9
+ export function injectScripts(html, scripts) {
10
+ if (scripts.length === 0)
11
+ return html;
12
+ const tags = scripts.map(buildScriptTag).join("\n");
13
+ const bodyCloseIndex = html.lastIndexOf("</body>");
14
+ if (bodyCloseIndex === -1) {
15
+ return `${html}\n${tags}`;
16
+ }
17
+ return `${html.slice(0, bodyCloseIndex)}${tags}\n${html.slice(bodyCloseIndex)}`;
18
+ }
19
+ //# sourceMappingURL=inject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/framework/compiler/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,SAAS,cAAc,CAAC,UAA4B;IAClD,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK;QAChC,CAAC,CAAC,WAAW,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG;QAC5C,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,8BAA8B,UAAU,GAAG,GAAG,GAAG,SAAS,YAAY,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,OAA2B;IAE3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAEnD,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;AAClF,CAAC"}
@@ -0,0 +1,9 @@
1
+ export interface ServerFunction {
2
+ readonly name: string;
3
+ readonly isExported: boolean;
4
+ readonly isAsync: boolean;
5
+ }
6
+ export declare function extractServerFunctions(source: string): ServerFunction[];
7
+ export declare function generateActionId(filePath: string, functionName: string): string;
8
+ export declare function generateClientProxy(actionId: string): string;
9
+ //# sourceMappingURL=server-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-action.d.ts","sourceRoot":"","sources":["../../src/framework/compiler/server-action.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AA0FD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAkBvE;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,CAQR;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM5D"}
@@ -0,0 +1,98 @@
1
+ import { createSourceFile, isArrowFunction, isBlock, isExpressionStatement, isFunctionDeclaration, isFunctionExpression, isIdentifier, isStringLiteral, isVariableStatement, ScriptTarget, SyntaxKind, } from "typescript";
2
+ function hasModifier(node, kind) {
3
+ return node.modifiers?.some((m) => m.kind === kind) ?? false;
4
+ }
5
+ function hasUseServerInBody(body) {
6
+ if (!body || body.statements.length === 0)
7
+ return false;
8
+ const first = body.statements[0];
9
+ if (!first)
10
+ return false;
11
+ return (isExpressionStatement(first) &&
12
+ isStringLiteral(first.expression) &&
13
+ first.expression.text === "use server");
14
+ }
15
+ function isFileUseServer(source) {
16
+ const sf = createSourceFile("check.tsx", source, ScriptTarget.Latest, true);
17
+ const first = sf.statements[0];
18
+ if (!first)
19
+ return false;
20
+ return (isExpressionStatement(first) &&
21
+ isStringLiteral(first.expression) &&
22
+ first.expression.text === "use server");
23
+ }
24
+ function isServerFunctionDecl(stmt, fileLevel) {
25
+ if (fileLevel && hasModifier(stmt, SyntaxKind.ExportKeyword)) {
26
+ return true;
27
+ }
28
+ return hasUseServerInBody(stmt.body);
29
+ }
30
+ function extractFromFunctionDecl(stmt, fileLevel) {
31
+ if (!stmt.name)
32
+ return null;
33
+ if (!isServerFunctionDecl(stmt, fileLevel))
34
+ return null;
35
+ return {
36
+ name: stmt.name.text,
37
+ isExported: hasModifier(stmt, SyntaxKind.ExportKeyword),
38
+ isAsync: hasModifier(stmt, SyntaxKind.AsyncKeyword),
39
+ };
40
+ }
41
+ function isServerVarInit(init, stmtExported, fileLevel) {
42
+ if (fileLevel && stmtExported)
43
+ return true;
44
+ const body = init.body;
45
+ return isBlock(body) && hasUseServerInBody(body);
46
+ }
47
+ function extractFromVariableStatement(stmt, fileLevel) {
48
+ const stmtExported = hasModifier(stmt, SyntaxKind.ExportKeyword);
49
+ const results = [];
50
+ for (const decl of stmt.declarationList.declarations) {
51
+ if (!(decl.name && isIdentifier(decl.name)))
52
+ continue;
53
+ const init = decl.initializer;
54
+ if (!init)
55
+ continue;
56
+ if (!(isArrowFunction(init) || isFunctionExpression(init)))
57
+ continue;
58
+ if (!isServerVarInit(init, stmtExported, fileLevel))
59
+ continue;
60
+ results.push({
61
+ name: decl.name.text,
62
+ isExported: stmtExported,
63
+ isAsync: hasModifier(init, SyntaxKind.AsyncKeyword),
64
+ });
65
+ }
66
+ return results;
67
+ }
68
+ export function extractServerFunctions(source) {
69
+ const sf = createSourceFile("file.tsx", source, ScriptTarget.Latest, true);
70
+ const fileLevel = isFileUseServer(source);
71
+ const results = [];
72
+ for (const stmt of sf.statements) {
73
+ if (isFunctionDeclaration(stmt)) {
74
+ const fn = extractFromFunctionDecl(stmt, fileLevel);
75
+ if (fn)
76
+ results.push(fn);
77
+ }
78
+ if (isVariableStatement(stmt)) {
79
+ results.push(...extractFromVariableStatement(stmt, fileLevel));
80
+ }
81
+ }
82
+ return results;
83
+ }
84
+ export function generateActionId(filePath, functionName) {
85
+ const input = `${filePath.replace(/\\/g, "/")}:${functionName}`;
86
+ let hash = 0x811c9dc5;
87
+ for (let i = 0; i < input.length; i++) {
88
+ hash ^= input.charCodeAt(i);
89
+ hash = Math.imul(hash, 0x01000193);
90
+ }
91
+ return (hash >>> 0).toString(36);
92
+ }
93
+ export function generateClientProxy(actionId) {
94
+ const escaped = actionId.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
95
+ return (`((formData) => fetch("/_rain/action/${escaped}",` +
96
+ ` { method: "POST", body: formData }))`);
97
+ }
98
+ //# sourceMappingURL=server-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-action.js","sourceRoot":"","sources":["../../src/framework/compiler/server-action.ts"],"names":[],"mappings":"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"}
package/dist/context.js CHANGED
@@ -86,7 +86,7 @@ export class Context {
86
86
  }
87
87
  html(body, status = 200) {
88
88
  const htmlString = isRainElement(body)
89
- ? renderToString(body)
89
+ ? renderToString(body).html
90
90
  : String(body);
91
91
  return new Response(htmlString, {
92
92
  status,
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/framework/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/framework/context.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,14 +1,16 @@
1
1
  export { bindings } from "./bindings";
2
+ export type { ScriptDescriptor } from "./compiler/inject";
3
+ export { injectScripts } from "./compiler/inject";
2
4
  export { Context } from "./context";
3
5
  export type { CookieOptions } from "./cookie";
4
6
  export { HttpError } from "./errors";
5
- export type { RainChild, RainComponent, RainElement, RainNode, } from "./jsx";
6
- export { createElement, escapeHtml, Fragment, isRainElement, renderToString, } from "./jsx";
7
+ export type { RainChild, RainComponent, RainElement, RainNode, RenderResult, } from "./jsx";
8
+ export { createElement, escapeHtml, Fragment, isRainElement, markAsIsland, markAsServerAction, RAIN_ISLAND, RAIN_SERVER_ACTION, renderToString, } from "./jsx";
7
9
  export type { CorsOptions } from "./middleware/cors";
8
10
  export { cors } from "./middleware/cors";
9
11
  export type { Session, SessionOptions, } from "./middleware/session";
10
12
  export { getSession, session } from "./middleware/session";
11
13
  export { Rain } from "./router";
12
- export type { ErrorHandler, Handler, LayoutHandler, Middleware, PageHandler, RainConfig, RainOptions, Schema, StateKey, } from "./types";
14
+ export type { ErrorHandler, Handler, LayoutHandler, Middleware, PageHandler, RainConfig, RainOptions, Schema, ServerActionHandler, StateKey, } from "./types";
13
15
  export { defineKey } from "./types";
14
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/framework/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EACL,aAAa,EACb,UAAU,EACV,QAAQ,EACR,aAAa,EACb,cAAc,GACf,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EACV,OAAO,EACP,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,YAAY,EACV,YAAY,EACZ,OAAO,EACP,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,MAAM,EACN,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/framework/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,YAAY,GACb,MAAM,OAAO,CAAC;AACf,OAAO,EACL,aAAa,EACb,UAAU,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,cAAc,GACf,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,YAAY,EACV,OAAO,EACP,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,YAAY,EACV,YAAY,EACZ,OAAO,EACP,aAAa,EACb,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,MAAM,EACN,mBAAmB,EACnB,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  export { bindings } from "./bindings";
2
+ export { injectScripts } from "./compiler/inject";
2
3
  export { Context } from "./context";
3
4
  export { HttpError } from "./errors";
4
- export { createElement, escapeHtml, Fragment, isRainElement, renderToString, } from "./jsx";
5
+ export { createElement, escapeHtml, Fragment, isRainElement, markAsIsland, markAsServerAction, RAIN_ISLAND, RAIN_SERVER_ACTION, renderToString, } from "./jsx";
5
6
  export { cors } from "./middleware/cors";
6
7
  export { getSession, session } from "./middleware/session";
7
8
  export { Rain } from "./router";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/framework/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAOrC,OAAO,EACL,aAAa,EACb,UAAU,EACV,QAAQ,EACR,aAAa,EACb,cAAc,GACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAKzC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAYhC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/framework/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQrC,OAAO,EACL,aAAa,EACb,UAAU,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,cAAc,GACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAKzC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAahC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export { createElement, Fragment } from "./createElement";
2
2
  export { escapeHtml } from "./escape";
3
- export { isRainElement, renderToString } from "./render";
3
+ export type { RenderResult } from "./render";
4
+ export { isRainElement, renderToString, } from "./render";
4
5
  export type { RainChild, RainComponent, RainElement, RainNode, } from "./types";
5
- export { RAIN_ELEMENT } from "./types";
6
+ export { markAsIsland, markAsServerAction, RAIN_ELEMENT, RAIN_ISLAND, RAIN_SERVER_ACTION, } from "./types";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/framework/jsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/framework/jsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
package/dist/jsx/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { createElement, Fragment } from "./createElement";
2
2
  export { escapeHtml } from "./escape";
3
- export { isRainElement, renderToString } from "./render";
4
- export { RAIN_ELEMENT } from "./types";
3
+ export { isRainElement, renderToString, } from "./render";
4
+ export { markAsIsland, markAsServerAction, RAIN_ELEMENT, RAIN_ISLAND, RAIN_SERVER_ACTION, } from "./types";
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/framework/jsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAOzD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/framework/jsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EACL,aAAa,EACb,cAAc,GACf,MAAM,UAAU,CAAC;AAOlB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,kBAAkB,GACnB,MAAM,SAAS,CAAC"}