@next-core/brick-utils 2.51.4 → 2.51.5
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/dist/index.bundle.js +60 -34
- package/dist/index.bundle.js.map +1 -1
- package/dist/index.esm.js +61 -35
- package/dist/index.esm.js.map +1 -1
- package/package.json +2 -2
package/dist/index.bundle.js
CHANGED
|
@@ -20283,68 +20283,92 @@
|
|
|
20283
20283
|
|
|
20284
20284
|
// Then, we remove dead conditions accordingly.
|
|
20285
20285
|
traverse(ast, node => {
|
|
20286
|
-
|
|
20287
|
-
|
|
20288
|
-
|
|
20289
|
-
|
|
20286
|
+
// let conditionalNodes: ConditionalStoryboardNode[];
|
|
20287
|
+
// let rawContainer: any;
|
|
20288
|
+
// let rawKey: string;
|
|
20289
|
+
// let deleteEmptyArray = false;
|
|
20290
|
+
// let isUseBrickEntry = false;
|
|
20291
|
+
// let keepConditionalHandlers = false;
|
|
20292
|
+
|
|
20290
20293
|
switch (node.type) {
|
|
20291
20294
|
case "Root":
|
|
20292
|
-
|
|
20293
|
-
rawContainer = node.raw;
|
|
20294
|
-
rawKey = "routes";
|
|
20295
|
+
shakeConditionalNodes(node.routes, node.raw, "routes");
|
|
20295
20296
|
break;
|
|
20296
20297
|
case "Template":
|
|
20297
|
-
|
|
20298
|
-
rawContainer = node.raw;
|
|
20299
|
-
rawKey = "bricks";
|
|
20298
|
+
shakeConditionalNodes(node.bricks, node.raw, "bricks");
|
|
20300
20299
|
break;
|
|
20301
20300
|
case "Route":
|
|
20302
20301
|
case "Slot":
|
|
20303
|
-
|
|
20304
|
-
rawContainer = node.raw;
|
|
20305
|
-
rawKey = node.raw.type === "routes" ? "routes" : "bricks";
|
|
20302
|
+
shakeConditionalNodes(node.children, node.raw, node.raw.type === "routes" ? "routes" : "bricks");
|
|
20306
20303
|
break;
|
|
20307
20304
|
case "Event":
|
|
20308
20305
|
case "EventCallback":
|
|
20309
20306
|
case "SimpleLifeCycle":
|
|
20310
20307
|
case "ConditionalEvent":
|
|
20311
|
-
|
|
20312
|
-
|
|
20313
|
-
|
|
20314
|
-
|
|
20308
|
+
shakeConditionalNodes(node.handlers, node.rawContainer, node.rawKey, {
|
|
20309
|
+
deleteEmptyArray: true,
|
|
20310
|
+
keepConditionalHandlers: true
|
|
20311
|
+
});
|
|
20315
20312
|
break;
|
|
20316
20313
|
case "ResolveLifeCycle":
|
|
20317
|
-
|
|
20318
|
-
|
|
20319
|
-
|
|
20320
|
-
deleteEmptyArray = true;
|
|
20314
|
+
shakeConditionalNodes(node.resolves, node.rawContainer, node.rawKey, {
|
|
20315
|
+
deleteEmptyArray: true
|
|
20316
|
+
});
|
|
20321
20317
|
break;
|
|
20322
20318
|
case "UseBrickEntry":
|
|
20323
|
-
|
|
20324
|
-
|
|
20325
|
-
|
|
20319
|
+
shakeConditionalNodes(node.children, node.rawContainer, node.rawKey, {
|
|
20320
|
+
isUseBrickEntry: true
|
|
20321
|
+
});
|
|
20322
|
+
break;
|
|
20323
|
+
case "EventHandler":
|
|
20324
|
+
shakeConditionalNodes(node.then, node.raw, "then");
|
|
20325
|
+
shakeConditionalNodes(node.else, node.raw, "else");
|
|
20326
20326
|
break;
|
|
20327
20327
|
}
|
|
20328
|
-
shakeConditionalNodes(node, rawContainer, conditionalNodes, rawKey, deleteEmptyArray);
|
|
20329
20328
|
|
|
20330
20329
|
// Remove unreachable context/state.
|
|
20331
|
-
deleteEmptyArray = false;
|
|
20332
20330
|
switch (node.type) {
|
|
20333
20331
|
case "Route":
|
|
20334
20332
|
case "Brick":
|
|
20335
20333
|
case "Template":
|
|
20336
|
-
|
|
20337
|
-
rawKey = node.type === "Template" ? "state" : "context";
|
|
20338
|
-
conditionalNodes = node.context;
|
|
20339
|
-
break;
|
|
20334
|
+
shakeConditionalNodes(node.context, node.raw, node.type === "Template" ? "state" : "context");
|
|
20340
20335
|
}
|
|
20341
|
-
shakeConditionalNodes(node, rawContainer, conditionalNodes, rawKey, deleteEmptyArray);
|
|
20342
20336
|
});
|
|
20343
20337
|
}
|
|
20344
|
-
function shakeConditionalNodes(
|
|
20345
|
-
var
|
|
20338
|
+
function shakeConditionalNodes(conditionalNodes, rawContainer, rawKey) {
|
|
20339
|
+
var {
|
|
20340
|
+
deleteEmptyArray,
|
|
20341
|
+
isUseBrickEntry,
|
|
20342
|
+
keepConditionalHandlers
|
|
20343
|
+
} = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
20344
|
+
var removedNodes = [];
|
|
20345
|
+
if (Array.isArray(conditionalNodes)) {
|
|
20346
|
+
for (var node of conditionalNodes) {
|
|
20347
|
+
var _else;
|
|
20348
|
+
if (keepConditionalHandlers && (_else = node.else) !== null && _else !== void 0 && _else.length) {
|
|
20349
|
+
switch (node.raw.if) {
|
|
20350
|
+
case false:
|
|
20351
|
+
node.then = node.else;
|
|
20352
|
+
node.else = [];
|
|
20353
|
+
node.raw.then = node.raw.else;
|
|
20354
|
+
delete node.raw.else;
|
|
20355
|
+
delete node.raw.if;
|
|
20356
|
+
continue;
|
|
20357
|
+
case true:
|
|
20358
|
+
case undefined:
|
|
20359
|
+
node.else = [];
|
|
20360
|
+
delete node.raw.else;
|
|
20361
|
+
continue;
|
|
20362
|
+
}
|
|
20363
|
+
}
|
|
20364
|
+
if (node.raw.if === false) {
|
|
20365
|
+
removedNodes.push(node);
|
|
20366
|
+
}
|
|
20367
|
+
}
|
|
20368
|
+
}
|
|
20369
|
+
lodash.pull(conditionalNodes, ...removedNodes);
|
|
20346
20370
|
if (removedNodes.length > 0) {
|
|
20347
|
-
if (
|
|
20371
|
+
if (isUseBrickEntry && !Array.isArray(rawContainer[rawKey])) {
|
|
20348
20372
|
rawContainer[rawKey] = {
|
|
20349
20373
|
brick: "div",
|
|
20350
20374
|
if: false
|
|
@@ -20392,6 +20416,8 @@
|
|
|
20392
20416
|
console.warn("[removed dead if]:", ifContainer.if, ifContainer);
|
|
20393
20417
|
}
|
|
20394
20418
|
ifContainer.if = false;
|
|
20419
|
+
} else if (isConstantLogical(expression, true, options)) {
|
|
20420
|
+
ifContainer.if = true;
|
|
20395
20421
|
}
|
|
20396
20422
|
return;
|
|
20397
20423
|
}
|