Files
NapCatQQ/.pnpm-store/v3/files/86/2b469b0a552619006f1ecd3bbf96d22c2a14e184dcb9f50da60b2feaa749ffb3c364abea1e483d65efea2534873ff3da758d072be80f43a63762026c0af09c
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

33 lines
1023 B
Plaintext

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = extractValueFromLogicalExpression;
/**
* Extractor function for a LogicalExpression type value node.
* A logical expression is `a && b` or `a || b`, so we evaluate both sides
* and return the extracted value of the expression.
*
* @param - value - AST Value object with type `LogicalExpression`
* @returns - The extracted value converted to correct type.
*/
function extractValueFromLogicalExpression(value) {
// eslint-disable-next-line global-require
var getValue = require('.').default;
var operator = value.operator,
left = value.left,
right = value.right;
var leftVal = getValue(left);
var rightVal = getValue(right);
if (operator === '&&') {
return leftVal && rightVal;
}
if (operator === '??') {
// return leftVal ?? rightVal; // TODO: update to babel 7
return leftVal === null || typeof leftVal === 'undefined' ? rightVal : leftVal;
}
return leftVal || rightVal;
}