darlin library

A Dart package that provides Kotlin-like utilities and extensions.

This package includes:

  • String null safety checks (isNullOrEmpty, isNullOrBlank, etc.)
  • Scope functions (let, also, apply) for any object
  • Object comparison and cloning utilities (deepEqual, copyWith, deepCopy)
  • List manipulation and transformation utilities
  • Boolean logic helpers
  • Future manipulation utilities
  • Nullable utilities and safe navigation

Import Options

Full Package Import

import 'package:darlin/darlin.dart';

Modular Imports

Import only the functionality you need:

import 'package:darlin/core.dart';           // Most common utilities
import 'package:darlin/string_utils.dart';   // String utilities only
import 'package:darlin/scope_functions.dart'; // Scope functions only
import 'package:darlin/list_utils.dart';     // List utilities only
import 'package:darlin/collections.dart';    // List + Object utilities
import 'package:darlin/nullable_utils.dart'; // Nullable utilities only
import 'package:darlin/boolean_utils.dart';  // Boolean utilities only
import 'package:darlin/future_utils.dart';   // Future utilities only
import 'package:darlin/object_utils.dart';   // Object utilities only

Example usage:

import 'package:darlin/darlin.dart';

void main() {
  String? nullableString = null;

  // String checks
  print(nullableString.isNullOrEmpty); // true
  print(nullableString.isNullOrBlank); // true

  // Scope functions
  final result = nullableString?.let((it) => it.toUpperCase());
  nullableString?.also((it) => print('Processing: $it'));

  // Object utilities
  final obj1 = {'name': 'John', 'age': 30};
  final obj2 = {'name': 'John', 'age': 30};
  print(obj1.deepEqual(obj2)); // true
  final copy = obj1.deepCopy();
  final updated = obj1.copyWith({'age': 31});
}

Extensions

BooleanUtils on bool
Extensions on Boolean to provide additional utility methods.
FutureUtils on Future<T>
Extensions on Future to provide convenient asynchronous handling utilities.
ListChecks on List<T>?
Extensions on nullable List to provide Kotlin-like null safety checks.
ListUtils on List<T>
Extensions on List to provide additional utility methods.
NullableBooleanUtils on bool?
Extensions on nullable Boolean to provide logical operations.
NullableUtils on T?
Extensions on nullable objects to provide Kotlin-like null safety utilities.
ObjectUtils on Object
Extensions on objects to provide comparison and cloning utilities.
ScopeFunctions on T?
Extensions on any nullable object to provide Kotlin-like scope functions.
StringChecks on String?
Extensions on nullable String to provide Kotlin-like null safety checks.
StringUtils on String
Extensions on String to provide additional utility methods.