functions property

Map<String, Duration Function(dynamic value)> functions
final

The functions related to the Duration creation

Implementation

static final functions = {
  'Duration': (value, [hours, minutes, seconds, milliseconds]) =>
      (hours != null ||
              minutes != null ||
              seconds != null ||
              milliseconds != null)
          ? Duration(
              days: JsonClass.maybeParseInt(value) ?? 0,
              hours: JsonClass.maybeParseInt(hours) ?? 0,
              minutes: JsonClass.maybeParseInt(minutes) ?? 0,
              seconds: JsonClass.maybeParseInt(seconds) ?? 0,
              milliseconds: JsonClass.maybeParseInt(milliseconds) ?? 0,
            )
          : value is Map
              ? Duration(
                  days: JsonClass.maybeParseInt(value['days']) ?? 0,
                  hours: JsonClass.maybeParseInt(value['hours']) ?? 0,
                  minutes: JsonClass.maybeParseInt(value['minutes']) ?? 0,
                  seconds: JsonClass.maybeParseInt(value['seconds']) ?? 0,
                  milliseconds:
                      JsonClass.maybeParseInt(value['milliseconds']) ?? 0,
                )
              : value is List
                  ? Duration(
                      days: JsonClass.maybeParseInt(
                              value.isNotEmpty ? value[0] : null) ??
                          0,
                      hours: JsonClass.maybeParseInt(
                              value.length > 1 ? value[1] : null) ??
                          0,
                      minutes: JsonClass.maybeParseInt(
                              value.length > 2 ? value[2] : null) ??
                          0,
                      seconds: JsonClass.maybeParseInt(
                              value.length > 3 ? value[3] : null) ??
                          0,
                      milliseconds: JsonClass.maybeParseInt(
                              value.length > 4 ? value[4] : null) ??
                          0,
                    )
                  : value is String || value is num
                      ? JsonClass.maybeParseDurationFromMillis(value)!
                      : throw Exception(
                          '[Duration]: expected [value] to be a Map, a List, a String, or a num but encountered: ${value?.runtimeType}',
                        ),
  'days': (value) => Duration(hours: JsonClass.maybeParseInt(value)! * 24),
  'hours': (value) => Duration(minutes: JsonClass.maybeParseInt(value)!),
  'milliseconds': (value) =>
      Duration(milliseconds: JsonClass.maybeParseInt(value)!),
  'minutes': (value) => Duration(minutes: JsonClass.maybeParseInt(value)!),
  'seconds': (value) => Duration(seconds: JsonClass.maybeParseInt(value)!),
};