ilha 0.4.0 → 0.4.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/dist/index.js +64 -29
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -605,6 +605,7 @@ var IlhaBuilder = class IlhaBuilder {
|
|
|
605
605
|
const input = resolveInput(props);
|
|
606
606
|
const state = buildPlainState(input);
|
|
607
607
|
const results = deriveds.map((entry) => {
|
|
608
|
+
const prevSub = setActiveSub(void 0);
|
|
608
609
|
try {
|
|
609
610
|
return {
|
|
610
611
|
key: entry.key,
|
|
@@ -619,6 +620,8 @@ var IlhaBuilder = class IlhaBuilder {
|
|
|
619
620
|
key: entry.key,
|
|
620
621
|
result: Promise.reject(err)
|
|
621
622
|
};
|
|
623
|
+
} finally {
|
|
624
|
+
setActiveSub(prevSub);
|
|
622
625
|
}
|
|
623
626
|
});
|
|
624
627
|
if (!results.some((r) => r.result instanceof Promise) || sync) {
|
|
@@ -633,12 +636,17 @@ var IlhaBuilder = class IlhaBuilder {
|
|
|
633
636
|
value: r.result,
|
|
634
637
|
error: void 0
|
|
635
638
|
};
|
|
636
|
-
const
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
639
|
+
const prevSub = setActiveSub(void 0);
|
|
640
|
+
try {
|
|
641
|
+
const { html } = renderWithCtx(() => fn({
|
|
642
|
+
state,
|
|
643
|
+
derived,
|
|
644
|
+
input
|
|
645
|
+
}));
|
|
646
|
+
return stylePrefix + html;
|
|
647
|
+
} finally {
|
|
648
|
+
setActiveSub(prevSub);
|
|
649
|
+
}
|
|
642
650
|
}
|
|
643
651
|
return Promise.all(results.map(async (r) => {
|
|
644
652
|
try {
|
|
@@ -663,12 +671,17 @@ var IlhaBuilder = class IlhaBuilder {
|
|
|
663
671
|
})).then(async (resolved) => {
|
|
664
672
|
const derived = {};
|
|
665
673
|
for (const r of resolved) derived[r.key] = r.envelope;
|
|
666
|
-
const
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
674
|
+
const prevSub = setActiveSub(void 0);
|
|
675
|
+
try {
|
|
676
|
+
const { html } = await renderWithCtx(() => fn({
|
|
677
|
+
state,
|
|
678
|
+
derived,
|
|
679
|
+
input
|
|
680
|
+
}), void 0, true);
|
|
681
|
+
return stylePrefix + html;
|
|
682
|
+
} finally {
|
|
683
|
+
setActiveSub(prevSub);
|
|
684
|
+
}
|
|
672
685
|
});
|
|
673
686
|
}
|
|
674
687
|
function mountIsland(host, props) {
|
|
@@ -1028,23 +1041,45 @@ Element: ${host.outerHTML.slice(0, 120)}`);
|
|
|
1028
1041
|
if (doState) for (const entry of states) snapshotData[entry.key] = plainState[entry.key]();
|
|
1029
1042
|
if (doDerived) {
|
|
1030
1043
|
const derivedResults = {};
|
|
1031
|
-
for (const entry of deriveds)
|
|
1032
|
-
const
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
}
|
|
1044
|
+
for (const entry of deriveds) {
|
|
1045
|
+
const prevSub = setActiveSub(void 0);
|
|
1046
|
+
let resultPromise;
|
|
1047
|
+
let syncError;
|
|
1048
|
+
let threw = false;
|
|
1049
|
+
try {
|
|
1050
|
+
resultPromise = entry.fn({
|
|
1051
|
+
state: plainState,
|
|
1052
|
+
input,
|
|
1053
|
+
signal: new AbortController().signal
|
|
1054
|
+
});
|
|
1055
|
+
} catch (err) {
|
|
1056
|
+
threw = true;
|
|
1057
|
+
syncError = err;
|
|
1058
|
+
} finally {
|
|
1059
|
+
setActiveSub(prevSub);
|
|
1060
|
+
}
|
|
1061
|
+
if (threw) {
|
|
1062
|
+
derivedResults[entry.key] = {
|
|
1063
|
+
loading: false,
|
|
1064
|
+
value: void 0,
|
|
1065
|
+
error: syncError instanceof Error ? syncError.message : String(syncError)
|
|
1066
|
+
};
|
|
1067
|
+
continue;
|
|
1068
|
+
}
|
|
1069
|
+
try {
|
|
1070
|
+
const result = await Promise.resolve(resultPromise);
|
|
1071
|
+
derivedResults[entry.key] = {
|
|
1072
|
+
loading: false,
|
|
1073
|
+
value: result,
|
|
1074
|
+
error: void 0
|
|
1075
|
+
};
|
|
1076
|
+
} catch (err) {
|
|
1077
|
+
derivedResults[entry.key] = {
|
|
1078
|
+
loading: false,
|
|
1079
|
+
value: void 0,
|
|
1080
|
+
error: err instanceof Error ? err.message : String(err)
|
|
1081
|
+
};
|
|
1082
|
+
}
|
|
1048
1083
|
}
|
|
1049
1084
|
snapshotData["_derived"] = derivedResults;
|
|
1050
1085
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ilha",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "A tiny, framework-free island architecture library",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ryuz <ryuzer@proton.me>",
|
|
@@ -26,6 +26,6 @@
|
|
|
26
26
|
"alien-signals": "3.1.2"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"zod": "^4.4.
|
|
29
|
+
"zod": "^4.4.3"
|
|
30
30
|
}
|
|
31
31
|
}
|