@getforma/core 0.3.1 → 0.8.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 +279 -20
- package/dist/chunk-3U57L2TY.cjs +38 -0
- package/dist/chunk-3U57L2TY.cjs.map +1 -0
- package/dist/{chunk-5H52PKGF.js → chunk-N522P3G6.js} +37 -19
- package/dist/chunk-N522P3G6.js.map +1 -0
- package/dist/chunk-OZCHIVAZ.js +35 -0
- package/dist/chunk-OZCHIVAZ.js.map +1 -0
- package/dist/{chunk-TSQ7AKFT.cjs → chunk-YMIMKO4W.cjs} +66 -25
- package/dist/chunk-YMIMKO4W.cjs.map +1 -0
- package/dist/forma-runtime-csp.js +1 -1
- package/dist/forma-runtime.js +1 -1
- package/dist/formajs-runtime-hardened.global.js +1 -1
- package/dist/formajs-runtime-hardened.global.js.map +1 -1
- package/dist/formajs-runtime.global.js +1 -1
- package/dist/formajs-runtime.global.js.map +1 -1
- package/dist/formajs.global.js +1 -1
- package/dist/formajs.global.js.map +1 -1
- package/dist/index.cjs +142 -118
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +70 -29
- package/dist/index.d.ts +70 -29
- package/dist/index.js +64 -60
- package/dist/index.js.map +1 -1
- package/dist/runtime-hardened.cjs +166 -39
- package/dist/runtime-hardened.cjs.map +1 -1
- package/dist/runtime-hardened.js +167 -40
- package/dist/runtime-hardened.js.map +1 -1
- package/dist/runtime.cjs +184 -57
- package/dist/runtime.cjs.map +1 -1
- package/dist/runtime.js +162 -35
- package/dist/runtime.js.map +1 -1
- package/dist/signal-B4_wQJHs.d.cts +53 -0
- package/dist/signal-B4_wQJHs.d.ts +53 -0
- package/dist/ssr/index.cjs +37 -12
- package/dist/ssr/index.cjs.map +1 -1
- package/dist/ssr/index.js +37 -12
- package/dist/ssr/index.js.map +1 -1
- package/dist/tc39-compat.cjs +4 -12
- package/dist/tc39-compat.cjs.map +1 -1
- package/dist/tc39-compat.d.cts +1 -1
- package/dist/tc39-compat.d.ts +1 -1
- package/dist/tc39-compat.js +3 -11
- package/dist/tc39-compat.js.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-5H52PKGF.js.map +0 -1
- package/dist/chunk-FPSLC62A.cjs +0 -31
- package/dist/chunk-FPSLC62A.cjs.map +0 -1
- package/dist/chunk-KX5WRZH7.js +0 -27
- package/dist/chunk-KX5WRZH7.js.map +0 -1
- package/dist/chunk-TSQ7AKFT.cjs.map +0 -1
- package/dist/signal-CfLDwMyg.d.cts +0 -29
- package/dist/signal-CfLDwMyg.d.ts +0 -29
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk3U57L2TY_cjs = require('./chunk-3U57L2TY.cjs');
|
|
4
4
|
var alienSignals = require('alien-signals');
|
|
5
5
|
|
|
6
|
-
// src/reactive/root.ts
|
|
7
6
|
var currentRoot = null;
|
|
8
7
|
var rootStack = [];
|
|
9
8
|
function createRoot(fn) {
|
|
10
|
-
const scope = { disposers: [] };
|
|
9
|
+
const scope = { disposers: [], scopeDispose: null };
|
|
11
10
|
rootStack.push(currentRoot);
|
|
12
11
|
currentRoot = scope;
|
|
13
12
|
const dispose = () => {
|
|
13
|
+
if (scope.scopeDispose) {
|
|
14
|
+
try {
|
|
15
|
+
scope.scopeDispose();
|
|
16
|
+
} catch {
|
|
17
|
+
}
|
|
18
|
+
scope.scopeDispose = null;
|
|
19
|
+
}
|
|
14
20
|
for (const d of scope.disposers) {
|
|
15
21
|
try {
|
|
16
22
|
d();
|
|
@@ -19,14 +25,15 @@ function createRoot(fn) {
|
|
|
19
25
|
}
|
|
20
26
|
scope.disposers.length = 0;
|
|
21
27
|
};
|
|
28
|
+
let result;
|
|
22
29
|
try {
|
|
23
|
-
|
|
30
|
+
scope.scopeDispose = alienSignals.effectScope(() => {
|
|
31
|
+
result = fn(dispose);
|
|
32
|
+
});
|
|
24
33
|
} finally {
|
|
25
34
|
currentRoot = rootStack.pop() ?? null;
|
|
26
|
-
if (rootStack.length === 0) {
|
|
27
|
-
rootStack.length = 0;
|
|
28
|
-
}
|
|
29
35
|
}
|
|
36
|
+
return result;
|
|
30
37
|
}
|
|
31
38
|
function registerDisposer(dispose) {
|
|
32
39
|
if (currentRoot) {
|
|
@@ -229,7 +236,7 @@ function createEffect(fn) {
|
|
|
229
236
|
}
|
|
230
237
|
|
|
231
238
|
// src/reactive/memo.ts
|
|
232
|
-
var createMemo =
|
|
239
|
+
var createMemo = chunk3U57L2TY_cjs.createComputed;
|
|
233
240
|
function batch(fn) {
|
|
234
241
|
alienSignals.startBatch();
|
|
235
242
|
try {
|
|
@@ -239,11 +246,11 @@ function batch(fn) {
|
|
|
239
246
|
}
|
|
240
247
|
}
|
|
241
248
|
function untrack(fn) {
|
|
242
|
-
alienSignals.
|
|
249
|
+
const prev = alienSignals.setActiveSub(void 0);
|
|
243
250
|
try {
|
|
244
251
|
return fn();
|
|
245
252
|
} finally {
|
|
246
|
-
alienSignals.
|
|
253
|
+
alienSignals.setActiveSub(prev);
|
|
247
254
|
}
|
|
248
255
|
}
|
|
249
256
|
|
|
@@ -271,7 +278,7 @@ function createRef(initialValue) {
|
|
|
271
278
|
|
|
272
279
|
// src/reactive/reducer.ts
|
|
273
280
|
function createReducer(reducer, initialState) {
|
|
274
|
-
const [state, setState] =
|
|
281
|
+
const [state, setState] = chunk3U57L2TY_cjs.createSignal(initialState);
|
|
275
282
|
const dispatch = (action) => {
|
|
276
283
|
setState((prev) => reducer(prev, action));
|
|
277
284
|
};
|
|
@@ -294,9 +301,9 @@ function getSuspenseContext() {
|
|
|
294
301
|
|
|
295
302
|
// src/reactive/resource.ts
|
|
296
303
|
function createResource(source, fetcher, options) {
|
|
297
|
-
const [data, setData] =
|
|
298
|
-
const [loading, setLoading] =
|
|
299
|
-
const [error, setError] =
|
|
304
|
+
const [data, setData] = chunk3U57L2TY_cjs.createSignal(options?.initialValue);
|
|
305
|
+
const [loading, setLoading] = chunk3U57L2TY_cjs.createSignal(false);
|
|
306
|
+
const [error, setError] = chunk3U57L2TY_cjs.createSignal(void 0);
|
|
300
307
|
const suspenseCtx = getSuspenseContext();
|
|
301
308
|
let abortController = null;
|
|
302
309
|
let fetchVersion = 0;
|
|
@@ -808,6 +815,10 @@ function appendChild(parent, child) {
|
|
|
808
815
|
}
|
|
809
816
|
}
|
|
810
817
|
function h(tag, props, ...children) {
|
|
818
|
+
if (typeof tag === "function" && tag !== Fragment) {
|
|
819
|
+
const mergedProps = { ...props ?? {}, children };
|
|
820
|
+
return tag(mergedProps);
|
|
821
|
+
}
|
|
811
822
|
if (tag === Fragment) {
|
|
812
823
|
const frag = document.createDocumentFragment();
|
|
813
824
|
for (const child of children) {
|
|
@@ -950,6 +961,7 @@ function createShow(when, thenFn, elseFn) {
|
|
|
950
961
|
}
|
|
951
962
|
|
|
952
963
|
// src/dom/hydrate.ts
|
|
964
|
+
var ABORT_SYM2 = /* @__PURE__ */ Symbol.for("forma-abort");
|
|
953
965
|
var hydrating = false;
|
|
954
966
|
function setHydrating(value2) {
|
|
955
967
|
hydrating = value2;
|
|
@@ -969,7 +981,12 @@ function applyDynamicProps(el, props) {
|
|
|
969
981
|
const value2 = props[key];
|
|
970
982
|
if (typeof value2 !== "function") continue;
|
|
971
983
|
if (key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && key.length > 2) {
|
|
972
|
-
el
|
|
984
|
+
let ac = el[ABORT_SYM2];
|
|
985
|
+
if (!ac) {
|
|
986
|
+
ac = new AbortController();
|
|
987
|
+
el[ABORT_SYM2] = ac;
|
|
988
|
+
}
|
|
989
|
+
el.addEventListener(key.slice(2).toLowerCase(), value2, { signal: ac.signal });
|
|
973
990
|
continue;
|
|
974
991
|
}
|
|
975
992
|
const fn = value2;
|
|
@@ -1241,7 +1258,7 @@ function adoptNode(desc, ssrEl) {
|
|
|
1241
1258
|
const prevHydrating = hydrating;
|
|
1242
1259
|
hydrating = false;
|
|
1243
1260
|
try {
|
|
1244
|
-
const [getIndex] =
|
|
1261
|
+
const [getIndex] = chunk3U57L2TY_cjs.createSignal(i);
|
|
1245
1262
|
const fresh = listRenderFn(item, getIndex);
|
|
1246
1263
|
end.parentNode.insertBefore(fresh, end);
|
|
1247
1264
|
adoptedNodes.push(fresh);
|
|
@@ -1273,7 +1290,7 @@ function adoptNode(desc, ssrEl) {
|
|
|
1273
1290
|
for (let i = 0; i < adoptedItems.length; i++) {
|
|
1274
1291
|
const item = adoptedItems[i];
|
|
1275
1292
|
const key = listKeyFn(item);
|
|
1276
|
-
const [getIndex, setIndex] =
|
|
1293
|
+
const [getIndex, setIndex] = chunk3U57L2TY_cjs.createSignal(i);
|
|
1277
1294
|
cache.set(key, {
|
|
1278
1295
|
element: adoptedNodes[i],
|
|
1279
1296
|
item,
|
|
@@ -1298,7 +1315,7 @@ function adoptNode(desc, ssrEl) {
|
|
|
1298
1315
|
hydrating = false;
|
|
1299
1316
|
try {
|
|
1300
1317
|
const key = listKeyFn(item);
|
|
1301
|
-
const [getIndex, setIndex] =
|
|
1318
|
+
const [getIndex, setIndex] = chunk3U57L2TY_cjs.createSignal(0);
|
|
1302
1319
|
const element = untrack(() => listRenderFn(item, getIndex));
|
|
1303
1320
|
cache.set(key, { element, item, getIndex, setIndex });
|
|
1304
1321
|
return element;
|
|
@@ -1471,11 +1488,11 @@ function longestIncreasingSubsequence(arr) {
|
|
|
1471
1488
|
return result;
|
|
1472
1489
|
}
|
|
1473
1490
|
var SMALL_LIST_THRESHOLD = 32;
|
|
1474
|
-
var
|
|
1491
|
+
var ABORT_SYM3 = /* @__PURE__ */ Symbol.for("forma-abort");
|
|
1475
1492
|
var CACHE_SYM2 = /* @__PURE__ */ Symbol.for("forma-attr-cache");
|
|
1476
1493
|
var DYNAMIC_CHILD_SYM2 = /* @__PURE__ */ Symbol.for("forma-dynamic-child");
|
|
1477
1494
|
function canPatchStaticElement(target, source) {
|
|
1478
|
-
return target instanceof HTMLElement && source instanceof HTMLElement && target.tagName === source.tagName && !target[
|
|
1495
|
+
return target instanceof HTMLElement && source instanceof HTMLElement && target.tagName === source.tagName && !target[ABORT_SYM3] && !target[CACHE_SYM2] && !target[DYNAMIC_CHILD_SYM2] && !source[ABORT_SYM3] && !source[CACHE_SYM2] && !source[DYNAMIC_CHILD_SYM2];
|
|
1479
1496
|
}
|
|
1480
1497
|
function patchStaticElement(target, source) {
|
|
1481
1498
|
const sourceAttrNames = /* @__PURE__ */ new Set();
|
|
@@ -1759,7 +1776,7 @@ function createList(items, keyFn, renderFn, options) {
|
|
|
1759
1776
|
if (cached.item === item) return;
|
|
1760
1777
|
cached.item = item;
|
|
1761
1778
|
if (!(node instanceof HTMLElement)) return;
|
|
1762
|
-
if (node[
|
|
1779
|
+
if (node[ABORT_SYM3] || node[CACHE_SYM2] || node[DYNAMIC_CHILD_SYM2]) {
|
|
1763
1780
|
return;
|
|
1764
1781
|
}
|
|
1765
1782
|
const next = untrack(() => renderFn(item, cached.getIndex));
|
|
@@ -1781,7 +1798,7 @@ function createList(items, keyFn, renderFn, options) {
|
|
|
1781
1798
|
// createFn: create element + cache entry
|
|
1782
1799
|
(item) => {
|
|
1783
1800
|
const key = keyFn(item);
|
|
1784
|
-
const [getIndex, setIndex] =
|
|
1801
|
+
const [getIndex, setIndex] = chunk3U57L2TY_cjs.createSignal(0);
|
|
1785
1802
|
const element = untrack(() => renderFn(item, getIndex));
|
|
1786
1803
|
cache.set(key, { element, item, getIndex, setIndex });
|
|
1787
1804
|
return element;
|
|
@@ -1806,6 +1823,30 @@ function createList(items, keyFn, renderFn, options) {
|
|
|
1806
1823
|
return fragment2;
|
|
1807
1824
|
}
|
|
1808
1825
|
|
|
1826
|
+
Object.defineProperty(exports, "getBatchDepth", {
|
|
1827
|
+
enumerable: true,
|
|
1828
|
+
get: function () { return alienSignals.getBatchDepth; }
|
|
1829
|
+
});
|
|
1830
|
+
Object.defineProperty(exports, "isComputed", {
|
|
1831
|
+
enumerable: true,
|
|
1832
|
+
get: function () { return alienSignals.isComputed; }
|
|
1833
|
+
});
|
|
1834
|
+
Object.defineProperty(exports, "isEffect", {
|
|
1835
|
+
enumerable: true,
|
|
1836
|
+
get: function () { return alienSignals.isEffect; }
|
|
1837
|
+
});
|
|
1838
|
+
Object.defineProperty(exports, "isEffectScope", {
|
|
1839
|
+
enumerable: true,
|
|
1840
|
+
get: function () { return alienSignals.isEffectScope; }
|
|
1841
|
+
});
|
|
1842
|
+
Object.defineProperty(exports, "isSignal", {
|
|
1843
|
+
enumerable: true,
|
|
1844
|
+
get: function () { return alienSignals.isSignal; }
|
|
1845
|
+
});
|
|
1846
|
+
Object.defineProperty(exports, "trigger", {
|
|
1847
|
+
enumerable: true,
|
|
1848
|
+
get: function () { return alienSignals.trigger; }
|
|
1849
|
+
});
|
|
1809
1850
|
exports.Fragment = Fragment;
|
|
1810
1851
|
exports.__DEV__ = __DEV__;
|
|
1811
1852
|
exports.batch = batch;
|
|
@@ -1822,13 +1863,13 @@ exports.fragment = fragment;
|
|
|
1822
1863
|
exports.h = h;
|
|
1823
1864
|
exports.hydrateIsland = hydrateIsland;
|
|
1824
1865
|
exports.internalEffect = internalEffect;
|
|
1825
|
-
exports.longestIncreasingSubsequence = longestIncreasingSubsequence;
|
|
1826
1866
|
exports.on = on;
|
|
1827
1867
|
exports.onCleanup = onCleanup;
|
|
1828
1868
|
exports.onError = onError;
|
|
1829
1869
|
exports.popSuspenseContext = popSuspenseContext;
|
|
1830
1870
|
exports.pushSuspenseContext = pushSuspenseContext;
|
|
1831
1871
|
exports.reconcileList = reconcileList;
|
|
1872
|
+
exports.reportError = reportError;
|
|
1832
1873
|
exports.untrack = untrack;
|
|
1833
|
-
//# sourceMappingURL=chunk-
|
|
1834
|
-
//# sourceMappingURL=chunk-
|
|
1874
|
+
//# sourceMappingURL=chunk-YMIMKO4W.cjs.map
|
|
1875
|
+
//# sourceMappingURL=chunk-YMIMKO4W.cjs.map
|