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

パッケージ詳細v2.2.1

enum_to_string

ENUM を文字列に変換する方法を改善しました。Dart では enum.toString を呼び出す際に面倒な EnumName.ValueName の構文が使われますが、このパッケージでその問題を解決しています。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
17.7万
いいね数
331
Pub ポイント
150

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

flutter pub add enum_to_string

パッケージ概要

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

Enumから文字列への変換を簡素化するDartパッケージで、冗長なEnumName.ValueName構文の必要性を排除します。明確で直感的な方法でenum値の文字列表現を取得でき、読みやすさを向上させ、ボイラープレートコードを削減します。頻繁にenumと作業する開発者にとって、より簡単なtoString()の代替手段として最適です。このパッケージはすべての主要プラットフォームをサポートしており、Flutterプロジェクトにスムーズに統合されます。

用途

  • UI で列挙値を読み取り可能な文字列に変換する
  • 列挙データのシリアライズを簡素化する
  • ログ出力時の列挙型状態のコードの可読性を向上させる
  • APIリクエストまたは構成で列挙文字列を使用する
  • 繰り返しの EnumName.ValueName 参照を避ける

主な機能

  • クリーンな列挙型から文字列への変換
  • 冗長な列挙型の構文を削除します
  • すべての Flutter プラットフォームをサポートしています
  • 最小限のセットアップとインテグレーション
  • コードの保守性を向上させる

適している対象

  • enum を使用する Flutter 開発者
  • 列挙型文字列のシリアライズを必要とするプロジェクト
  • 綺麗で読みやすいコードを重視するチーム
  • 頻繁に列挙型を使用するアプリケーション
  • ボイラープレートを減らしたい開発者

注意事項

  • 列挙型の手動登録が必要です
  • すべての高度な列挙パターンをサポートしない可能性があります
  • 基本的な文字列表現のニーズに限定
  • 複雑な列挙型変換には適していません
  • 正しい列挙型の実装に依存しています

元の README

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

enum_to_string

CI

Better conversion of ENUMs to string - It also can handle converting back again!

What it does

It takes an enum such as:

enum TestEnum { testValue1 }

and converts it to

testValue1

Also handles camel case

Input enum TestEnum { testValue1 } Output Test value 1

You can also capitalize all words using the capitalizeWords flag: Input enum TestEnum { testValue1 } Output with capitalizeWords: true: Test Value 1

Usage

import 'package:enum_to_string/enum_to_string.dart';

enum TestEnum { testValue1, testValue2 };

convert(){
    String result = EnumToString.convertToString(TestEnum.testValue1);
    //result = 'testValue1'

    String result = EnumToString.convertToString(TestEnum.testValue1, camelCase: true);
    //result = 'Test value 1'

    String result = EnumToString.convertToString(TestEnum.testValue1, camelCase: true, capitalizeWords: true);
    //result = 'Test Value 1'

    EnumToString.fromString(TestEnum.values, "testValue1"); //Enum
    // TestEnum.testValue1

    EnumToString.fromString(TestEnum.values, "Test Value 1", camelCase: true);
    // TestEnum.testValue1

    List<String> result = EnumToString.toList(TestEnum.values);
    //result = ['testValue1','testValue2'],

    List<String> result = EnumToString.toList(TestEnum.values, camelCase: true);
    //result = ['Test value 1','Test value 2'],
    
    List result = EnumToString.fromList(TestEnum.values, ["ValueOne", "Value2"]); //List<Enum>
    //result = [TestEnum.valueOne, TestEnum.value2];
}

Contributing

Any pull requests / extensions welcome, this was just an annoying thing I needed to fix a couple of times so viola! a package was born.

The project uses GitHub Actions for CI (migrated from Travis CI), which automatically runs the following checks on all pull requests:

  • Dart formatting
  • Static analysis
  • Tests

You can run all checks locally before submitting a PR using the provided script:

./tool/check.sh

Or run them individually:

# Get dependencies
dart pub get

# Format code
dart format --output=none --set-exit-if-changed .

# Run static analysis
dart analyze

# Run tests
dart test

The CI pipeline requires all tests to pass. Please ensure your changes include appropriate test coverage.

Enhanced Enum Support (Dart 2.17+)

Starting from version 2.2.0, this package supports Dart's enhanced enums with custom string mappings. This is particularly useful when you need enum string representations that can't be valid Dart identifiers.

enum Rating {
  G,
  PG13('PG-13'),  // Custom mapping with hyphen
  R,
  unrated;        // Falls back to normal EnumToString behavior

  final String? value;
  const Rating([this.value]);
}

void main() {
  // Custom mapped values use their explicit mapping
  print(EnumToString.convertToString(Rating.PG13));  // Prints: PG-13
  
  // Unmapped values use normal EnumToString behavior
  print(EnumToString.convertToString(Rating.unrated));  // Prints: unrated
  
  // All other EnumToString features work as expected
  print(EnumToString.fromString(Rating.values, 'PG-13') == Rating.PG13);  // true
  print(EnumToString.toList(Rating.values));  // ['G', 'PG-13', 'R', 'unrated']
}

This feature is particularly useful when:
- You need special characters in your enum strings (like hyphens or spaces)
- Your enum strings need to match an external API or format exactly
- You want some enum values to have custom string representations while others use the default behavior

カテゴリー

ソースリポジトリ

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