@solidjs/web
Advanced tools
+48
-5
@@ -620,2 +620,15 @@ 'use strict'; | ||
| } | ||
| function tryResolveFunctionHole(hole) { | ||
| let value; | ||
| try { | ||
| value = hole(); | ||
| } catch (err) { | ||
| return buildAsyncWrap(err, hole) || ""; | ||
| } | ||
| const t = typeof value; | ||
| if (t === "string") return value; | ||
| if (t === "number") return "" + value; | ||
| if (value == null || t === "boolean") return ""; | ||
| return tryResolveString(value); | ||
| } | ||
| function mergeTemplateInto(result, node) { | ||
@@ -629,2 +642,9 @@ result.t[result.t.length - 1] += node.t[0]; | ||
| } | ||
| function appendResolvedNode(result, node) { | ||
| if (node.fn !== undefined) { | ||
| result.h.push(node.fn); | ||
| result.p.push(node.p); | ||
| result.t.push(""); | ||
| } else if (node.merge !== undefined) mergeTemplateInto(result, node.merge);else resolveSSRNode(node.bail, result); | ||
| } | ||
| let _lastGroupFn = null; | ||
@@ -720,2 +740,13 @@ let _lastGroupArr = null; | ||
| resolveSSRNode(hole, result); | ||
| } else if (ht === "function") { | ||
| const r = tryResolveFunctionHole(hole); | ||
| if (typeof r === "string") s += r;else { | ||
| result = { | ||
| t: [s], | ||
| h: [], | ||
| p: [] | ||
| }; | ||
| s = ""; | ||
| appendResolvedNode(result, r); | ||
| } | ||
| } else { | ||
@@ -732,7 +763,3 @@ const r = tryResolveString(hole); | ||
| s = ""; | ||
| if (r.fn !== undefined) { | ||
| result.h.push(r.fn); | ||
| result.p.push(r.p); | ||
| result.t.push(""); | ||
| } else if (r.merge !== undefined) mergeTemplateInto(result, r.merge);else resolveSSRNode(r.bail, result); | ||
| appendResolvedNode(result, r); | ||
| } | ||
@@ -827,2 +854,4 @@ } | ||
| if (!attr && Array.isArray(s)) { | ||
| const joined = tryJoinPlainSSRArray(s); | ||
| if (joined !== undefined) return joined; | ||
| s = s.slice(); | ||
@@ -880,2 +909,14 @@ for (let i = 0; i < s.length; i++) s[i] = escape(s[i]); | ||
| } | ||
| function tryJoinPlainSSRArray(nodes) { | ||
| if (nodes.length === 0) return undefined; | ||
| let out = ""; | ||
| for (let i = 0, len = nodes.length; i < len; i++) { | ||
| const node = nodes[i]; | ||
| if (node == null || typeof node !== "object" || node.h || typeof node.t !== "string") { | ||
| return undefined; | ||
| } | ||
| out += node.t; | ||
| } | ||
| return out; | ||
| } | ||
| function mergeProps(...sources) { | ||
@@ -1029,2 +1070,4 @@ const target = {}; | ||
| if (Array.isArray(node)) { | ||
| const joined = tryJoinPlainSSRArray(node); | ||
| if (joined !== undefined) return joined; | ||
| let s = ""; | ||
@@ -1031,0 +1074,0 @@ let prevNonObj = false; |
+48
-5
@@ -619,2 +619,15 @@ import { createRenderEffect, createMemo, sharedConfig, createRoot, ssrHandleError, getOwner, runWithOwner, createComponent, omit, getNextChildId, createOwner } from 'solid-js'; | ||
| } | ||
| function tryResolveFunctionHole(hole) { | ||
| let value; | ||
| try { | ||
| value = hole(); | ||
| } catch (err) { | ||
| return buildAsyncWrap(err, hole) || ""; | ||
| } | ||
| const t = typeof value; | ||
| if (t === "string") return value; | ||
| if (t === "number") return "" + value; | ||
| if (value == null || t === "boolean") return ""; | ||
| return tryResolveString(value); | ||
| } | ||
| function mergeTemplateInto(result, node) { | ||
@@ -628,2 +641,9 @@ result.t[result.t.length - 1] += node.t[0]; | ||
| } | ||
| function appendResolvedNode(result, node) { | ||
| if (node.fn !== undefined) { | ||
| result.h.push(node.fn); | ||
| result.p.push(node.p); | ||
| result.t.push(""); | ||
| } else if (node.merge !== undefined) mergeTemplateInto(result, node.merge);else resolveSSRNode(node.bail, result); | ||
| } | ||
| let _lastGroupFn = null; | ||
@@ -719,2 +739,13 @@ let _lastGroupArr = null; | ||
| resolveSSRNode(hole, result); | ||
| } else if (ht === "function") { | ||
| const r = tryResolveFunctionHole(hole); | ||
| if (typeof r === "string") s += r;else { | ||
| result = { | ||
| t: [s], | ||
| h: [], | ||
| p: [] | ||
| }; | ||
| s = ""; | ||
| appendResolvedNode(result, r); | ||
| } | ||
| } else { | ||
@@ -731,7 +762,3 @@ const r = tryResolveString(hole); | ||
| s = ""; | ||
| if (r.fn !== undefined) { | ||
| result.h.push(r.fn); | ||
| result.p.push(r.p); | ||
| result.t.push(""); | ||
| } else if (r.merge !== undefined) mergeTemplateInto(result, r.merge);else resolveSSRNode(r.bail, result); | ||
| appendResolvedNode(result, r); | ||
| } | ||
@@ -826,2 +853,4 @@ } | ||
| if (!attr && Array.isArray(s)) { | ||
| const joined = tryJoinPlainSSRArray(s); | ||
| if (joined !== undefined) return joined; | ||
| s = s.slice(); | ||
@@ -879,2 +908,14 @@ for (let i = 0; i < s.length; i++) s[i] = escape(s[i]); | ||
| } | ||
| function tryJoinPlainSSRArray(nodes) { | ||
| if (nodes.length === 0) return undefined; | ||
| let out = ""; | ||
| for (let i = 0, len = nodes.length; i < len; i++) { | ||
| const node = nodes[i]; | ||
| if (node == null || typeof node !== "object" || node.h || typeof node.t !== "string") { | ||
| return undefined; | ||
| } | ||
| out += node.t; | ||
| } | ||
| return out; | ||
| } | ||
| function mergeProps(...sources) { | ||
@@ -1028,2 +1069,4 @@ const target = {}; | ||
| if (Array.isArray(node)) { | ||
| const joined = tryJoinPlainSSRArray(node); | ||
| if (joined !== undefined) return joined; | ||
| let s = ""; | ||
@@ -1030,0 +1073,0 @@ let prevNonObj = false; |
+3
-3
| { | ||
| "name": "@solidjs/web", | ||
| "description": "Solid's web runtime: client rendering, hydration, SSR, and DOM-specific control flow (Portal, Dynamic).", | ||
| "version": "2.0.0-beta.11", | ||
| "version": "2.0.0-beta.12", | ||
| "author": "Ryan Carniato", | ||
@@ -140,6 +140,6 @@ "license": "MIT", | ||
| "peerDependencies": { | ||
| "solid-js": "^2.0.0-beta.11" | ||
| "solid-js": "^2.0.0-beta.12" | ||
| }, | ||
| "devDependencies": { | ||
| "solid-js": "2.0.0-beta.11" | ||
| "solid-js": "2.0.0-beta.12" | ||
| }, | ||
@@ -146,0 +146,0 @@ "scripts": { |
660256
0.37%11230
0.77%