@react-querybuilder/core
Version:
React Query Builder component for constructing queries and filters, with utilities for executing them in various database and evaluation contexts
31 lines (29 loc) • 1.21 kB
JavaScript
const require_isRuleGroup = require('./isRuleGroup-DqAs2x4E.js');
let numeric_quantity = require("numeric-quantity");
numeric_quantity = require_isRuleGroup.__toESM(numeric_quantity);
//#region src/utils/parseNumber.ts
/**
* Converts a string to a number. Uses native `parseFloat` if `parseNumbers` is "native",
* otherwise uses [`numeric-quantity`](https://jakeboone02.github.io/numeric-quantity/).
* If that returns `NaN`, the string is returned unchanged. Numeric values are returned
* as-is regardless of the `parseNumbers` option.
*/
const parseNumber = (val, { parseNumbers, bigIntOnOverflow } = {}) => {
if (!parseNumbers || typeof val === "bigint" || typeof val === "number") return val;
if (parseNumbers === "native") return Number.parseFloat(val);
const valAsNum = (0, numeric_quantity.numericQuantity)(val, {
allowTrailingInvalid: parseNumbers === "enhanced",
bigIntOnOverflow,
romanNumerals: false,
round: false
});
return typeof valAsNum === "bigint" || !Number.isNaN(valAsNum) ? valAsNum : val;
};
//#endregion
Object.defineProperty(exports, 'parseNumber', {
enumerable: true,
get: function () {
return parseNumber;
}
});
//# sourceMappingURL=parseNumber-D4iQDxK-.js.map