@solidjs/web 2.0.0-beta.11 → 2.0.0-beta.12
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/dist/server.cjs +48 -5
- package/dist/server.js +48 -5
- package/package.json +3 -3
package/dist/server.cjs
CHANGED
|
@@ -617,6 +617,19 @@ function ssrFirstGroupHit(hole) {
|
|
|
617
617
|
return buildAsyncWrap(err, hole);
|
|
618
618
|
}
|
|
619
619
|
}
|
|
620
|
+
function tryResolveFunctionHole(hole) {
|
|
621
|
+
let value;
|
|
622
|
+
try {
|
|
623
|
+
value = hole();
|
|
624
|
+
} catch (err) {
|
|
625
|
+
return buildAsyncWrap(err, hole) || "";
|
|
626
|
+
}
|
|
627
|
+
const t = typeof value;
|
|
628
|
+
if (t === "string") return value;
|
|
629
|
+
if (t === "number") return "" + value;
|
|
630
|
+
if (value == null || t === "boolean") return "";
|
|
631
|
+
return tryResolveString(value);
|
|
632
|
+
}
|
|
620
633
|
function mergeTemplateInto(result, node) {
|
|
621
634
|
result.t[result.t.length - 1] += node.t[0];
|
|
622
635
|
if (node.t.length > 1) {
|
|
@@ -625,6 +638,13 @@ function mergeTemplateInto(result, node) {
|
|
|
625
638
|
result.p.push(...node.p);
|
|
626
639
|
}
|
|
627
640
|
}
|
|
641
|
+
function appendResolvedNode(result, node) {
|
|
642
|
+
if (node.fn !== undefined) {
|
|
643
|
+
result.h.push(node.fn);
|
|
644
|
+
result.p.push(node.p);
|
|
645
|
+
result.t.push("");
|
|
646
|
+
} else if (node.merge !== undefined) mergeTemplateInto(result, node.merge);else resolveSSRNode(node.bail, result);
|
|
647
|
+
}
|
|
628
648
|
let _lastGroupFn = null;
|
|
629
649
|
let _lastGroupArr = null;
|
|
630
650
|
let _lastGroupErr = null;
|
|
@@ -715,6 +735,17 @@ function ssr(t) {
|
|
|
715
735
|
}
|
|
716
736
|
} else if (result !== null) {
|
|
717
737
|
resolveSSRNode(hole, result);
|
|
738
|
+
} else if (ht === "function") {
|
|
739
|
+
const r = tryResolveFunctionHole(hole);
|
|
740
|
+
if (typeof r === "string") s += r;else {
|
|
741
|
+
result = {
|
|
742
|
+
t: [s],
|
|
743
|
+
h: [],
|
|
744
|
+
p: []
|
|
745
|
+
};
|
|
746
|
+
s = "";
|
|
747
|
+
appendResolvedNode(result, r);
|
|
748
|
+
}
|
|
718
749
|
} else {
|
|
719
750
|
const r = tryResolveString(hole);
|
|
720
751
|
if (typeof r === "string") {
|
|
@@ -726,11 +757,7 @@ function ssr(t) {
|
|
|
726
757
|
p: []
|
|
727
758
|
};
|
|
728
759
|
s = "";
|
|
729
|
-
|
|
730
|
-
result.h.push(r.fn);
|
|
731
|
-
result.p.push(r.p);
|
|
732
|
-
result.t.push("");
|
|
733
|
-
} else if (r.merge !== undefined) mergeTemplateInto(result, r.merge);else resolveSSRNode(r.bail, result);
|
|
760
|
+
appendResolvedNode(result, r);
|
|
734
761
|
}
|
|
735
762
|
}
|
|
736
763
|
const next = t[i];
|
|
@@ -820,6 +847,8 @@ function escape(s, attr) {
|
|
|
820
847
|
const t = typeof s;
|
|
821
848
|
if (t !== "string") {
|
|
822
849
|
if (!attr && Array.isArray(s)) {
|
|
850
|
+
const joined = tryJoinPlainSSRArray(s);
|
|
851
|
+
if (joined !== undefined) return joined;
|
|
823
852
|
s = s.slice();
|
|
824
853
|
for (let i = 0; i < s.length; i++) s[i] = escape(s[i]);
|
|
825
854
|
return s;
|
|
@@ -872,6 +901,18 @@ function escapeSlow(s, attr, start) {
|
|
|
872
901
|
}
|
|
873
902
|
return left < s.length ? out + s.substring(left) : out;
|
|
874
903
|
}
|
|
904
|
+
function tryJoinPlainSSRArray(nodes) {
|
|
905
|
+
if (nodes.length === 0) return undefined;
|
|
906
|
+
let out = "";
|
|
907
|
+
for (let i = 0, len = nodes.length; i < len; i++) {
|
|
908
|
+
const node = nodes[i];
|
|
909
|
+
if (node == null || typeof node !== "object" || node.h || typeof node.t !== "string") {
|
|
910
|
+
return undefined;
|
|
911
|
+
}
|
|
912
|
+
out += node.t;
|
|
913
|
+
}
|
|
914
|
+
return out;
|
|
915
|
+
}
|
|
875
916
|
function mergeProps(...sources) {
|
|
876
917
|
const target = {};
|
|
877
918
|
for (let i = 0; i < sources.length; i++) {
|
|
@@ -1020,6 +1061,8 @@ function tryResolveString(node) {
|
|
|
1020
1061
|
if (node == null || t === "boolean") return "";
|
|
1021
1062
|
if (t === "object") {
|
|
1022
1063
|
if (Array.isArray(node)) {
|
|
1064
|
+
const joined = tryJoinPlainSSRArray(node);
|
|
1065
|
+
if (joined !== undefined) return joined;
|
|
1023
1066
|
let s = "";
|
|
1024
1067
|
let prevNonObj = false;
|
|
1025
1068
|
for (let i = 0, len = node.length; i < len; i++) {
|
package/dist/server.js
CHANGED
|
@@ -616,6 +616,19 @@ function ssrFirstGroupHit(hole) {
|
|
|
616
616
|
return buildAsyncWrap(err, hole);
|
|
617
617
|
}
|
|
618
618
|
}
|
|
619
|
+
function tryResolveFunctionHole(hole) {
|
|
620
|
+
let value;
|
|
621
|
+
try {
|
|
622
|
+
value = hole();
|
|
623
|
+
} catch (err) {
|
|
624
|
+
return buildAsyncWrap(err, hole) || "";
|
|
625
|
+
}
|
|
626
|
+
const t = typeof value;
|
|
627
|
+
if (t === "string") return value;
|
|
628
|
+
if (t === "number") return "" + value;
|
|
629
|
+
if (value == null || t === "boolean") return "";
|
|
630
|
+
return tryResolveString(value);
|
|
631
|
+
}
|
|
619
632
|
function mergeTemplateInto(result, node) {
|
|
620
633
|
result.t[result.t.length - 1] += node.t[0];
|
|
621
634
|
if (node.t.length > 1) {
|
|
@@ -624,6 +637,13 @@ function mergeTemplateInto(result, node) {
|
|
|
624
637
|
result.p.push(...node.p);
|
|
625
638
|
}
|
|
626
639
|
}
|
|
640
|
+
function appendResolvedNode(result, node) {
|
|
641
|
+
if (node.fn !== undefined) {
|
|
642
|
+
result.h.push(node.fn);
|
|
643
|
+
result.p.push(node.p);
|
|
644
|
+
result.t.push("");
|
|
645
|
+
} else if (node.merge !== undefined) mergeTemplateInto(result, node.merge);else resolveSSRNode(node.bail, result);
|
|
646
|
+
}
|
|
627
647
|
let _lastGroupFn = null;
|
|
628
648
|
let _lastGroupArr = null;
|
|
629
649
|
let _lastGroupErr = null;
|
|
@@ -714,6 +734,17 @@ function ssr(t) {
|
|
|
714
734
|
}
|
|
715
735
|
} else if (result !== null) {
|
|
716
736
|
resolveSSRNode(hole, result);
|
|
737
|
+
} else if (ht === "function") {
|
|
738
|
+
const r = tryResolveFunctionHole(hole);
|
|
739
|
+
if (typeof r === "string") s += r;else {
|
|
740
|
+
result = {
|
|
741
|
+
t: [s],
|
|
742
|
+
h: [],
|
|
743
|
+
p: []
|
|
744
|
+
};
|
|
745
|
+
s = "";
|
|
746
|
+
appendResolvedNode(result, r);
|
|
747
|
+
}
|
|
717
748
|
} else {
|
|
718
749
|
const r = tryResolveString(hole);
|
|
719
750
|
if (typeof r === "string") {
|
|
@@ -725,11 +756,7 @@ function ssr(t) {
|
|
|
725
756
|
p: []
|
|
726
757
|
};
|
|
727
758
|
s = "";
|
|
728
|
-
|
|
729
|
-
result.h.push(r.fn);
|
|
730
|
-
result.p.push(r.p);
|
|
731
|
-
result.t.push("");
|
|
732
|
-
} else if (r.merge !== undefined) mergeTemplateInto(result, r.merge);else resolveSSRNode(r.bail, result);
|
|
759
|
+
appendResolvedNode(result, r);
|
|
733
760
|
}
|
|
734
761
|
}
|
|
735
762
|
const next = t[i];
|
|
@@ -819,6 +846,8 @@ function escape(s, attr) {
|
|
|
819
846
|
const t = typeof s;
|
|
820
847
|
if (t !== "string") {
|
|
821
848
|
if (!attr && Array.isArray(s)) {
|
|
849
|
+
const joined = tryJoinPlainSSRArray(s);
|
|
850
|
+
if (joined !== undefined) return joined;
|
|
822
851
|
s = s.slice();
|
|
823
852
|
for (let i = 0; i < s.length; i++) s[i] = escape(s[i]);
|
|
824
853
|
return s;
|
|
@@ -871,6 +900,18 @@ function escapeSlow(s, attr, start) {
|
|
|
871
900
|
}
|
|
872
901
|
return left < s.length ? out + s.substring(left) : out;
|
|
873
902
|
}
|
|
903
|
+
function tryJoinPlainSSRArray(nodes) {
|
|
904
|
+
if (nodes.length === 0) return undefined;
|
|
905
|
+
let out = "";
|
|
906
|
+
for (let i = 0, len = nodes.length; i < len; i++) {
|
|
907
|
+
const node = nodes[i];
|
|
908
|
+
if (node == null || typeof node !== "object" || node.h || typeof node.t !== "string") {
|
|
909
|
+
return undefined;
|
|
910
|
+
}
|
|
911
|
+
out += node.t;
|
|
912
|
+
}
|
|
913
|
+
return out;
|
|
914
|
+
}
|
|
874
915
|
function mergeProps(...sources) {
|
|
875
916
|
const target = {};
|
|
876
917
|
for (let i = 0; i < sources.length; i++) {
|
|
@@ -1019,6 +1060,8 @@ function tryResolveString(node) {
|
|
|
1019
1060
|
if (node == null || t === "boolean") return "";
|
|
1020
1061
|
if (t === "object") {
|
|
1021
1062
|
if (Array.isArray(node)) {
|
|
1063
|
+
const joined = tryJoinPlainSSRArray(node);
|
|
1064
|
+
if (joined !== undefined) return joined;
|
|
1022
1065
|
let s = "";
|
|
1023
1066
|
let prevNonObj = false;
|
|
1024
1067
|
for (let i = 0, len = node.length; i < len; i++) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidjs/web",
|
|
3
3
|
"description": "Solid's web runtime: client rendering, hydration, SSR, and DOM-specific control flow (Portal, Dynamic).",
|
|
4
|
-
"version": "2.0.0-beta.
|
|
4
|
+
"version": "2.0.0-beta.12",
|
|
5
5
|
"author": "Ryan Carniato",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://solidjs.com",
|
|
@@ -137,10 +137,10 @@
|
|
|
137
137
|
"seroval-plugins": "^1.1.0"
|
|
138
138
|
},
|
|
139
139
|
"peerDependencies": {
|
|
140
|
-
"solid-js": "^2.0.0-beta.
|
|
140
|
+
"solid-js": "^2.0.0-beta.12"
|
|
141
141
|
},
|
|
142
142
|
"devDependencies": {
|
|
143
|
-
"solid-js": "2.0.0-beta.
|
|
143
|
+
"solid-js": "2.0.0-beta.12"
|
|
144
144
|
},
|
|
145
145
|
"scripts": {
|
|
146
146
|
"build": "npm-run-all -nl build:clean types:copy-jsx build:js",
|