mayr_dart_extensions 1.0.0
mayr_dart_extensions: ^1.0.0 copied to clipboard
A comprehensive set of handy Dart extensions to make your code cleaner, shorter, and more expressive. Pure Dart package with zero Flutter dependencies.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2025-01-16 #
Initial Release #
This is the initial release of mayr_dart_extensions as a pure Dart package, migrated from the previous Flutter-based package.
Features
Bool Extensions
choose(trueValue, falseValue)- Select value based on booleantoInt()- Convert to integer (1 for true, 0 for false)toYesNo()- Convert to string representationnot- Returns negation of the boolean
DateTime Extensions
- Checkers:
isAfternoon,isMorning,isEvening,isNight,isToday,isTomorrow,isYesterday,isSameDay(),isInPast,isInFuture - Utilities:
startOfDay() - Manipulators:
addDays(),addMonths(),addYears(),addHours(),addMinutes(),addSeconds(),subDays(),subMonths(),subYears(),subHours(),subMinutes(),subSeconds() - Age:
toAge(),isAgeOlder(),isAgeYounger(),isAgeEqualTo(),isAgeBetween() - Formatting:
format(),toDayOrdinal(),toTimeAgoString(),toTimeString(),toShortDate()
Duration Extensions
delay()- Delays execution for the durationtoReadableString()- Human-readable format (e.g., '2h 30m')isLongerThan()- Compare durationsisShorterThan()- Compare durations
Dynamic Extensions
nullOnDebug<T>()- Returns null in debug modeonlyOnDebug<T>()- Returns value only in debug modemaybe<T>()- Randomly returns null based on probabilityorDefault()- Returns fallback value if null
Number Extensions
- Comparisons:
isEqual(),isGreaterThan(),isLessThan(),isBetween(),isPositive,isNegativeNumber,isZero - Clamping:
clampMin(),clampMax() - Integer:
isEvenNumber,isOddNumber,times(),timesIndexed() - Random:
randomLess(),randomMore() - Double:
toDecimalPlaces() - Formatting:
formatAsCurrency(),formatAsDecimal(),formatAsNumber() - Duration:
days,hours,minutes,seconds,milliseconds,microseconds
String Extensions
- Utilities:
matchesRegExp(),toBool,toDateTime(),toRegExp(),toUri(),limit(),mask(),reverse(),isBlank,isNotBlank,removeWhitespace(),countOccurrences(),truncate(),wrap(),removePrefix(),removeSuffix() - Pretty Printing:
prettyJson(),prettyXml(),prettyYaml() - Casing:
camelCase,capitalised,kebabCase,pascalCase,snakeCase,titleCase - Case Checkers:
isCamelCase,isPascalCase,isSnakeCase,isKebabCase,isTitleCase,isCapitalised,isUpperCase,isLowerCase - Pattern Checkers:
isEmail,isURL,isUlid,isUuid,isSlug,isHexColor,isIPAddress,isNum,isAlphabetOnly,isNumericOnly
List/Iterable Extensions
- Query:
firstOrNull(),lastOrNull(),singleWhereOrNull(),containsWhere(),indexWhereOrNull() - Safe Access:
getOrNull(),getOrDefault() - Transformations:
chunked(),mapIndexed(),whereNotNull(),distinctBy(),flatten(),sortedBy(),sortedByDesc(),flip() - Aggregations:
sumBy(),averageBy(),min(),max(),countWhere() - Mutations:
insertIf(),replaceWhere(),removeWhereNot(),updateWhere(),addIf(),addAllIf(),append(),appendAll(),appendIf(),appendAllIf(),pop(),filter(),unique() - Utility:
isNullOrEmpty(),joinToString(),forEachIndexed()
Map Extensions
- Safe Access:
getOrNull(),getOrDefault() - Transformations:
mapKeys(),mapValues(),filterKeys(),filterValues(),invert() - Merge:
merge(),mergeIfAbsent(),combine() - Utility:
keysWhere(),valuesWhere(),toQueryString()
Set Extensions
toggle()- Add if missing, remove if presentintersects()- Check for intersectionisSubsetOf()- Check if subsetisSupersetOf()- Check if supersetunionAll()- Union of multiple setswithout()- Remove element
Humanize Extensions
- Duration:
humanize()- Convert to "2 hours, 3 minutes" - DateTime:
humanize()- Relative time ("just now", "3 hours ago", etc.) - Numbers:
humanizeNumber(),humanizeOrdinal(),humanizeCount(),humanizePercentage(),humanizeFileSize()
Object Extensions
let()- Transform object inlinealso()- Execute side effects while maintaining object for chaining
Tools
MayrDateTimeFormats- Common date/time format patterns
Changed #
- Package renamed from
mayr_extensionstomayr_dart_extensions - Migrated to pure Dart (removed all Flutter dependencies)
- Updated ownership to MayR Labs
- Removed Flutter-specific extensions (will be available in separate
mayr_flutter_extensionspackage)
Removed #
- BuildContext extensions (moved to
mayr_flutter_extensions) - Widget extensions (moved to
mayr_flutter_extensions) - Image widget extensions (moved to
mayr_flutter_extensions) - Text widget extensions (moved to
mayr_flutter_extensions) - TextStyle extensions (moved to
mayr_flutter_extensions) - StatelessWidget extensions (moved to
mayr_flutter_extensions) - InkWellManager utility (moved to
mayr_flutter_extensions) String.copyToClipboard()method (requires Flutter, moved tomayr_flutter_extensions)
Note: This is a new package publication. For Flutter-specific extensions, use the companion package mayr_flutter_extensions.