パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v3.2.2

quiver

Quiver は、多くの Dart ライブラリの使用をより簡単かつ便利にするか、追加機能を提供するためのユーティリティライブラリのセットです。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
373万
いいね数
665
Pub ポイント
140

パッケージをインストール

flutter pub add quiver

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Quiver は、Dart のコアライブラリに便利な拡張機能と追加機能を提供することで、開発者の生産性を高めるユーティリティライブラリのコレクションです。コレクションの操作、ハッシュ化、等価性チェック、関数型プログラミングパターンなどの一般的なタスクを簡単にします。軽量かつモジュール式に設計されており、Android、iOS、Web、macOS、Windows、Linux を含む複数のプラットフォームをサポートしています。Google によってメンテナンスされており、pub を介して Flutter プロジェクトにシームレスに統合できます。再利用可能で十分にテストされたユーティリティを使用してコードを簡素化したい開発者にとって理想的です。

用途

  • 収集操作の簡素化
  • カスタムの等価性とハッシュの実装
  • 関数型プログラミングの強化
  • 不変データ構造の管理
  • 簡潔で読みやすいDartコードの記述
  • ユーティリティ関数によるテスト性の向上

主な機能

  • モジュール型ユーティリティパッケージ
  • 広範なコレクションヘルパー
  • ハッシュおよび等価性ユーティリティ
  • 関数型プログラミングツール
  • クロスプラットフォーム互換性
  • 文書化されており、テスト済み

適している対象

  • コードのシンプルさを求めるDart開発者
  • 堅牢なユーティリティ関数を必要とするプロジェクト
  • 一貫したコード実践を目指すチーム
  • 強化されたデータ処理を必要とするFlutterアプリ
  • 不変または複雑なデータ型と作業する開発者

注意事項

  • 完全なフレームワークではない—ユーティリティのみを追加
  • 一部のパッケージは別々のインポートを必要とする場合があります
  • ユーティリティの向上に限定され、UIコンポーネントではない
  • 過度に使用すると、依存関係の表面積が増える可能性があります
  • プロジェクトのニーズに基づいて選択的に使用する

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

A set of utility libraries for Dart that makes using many Dart libraries easier and more convenient, or adds additional functionality.

Build Status Coverage Status Pub

Documentation

API Docs are available.

Main Libraries

quiver.async

Utilities for working with Futures, Streams and async computations.

collect collects the completion events of an Iterable of Futures into a Stream.

enumerate and concat represent Stream versions of the same-named quiver.iterables methods.

StreamBuffer allows for the orderly reading of elements from a stream, such as a socket.

FutureStream turns a Future<Stream> into a Stream which emits the same events as the stream returned from the future.

StreamRouter splits a Stream into multiple streams based on a set of predicates.

CountdownTimer is a simple countdown timer that fires events in regular increments.

Metronome is a self-correcting alternative to Timer.periodic. It provides a simple, tracking periodic stream of DateTime events with optional anchor time.

stringFromByteStream constructs a string from a stream of byte lists.

quiver.cache

Cache is a semi-persistent, asynchronously accessed, mapping of keys to values. Caches are similar to Maps, except that the cache implementation might store values in a remote system, so all operations are asynchronous, and caches might have eviction policies.

MapCache is a Cache implementation backed by a Map.

quiver.check

checkArgument throws ArgumentError if the specified argument check expression is false.

checkListIndex throws RangeError if the specified index is out of bounds.

checkState throws StateError if the specified state check expression is false.

quiver.collection

listsEqual, mapsEqual and setsEqual check collections for equality.

indexOf finds the first index of an item satisfying a predicate.

LruMap is a map that removes the least recently used item when a threshold length is exceeded.

Multimap is an associative collection that maps keys to collections of values.

BiMap is a bidirectional map and provides an inverse view, allowing lookup of key by value.

TreeSet is a balanced binary tree that offers a bidirectional iterator, the ability to iterate from an arbitrary anchor, and 'nearest' search.

quiver.core

Optional is a way to represent optional values without allowing null.

hashObjects, hash2, hash3, and hash4 generate high-quality hashCodes for a list of objects, or 2, 3, or 4 arguments respectively.

quiver.iterables

concat, count, cycle, enumerate, merge, partition, range, and zip create, transform, or combine Iterables in different ways, similar to Python's itertools.

min, max, and extent retrieve the minimum and maximum elements from an iterable.

GeneratingIterable is an easy way to create lazy iterables that produce elements by calling a function. A common use-case is to traverse properties in an object graph, like the parent relationship in a tree.

InfiniteIterable is a base class for Iterables that throws on operations that require a finite length.

quiver.pattern

pattern.dart container utilities for work with Patterns and RegExps.

Glob implements glob patterns that are commonly used with filesystem paths.

matchesAny combines multiple Patterns into one, and allows for exclusions.

matchesFull returns true if a Pattern matches an entire String.

escapeRegex escapes special regex characters in a String so that it can be used as a literal match inside of a RegExp.

quiver.strings

isBlank checks if a string is null, empty or made of whitespace characters.

isNotBlank checks if a string is not null, and not blank.

isEmpty checks if a string is null or empty.

isNotEmpty checks if a string is not null and not empty.

equalsIgnoreCase checks if two strings are equal, ignoring case.

compareIgnoreCase compares two strings, ignoring case.

loop allows you to loop through characters in a string starting and ending at arbitrary indices. Out of bounds indices allow you to wrap around the string, supporting a number of use-cases, including:

  • Rotating: loop('lohel', -3, 2) => 'hello'
  • Repeating, like String's operator*, but with better character-level control, e.g.: loop('la ', 0, 8) => 'la la la' // no trailing space
  • Tailing: loop('/path/to/some/file.txt', -3) => 'txt'
  • Reversing: loop('top', 3, 0) => 'pot'

quiver.time

Clock provides points in time relative to the current point in time, for example: now, 2 days ago, 4 weeks from now, etc. For testability, use Clock rather than other ways of accessing time, like new DateTime(), so that you can use a fake time function in your tests to control time.

Now is a typedef for functions that return the current time in microseconds, since Clock deals in DateTime which only have millisecond accuracy.

aMicrosecond, aMillisecond, aSecond, aMinute, anHour, aDay, and aWeek are unit duration constants to allow writing for example:

  • aDay vs. const Duration(days: 1)
  • aSecond * 30 vs. const Duration(seconds: 30)

Testing Libraries

The Quiver testing libraries are intended to be used in testing code, not production code. It currently consists of fake implementations of some Quiver interfaces.

quiver.testing.async

FakeAsync enables testing of units which depend upon timers and microtasks. It supports fake advancements of time and the microtask queue, which cause fake timers and microtasks to be processed. A Clock is provided from which to read the current fake time. Faking synchronous or blocking time advancement is also supported.

quiver.testing.equality

areEqualityGroups is a matcher that supports testing operator== and hashCode implementations.

quiver.testing.time

FakeStopwatch is a Stopwatch that uses a provided now() function to get the current time.

カテゴリー

依存関係

依存関係一覧 1 件

ソースリポジトリ

このパッケージを使用しているプロジェクト