valueToDynamicNumber static method

DynamicNumber<DynamicNumber> valueToDynamicNumber(
  1. Object? value, {
  2. DynamicNumber<DynamicNumber>? def,
})

Implementation

static DynamicNumber valueToDynamicNumber(
  Object? value, {
  DynamicNumber? def,
}) {
  if (value is DynamicNumber) {
    return value;
  } else if (value is double) {
    return Decimal.fromDouble(value);
  } else if (value is int) {
    return DynamicInt.fromInt(value);
  } else if (value is DateTime) {
    return DynamicInt.fromInt(value.millisecondsSinceEpoch);
  }

  DynamicNumber? n = value == null
      ? def
      : (Decimal.from(value.toString().trim()) ?? def);

  if (n == null) {
    throw ArgumentError(
      "Can't convert `${value.runtimeTypeNameUnsafe}` to `DynamicNumber`: $value",
    );
  }

  return n;
}