@lynx-js/react 0.112.6 → 0.113.0
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/CHANGELOG.md +20 -0
- package/package.json +1 -1
- package/refresh/.turbo/turbo-build.log +3 -3
- package/refresh/dist/index.js +34 -45
- package/runtime/lazy/internal.js +2 -0
- package/runtime/lib/internal.d.ts +3 -2
- package/runtime/lib/internal.js +3 -2
- package/runtime/lib/internal.js.map +1 -1
- package/runtime/lib/lifecycle/isRendering.d.ts +3 -0
- package/runtime/lib/lifecycle/isRendering.js +25 -0
- package/runtime/lib/lifecycle/isRendering.js.map +1 -0
- package/runtime/lib/lifecycle/patch/commit.d.ts +2 -0
- package/runtime/lib/lifecycle/patch/commit.js +6 -0
- package/runtime/lib/lifecycle/patch/commit.js.map +1 -1
- package/runtime/lib/lifecycle/patch/updateMainThread.js +16 -2
- package/runtime/lib/lifecycle/patch/updateMainThread.js.map +1 -1
- package/runtime/lib/list.js +6 -2
- package/runtime/lib/list.js.map +1 -1
- package/runtime/lib/lynx/tt.js +4 -0
- package/runtime/lib/lynx/tt.js.map +1 -1
- package/runtime/lib/lynx.js +2 -7
- package/runtime/lib/lynx.js.map +1 -1
- package/runtime/lib/utils.d.ts +1 -0
- package/runtime/lib/utils.js +24 -0
- package/runtime/lib/utils.js.map +1 -1
- package/runtime/lib/worklet/delayedRunOnMainThreadData.d.ts +3 -0
- package/runtime/lib/worklet/delayedRunOnMainThreadData.js +10 -0
- package/runtime/lib/worklet/delayedRunOnMainThreadData.js.map +1 -0
- package/runtime/lib/worklet/runOnMainThread.js +14 -5
- package/runtime/lib/worklet/runOnMainThread.js.map +1 -1
- package/testing-library/dist/index.d.ts +25 -2
- package/testing-library/dist/pure.js +21 -9
- package/testing-library/types/entry.d.ts +1 -0
- package/transform/dist/wasm.cjs +1 -1
- package/worklet-runtime/dist/dev.js +29 -13
- package/worklet-runtime/dist/main.js +1 -1
- package/worklet-runtime/lib/bindings/bindings.d.ts +1 -1
- package/worklet-runtime/lib/bindings/bindings.js +9 -1
- package/worklet-runtime/lib/bindings/bindings.js.map +1 -1
- package/worklet-runtime/lib/global.d.ts +1 -0
- package/worklet-runtime/lib/listeners.js +2 -8
- package/worklet-runtime/lib/listeners.js.map +1 -1
- package/worklet-runtime/lib/runOnMainThread.d.ts +2 -0
- package/worklet-runtime/lib/runOnMainThread.js +21 -0
- package/worklet-runtime/lib/runOnMainThread.js.map +1 -0
- package/worklet-runtime/lib/workletRuntime.js +2 -0
- package/worklet-runtime/lib/workletRuntime.js.map +1 -1
package/runtime/lib/utils.js
CHANGED
|
@@ -62,4 +62,28 @@ export function hook(object, key, fn) {
|
|
|
62
62
|
return fn.call(this, oldFn, ...args);
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
|
+
export const lynxQueueMicrotask = /* @__PURE__ */ (() => {
|
|
66
|
+
if (lynx.queueMicrotask) {
|
|
67
|
+
return (fn) => lynx.queueMicrotask(fn);
|
|
68
|
+
}
|
|
69
|
+
else if (typeof globalThis.Promise === 'function') {
|
|
70
|
+
const resolved = globalThis.Promise.resolve();
|
|
71
|
+
/* v8 ignore start */
|
|
72
|
+
return (fn) => {
|
|
73
|
+
// Schedule as a microtask, and surface exceptions like queueMicrotask would.
|
|
74
|
+
resolved.then(fn).catch((err) => {
|
|
75
|
+
setTimeout(() => {
|
|
76
|
+
throw err;
|
|
77
|
+
}, 0);
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// Fallback to macrotask when microtasks aren't available.
|
|
83
|
+
return (fn) => {
|
|
84
|
+
setTimeout(fn, 0);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/* v8 ignore stop */
|
|
88
|
+
})();
|
|
65
89
|
//# sourceMappingURL=utils.js.map
|
package/runtime/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Copyright 2025 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
export let delayedRunOnMainThreadData = [];
|
|
5
|
+
export function takeDelayedRunOnMainThreadData() {
|
|
6
|
+
const data = delayedRunOnMainThreadData;
|
|
7
|
+
delayedRunOnMainThreadData = [];
|
|
8
|
+
return data;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=delayedRunOnMainThreadData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delayedRunOnMainThreadData.js","sourceRoot":"","sources":["../../src/worklet/delayedRunOnMainThreadData.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,MAAM,CAAC,IAAI,0BAA0B,GAAwB,EAAE,CAAC;AAEhE,MAAM,UAAU,8BAA8B;IAC5C,MAAM,IAAI,GAAG,0BAA0B,CAAC;IACxC,0BAA0B,GAAG,EAAE,CAAC;IAChC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { WorkletEvents } from '@lynx-js/react/worklet-runtime/bindings';
|
|
2
2
|
import { onPostWorkletCtx } from './ctx.js';
|
|
3
|
+
import { delayedRunOnMainThreadData } from './delayedRunOnMainThreadData.js';
|
|
3
4
|
import { isMtsEnabled } from './functionality.js';
|
|
4
5
|
import { onFunctionCall } from './functionCall.js';
|
|
6
|
+
import { isRendering } from '../lifecycle/isRendering.js';
|
|
7
|
+
import { __globalSnapshotPatch } from '../lifecycle/patch/snapshotPatch.js';
|
|
5
8
|
/**
|
|
6
9
|
* `runOnMainThread` allows triggering main thread functions on the main thread asynchronously.
|
|
7
10
|
* @param fn - The main thread functions to be called.
|
|
@@ -31,13 +34,19 @@ export function runOnMainThread(fn) {
|
|
|
31
34
|
return new Promise((resolve) => {
|
|
32
35
|
onPostWorkletCtx(fn);
|
|
33
36
|
const resolveId = onFunctionCall(resolve);
|
|
37
|
+
const data = {
|
|
38
|
+
worklet: fn,
|
|
39
|
+
params,
|
|
40
|
+
resolveId,
|
|
41
|
+
};
|
|
42
|
+
if (__globalSnapshotPatch === undefined || isRendering.value) {
|
|
43
|
+
// before hydration or is rendering
|
|
44
|
+
delayedRunOnMainThreadData.push(data);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
34
47
|
lynx.getCoreContext().dispatchEvent({
|
|
35
48
|
type: WorkletEvents.runWorkletCtx,
|
|
36
|
-
data: JSON.stringify(
|
|
37
|
-
worklet: fn,
|
|
38
|
-
params,
|
|
39
|
-
resolveId,
|
|
40
|
-
}),
|
|
49
|
+
data: JSON.stringify(data),
|
|
41
50
|
});
|
|
42
51
|
});
|
|
43
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runOnMainThread.js","sourceRoot":"","sources":["../../src/worklet/runOnMainThread.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"runOnMainThread.js","sourceRoot":"","sources":["../../src/worklet/runOnMainThread.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAE5E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAAsC,EAAM;IACzE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,EAAE,GAAG,MAAa,EAAc,EAAE;QAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,gBAAgB,CAAC,EAAoB,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG;gBACX,OAAO,EAAE,EAAoB;gBAC7B,MAAM;gBACN,SAAS;aACW,CAAC;YACvB,IAAI,qBAAqB,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;gBAC7D,mCAAmC;gBACnC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC;gBAClC,IAAI,EAAE,aAAa,CAAC,aAAa;gBACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -762,7 +762,7 @@ declare const initElementTree: () => {
|
|
|
762
762
|
__CreateWrapperElement(parentComponentUniqueId: number): LynxElement;
|
|
763
763
|
__AddInlineStyle(e: HTMLElement, key: number, value: string): void;
|
|
764
764
|
__AppendElement(parent: LynxElement, child: LynxElement): void;
|
|
765
|
-
__SetCSSId(e: LynxElement | LynxElement
|
|
765
|
+
__SetCSSId(e: LynxElement[] | LynxElement, id: string, entryName?: string | undefined): void;
|
|
766
766
|
__SetAttribute(e: LynxElement, key: string, value: any): void;
|
|
767
767
|
__AddEvent(e: LynxElement, eventType: string, eventName: string, eventHandler: string | Record<string, any>): void;
|
|
768
768
|
__GetEvent(e: LynxElement, eventType: string, eventName: string): {
|
|
@@ -777,7 +777,7 @@ declare const initElementTree: () => {
|
|
|
777
777
|
__SetGestureDetector(e: LynxElement, id: number, type: number, config: any, relationMap: Record<string, number[]>): void;
|
|
778
778
|
__GetDataset(e: LynxElement): DOMStringMap;
|
|
779
779
|
__RemoveElement(parent: LynxElement, child: LynxElement): void;
|
|
780
|
-
__InsertElementBefore(parent: LynxElement, child: LynxElement, ref?: LynxElement): void;
|
|
780
|
+
__InsertElementBefore(parent: LynxElement, child: LynxElement, ref?: LynxElement | undefined): void;
|
|
781
781
|
__ReplaceElement(newElement: LynxElement, oldElement: LynxElement): void;
|
|
782
782
|
__FlushElementTree(): void;
|
|
783
783
|
__UpdateListComponents(_list: LynxElement, _components: string[]): void;
|
|
@@ -839,6 +839,18 @@ export declare interface LogRolesOptions {
|
|
|
839
839
|
* @public
|
|
840
840
|
*/
|
|
841
841
|
declare interface LynxElement extends HTMLElement {
|
|
842
|
+
/**
|
|
843
|
+
* The unique id of the element.
|
|
844
|
+
*
|
|
845
|
+
* @internal
|
|
846
|
+
*/
|
|
847
|
+
$$uiSign: number;
|
|
848
|
+
/**
|
|
849
|
+
* The unique id of the parent of the element.
|
|
850
|
+
*
|
|
851
|
+
* @internal
|
|
852
|
+
*/
|
|
853
|
+
parentComponentUniqueId: number;
|
|
842
854
|
/**
|
|
843
855
|
* The map of events bound to the element.
|
|
844
856
|
*/
|
|
@@ -881,6 +893,14 @@ declare interface LynxElement extends HTMLElement {
|
|
|
881
893
|
* @public
|
|
882
894
|
*/
|
|
883
895
|
declare interface LynxGlobalThis {
|
|
896
|
+
/**
|
|
897
|
+
* @internal
|
|
898
|
+
*/
|
|
899
|
+
_globalObject: any;
|
|
900
|
+
/**
|
|
901
|
+
* @internal
|
|
902
|
+
*/
|
|
903
|
+
_globalProxy: any;
|
|
884
904
|
/**
|
|
885
905
|
* The globalThis object.
|
|
886
906
|
*/
|
|
@@ -950,6 +970,8 @@ export declare class LynxTestingEnv {
|
|
|
950
970
|
injectGlobals(): void;
|
|
951
971
|
switchToBackgroundThread(): void;
|
|
952
972
|
switchToMainThread(): void;
|
|
973
|
+
// we do not use it because we have to keep background thread
|
|
974
|
+
// otherwise we will get error on __MAIN_THREAD__/__BACKGROUND__/lynx not defined etc.
|
|
953
975
|
clearGlobal(): void;
|
|
954
976
|
reset(): void;
|
|
955
977
|
}
|
|
@@ -1469,6 +1491,7 @@ export declare type RenderResult<Q extends Queries = typeof queries> = {
|
|
|
1469
1491
|
container: LynxElement;
|
|
1470
1492
|
rerender: (ui: React.ReactNode) => void;
|
|
1471
1493
|
unmount: () => boolean;
|
|
1494
|
+
asFragment: () => DocumentFragment;
|
|
1472
1495
|
} & { [P in keyof Q]: BoundFunction<Q[P]> };
|
|
1473
1496
|
|
|
1474
1497
|
declare type Screen_2<Q extends Queries = typeof queries> = BoundFunctions<Q> & {
|
|
@@ -14580,17 +14580,19 @@ function waitSchedule() {
|
|
|
14580
14580
|
return result;
|
|
14581
14581
|
}
|
|
14582
14582
|
});
|
|
14583
|
-
function pure_render(ui, { queries, wrapper: WrapperComponent, enableMainThread = false, enableBackgroundThread = true } = {}) {
|
|
14583
|
+
function pure_render(ui, { queries, wrapper: WrapperComponent, enableMainThread = false, enableBackgroundThread = true, isRerender = false } = {}) {
|
|
14584
14584
|
if (!enableMainThread && !enableBackgroundThread) throw new Error('You must enable at least one thread for rendering (enableMainThread or enableBackgroundThread)');
|
|
14585
14585
|
const wrapUiIfNeeded = (innerElement)=>WrapperComponent ? h(WrapperComponent, null, innerElement) : innerElement;
|
|
14586
14586
|
const comp = wrapUiIfNeeded(ui);
|
|
14587
14587
|
const compMainThread = cloneElement(comp);
|
|
14588
14588
|
const compBackgroundThread = cloneElement(comp);
|
|
14589
|
-
|
|
14590
|
-
|
|
14591
|
-
|
|
14592
|
-
|
|
14593
|
-
|
|
14589
|
+
if (!isRerender) {
|
|
14590
|
+
globalThis.lynxTestingEnv.switchToMainThread();
|
|
14591
|
+
__root.__jsx = enableMainThread ? compMainThread : null;
|
|
14592
|
+
act(()=>{
|
|
14593
|
+
renderPage();
|
|
14594
|
+
});
|
|
14595
|
+
}
|
|
14594
14596
|
if (enableBackgroundThread) {
|
|
14595
14597
|
globalThis.lynxTestingEnv.switchToBackgroundThread();
|
|
14596
14598
|
act(()=>{
|
|
@@ -14602,14 +14604,24 @@ function pure_render(ui, { queries, wrapper: WrapperComponent, enableMainThread
|
|
|
14602
14604
|
container: lynxTestingEnv.mainThread.elementTree.root,
|
|
14603
14605
|
unmount: cleanup,
|
|
14604
14606
|
rerender: (rerenderUi)=>{
|
|
14605
|
-
|
|
14606
|
-
return pure_render(wrapUiIfNeeded(rerenderUi), {
|
|
14607
|
+
pure_render(rerenderUi, {
|
|
14607
14608
|
queries,
|
|
14608
14609
|
wrapper: WrapperComponent,
|
|
14609
14610
|
enableMainThread,
|
|
14610
|
-
enableBackgroundThread
|
|
14611
|
+
enableBackgroundThread,
|
|
14612
|
+
isRerender: true
|
|
14611
14613
|
});
|
|
14612
14614
|
},
|
|
14615
|
+
asFragment: ()=>{
|
|
14616
|
+
const { document: document1 } = lynxTestingEnv.jsdom.window;
|
|
14617
|
+
const container = lynxTestingEnv.mainThread.elementTree.root;
|
|
14618
|
+
if ('function' == typeof document1.createRange) return document1.createRange().createContextualFragment(container.innerHTML);
|
|
14619
|
+
{
|
|
14620
|
+
const template = document1.createElement('template');
|
|
14621
|
+
template.innerHTML = container.innerHTML;
|
|
14622
|
+
return template.content;
|
|
14623
|
+
}
|
|
14624
|
+
},
|
|
14613
14625
|
...(0, dom_esm.E5)(lynxTestingEnv.mainThread.elementTree.root, queries)
|
|
14614
14626
|
};
|
|
14615
14627
|
}
|
|
@@ -143,6 +143,7 @@ export type RenderResult<Q extends Queries = typeof queries> = {
|
|
|
143
143
|
container: LynxElement;
|
|
144
144
|
rerender: (ui: React.ReactNode) => void;
|
|
145
145
|
unmount: () => boolean;
|
|
146
|
+
asFragment: () => DocumentFragment;
|
|
146
147
|
} & { [P in keyof Q]: BoundFunction<Q[P]> };
|
|
147
148
|
|
|
148
149
|
/**
|