@spcsn/taro-mini-runner 1.0.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/README.md +103 -0
- package/dist/entrypoints/mini-runner.d.ts +2 -0
- package/dist/entrypoints/mini-runner.js +96 -0
- package/dist/entrypoints/mini-runner.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/mini-program/config.d.ts +3 -0
- package/dist/mini-program/config.js +237 -0
- package/dist/mini-program/config.js.map +1 -0
- package/dist/mini-program/default-config.d.ts +3 -0
- package/dist/mini-program/default-config.js +49 -0
- package/dist/mini-program/default-config.js.map +1 -0
- package/dist/mini-program/emit.d.ts +3 -0
- package/dist/mini-program/emit.js +247 -0
- package/dist/mini-program/emit.js.map +1 -0
- package/dist/mini-program/entry.d.ts +3 -0
- package/dist/mini-program/entry.js +142 -0
- package/dist/mini-program/entry.js.map +1 -0
- package/dist/mini-program/index.d.ts +3 -0
- package/dist/mini-program/index.js +29 -0
- package/dist/mini-program/index.js.map +1 -0
- package/dist/mini-program/native-support.d.ts +6 -0
- package/dist/mini-program/native-support.js +160 -0
- package/dist/mini-program/native-support.js.map +1 -0
- package/dist/mini-program/page.d.ts +4 -0
- package/dist/mini-program/page.js +223 -0
- package/dist/mini-program/page.js.map +1 -0
- package/dist/mini-program/pipeline.d.ts +3 -0
- package/dist/mini-program/pipeline.js +46 -0
- package/dist/mini-program/pipeline.js.map +1 -0
- package/dist/mini-program/postcss.d.ts +6 -0
- package/dist/mini-program/postcss.js +26 -0
- package/dist/mini-program/postcss.js.map +1 -0
- package/dist/mini-program/style.d.ts +3 -0
- package/dist/mini-program/style.js +67 -0
- package/dist/mini-program/style.js.map +1 -0
- package/dist/plugins/rollup-plugin-increment.d.ts +8 -0
- package/dist/plugins/rollup-plugin-increment.js +52 -0
- package/dist/plugins/rollup-plugin-increment.js.map +1 -0
- package/dist/plugins/vite-plugin-assets.d.ts +3 -0
- package/dist/plugins/vite-plugin-assets.js +135 -0
- package/dist/plugins/vite-plugin-assets.js.map +1 -0
- package/dist/plugins/vite-plugin-multi-platform.d.ts +3 -0
- package/dist/plugins/vite-plugin-multi-platform.js +71 -0
- package/dist/plugins/vite-plugin-multi-platform.js.map +1 -0
- package/dist/react-framework/index.d.ts +27 -0
- package/dist/react-framework/index.js +36 -0
- package/dist/react-framework/index.js.map +1 -0
- package/dist/react-framework/loader-meta.d.ts +3 -0
- package/dist/react-framework/loader-meta.js +151 -0
- package/dist/react-framework/loader-meta.js.map +1 -0
- package/dist/react-framework/runtime/connect-native.d.ts +10 -0
- package/dist/react-framework/runtime/connect-native.js +392 -0
- package/dist/react-framework/runtime/connect-native.js.map +1 -0
- package/dist/react-framework/runtime/connect.d.ts +14 -0
- package/dist/react-framework/runtime/connect.js +313 -0
- package/dist/react-framework/runtime/connect.js.map +1 -0
- package/dist/react-framework/runtime/hooks.d.ts +30 -0
- package/dist/react-framework/runtime/hooks.js +87 -0
- package/dist/react-framework/runtime/hooks.js.map +1 -0
- package/dist/react-framework/runtime/index.d.ts +3 -0
- package/dist/react-framework/runtime/index.js +49 -0
- package/dist/react-framework/runtime/index.js.map +1 -0
- package/dist/react-framework/runtime/react-meta.d.ts +7 -0
- package/dist/react-framework/runtime/react-meta.js +9 -0
- package/dist/react-framework/runtime/react-meta.js.map +1 -0
- package/dist/react-framework/runtime/utils.d.ts +13 -0
- package/dist/react-framework/runtime/utils.js +45 -0
- package/dist/react-framework/runtime/utils.js.map +1 -0
- package/dist/react-framework/vite.mini.d.ts +3 -0
- package/dist/react-framework/vite.mini.js +135 -0
- package/dist/react-framework/vite.mini.js.map +1 -0
- package/dist/react-runtime/component-tree.d.ts +19 -0
- package/dist/react-runtime/component-tree.js +65 -0
- package/dist/react-runtime/component-tree.js.map +1 -0
- package/dist/react-runtime/constant.d.ts +7 -0
- package/dist/react-runtime/constant.js +78 -0
- package/dist/react-runtime/constant.js.map +1 -0
- package/dist/react-runtime/dom-input.d.ts +12 -0
- package/dist/react-runtime/dom-input.js +86 -0
- package/dist/react-runtime/dom-input.js.map +1 -0
- package/dist/react-runtime/event.d.ts +13 -0
- package/dist/react-runtime/event.js +83 -0
- package/dist/react-runtime/event.js.map +1 -0
- package/dist/react-runtime/index.d.ts +33 -0
- package/dist/react-runtime/index.js +75 -0
- package/dist/react-runtime/index.js.map +1 -0
- package/dist/react-runtime/input-value-tracking.d.ts +3 -0
- package/dist/react-runtime/input-value-tracking.js +84 -0
- package/dist/react-runtime/input-value-tracking.js.map +1 -0
- package/dist/react-runtime/props.d.ts +7 -0
- package/dist/react-runtime/props.js +153 -0
- package/dist/react-runtime/props.js.map +1 -0
- package/dist/react-runtime/reconciler.d.ts +5 -0
- package/dist/react-runtime/reconciler.js +217 -0
- package/dist/react-runtime/reconciler.js.map +1 -0
- package/dist/react-runtime/render.d.ts +25 -0
- package/dist/react-runtime/render.js +97 -0
- package/dist/react-runtime/render.js.map +1 -0
- package/dist/react-runtime/work-tags.d.ts +26 -0
- package/dist/react-runtime/work-tags.js +29 -0
- package/dist/react-runtime/work-tags.js.map +1 -0
- package/dist/shared/compiler/base.d.ts +41 -0
- package/dist/shared/compiler/base.js +170 -0
- package/dist/shared/compiler/base.js.map +1 -0
- package/dist/shared/compiler/mini.d.ts +20 -0
- package/dist/shared/compiler/mini.js +147 -0
- package/dist/shared/compiler/mini.js.map +1 -0
- package/dist/shared/component.d.ts +2 -0
- package/dist/shared/component.js +21 -0
- package/dist/shared/component.js.map +1 -0
- package/dist/shared/constants.d.ts +47 -0
- package/dist/shared/constants.js +51 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/create-filter.d.ts +7 -0
- package/dist/shared/create-filter.js +97 -0
- package/dist/shared/create-filter.js.map +1 -0
- package/dist/shared/html.d.ts +1 -0
- package/dist/shared/html.js +19 -0
- package/dist/shared/html.js.map +1 -0
- package/dist/shared/index.d.ts +39 -0
- package/dist/shared/index.js +258 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/logger.d.ts +7 -0
- package/dist/shared/logger.js +146 -0
- package/dist/shared/logger.js.map +1 -0
- package/dist/shared/map.d.ts +11 -0
- package/dist/shared/map.js +41 -0
- package/dist/shared/map.js.map +1 -0
- package/dist/shared/profile.d.ts +9 -0
- package/dist/shared/profile.js +52 -0
- package/dist/shared/profile.js.map +1 -0
- package/dist/shared/rollup.d.ts +8 -0
- package/dist/shared/rollup.js +40 -0
- package/dist/shared/rollup.js.map +1 -0
- package/dist/shared/runner/constant.d.ts +5 -0
- package/dist/shared/runner/constant.js +53 -0
- package/dist/shared/runner/constant.js.map +1 -0
- package/dist/shared/runner/index.d.ts +2 -0
- package/dist/shared/runner/index.js +19 -0
- package/dist/shared/runner/index.js.map +1 -0
- package/dist/shared/runner/vite.d.ts +3 -0
- package/dist/shared/runner/vite.js +10 -0
- package/dist/shared/runner/vite.js.map +1 -0
- package/dist/style-transforms/html-transform.d.ts +14 -0
- package/dist/style-transforms/html-transform.js +124 -0
- package/dist/style-transforms/html-transform.js.map +1 -0
- package/dist/style-transforms/px-transform.d.ts +40 -0
- package/dist/style-transforms/px-transform.js +252 -0
- package/dist/style-transforms/px-transform.js.map +1 -0
- package/dist/templates/comp.js +5 -0
- package/dist/templates/custom-wrapper.js +5 -0
- package/package.json +67 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.track = track;
|
|
4
|
+
exports.updateValueIfChanged = updateValueIfChanged;
|
|
5
|
+
exports.stopTracking = stopTracking;
|
|
6
|
+
function isCheckable(elem) {
|
|
7
|
+
const type = elem.type;
|
|
8
|
+
const nodeName = elem.nodeName;
|
|
9
|
+
return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');
|
|
10
|
+
}
|
|
11
|
+
function getTracker(node) {
|
|
12
|
+
return node._valueTracker;
|
|
13
|
+
}
|
|
14
|
+
function detachTracker(node) {
|
|
15
|
+
node._valueTracker = null;
|
|
16
|
+
}
|
|
17
|
+
// 之所以单独创建一个 tacker,是为了统一监听不同 type 的 input 值
|
|
18
|
+
// 比如 type=checkbox 或者 type=radio,就需要监听 checked,而不是 value
|
|
19
|
+
// 虽然目前还未实现 checkbox 和 radio 的 finishEventHandle,但后续不好说,所以先统一和 react 一样的写法
|
|
20
|
+
// 需要特别注意的是,tracker 初始化时的值为 node 的初始值,但后续会变更为事件的 detail.value 值
|
|
21
|
+
function trackValueOnNode(node) {
|
|
22
|
+
const valueField = isCheckable(node) ? 'checked' : 'value';
|
|
23
|
+
const descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);
|
|
24
|
+
let currentValue = '' + node[valueField];
|
|
25
|
+
if (node.hasOwnProperty(valueField) ||
|
|
26
|
+
typeof descriptor === 'undefined' ||
|
|
27
|
+
typeof descriptor.get !== 'function' ||
|
|
28
|
+
typeof descriptor.set !== 'function') {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const { get, set } = descriptor;
|
|
32
|
+
Object.defineProperty(node, valueField, {
|
|
33
|
+
configurable: true,
|
|
34
|
+
enumerable: descriptor.enumerable,
|
|
35
|
+
get: function () {
|
|
36
|
+
return get.call(this);
|
|
37
|
+
},
|
|
38
|
+
set: function (value) {
|
|
39
|
+
currentValue = '' + value;
|
|
40
|
+
set.call(this, value);
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const tracker = {
|
|
44
|
+
getValue() {
|
|
45
|
+
return currentValue;
|
|
46
|
+
},
|
|
47
|
+
setValue(value) {
|
|
48
|
+
currentValue = '' + value;
|
|
49
|
+
},
|
|
50
|
+
stopTracking() {
|
|
51
|
+
detachTracker(node);
|
|
52
|
+
delete node[valueField];
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
return tracker;
|
|
56
|
+
}
|
|
57
|
+
function track(node) {
|
|
58
|
+
if (getTracker(node)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
node._valueTracker = trackValueOnNode(node);
|
|
62
|
+
}
|
|
63
|
+
function updateValueIfChanged(node, nextValue) {
|
|
64
|
+
if (!node) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
const tracker = getTracker(node);
|
|
68
|
+
if (!tracker) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
const lastValue = tracker.getValue();
|
|
72
|
+
if (nextValue !== lastValue) {
|
|
73
|
+
tracker.setValue(nextValue);
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
function stopTracking(node) {
|
|
79
|
+
const tracker = getTracker(node);
|
|
80
|
+
if (tracker) {
|
|
81
|
+
tracker.stopTracking();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=input-value-tracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-value-tracking.js","sourceRoot":"","sources":["../../src/react-runtime/input-value-tracking.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TaroElement } from '@spcsn/taro-runtime';
|
|
2
|
+
export type Props = Record<string, unknown>;
|
|
3
|
+
type UpdatePayload = unknown[];
|
|
4
|
+
export declare function updateProps(dom: TaroElement, oldProps: Props, newProps: Props): void;
|
|
5
|
+
export declare function updatePropsByPayload(dom: TaroElement, oldProps: Props, updatePayload: UpdatePayload): void;
|
|
6
|
+
export declare function getUpdatePayload(dom: TaroElement, oldProps: Props, newProps: Props): UpdatePayload | null;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateProps = updateProps;
|
|
4
|
+
exports.updatePropsByPayload = updatePropsByPayload;
|
|
5
|
+
exports.getUpdatePayload = getUpdatePayload;
|
|
6
|
+
const taro_runtime_1 = require("@spcsn/taro-runtime");
|
|
7
|
+
const taro_shared_1 = require("@spcsn/taro-shared");
|
|
8
|
+
const IS_NON_DIMENSIONAL = /aspect|acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
|
|
9
|
+
function isEventName(name) {
|
|
10
|
+
return name[0] === 'o' && name[1] === 'n';
|
|
11
|
+
}
|
|
12
|
+
function isEventHandler(value) {
|
|
13
|
+
return (0, taro_shared_1.isFunction)(value);
|
|
14
|
+
}
|
|
15
|
+
function isEqual(firstValue, secondValue) {
|
|
16
|
+
if (firstValue === secondValue) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
if (typeof firstValue !== 'object' ||
|
|
20
|
+
firstValue === null ||
|
|
21
|
+
typeof secondValue !== 'object' ||
|
|
22
|
+
secondValue === null) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const firstObject = firstValue;
|
|
26
|
+
const secondObject = secondValue;
|
|
27
|
+
const firstKeys = Object.keys(firstObject);
|
|
28
|
+
const secondKeys = Object.keys(secondObject);
|
|
29
|
+
if (firstKeys.length !== secondKeys.length) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
for (const key of firstKeys) {
|
|
33
|
+
if (firstObject[key] !== secondObject[key]) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
function updateProps(dom, oldProps, newProps) {
|
|
40
|
+
const updatePayload = getUpdatePayload(dom, oldProps, newProps);
|
|
41
|
+
if (updatePayload) {
|
|
42
|
+
updatePropsByPayload(dom, oldProps, updatePayload);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function updatePropsByPayload(dom, oldProps, updatePayload) {
|
|
46
|
+
for (let i = 0; i < updatePayload.length; i += 2) {
|
|
47
|
+
const key = updatePayload[i];
|
|
48
|
+
const newProp = updatePayload[i + 1];
|
|
49
|
+
const oldProp = oldProps[key];
|
|
50
|
+
setProperty(dom, key, newProp, oldProp);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function getUpdatePayload(dom, oldProps, newProps) {
|
|
54
|
+
let i;
|
|
55
|
+
let updatePayload = null;
|
|
56
|
+
for (i in oldProps) {
|
|
57
|
+
if (!(i in newProps)) {
|
|
58
|
+
(updatePayload = updatePayload || []).push(i, null);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const isFormElement = dom instanceof taro_runtime_1.FormElement;
|
|
62
|
+
for (i in newProps) {
|
|
63
|
+
if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {
|
|
64
|
+
// 如果都是 style,且 style 里面的值相等,则无需记录到 payload 中
|
|
65
|
+
if (i === 'style' && (0, taro_shared_1.isObject)(oldProps[i]) && (0, taro_shared_1.isObject)(newProps[i]) && isEqual(oldProps[i], newProps[i]))
|
|
66
|
+
continue;
|
|
67
|
+
(updatePayload = updatePayload || []).push(i, newProps[i]);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return updatePayload;
|
|
71
|
+
}
|
|
72
|
+
// function eventProxy (e: CommonEvent) {
|
|
73
|
+
// const el = document.getElementById(e.currentTarget.id)
|
|
74
|
+
// const handlers = el!.__handlers[e.type]
|
|
75
|
+
// handlers[0](e)
|
|
76
|
+
// }
|
|
77
|
+
function setEvent(dom, name, value, oldValue) {
|
|
78
|
+
const isCapture = name.endsWith('Capture');
|
|
79
|
+
let eventName = name.toLowerCase().slice(2);
|
|
80
|
+
if (isCapture) {
|
|
81
|
+
eventName = eventName.slice(0, -7);
|
|
82
|
+
}
|
|
83
|
+
const compName = (0, taro_shared_1.capitalize)((0, taro_shared_1.toCamelCase)(dom.tagName.toLowerCase()));
|
|
84
|
+
if (eventName === 'click' && compName in taro_shared_1.internalComponents) {
|
|
85
|
+
eventName = 'tap';
|
|
86
|
+
}
|
|
87
|
+
if (isEventHandler(value)) {
|
|
88
|
+
if (isEventHandler(oldValue)) {
|
|
89
|
+
dom.removeEventListener(eventName, oldValue, false);
|
|
90
|
+
dom.addEventListener(eventName, value, { isCapture, sideEffect: false });
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
dom.addEventListener(eventName, value, isCapture);
|
|
94
|
+
}
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (isEventHandler(oldValue)) {
|
|
98
|
+
dom.removeEventListener(eventName, oldValue);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function setStyle(style, key, value) {
|
|
102
|
+
if (key[0] === '-') {
|
|
103
|
+
// css variables need not further judgment
|
|
104
|
+
style.setProperty(key, value.toString());
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
style[key] =
|
|
108
|
+
(0, taro_shared_1.isNumber)(value) && IS_NON_DIMENSIONAL.test(key) === false ? (0, taro_runtime_1.convertNumber2PX)(value) : value === null ? '' : value;
|
|
109
|
+
}
|
|
110
|
+
function setProperty(dom, name, value, oldValue) {
|
|
111
|
+
name = name === 'className' ? 'class' : name;
|
|
112
|
+
if (name === 'key' || name === 'children' || name === 'ref' || name === 'dangerouslySetInnerHTML') {
|
|
113
|
+
// skip
|
|
114
|
+
}
|
|
115
|
+
else if (name === 'style') {
|
|
116
|
+
const style = dom.style;
|
|
117
|
+
if ((0, taro_shared_1.isString)(value)) {
|
|
118
|
+
style.cssText = value;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
if ((0, taro_shared_1.isString)(oldValue)) {
|
|
122
|
+
style.cssText = '';
|
|
123
|
+
oldValue = null;
|
|
124
|
+
}
|
|
125
|
+
if ((0, taro_shared_1.isObject)(oldValue)) {
|
|
126
|
+
for (const i in oldValue) {
|
|
127
|
+
if (!(value && i in value)) {
|
|
128
|
+
setStyle(style, i, '');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if ((0, taro_shared_1.isObject)(value)) {
|
|
133
|
+
for (const i in value) {
|
|
134
|
+
if (!oldValue || !isEqual(value[i], oldValue[i])) {
|
|
135
|
+
setStyle(style, i, value[i]);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else if (isEventName(name)) {
|
|
142
|
+
setEvent(dom, name, value, oldValue);
|
|
143
|
+
}
|
|
144
|
+
else if (!(0, taro_shared_1.isFunction)(value)) {
|
|
145
|
+
if (value == null) {
|
|
146
|
+
dom.removeAttribute(name);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
dom.setAttribute(name, value);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=props.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../src/react-runtime/props.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import Reconciler from 'react-reconciler';
|
|
2
|
+
import type { TaroElement, TaroText } from '@spcsn/taro-runtime';
|
|
3
|
+
declare const TaroReconciler: Reconciler.Reconciler<TaroElement, TaroElement, TaroText, TaroElement, TaroElement, TaroElement>;
|
|
4
|
+
export declare function runWithPriority<T>(priority: any, fn: () => T): T;
|
|
5
|
+
export { TaroReconciler };
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TaroReconciler = void 0;
|
|
7
|
+
exports.runWithPriority = runWithPriority;
|
|
8
|
+
const taro_runtime_1 = require("@spcsn/taro-runtime");
|
|
9
|
+
const taro_shared_1 = require("@spcsn/taro-shared");
|
|
10
|
+
const react_1 = require("react");
|
|
11
|
+
const react_reconciler_1 = __importDefault(require("react-reconciler"));
|
|
12
|
+
const constants_1 = require("react-reconciler/constants");
|
|
13
|
+
const component_tree_1 = require("./component-tree");
|
|
14
|
+
const input_value_tracking_1 = require("./input-value-tracking");
|
|
15
|
+
const props_1 = require("./props");
|
|
16
|
+
let currentUpdatePriority = constants_1.NoEventPriority;
|
|
17
|
+
const hostConfig = {
|
|
18
|
+
// below keys order by {React ReactFiberHostConfig.custom.js}, convenient for comparing each other.
|
|
19
|
+
// -------------------
|
|
20
|
+
// required by @types/react-reconciler
|
|
21
|
+
// -------------------
|
|
22
|
+
getPublicInstance(inst) {
|
|
23
|
+
return inst;
|
|
24
|
+
},
|
|
25
|
+
getRootHostContext() {
|
|
26
|
+
return {};
|
|
27
|
+
},
|
|
28
|
+
getChildHostContext(parentHostContext) {
|
|
29
|
+
return parentHostContext;
|
|
30
|
+
},
|
|
31
|
+
prepareForCommit(..._) {
|
|
32
|
+
return null;
|
|
33
|
+
},
|
|
34
|
+
resetAfterCommit: taro_shared_1.noop,
|
|
35
|
+
createInstance(type, props, _rootContainerInstance, _hostContext, internalInstanceHandle) {
|
|
36
|
+
const element = taro_runtime_1.document.createElement(type);
|
|
37
|
+
(0, component_tree_1.precacheFiberNode)(internalInstanceHandle, element);
|
|
38
|
+
(0, component_tree_1.updateFiberProps)(element, props);
|
|
39
|
+
return element;
|
|
40
|
+
},
|
|
41
|
+
appendInitialChild(parent, child) {
|
|
42
|
+
parent.appendChild(child);
|
|
43
|
+
},
|
|
44
|
+
finalizeInitialChildren(dom, type, props) {
|
|
45
|
+
let newProps = props;
|
|
46
|
+
if (dom instanceof taro_runtime_1.FormElement) {
|
|
47
|
+
const [defaultName, defaultKey] = ['switch', 'checkbox', 'radio'].includes(type)
|
|
48
|
+
? ['checked', 'defaultChecked']
|
|
49
|
+
: ['value', 'defaultValue'];
|
|
50
|
+
if (props.hasOwnProperty(defaultKey)) {
|
|
51
|
+
newProps = { ...newProps, [defaultName]: props[defaultKey] };
|
|
52
|
+
delete newProps[defaultKey];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
(0, props_1.updateProps)(dom, {}, newProps); // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息
|
|
56
|
+
if (type === 'input' || type === 'textarea') {
|
|
57
|
+
(0, input_value_tracking_1.track)(dom);
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
},
|
|
61
|
+
shouldSetTextContent() {
|
|
62
|
+
return false;
|
|
63
|
+
},
|
|
64
|
+
createTextInstance(text, _rootContainerInstance, _hostContext, internalInstanceHandle) {
|
|
65
|
+
const textNode = taro_runtime_1.document.createTextNode(text);
|
|
66
|
+
(0, component_tree_1.precacheFiberNode)(internalInstanceHandle, textNode);
|
|
67
|
+
return textNode;
|
|
68
|
+
},
|
|
69
|
+
scheduleTimeout: setTimeout,
|
|
70
|
+
cancelTimeout: clearTimeout,
|
|
71
|
+
noTimeout: -1,
|
|
72
|
+
isPrimaryRenderer: true,
|
|
73
|
+
warnsIfNotActing: true,
|
|
74
|
+
supportsMutation: true,
|
|
75
|
+
supportsPersistence: false,
|
|
76
|
+
supportsHydration: false,
|
|
77
|
+
getInstanceFromNode: () => null,
|
|
78
|
+
beforeActiveInstanceBlur: taro_shared_1.noop,
|
|
79
|
+
afterActiveInstanceBlur: taro_shared_1.noop,
|
|
80
|
+
preparePortalMount: taro_shared_1.noop,
|
|
81
|
+
prepareScopeUpdate: taro_shared_1.noop,
|
|
82
|
+
getInstanceFromScope: () => null,
|
|
83
|
+
NotPendingTransition: null,
|
|
84
|
+
HostTransitionContext: (0, react_1.createContext)(null),
|
|
85
|
+
setCurrentUpdatePriority(newPriority) {
|
|
86
|
+
currentUpdatePriority = newPriority;
|
|
87
|
+
},
|
|
88
|
+
getCurrentUpdatePriority() {
|
|
89
|
+
return currentUpdatePriority;
|
|
90
|
+
},
|
|
91
|
+
resolveUpdatePriority() {
|
|
92
|
+
return constants_1.DefaultEventPriority;
|
|
93
|
+
},
|
|
94
|
+
resetFormInstance: taro_shared_1.noop,
|
|
95
|
+
requestPostPaintCallback(callback) {
|
|
96
|
+
setTimeout(() => callback(Date.now()), 0);
|
|
97
|
+
},
|
|
98
|
+
shouldAttemptEagerTransition() {
|
|
99
|
+
return false;
|
|
100
|
+
},
|
|
101
|
+
trackSchedulerEvent: taro_shared_1.noop,
|
|
102
|
+
resolveEventType() {
|
|
103
|
+
return null;
|
|
104
|
+
},
|
|
105
|
+
resolveEventTimeStamp() {
|
|
106
|
+
return Date.now();
|
|
107
|
+
},
|
|
108
|
+
maySuspendCommit() {
|
|
109
|
+
return false;
|
|
110
|
+
},
|
|
111
|
+
preloadInstance() {
|
|
112
|
+
return true;
|
|
113
|
+
},
|
|
114
|
+
startSuspendingCommit: taro_shared_1.noop,
|
|
115
|
+
suspendInstance: taro_shared_1.noop,
|
|
116
|
+
waitForCommitToBeReady() {
|
|
117
|
+
return null;
|
|
118
|
+
},
|
|
119
|
+
detachDeletedInstance: taro_shared_1.noop,
|
|
120
|
+
// -------------------
|
|
121
|
+
// Microtasks
|
|
122
|
+
// (optional)
|
|
123
|
+
// -------------------
|
|
124
|
+
supportsMicrotasks: true,
|
|
125
|
+
scheduleMicrotask: (0, taro_shared_1.isUndefined)(Promise)
|
|
126
|
+
? setTimeout
|
|
127
|
+
: (callback) => Promise.resolve(null)
|
|
128
|
+
.then(callback)
|
|
129
|
+
.catch(function (error) {
|
|
130
|
+
setTimeout(() => {
|
|
131
|
+
throw error;
|
|
132
|
+
});
|
|
133
|
+
}),
|
|
134
|
+
// -------------------
|
|
135
|
+
// Mutation
|
|
136
|
+
// (required if supportsMutation is true)
|
|
137
|
+
// -------------------
|
|
138
|
+
appendChild(parent, child) {
|
|
139
|
+
parent.appendChild(child);
|
|
140
|
+
},
|
|
141
|
+
appendChildToContainer(parent, child) {
|
|
142
|
+
parent.appendChild(child);
|
|
143
|
+
},
|
|
144
|
+
commitTextUpdate(textInst, _, newText) {
|
|
145
|
+
textInst.nodeValue = newText;
|
|
146
|
+
},
|
|
147
|
+
commitMount: taro_shared_1.noop,
|
|
148
|
+
commitUpdate(dom, _type, oldProps, newProps) {
|
|
149
|
+
const updatePayload = (0, props_1.getUpdatePayload)(dom, oldProps, newProps);
|
|
150
|
+
if (!updatePayload)
|
|
151
|
+
return;
|
|
152
|
+
// payload 只包含 children 的时候,不应该再继续触发后续的属性比较和更新的逻辑了
|
|
153
|
+
if (updatePayload.length === 2 && updatePayload.includes('children'))
|
|
154
|
+
return;
|
|
155
|
+
(0, props_1.updatePropsByPayload)(dom, oldProps, updatePayload);
|
|
156
|
+
(0, component_tree_1.updateFiberProps)(dom, newProps);
|
|
157
|
+
},
|
|
158
|
+
insertBefore(parent, child, refChild) {
|
|
159
|
+
parent.insertBefore(child, refChild);
|
|
160
|
+
},
|
|
161
|
+
insertInContainerBefore(parent, child, refChild) {
|
|
162
|
+
parent.insertBefore(child, refChild);
|
|
163
|
+
},
|
|
164
|
+
removeChild(parent, child) {
|
|
165
|
+
parent.removeChild(child);
|
|
166
|
+
},
|
|
167
|
+
removeChildFromContainer(parent, child) {
|
|
168
|
+
parent.removeChild(child);
|
|
169
|
+
},
|
|
170
|
+
resetTextContent: taro_shared_1.noop,
|
|
171
|
+
hideInstance(instance) {
|
|
172
|
+
const style = instance.style;
|
|
173
|
+
style.setProperty('display', 'none');
|
|
174
|
+
},
|
|
175
|
+
hideTextInstance(textInstance) {
|
|
176
|
+
textInstance.nodeValue = '';
|
|
177
|
+
},
|
|
178
|
+
unhideInstance(instance, props) {
|
|
179
|
+
const styleProp = props.style;
|
|
180
|
+
let display = styleProp?.hasOwnProperty('display') ? styleProp.display : null;
|
|
181
|
+
display = display == null || (0, taro_shared_1.isBoolean)(display) || display === '' ? '' : ('' + display).trim();
|
|
182
|
+
instance.style.setProperty('display', display);
|
|
183
|
+
},
|
|
184
|
+
unhideTextInstance(textInstance, text) {
|
|
185
|
+
textInstance.nodeValue = text;
|
|
186
|
+
},
|
|
187
|
+
clearContainer(element) {
|
|
188
|
+
if (element.childNodes.length > 0) {
|
|
189
|
+
element.textContent = '';
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
const TaroReconciler = (0, react_reconciler_1.default)(hostConfig);
|
|
194
|
+
exports.TaroReconciler = TaroReconciler;
|
|
195
|
+
function runWithPriority(priority, fn) {
|
|
196
|
+
const previousPriority = currentUpdatePriority;
|
|
197
|
+
currentUpdatePriority = priority;
|
|
198
|
+
try {
|
|
199
|
+
return fn();
|
|
200
|
+
}
|
|
201
|
+
finally {
|
|
202
|
+
currentUpdatePriority = previousPriority;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
206
|
+
const foundDevTools = TaroReconciler.injectIntoDevTools({
|
|
207
|
+
bundleType: 1,
|
|
208
|
+
version: '18.0.0',
|
|
209
|
+
rendererPackageName: 'taro-react',
|
|
210
|
+
});
|
|
211
|
+
if (!foundDevTools) {
|
|
212
|
+
globalThis.console.info('%cDownload the React DevTools ' +
|
|
213
|
+
'for a better development experience: ' +
|
|
214
|
+
'https://reactjs.org/link/react-devtools', 'font-weight:bold');
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=reconciler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../src/react-runtime/reconciler.ts"],"names":[],"mappings":";;;;;;AA6NA,0CAQC;AArOD,sDAA4D;AAC5D,oDAAkE;AAClE,iCAAsC;AACtC,wEAA0C;AAC1C,0DAAmF;AAEnF,qDAAuE;AACvE,iEAA+C;AAC/C,mCAAqF;AAKrF,IAAI,qBAAqB,GAAG,2BAAe,CAAC;AAE5C,MAAM,UAAU,GAiBZ;IACF,mGAAmG;IAEnG,sBAAsB;IACtB,sCAAsC;IACtC,sBAAsB;IACtB,iBAAiB,CAAC,IAAiB;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,kBAAkB;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,mBAAmB,CAAC,iBAAiB;QACnC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAQ;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,gBAAgB,EAAE,kBAAI;IACtB,cAAc,CAAC,IAAI,EAAE,KAAY,EAAE,sBAA2B,EAAE,YAAiB,EAAE,sBAA6B;QAC9G,MAAM,OAAO,GAAG,uBAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAA,kCAAiB,EAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QACnD,IAAA,iCAAgB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEjC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,kBAAkB,CAAC,MAAM,EAAE,KAAK;QAC9B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,uBAAuB,CAAC,GAAG,EAAE,IAAY,EAAE,KAAU;QACnD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,GAAG,YAAY,0BAAW,EAAE,CAAC;YAC/B,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC9E,CAAC,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC;gBAC/B,CAAC,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7D,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAA,mBAAW,EAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,6CAA6C;QAE7E,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5C,IAAA,4BAAK,EAAC,GAAG,CAAC,CAAC;QACb,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IACD,oBAAoB;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,kBAAkB,CAAC,IAAY,EAAE,sBAA2B,EAAE,YAAiB,EAAE,sBAA6B;QAC5G,MAAM,QAAQ,GAAG,uBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAA,kCAAiB,EAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;QAEpD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,eAAe,EAAE,UAAU;IAC3B,aAAa,EAAE,YAAY;IAC3B,SAAS,EAAE,CAAC,CAAC;IACb,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,KAAK;IACxB,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC/B,wBAAwB,EAAE,kBAAI;IAC9B,uBAAuB,EAAE,kBAAI;IAC7B,kBAAkB,EAAE,kBAAI;IACxB,kBAAkB,EAAE,kBAAI;IACxB,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI;IAChC,oBAAoB,EAAE,IAAI;IAC1B,qBAAqB,EAAE,IAAA,qBAAa,EAAC,IAAI,CAAQ;IACjD,wBAAwB,CAAC,WAAW;QAClC,qBAAqB,GAAG,WAAW,CAAC;IACtC,CAAC;IACD,wBAAwB;QACtB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,qBAAqB;QACnB,OAAO,gCAAoB,CAAC;IAC9B,CAAC;IACD,iBAAiB,EAAE,kBAAI;IACvB,wBAAwB,CAAC,QAAQ;QAC/B,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,4BAA4B;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,mBAAmB,EAAE,kBAAI;IACzB,gBAAgB;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IACD,qBAAqB;QACnB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IACD,gBAAgB;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,qBAAqB,EAAE,kBAAI;IAC3B,eAAe,EAAE,kBAAI;IACrB,sBAAsB;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,qBAAqB,EAAE,kBAAI;IAE3B,sBAAsB;IACtB,kBAAkB;IAClB,iBAAiB;IACjB,sBAAsB;IACtB,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,IAAA,yBAAW,EAAC,OAAO,CAAC;QACrC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CACX,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,QAAQ,CAAC;aACd,KAAK,CAAC,UAAU,KAAK;YACpB,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IAEV,sBAAsB;IACtB,gBAAgB;IAChB,6CAA6C;IAC7C,sBAAsB;IACtB,WAAW,CAAC,MAAM,EAAE,KAAK;QACvB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,sBAAsB,CAAC,MAAM,EAAE,KAAK;QAClC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,gBAAgB,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO;QACnC,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC;IAC/B,CAAC;IACD,WAAW,EAAE,kBAAI;IACjB,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ;QACzC,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,aAAa;YAAE,OAAO;QAC3B,kDAAkD;QAClD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO;QAE7E,IAAA,4BAAoB,EAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACnD,IAAA,iCAAgB,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ;QAClC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IACD,uBAAuB,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ;QAC7C,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IACD,WAAW,CAAC,MAAM,EAAE,KAAK;QACvB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,wBAAwB,CAAC,MAAM,EAAE,KAAK;QACpC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,gBAAgB,EAAE,kBAAI;IACtB,YAAY,CAAC,QAAQ;QACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,gBAAgB,CAAC,YAAY;QAC3B,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;IAC9B,CAAC;IACD,cAAc,CAAC,QAAQ,EAAE,KAAK;QAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAA0B,CAAC;QACnD,IAAI,OAAO,GAAG,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9E,OAAO,GAAG,OAAO,IAAI,IAAI,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/F,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,kBAAkB,CAAC,YAAY,EAAE,IAAI;QACnC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,CAAC;IACD,cAAc,CAAC,OAAO;QACpB,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,cAAc,GAAG,IAAA,0BAAU,EAAC,UAAU,CAAC,CAAC;AA4BrC,wCAAc;AA1BvB,SAAgB,eAAe,CAAI,QAAQ,EAAE,EAAW;IACtD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;IAC/C,qBAAqB,GAAG,QAAQ,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;YAAS,CAAC;QACT,qBAAqB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,cAAc,CAAC,kBAAkB,CAAC;QACtD,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,QAAQ;QACjB,mBAAmB,EAAE,YAAY;KAClC,CAAC,CAAC;IACH,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,UAAU,CAAC,OAAO,CAAC,IAAI,CACrB,gCAAgC;YAC9B,uCAAuC;YACvC,yCAAyC,EAC3C,kBAAkB,CACnB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { TaroReconciler } from './reconciler';
|
|
2
|
+
import type { TaroElement } from '@spcsn/taro-runtime';
|
|
3
|
+
import type { ReactNode } from 'react';
|
|
4
|
+
import type { OpaqueRoot } from 'react-reconciler';
|
|
5
|
+
export declare const ContainerMap: WeakMap<TaroElement, Root>;
|
|
6
|
+
type Renderer = typeof TaroReconciler;
|
|
7
|
+
type CreateRootOptions = {
|
|
8
|
+
unstable_strictMode?: boolean;
|
|
9
|
+
unstable_concurrentUpdatesByDefault?: boolean;
|
|
10
|
+
unstable_transitionCallbacks?: any;
|
|
11
|
+
identifierPrefix?: string;
|
|
12
|
+
onRecoverableError?: (error: any) => void;
|
|
13
|
+
};
|
|
14
|
+
export type Callback = () => void | null | undefined;
|
|
15
|
+
declare class Root {
|
|
16
|
+
private renderer;
|
|
17
|
+
internalRoot: OpaqueRoot;
|
|
18
|
+
constructor(renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions);
|
|
19
|
+
private initInternalRoot;
|
|
20
|
+
render(children: ReactNode, cb: Callback): TaroElement | import("react").Component<any, any, any> | null;
|
|
21
|
+
unmount(cb: Callback): void;
|
|
22
|
+
}
|
|
23
|
+
export declare function render(element: ReactNode, domContainer: TaroElement, cb: Callback): TaroElement | import("react").Component<any, any, any> | null;
|
|
24
|
+
export declare function createRoot(domContainer: TaroElement, options?: CreateRootOptions): Root;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContainerMap = void 0;
|
|
4
|
+
exports.render = render;
|
|
5
|
+
exports.createRoot = createRoot;
|
|
6
|
+
const taro_shared_1 = require("@spcsn/taro-shared");
|
|
7
|
+
const component_tree_1 = require("./component-tree");
|
|
8
|
+
const constant_1 = require("./constant");
|
|
9
|
+
const event_1 = require("./event");
|
|
10
|
+
const reconciler_1 = require("./reconciler");
|
|
11
|
+
exports.ContainerMap = new WeakMap();
|
|
12
|
+
class Root {
|
|
13
|
+
renderer;
|
|
14
|
+
internalRoot;
|
|
15
|
+
constructor(renderer, domContainer, options) {
|
|
16
|
+
this.renderer = renderer;
|
|
17
|
+
this.initInternalRoot(renderer, domContainer, options);
|
|
18
|
+
}
|
|
19
|
+
initInternalRoot(renderer, domContainer, options) {
|
|
20
|
+
// Since react-reconciler v0.27, createContainer need more parameters
|
|
21
|
+
// @see:https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react-reconciler/src/ReactFiberReconciler.js#L248
|
|
22
|
+
const containerInfo = domContainer;
|
|
23
|
+
if (options) {
|
|
24
|
+
const tag = 1; // ConcurrentRoot
|
|
25
|
+
const concurrentUpdatesByDefaultOverride = false;
|
|
26
|
+
let isStrictMode = false;
|
|
27
|
+
let identifierPrefix = '';
|
|
28
|
+
let onRecoverableError = (error) => console.error(error);
|
|
29
|
+
if (options.unstable_strictMode === true) {
|
|
30
|
+
isStrictMode = true;
|
|
31
|
+
}
|
|
32
|
+
if (options.identifierPrefix !== undefined) {
|
|
33
|
+
identifierPrefix = options.identifierPrefix;
|
|
34
|
+
}
|
|
35
|
+
if (options.onRecoverableError !== undefined) {
|
|
36
|
+
onRecoverableError = options.onRecoverableError;
|
|
37
|
+
}
|
|
38
|
+
this.internalRoot = renderer.createContainer(containerInfo, tag, null, // hydrationCallbacks
|
|
39
|
+
isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError, onRecoverableError, onRecoverableError, () => { });
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
const tag = 0; // LegacyRoot
|
|
43
|
+
this.internalRoot = renderer.createContainer(containerInfo, tag, null, // hydrationCallbacks
|
|
44
|
+
false, // isStrictMode
|
|
45
|
+
false, // concurrentUpdatesByDefaultOverride,
|
|
46
|
+
'', // identifierPrefix
|
|
47
|
+
() => { }, // onRecoverableError, this isn't reachable because onRecoverableError isn't called in the legacy API.
|
|
48
|
+
() => { }, () => { }, () => { });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
render(children, cb) {
|
|
52
|
+
const { renderer, internalRoot } = this;
|
|
53
|
+
renderer.updateContainer(children, internalRoot, null, cb);
|
|
54
|
+
return renderer.getPublicRootInstance(internalRoot);
|
|
55
|
+
}
|
|
56
|
+
unmount(cb) {
|
|
57
|
+
this.renderer.updateContainer(null, this.internalRoot, null, cb);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function render(element, domContainer, cb) {
|
|
61
|
+
const oldRoot = exports.ContainerMap.get(domContainer);
|
|
62
|
+
if (oldRoot != null) {
|
|
63
|
+
return oldRoot.render(element, cb);
|
|
64
|
+
}
|
|
65
|
+
const root = new Root(reconciler_1.TaroReconciler, domContainer);
|
|
66
|
+
exports.ContainerMap.set(domContainer, root);
|
|
67
|
+
return root.render(element, cb);
|
|
68
|
+
}
|
|
69
|
+
function createRoot(domContainer, options = {}) {
|
|
70
|
+
const oldRoot = exports.ContainerMap.get(domContainer);
|
|
71
|
+
if (oldRoot != null) {
|
|
72
|
+
return oldRoot;
|
|
73
|
+
}
|
|
74
|
+
// options should be an object
|
|
75
|
+
const root = new Root(reconciler_1.TaroReconciler, domContainer, options);
|
|
76
|
+
exports.ContainerMap.set(domContainer, root);
|
|
77
|
+
(0, component_tree_1.markContainerAsRoot)(root?.internalRoot?.current, domContainer);
|
|
78
|
+
taro_shared_1.hooks.tap('dispatchTaroEvent', (e, node) => {
|
|
79
|
+
const eventPriority = (0, constant_1.getEventPriority)(e.type);
|
|
80
|
+
(0, reconciler_1.runWithPriority)(eventPriority, () => {
|
|
81
|
+
node.dispatchEvent(e);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
// 对比 event.detail.value 和 node.tracker.value,判断 value 值是否有变动,存在变动则塞入队列中
|
|
85
|
+
taro_shared_1.hooks.tap('modifyTaroEvent', (e, node) => {
|
|
86
|
+
const inst = (0, event_1.getTargetInstForInputOrChangeEvent)(e, node);
|
|
87
|
+
if (!inst)
|
|
88
|
+
return;
|
|
89
|
+
// 这里塞入的是 event.detail.value,也就是事件的值,在受控组件中,你可以理解为需要被变更的值
|
|
90
|
+
// 后续会在 finishEventHandler 中,使用最新的 fiber.props.value 来与其比较
|
|
91
|
+
// 如果不一致,则表示需要更新,会执行 node.value = fiber.props.value 的更新操作
|
|
92
|
+
const nextValue = e.mpEvent?.detail?.value;
|
|
93
|
+
(0, event_1.enqueueStateRestore)({ target: node, value: nextValue });
|
|
94
|
+
});
|
|
95
|
+
return root;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/react-runtime/render.ts"],"names":[],"mappings":";;;AA6FA,wBASC;AAED,gCAiCC;AAzID,oDAA2C;AAE3C,qDAAuD;AACvD,yCAA8C;AAC9C,mCAA+F;AAC/F,6CAA+D;AAMlD,QAAA,YAAY,GAA+B,IAAI,OAAO,EAAE,CAAC;AActE,MAAM,IAAI;IACA,QAAQ,CAAW;IACpB,YAAY,CAAa;IAEhC,YAAmB,QAAkB,EAAE,YAAyB,EAAE,OAA2B;QAC3F,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEO,gBAAgB,CAAC,QAAkB,EAAE,YAAyB,EAAE,OAA2B;QACjG,qEAAqE;QACrE,kJAAkJ;QAClJ,MAAM,aAAa,GAAG,YAAY,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB;YAChC,MAAM,kCAAkC,GAAG,KAAK,CAAC;YACjD,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,gBAAgB,GAAG,EAAE,CAAC;YAC1B,IAAI,kBAAkB,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,OAAO,CAAC,mBAAmB,KAAK,IAAI,EAAE,CAAC;gBACzC,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;YACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC3C,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAC9C,CAAC;YACD,IAAI,OAAO,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBAC7C,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,eAAe,CAC1C,aAAa,EACb,GAAG,EACH,IAAI,EAAE,qBAAqB;YAC3B,YAAY,EACZ,kCAAkC,EAClC,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa;YAC5B,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,eAAe,CAC1C,aAAa,EACb,GAAG,EACH,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE,sCAAsC;YAC7C,EAAE,EAAE,mBAAmB;YACvB,GAAG,EAAE,GAAE,CAAC,EAAE,sGAAsG;YAChH,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,QAAmB,EAAE,EAAY;QAC7C,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QACxC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3D,OAAO,QAAQ,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IAEM,OAAO,CAAC,EAAY;QACzB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC;CACF;AAED,SAAgB,MAAM,CAAC,OAAkB,EAAE,YAAyB,EAAE,EAAY;IAChF,MAAM,OAAO,GAAG,oBAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,2BAAc,EAAE,YAAY,CAAC,CAAC;IACpD,oBAAY,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,UAAU,CAAC,YAAyB,EAAE,UAA6B,EAAE;IACnF,MAAM,OAAO,GAAG,oBAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,8BAA8B;IAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,2BAAc,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7D,oBAAY,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAErC,IAAA,oCAAmB,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAE/D,mBAAK,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAY,EAAE,IAAiB,EAAE,EAAE;QACjE,MAAM,aAAa,GAAG,IAAA,2BAAgB,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAA,4BAAe,EAAC,aAAa,EAAE,GAAG,EAAE;YAClC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,wEAAwE;IACxE,mBAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAY,EAAE,IAAiB,EAAE,EAAE;QAC/D,MAAM,IAAI,GAAG,IAAA,0CAAkC,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAEzD,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,yDAAyD;QACzD,0DAA0D;QAC1D,yDAAyD;QACzD,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAA+B,CAAC;QACrE,IAAA,2BAAmB,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type WorkTag = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25;
|
|
2
|
+
export declare const FunctionComponent = 0;
|
|
3
|
+
export declare const ClassComponent = 1;
|
|
4
|
+
export declare const IndeterminateComponent = 2;
|
|
5
|
+
export declare const HostRoot = 3;
|
|
6
|
+
export declare const HostPortal = 4;
|
|
7
|
+
export declare const HostComponent = 5;
|
|
8
|
+
export declare const HostText = 6;
|
|
9
|
+
export declare const Fragment = 7;
|
|
10
|
+
export declare const Mode = 8;
|
|
11
|
+
export declare const ContextConsumer = 9;
|
|
12
|
+
export declare const ContextProvider = 10;
|
|
13
|
+
export declare const ForwardRef = 11;
|
|
14
|
+
export declare const Profiler = 12;
|
|
15
|
+
export declare const SuspenseComponent = 13;
|
|
16
|
+
export declare const MemoComponent = 14;
|
|
17
|
+
export declare const SimpleMemoComponent = 15;
|
|
18
|
+
export declare const LazyComponent = 16;
|
|
19
|
+
export declare const IncompleteClassComponent = 17;
|
|
20
|
+
export declare const DehydratedFragment = 18;
|
|
21
|
+
export declare const SuspenseListComponent = 19;
|
|
22
|
+
export declare const ScopeComponent = 21;
|
|
23
|
+
export declare const OffscreenComponent = 22;
|
|
24
|
+
export declare const LegacyHiddenComponent = 23;
|
|
25
|
+
export declare const CacheComponent = 24;
|
|
26
|
+
export declare const TracingMarkerComponent = 25;
|