valueAsExpression = (value, expr, sideEffects) => {
			switch (typeof value) {
				case "boolean":
					return new BasicEvaluatedExpression()
						.setBoolean(value)
						.setSideEffects(sideEffects)
						.setRange(/** @type {Range} */ (expr.range));
				case "number":
					return new BasicEvaluatedExpression()
						.setNumber(value)
						.setSideEffects(sideEffects)
						.setRange(/** @type {Range} */ (expr.range));
				case "bigint":
					return new BasicEvaluatedExpression()
						.setBigInt(value)
						.setSideEffects(sideEffects)
						.setRange(/** @type {Range} */ (expr.range));
				case "string":
					return new BasicEvaluatedExpression()
						.setString(value)
						.setSideEffects(sideEffects)
						.setRange(/** @type {Range} */ (expr.range));
			}
		}
In simple logical cases, we can use valueAsExpression to assist us in evaluating the expression on
either side of a [BinaryExpression](https://github.com/estree/estree/blob/master/es5.md#binaryexpression).
This supports scenarios in webpack like conditionally `import()`'ing modules based on some simple evaluation:

```js
if (1 === 3) {
 import("./moduleA"); // webpack will auto evaluate this and not import the modules
}
```

Additional scenarios include evaluation of strings inside of dynamic import statements:

```js
const foo = "foo";
const bar = "bar";

import("./" + foo + bar); // webpack will auto evaluate this into import("./foobar")
```
@param {boolean | number | bigint | string} value the value to convert to an expression
@param {BinaryExpression | UnaryExpression} expr the expression being evaluated
@param {boolean} sideEffects whether the expression has side effects
@returns {BasicEvaluatedExpression | undefined} the evaluated expression
@example

```js
const binaryExpr = new BinaryExpression("+",
	{ type: "Literal", value: 2 },
	{ type: "Literal", value: 3 }
);

const leftValue = 2;
const rightValue = 3;

const leftExpr = valueAsExpression(leftValue, binaryExpr.left, false);
const rightExpr = valueAsExpression(rightValue, binaryExpr.right, false);
const result = new BasicEvaluatedExpression()
	.setNumber(leftExpr.number + rightExpr.number)
	.setRange(binaryExpr.range);

console.log(result.number); // Output: 5
```