Skip to content

Hecatoncheir/env_configurable.dart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Generate class with properties from environment variables.

env_annotation

Source code

env_configurable

Source code

Setup

pubspec.yaml

dependencies:
  env_annotation: 
    git: 
      url: https://github.com/Hecatoncheir/env_configurable.dart.git
      path: env_annotation

dev_dependencies:
  build_runner: ^2.0.0
  env_configurable:
    git: 
      url: https://github.com/Hecatoncheir/env_configurable.dart.git
      path: env_configurable

Run dart run build_runner build:

[INFO] Generating build script completed, took 479ms
[INFO] Reading cached asset graph completed, took 60ms
[INFO] Checking for updates since last build completed, took 608ms
[WARNING] Invalidating asset graph due to build script update!
[INFO] Cleaning up outputs from previous builds. completed, took 13ms
[INFO] Generating build script completed, took 177ms
[WARNING] Invalidated precompiled build script due to missing asset graph.
[INFO] Precompiling build script... completed, took 1.4s
[INFO] Building new asset graph completed, took 694ms
[INFO] Checking for unexpected pre-existing outputs. completed, took 1ms
[INFO] Running build completed, took 886ms
[INFO] Caching finalized dependency graph completed, took 38ms
[INFO] Succeeded after 935ms with 3 outputs (4 actions)

Example

import 'package:env_annotation/env_annotation.dart';

part 'person.g.dart';

@EnvConfigurable()
class Person {
  @EnvKey(defaultValue: 'Test name')
  final String firstName;

  @EnvKey(environmentKey: 'SecondName')
  final String? secondName;

  int age;

  bool isOk;

  Person({
    required this.firstName,
    required this.secondName,
    required this.age,
    required this.isOk,
  });

  factory Person.fromEnvironment() => _$PersonFromEnvironment();
}
part of 'person.dart';

Person _$PersonFromEnvironment() {
  final personInstance = Person(
    firstName: "Test name",
    secondName: "Second name",
    age: 0,
    isOk: true,
  );

  return personInstance;
}

After change environment use dart run commands for rebuild:

export isOk=true
dart run build_runner clean
dart run build_runner build --delete-conflicting-outputs

About

Generate class with properties from environment variables.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy