Skip to content

kikuchy/enum_string_value

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

enum_string_value

Dart-lang extension generator for enum classes.

// os.dart
import 'package:enum_string_value_lib/enum_string_value_lib.dart';
part "os.value.g.dart";

enum OsKind {
  @Value("Android")
  android,
  @Value("iOS")
  ios,
}

👇 This tool generates below.

extension OsKindExtension on OsKind {
  String get value {
    switch (this) {
    case OsKind.android:
      return "Android";
    case OsKind.ios:
      return "iOS";
    default:
      return this.toString();
    }
  }
}

Usage

(See whole example project)

Put build.yaml on the root of your project.

targets:
  $default:
    builders:
      enum_string_value_generator|enum_string_value:
        generate_for:
          - lib/**/*.dart

Add packages to your pubspec.yaml.

dependencies:
  enum_string_value_lib: ^1.0.0+1

dev_dependencies:
  build_runner: ^1.7.1
  enum_string_value_generator: ^0.0.2+1

Add @Value annotation to your enum values and part directive for the generated file.

// os.dart
import 'package:enum_string_value_lib/enum_string_value_lib.dart';
part "os.value.g.dart";

enum OsKind {
  @Value("Android")
  android,
  @Value("iOS")
  ios,
}

Run build_runner on your project.

for pure Dart project:

$ pub run build_runner build

for Flutter project

$ flutter packages pub run build_runner build

About

Now your enum classes have String values!!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages