@my-react/react-reconciler-compact 0.0.3 → 0.0.4

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.
@@ -309,6 +309,7 @@ function requireIndex_development_1 () {
309
309
  STATE_TYPE[STATE_TYPE["__hmr__"] = 256] = "__hmr__";
310
310
  STATE_TYPE[STATE_TYPE["__retrigger__"] = 512] = "__retrigger__";
311
311
  STATE_TYPE[STATE_TYPE["__reschedule__"] = 1024] = "__reschedule__";
312
+ STATE_TYPE[STATE_TYPE["__recreate__"] = 2048] = "__recreate__";
312
313
  })(exports.STATE_TYPE || (exports.STATE_TYPE = {}));
313
314
 
314
315
  exports.PATCH_TYPE = void 0;
@@ -1781,7 +1782,8 @@ function requireIndex_development_1 () {
1781
1782
  myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
1782
1783
  myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
1783
1784
  myreactSharedExports.STATE_TYPE.__retrigger__ |
1784
- myreactSharedExports.STATE_TYPE.__reschedule__)) {
1785
+ myreactSharedExports.STATE_TYPE.__reschedule__ |
1786
+ myreactSharedExports.STATE_TYPE.__recreate__)) {
1785
1787
  fiber.state = myreactSharedExports.remove(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
1786
1788
  currentRunningFiber$2.current = fiber;
1787
1789
  {
@@ -1821,7 +1823,8 @@ function requireIndex_development_1 () {
1821
1823
  myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
1822
1824
  myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
1823
1825
  myreactSharedExports.STATE_TYPE.__retrigger__ |
1824
- myreactSharedExports.STATE_TYPE.__reschedule__)) {
1826
+ myreactSharedExports.STATE_TYPE.__reschedule__ |
1827
+ myreactSharedExports.STATE_TYPE.__recreate__)) {
1825
1828
  fiber.state = myreactSharedExports.remove(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
1826
1829
  currentRunningFiber$2.current = fiber;
1827
1830
  {
@@ -2174,58 +2177,72 @@ function requireIndex_development_1 () {
2174
2177
  }
2175
2178
  }
2176
2179
  // TODO update flow
2177
- // if (enableSuspenseRoot.current) {
2178
- // const suspenseField = getInstanceFieldByInstance(renderDispatch) as SuspenseInstanceField;
2179
- // const list = suspenseField.asyncLoadList.getAll();
2180
- // if (list.length === 0) return;
2181
- // if (renderDispatch.enableAsyncLoad) {
2182
- // defaultDeleteCurrentEffect(renderDispatch, renderDispatch.rootFiber);
2183
- // defaultDeleteChildEffect(renderDispatch, renderDispatch.rootFiber);
2184
- // const allPendingLoadArray = list.filter((item) => {
2185
- // if (isPromise(item)) {
2186
- // return typeof item.status !== "string";
2187
- // } else {
2188
- // return !item._loading && !item._loaded && !item._error;
2189
- // }
2190
- // });
2191
- // if (allPendingLoadArray.length) {
2192
- // Promise.all(
2193
- // allPendingLoadArray.map(async (item) => {
2194
- // if (isPromise(item)) {
2195
- // await renderDispatch.processPromise(item);
2196
- // } else {
2197
- // await renderDispatch.processLazy(item);
2198
- // }
2199
- // item._list?.clear();
2200
- // suspenseField.asyncLoadList.uniDelete(item);
2201
- // })
2202
- // ).then(() => {
2203
- // const aliveNode = defaultResolveAliveSuspenseFiber(node);
2204
- // aliveNode.state = STATE_TYPE.__triggerSyncForce__;
2205
- // const renderScheduler = currentScheduler.current;
2206
- // const updater: SuspenseUpdateQueue = {
2207
- // type: UpdateQueueType.suspense,
2208
- // trigger: aliveNode,
2209
- // isSync: true,
2210
- // isForce: true,
2211
- // payLoad: allPendingLoadArray,
2212
- // };
2213
- // renderScheduler.dispatchState(updater);
2214
- // });
2215
- // }
2216
- // suspenseField.isHidden = true;
2217
- // const root = renderDispatch.rootFiber;
2218
- // root.state = remove(root.state, STATE_TYPE.__stable__);
2219
- // root.state = merge(root.state, STATE_TYPE.__retrigger__);
2220
- // // TODO use hide tree to improve
2221
- // mountLoopAll(renderDispatch, root);
2222
- // suspenseField.isHidden = false;
2223
- // } else {
2224
- // throw new Error(
2225
- // "[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance"
2226
- // );
2227
- // }
2228
- // }
2180
+ if (enableSuspenseRoot$2.current) {
2181
+ var suspenseField_2 = getInstanceFieldByInstance(renderDispatch);
2182
+ var list = suspenseField_2.asyncLoadList.getAll();
2183
+ if (list.length === 0)
2184
+ return;
2185
+ if (renderDispatch.enableAsyncLoad) {
2186
+ // defaultDeleteCurrentEffect(renderDispatch, renderDispatch.rootFiber);
2187
+ // defaultDeleteChildEffect(renderDispatch, renderDispatch.rootFiber);
2188
+ var allPendingLoadArray = list.filter(function (item) {
2189
+ if (myreactSharedExports.isPromise(item)) {
2190
+ return typeof item.status !== "string";
2191
+ }
2192
+ else {
2193
+ return !item._loading && !item._loaded && !item._error;
2194
+ }
2195
+ });
2196
+ if (allPendingLoadArray.length) {
2197
+ allPendingLoadArray.forEach(function (item) { var _a; return (_a = item._list) === null || _a === void 0 ? void 0 : _a.forEach(function (node) { return defaultDeleteCurrentEffect(renderDispatch, node); }); });
2198
+ Promise.all(allPendingLoadArray.map(function (item) { return __awaiter(void 0, void 0, void 0, function () {
2199
+ var allFiber;
2200
+ var _a;
2201
+ return __generator(this, function (_b) {
2202
+ switch (_b.label) {
2203
+ case 0:
2204
+ if (!myreactSharedExports.isPromise(item)) return [3 /*break*/, 2];
2205
+ return [4 /*yield*/, renderDispatch.processPromise(item)];
2206
+ case 1:
2207
+ _b.sent();
2208
+ return [3 /*break*/, 4];
2209
+ case 2: return [4 /*yield*/, renderDispatch.processLazy(item)];
2210
+ case 3:
2211
+ _b.sent();
2212
+ _b.label = 4;
2213
+ case 4:
2214
+ allFiber = new Set(item._list);
2215
+ (_a = item._list) === null || _a === void 0 ? void 0 : _a.clear();
2216
+ allFiber.forEach(function (node) {
2217
+ node.state = myreactSharedExports.STATE_TYPE.__recreate__;
2218
+ var renderScheduler = currentScheduler$d.current;
2219
+ var updater = {
2220
+ type: myreactSharedExports.UpdateQueueType.suspense,
2221
+ trigger: node,
2222
+ isSync: true,
2223
+ isForce: true,
2224
+ payLoad: [item],
2225
+ };
2226
+ renderScheduler.dispatchState(updater);
2227
+ });
2228
+ suspenseField_2.asyncLoadList.uniDelete(item);
2229
+ return [2 /*return*/];
2230
+ }
2231
+ });
2232
+ }); }));
2233
+ }
2234
+ // suspenseField.isHidden = true;
2235
+ // const root = renderDispatch.rootFiber;
2236
+ // root.state = remove(root.state, STATE_TYPE.__stable__);
2237
+ // root.state = merge(root.state, STATE_TYPE.__retrigger__);
2238
+ // // TODO use hide tree to improve
2239
+ // mountLoopAll(renderDispatch, root);
2240
+ // suspenseField.isHidden = false;
2241
+ }
2242
+ else {
2243
+ throw new Error("[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance");
2244
+ }
2245
+ }
2229
2246
  };
2230
2247
 
2231
2248
  exports.updateTypeEnum = void 0;
@@ -4922,7 +4939,7 @@ function requireIndex_development_1 () {
4922
4939
  typedElementType._loading = true;
4923
4940
  var renderScheduler_1 = currentScheduler$3.current;
4924
4941
  renderDispatch.processLazy(typedElementType).then(function () {
4925
- fiber.state = myreactSharedExports.STATE_TYPE.__create__;
4942
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
4926
4943
  typedElementType._list.delete(fiber);
4927
4944
  var updater = {
4928
4945
  type: myreactSharedExports.UpdateQueueType.lazy,
@@ -6039,7 +6056,7 @@ function requireIndex_development_1 () {
6039
6056
  promise.status = "pending";
6040
6057
  var renderScheduler_1 = currentScheduler.current;
6041
6058
  renderDispatch.processPromise(promise).then(function () {
6042
- fiber.state = myreactSharedExports.STATE_TYPE.__create__;
6059
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
6043
6060
  promise._list.delete(fiber);
6044
6061
  promise._loading = false;
6045
6062
  var updater = {
@@ -6411,7 +6428,7 @@ function requireIndex_development_1 () {
6411
6428
  fiber.hookList = fiber.hookList || new myreactSharedExports.ListTree();
6412
6429
  var currentHook = null;
6413
6430
  // initial
6414
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__create__)) {
6431
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__create__ | myreactSharedExports.STATE_TYPE.__recreate__)) {
6415
6432
  currentHook = createHookNode(renderDispatch, { type: type, reducer: reducer, value: value, deps: deps }, fiber);
6416
6433
  safeCall(function safeCallHookInitialListener() {
6417
6434
  var _a, _b;
@@ -6916,6 +6933,7 @@ function requireIndex_development () {
6916
6933
  STATE_TYPE[STATE_TYPE["__hmr__"] = 256] = "__hmr__";
6917
6934
  STATE_TYPE[STATE_TYPE["__retrigger__"] = 512] = "__retrigger__";
6918
6935
  STATE_TYPE[STATE_TYPE["__reschedule__"] = 1024] = "__reschedule__";
6936
+ STATE_TYPE[STATE_TYPE["__recreate__"] = 2048] = "__recreate__";
6919
6937
  })(exports.STATE_TYPE || (exports.STATE_TYPE = {}));
6920
6938
 
6921
6939
  exports.PATCH_TYPE = void 0;
@@ -309,6 +309,7 @@ function requireIndex_production_1 () {
309
309
  STATE_TYPE[STATE_TYPE["__hmr__"] = 256] = "__hmr__";
310
310
  STATE_TYPE[STATE_TYPE["__retrigger__"] = 512] = "__retrigger__";
311
311
  STATE_TYPE[STATE_TYPE["__reschedule__"] = 1024] = "__reschedule__";
312
+ STATE_TYPE[STATE_TYPE["__recreate__"] = 2048] = "__recreate__";
312
313
  })(exports.STATE_TYPE || (exports.STATE_TYPE = {}));
313
314
 
314
315
  exports.PATCH_TYPE = void 0;
@@ -1674,7 +1675,8 @@ function requireIndex_production_1 () {
1674
1675
  myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
1675
1676
  myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
1676
1677
  myreactSharedExports.STATE_TYPE.__retrigger__ |
1677
- myreactSharedExports.STATE_TYPE.__reschedule__)) {
1678
+ myreactSharedExports.STATE_TYPE.__reschedule__ |
1679
+ myreactSharedExports.STATE_TYPE.__recreate__)) {
1678
1680
  fiber.state = myreactSharedExports.remove(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
1679
1681
  currentRunningFiber$2.current = fiber;
1680
1682
  {
@@ -1711,7 +1713,8 @@ function requireIndex_production_1 () {
1711
1713
  myreactSharedExports.STATE_TYPE.__triggerConcurrent__ |
1712
1714
  myreactSharedExports.STATE_TYPE.__triggerConcurrentForce__ |
1713
1715
  myreactSharedExports.STATE_TYPE.__retrigger__ |
1714
- myreactSharedExports.STATE_TYPE.__reschedule__)) {
1716
+ myreactSharedExports.STATE_TYPE.__reschedule__ |
1717
+ myreactSharedExports.STATE_TYPE.__recreate__)) {
1715
1718
  fiber.state = myreactSharedExports.remove(fiber.state, myreactSharedExports.STATE_TYPE.__retrigger__);
1716
1719
  currentRunningFiber$2.current = fiber;
1717
1720
  {
@@ -2064,58 +2067,72 @@ function requireIndex_production_1 () {
2064
2067
  }
2065
2068
  }
2066
2069
  // TODO update flow
2067
- // if (enableSuspenseRoot.current) {
2068
- // const suspenseField = getInstanceFieldByInstance(renderDispatch) as SuspenseInstanceField;
2069
- // const list = suspenseField.asyncLoadList.getAll();
2070
- // if (list.length === 0) return;
2071
- // if (renderDispatch.enableAsyncLoad) {
2072
- // defaultDeleteCurrentEffect(renderDispatch, renderDispatch.rootFiber);
2073
- // defaultDeleteChildEffect(renderDispatch, renderDispatch.rootFiber);
2074
- // const allPendingLoadArray = list.filter((item) => {
2075
- // if (isPromise(item)) {
2076
- // return typeof item.status !== "string";
2077
- // } else {
2078
- // return !item._loading && !item._loaded && !item._error;
2079
- // }
2080
- // });
2081
- // if (allPendingLoadArray.length) {
2082
- // Promise.all(
2083
- // allPendingLoadArray.map(async (item) => {
2084
- // if (isPromise(item)) {
2085
- // await renderDispatch.processPromise(item);
2086
- // } else {
2087
- // await renderDispatch.processLazy(item);
2088
- // }
2089
- // item._list?.clear();
2090
- // suspenseField.asyncLoadList.uniDelete(item);
2091
- // })
2092
- // ).then(() => {
2093
- // const aliveNode = defaultResolveAliveSuspenseFiber(node);
2094
- // aliveNode.state = STATE_TYPE.__triggerSyncForce__;
2095
- // const renderScheduler = currentScheduler.current;
2096
- // const updater: SuspenseUpdateQueue = {
2097
- // type: UpdateQueueType.suspense,
2098
- // trigger: aliveNode,
2099
- // isSync: true,
2100
- // isForce: true,
2101
- // payLoad: allPendingLoadArray,
2102
- // };
2103
- // renderScheduler.dispatchState(updater);
2104
- // });
2105
- // }
2106
- // suspenseField.isHidden = true;
2107
- // const root = renderDispatch.rootFiber;
2108
- // root.state = remove(root.state, STATE_TYPE.__stable__);
2109
- // root.state = merge(root.state, STATE_TYPE.__retrigger__);
2110
- // // TODO use hide tree to improve
2111
- // mountLoopAll(renderDispatch, root);
2112
- // suspenseField.isHidden = false;
2113
- // } else {
2114
- // throw new Error(
2115
- // "[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance"
2116
- // );
2117
- // }
2118
- // }
2070
+ if (enableSuspenseRoot$2.current) {
2071
+ var suspenseField_2 = getInstanceFieldByInstance(renderDispatch);
2072
+ var list = suspenseField_2.asyncLoadList.getAll();
2073
+ if (list.length === 0)
2074
+ return;
2075
+ if (renderDispatch.enableAsyncLoad) {
2076
+ // defaultDeleteCurrentEffect(renderDispatch, renderDispatch.rootFiber);
2077
+ // defaultDeleteChildEffect(renderDispatch, renderDispatch.rootFiber);
2078
+ var allPendingLoadArray = list.filter(function (item) {
2079
+ if (myreactSharedExports.isPromise(item)) {
2080
+ return typeof item.status !== "string";
2081
+ }
2082
+ else {
2083
+ return !item._loading && !item._loaded && !item._error;
2084
+ }
2085
+ });
2086
+ if (allPendingLoadArray.length) {
2087
+ allPendingLoadArray.forEach(function (item) { var _a; return (_a = item._list) === null || _a === void 0 ? void 0 : _a.forEach(function (node) { return defaultDeleteCurrentEffect(renderDispatch, node); }); });
2088
+ Promise.all(allPendingLoadArray.map(function (item) { return __awaiter(void 0, void 0, void 0, function () {
2089
+ var allFiber;
2090
+ var _a;
2091
+ return __generator(this, function (_b) {
2092
+ switch (_b.label) {
2093
+ case 0:
2094
+ if (!myreactSharedExports.isPromise(item)) return [3 /*break*/, 2];
2095
+ return [4 /*yield*/, renderDispatch.processPromise(item)];
2096
+ case 1:
2097
+ _b.sent();
2098
+ return [3 /*break*/, 4];
2099
+ case 2: return [4 /*yield*/, renderDispatch.processLazy(item)];
2100
+ case 3:
2101
+ _b.sent();
2102
+ _b.label = 4;
2103
+ case 4:
2104
+ allFiber = new Set(item._list);
2105
+ (_a = item._list) === null || _a === void 0 ? void 0 : _a.clear();
2106
+ allFiber.forEach(function (node) {
2107
+ node.state = myreactSharedExports.STATE_TYPE.__recreate__;
2108
+ var renderScheduler = currentScheduler$d.current;
2109
+ var updater = {
2110
+ type: myreactSharedExports.UpdateQueueType.suspense,
2111
+ trigger: node,
2112
+ isSync: true,
2113
+ isForce: true,
2114
+ payLoad: [item],
2115
+ };
2116
+ renderScheduler.dispatchState(updater);
2117
+ });
2118
+ suspenseField_2.asyncLoadList.uniDelete(item);
2119
+ return [2 /*return*/];
2120
+ }
2121
+ });
2122
+ }); }));
2123
+ }
2124
+ // suspenseField.isHidden = true;
2125
+ // const root = renderDispatch.rootFiber;
2126
+ // root.state = remove(root.state, STATE_TYPE.__stable__);
2127
+ // root.state = merge(root.state, STATE_TYPE.__retrigger__);
2128
+ // // TODO use hide tree to improve
2129
+ // mountLoopAll(renderDispatch, root);
2130
+ // suspenseField.isHidden = false;
2131
+ }
2132
+ else {
2133
+ throw new Error("[@my-react/reconciler] should not process async load list on sync mount without enableAsyncLoad, you may use a wrong renderDispatch instance");
2134
+ }
2135
+ }
2119
2136
  };
2120
2137
 
2121
2138
  exports.updateTypeEnum = void 0;
@@ -4444,7 +4461,7 @@ function requireIndex_production_1 () {
4444
4461
  typedElementType._loading = true;
4445
4462
  var renderScheduler_1 = currentScheduler$3.current;
4446
4463
  renderDispatch.processLazy(typedElementType).then(function () {
4447
- fiber.state = myreactSharedExports.STATE_TYPE.__create__;
4464
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
4448
4465
  typedElementType._list.delete(fiber);
4449
4466
  var updater = {
4450
4467
  type: myreactSharedExports.UpdateQueueType.lazy,
@@ -5516,7 +5533,7 @@ function requireIndex_production_1 () {
5516
5533
  promise.status = "pending";
5517
5534
  var renderScheduler_1 = currentScheduler.current;
5518
5535
  renderDispatch.processPromise(promise).then(function () {
5519
- fiber.state = myreactSharedExports.STATE_TYPE.__create__;
5536
+ fiber.state = myreactSharedExports.STATE_TYPE.__recreate__;
5520
5537
  promise._list.delete(fiber);
5521
5538
  promise._loading = false;
5522
5539
  var updater = {
@@ -5863,7 +5880,7 @@ function requireIndex_production_1 () {
5863
5880
  fiber.hookList = fiber.hookList || new myreactSharedExports.ListTree();
5864
5881
  var currentHook = null;
5865
5882
  // initial
5866
- if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__create__)) {
5883
+ if (myreactSharedExports.include(fiber.state, myreactSharedExports.STATE_TYPE.__create__ | myreactSharedExports.STATE_TYPE.__recreate__)) {
5867
5884
  currentHook = createHookNode(renderDispatch, { type: type, reducer: reducer, value: value, deps: deps }, fiber);
5868
5885
  safeCall(function safeCallHookInitialListener() {
5869
5886
  var _a, _b;
@@ -6360,6 +6377,7 @@ function requireIndex_production () {
6360
6377
  STATE_TYPE[STATE_TYPE["__hmr__"] = 256] = "__hmr__";
6361
6378
  STATE_TYPE[STATE_TYPE["__retrigger__"] = 512] = "__retrigger__";
6362
6379
  STATE_TYPE[STATE_TYPE["__reschedule__"] = 1024] = "__reschedule__";
6380
+ STATE_TYPE[STATE_TYPE["__recreate__"] = 2048] = "__recreate__";
6363
6381
  })(exports.STATE_TYPE || (exports.STATE_TYPE = {}));
6364
6382
 
6365
6383
  exports.PATCH_TYPE = void 0;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "@my-react/react-reconciler-compact",
4
4
  "author": "MrWangJustToDo",
5
5
  "license": "MIT",
6
- "version": "0.0.3",
6
+ "version": "0.0.4",
7
7
  "main": "index.js",
8
8
  "types": "index.d.ts",
9
9
  "files": [
@@ -39,11 +39,11 @@
39
39
  }
40
40
  ],
41
41
  "devDependencies": {
42
- "@my-react/react-reconciler": "^0.3.12",
43
- "@my-react/react-shared": "^0.3.12",
42
+ "@my-react/react-reconciler": "^0.3.13",
43
+ "@my-react/react-shared": "^0.3.13",
44
44
  "@types/react-reconciler": "^0.31.0"
45
45
  },
46
46
  "peerDependencies": {
47
- "@my-react/react": ">=0.3.12"
47
+ "@my-react/react": ">=0.3.13"
48
48
  }
49
49
  }