@b9g/crank 0.7.6 → 0.7.8
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 +15 -9
- package/_css.cjs.map +1 -1
- package/_css.d.ts +21 -0
- package/_css.js.map +1 -1
- package/_svg.cjs.map +1 -1
- package/_svg.d.ts +1 -0
- package/_svg.js.map +1 -1
- package/_utils.cjs +21 -0
- package/_utils.cjs.map +1 -1
- package/_utils.d.ts +17 -0
- package/_utils.js +19 -1
- package/_utils.js.map +1 -1
- package/async.cjs.map +1 -1
- package/async.d.ts +107 -0
- package/async.js.map +1 -1
- package/crank.cjs +31 -2
- package/crank.cjs.map +1 -1
- package/crank.d.ts +733 -0
- package/crank.js +32 -3
- package/crank.js.map +1 -1
- package/dom.cjs.map +1 -1
- package/dom.d.ts +14 -0
- package/dom.js.map +1 -1
- package/event-target.cjs.map +1 -1
- package/event-target.d.ts +26 -0
- package/event-target.js.map +1 -1
- package/html.cjs.map +1 -1
- package/html.d.ts +24 -0
- package/html.js.map +1 -1
- package/jsx-runtime.cjs.map +1 -1
- package/jsx-runtime.d.ts +6 -0
- package/jsx-runtime.js.map +1 -1
- package/jsx-tag.cjs.map +1 -1
- package/jsx-tag.d.ts +45 -0
- package/jsx-tag.js.map +1 -1
- package/package.json +1 -1
- package/standalone.d.ts +4 -0
- package/umd.d.ts +3 -0
- package/umd.js +49 -2
- package/umd.js.map +1 -1
package/crank.cjs
CHANGED
|
@@ -428,11 +428,16 @@ function getRootRetainer(renderer, bridge, { children, root, hydrate, }) {
|
|
|
428
428
|
return ret;
|
|
429
429
|
}
|
|
430
430
|
function renderRoot(adapter, root, ret, children) {
|
|
431
|
+
const commitLabel = "commit (" + getTagName(ret.el.tag) + ")";
|
|
432
|
+
_utils.markStart("diff");
|
|
431
433
|
const diff = diffChildren(adapter, root, ret, ret.ctx, ret.scope, ret, children);
|
|
432
434
|
const schedulePromises = [];
|
|
433
435
|
if (_utils.isPromiseLike(diff)) {
|
|
434
436
|
return diff.then(() => {
|
|
437
|
+
_utils.measureMark("diff");
|
|
438
|
+
_utils.markStart(commitLabel);
|
|
435
439
|
commit(adapter, ret, ret, ret.ctx, ret.scope, root, 0, schedulePromises, undefined);
|
|
440
|
+
_utils.measureMark(commitLabel);
|
|
436
441
|
if (schedulePromises.length > 0) {
|
|
437
442
|
return Promise.all(schedulePromises).then(() => {
|
|
438
443
|
if (typeof root !== "object" || root === null) {
|
|
@@ -447,7 +452,10 @@ function renderRoot(adapter, root, ret, children) {
|
|
|
447
452
|
return adapter.read(_utils.unwrap(getChildValues(ret)));
|
|
448
453
|
});
|
|
449
454
|
}
|
|
455
|
+
_utils.measureMark("diff");
|
|
456
|
+
_utils.markStart(commitLabel);
|
|
450
457
|
commit(adapter, ret, ret, ret.ctx, ret.scope, root, 0, schedulePromises, undefined);
|
|
458
|
+
_utils.measureMark(commitLabel);
|
|
451
459
|
if (schedulePromises.length > 0) {
|
|
452
460
|
return Promise.all(schedulePromises).then(() => {
|
|
453
461
|
if (typeof root !== "object" || root === null) {
|
|
@@ -1549,6 +1557,7 @@ class Context extends eventTarget.CustomEventTarget {
|
|
|
1549
1557
|
if (getFlag(ctx.ret, IsScheduling)) {
|
|
1550
1558
|
setFlag(ctx.ret, IsSchedulingRefresh);
|
|
1551
1559
|
}
|
|
1560
|
+
const commitLabel = "commit (" + getTagName(ctx.ret.el.tag) + ")";
|
|
1552
1561
|
let diff;
|
|
1553
1562
|
const schedulePromises = [];
|
|
1554
1563
|
try {
|
|
@@ -1556,7 +1565,12 @@ class Context extends eventTarget.CustomEventTarget {
|
|
|
1556
1565
|
diff = enqueueComponent(ctx);
|
|
1557
1566
|
if (_utils.isPromiseLike(diff)) {
|
|
1558
1567
|
return diff
|
|
1559
|
-
.then(() =>
|
|
1568
|
+
.then(() => {
|
|
1569
|
+
_utils.markStart(commitLabel);
|
|
1570
|
+
const value = commitComponent(ctx, schedulePromises);
|
|
1571
|
+
_utils.measureMark(commitLabel);
|
|
1572
|
+
return ctx.adapter.read(value);
|
|
1573
|
+
})
|
|
1560
1574
|
.then((result) => {
|
|
1561
1575
|
if (schedulePromises.length) {
|
|
1562
1576
|
return Promise.all(schedulePromises).then(() => {
|
|
@@ -1586,7 +1600,9 @@ class Context extends eventTarget.CustomEventTarget {
|
|
|
1586
1600
|
})
|
|
1587
1601
|
.finally(() => setFlag(ctx.ret, IsRefreshing, false));
|
|
1588
1602
|
}
|
|
1603
|
+
_utils.markStart(commitLabel);
|
|
1589
1604
|
const result = ctx.adapter.read(commitComponent(ctx, schedulePromises));
|
|
1605
|
+
_utils.measureMark(commitLabel);
|
|
1590
1606
|
if (schedulePromises.length) {
|
|
1591
1607
|
return Promise.all(schedulePromises).then(() => {
|
|
1592
1608
|
return ctx.adapter.read(getValue(ctx.ret));
|
|
@@ -1816,11 +1832,13 @@ function runComponent(ctx) {
|
|
|
1816
1832
|
}
|
|
1817
1833
|
const ret = ctx.ret;
|
|
1818
1834
|
const initial = !ctx.iterator;
|
|
1835
|
+
const tagName = getTagName(ret.el.tag);
|
|
1819
1836
|
if (initial) {
|
|
1820
1837
|
setFlag(ctx.ret, IsExecuting);
|
|
1821
1838
|
eventTarget.clearEventListeners(ctx.ctx);
|
|
1822
1839
|
let returned;
|
|
1823
1840
|
try {
|
|
1841
|
+
_utils.markStart(tagName);
|
|
1824
1842
|
returned = ret.el.tag.call(ctx.ctx, ret.el.props, ctx.ctx);
|
|
1825
1843
|
}
|
|
1826
1844
|
catch (err) {
|
|
@@ -1835,6 +1853,7 @@ function runComponent(ctx) {
|
|
|
1835
1853
|
}
|
|
1836
1854
|
else if (!_utils.isPromiseLike(returned)) {
|
|
1837
1855
|
// sync function component
|
|
1856
|
+
_utils.measureMark(tagName);
|
|
1838
1857
|
return [
|
|
1839
1858
|
undefined,
|
|
1840
1859
|
diffComponentChildren(ctx, returned, false),
|
|
@@ -1843,6 +1862,7 @@ function runComponent(ctx) {
|
|
|
1843
1862
|
else {
|
|
1844
1863
|
// async function component
|
|
1845
1864
|
const returned1 = returned instanceof Promise ? returned : Promise.resolve(returned);
|
|
1865
|
+
returned1.then(() => _utils.measureMark(tagName), () => _utils.measureMark(tagName));
|
|
1846
1866
|
return [
|
|
1847
1867
|
returned1.catch(NOOP),
|
|
1848
1868
|
returned1.then((returned) => diffComponentChildren(ctx, returned, false), (err) => {
|
|
@@ -1856,6 +1876,7 @@ function runComponent(ctx) {
|
|
|
1856
1876
|
if (initial) {
|
|
1857
1877
|
try {
|
|
1858
1878
|
setFlag(ctx.ret, IsExecuting);
|
|
1879
|
+
_utils.markStart(tagName);
|
|
1859
1880
|
iteration = ctx.iterator.next();
|
|
1860
1881
|
}
|
|
1861
1882
|
catch (err) {
|
|
@@ -1878,7 +1899,9 @@ function runComponent(ctx) {
|
|
|
1878
1899
|
try {
|
|
1879
1900
|
setFlag(ctx.ret, IsExecuting);
|
|
1880
1901
|
const oldResult = ctx.adapter.read(getValue(ctx.ret));
|
|
1902
|
+
_utils.markStart(tagName);
|
|
1881
1903
|
iteration = ctx.iterator.next(oldResult);
|
|
1904
|
+
_utils.measureMark(tagName);
|
|
1882
1905
|
}
|
|
1883
1906
|
catch (err) {
|
|
1884
1907
|
setFlag(ctx.ret, IsErrored);
|
|
@@ -1888,6 +1911,9 @@ function runComponent(ctx) {
|
|
|
1888
1911
|
setFlag(ctx.ret, IsExecuting, false);
|
|
1889
1912
|
}
|
|
1890
1913
|
}
|
|
1914
|
+
else {
|
|
1915
|
+
_utils.measureMark(tagName);
|
|
1916
|
+
}
|
|
1891
1917
|
if (_utils.isPromiseLike(iteration)) {
|
|
1892
1918
|
throw new Error("Mixed generator component");
|
|
1893
1919
|
}
|
|
@@ -1910,6 +1936,7 @@ function runComponent(ctx) {
|
|
|
1910
1936
|
else {
|
|
1911
1937
|
if (getFlag(ctx.ret, IsInForAwaitOfLoop)) {
|
|
1912
1938
|
// initializes the async generator loop
|
|
1939
|
+
_utils.measureMark(tagName);
|
|
1913
1940
|
pullComponent(ctx, iteration);
|
|
1914
1941
|
const block = resumePropsAsyncIterator(ctx);
|
|
1915
1942
|
return [block, ctx.pull && ctx.pull.diff];
|
|
@@ -1922,6 +1949,7 @@ function runComponent(ctx) {
|
|
|
1922
1949
|
try {
|
|
1923
1950
|
setFlag(ctx.ret, IsExecuting);
|
|
1924
1951
|
const oldResult = ctx.adapter.read(getValue(ctx.ret));
|
|
1952
|
+
_utils.markStart(tagName);
|
|
1925
1953
|
iteration = ctx.iterator.next(oldResult);
|
|
1926
1954
|
}
|
|
1927
1955
|
catch (err) {
|
|
@@ -1935,6 +1963,7 @@ function runComponent(ctx) {
|
|
|
1935
1963
|
if (!_utils.isPromiseLike(iteration)) {
|
|
1936
1964
|
throw new Error("Mixed generator component");
|
|
1937
1965
|
}
|
|
1966
|
+
iteration.then(() => _utils.measureMark(tagName), () => _utils.measureMark(tagName));
|
|
1938
1967
|
const diff = iteration.then((iteration) => {
|
|
1939
1968
|
if (getFlag(ctx.ret, IsInForAwaitOfLoop)) {
|
|
1940
1969
|
// We have entered a for await...of loop, so we start pulling
|
|
@@ -2329,7 +2358,7 @@ async function unmountComponent(ctx, isNested) {
|
|
|
2329
2358
|
}
|
|
2330
2359
|
}
|
|
2331
2360
|
let didLinger = false;
|
|
2332
|
-
if (!isNested && cleanupPromises
|
|
2361
|
+
if (!isNested && cleanupPromises) {
|
|
2333
2362
|
didLinger = true;
|
|
2334
2363
|
const index = ctx.index;
|
|
2335
2364
|
const lingerers = ctx.host.lingerers || (ctx.host.lingerers = []);
|