df_type 0.14.2 copy "df_type: ^0.14.2" to clipboard
df_type: ^0.14.2 copied to clipboard

Simplifies type conversions, inspections, nested data access, sync/async operations and more.

Dart & Flutter Packages by dev-cetera.com & contributors.

sponsor patreon pub tag license


Summary #

A versatile package that simplifies type conversions, inspections, nested data access, sync/async operations and more.

Quickstart #

enum Alphabet { A, B, C }

enum Status { pending, active, done }

void main() async {
  // --- Type Checking ---
  print('\n*** Type Checking Utilities ***');
  print('isNullable<String?>: ${isNullable<String?>()}'); // true
  print('isSubtype<int, num>: ${isSubtype<int, num>()}'); // true
  print('typeEquality<int, int>: ${typeEquality<int, int>()}'); // true
  print('typeEquality<int, String>: ${typeEquality<int, String>()}'); // false

  // --- Type Conversion ---
  print('\n*** Type Conversion Utilities ***');
  print("letIntOrNull('55'): ${letIntOrNull('55')}"); // 55
  print(
    "letMapOrNull from JSON: ${letMapOrNull<String, dynamic>('{"a": 1}')}",
  ); // {a: 1}
  print(
    "letListOrNull from CSV: ${letListOrNull<int>('1, 2, 3')}",
  ); // [1, 2, 3]

  // --- Enum Helpers ---
  print('\n*** Enum Helpers ***');
  print(
    "Alphabet.values.valueOf('B'): ${Alphabet.values.valueOf('B')}",
  ); // Alphabet.B

  // --- Function and FutureOr Extensions ---
  print('\n*** Function and FutureOr Extensions ***');
  int Function(int) addOne = (i) => i + 1;
  print('Function.tryCall: ${addOne.tryCall<int, int>([5])}'); // 6

  FutureOr<int> futureOrValue = Future.value(10);
  print('futureOrValue.isFuture: ${futureOrValue.isFuture}'); // true
  print('futureOrValue.toFuture(): ${await futureOrValue.toFuture()}'); // 10

  // --- Asynchronous Helpers ---
  print('\n*** Asynchronous Helpers ***');
  // `consec` for handling a mix of sync/async values
  final result = await consec(Future.value(5), (val) => val * 2);
  print('consec result: $result'); // 10

  // `Waiter` for deferred, batched execution
  final taskQueue = Waiter<String>();
  taskQueue.add(() => 'Task 1');
  taskQueue.add(() async => 'Task 2');
  final waiterResults = await taskQueue.wait();
  print('Waiter results: $waiterResults'); // (Task 1, Task 2)
}

☝️ Please refer to the API reference for more information.


💬 Contributing and Discussions #

This is an open-source project, and we warmly welcome contributions from everyone, regardless of experience level. Whether you're a seasoned developer or just starting out, contributing to this project is a fantastic way to learn, share your knowledge, and make a meaningful impact on the community.

☝️ Ways you can contribute #

  • Buy me a coffee: If you'd like to support the project financially, consider buying me a coffee. Your support helps cover the costs of development and keeps the project growing.
  • Find us on Discord: Feel free to ask questions and engage with the community here: https://discord.gg/gEQ8y2nfyX.
  • Share your ideas: Every perspective matters, and your ideas can spark innovation.
  • Help others: Engage with other users by offering advice, solutions, or troubleshooting assistance.
  • Report bugs: Help us identify and fix issues to make the project more robust.
  • Suggest improvements or new features: Your ideas can help shape the future of the project.
  • Help clarify documentation: Good documentation is key to accessibility. You can make it easier for others to get started by improving or expanding our documentation.
  • Write articles: Share your knowledge by writing tutorials, guides, or blog posts about your experiences with the project. It's a great way to contribute and help others learn.

No matter how you choose to contribute, your involvement is greatly appreciated and valued!

☕ We drink a lot of coffee... #

If you're enjoying this package and find it valuable, consider showing your appreciation with a small donation. Every bit helps in supporting future development. You can donate here: https://www.buymeacoffee.com/dev_cetera

🧑‍⚖️ License #

This project is released under the MIT License. See LICENSE for more information.

3
likes
150
points
3.26k
downloads

Publisher

verified publisherdev-cetera.com

Weekly Downloads

Simplifies type conversions, inspections, nested data access, sync/async operations and more.

Homepage
Repository (GitHub)
View/report issues

Topics

#data #easy-packages #tool #utility #utils

Documentation

API reference

Funding

Consider supporting this project:

www.buymeacoffee.com

License

MIT (license)

Dependencies

collection, equatable

More

Packages that depend on df_type