defineOf<T extends DefineEnvironment> method

void defineOf<T extends DefineEnvironment>(
  1. T source(), {
  2. Directory? root,
  3. bool includeDartEnv = true,
})

Defines environment variables using a class that implements DefineEnvironment.

This method provides a more structured way to define environment variables using a class-based approach. The class must implement DefineEnvironment interface which requires a schema property.

Parameters:

  • source: A function that returns an instance of type T which implements DefineEnvironment
  • root: Optional directory where the .env files are located. Defaults to current directory if not specified
  • includeDartEnv: Whether to include Dart's environment variables. Defaults to true

Example:

class AppEnv implements DefineEnvironment {
  static final String host = 'HOST';
  static final String port = 'PORT';

  @override
  final Map<String, EnvSchema> schema = {
    host: env.string(),
    port: env.number().integer(),
  };
}

env.defineOf(AppEnv.new);

Implementation

void defineOf<T extends DefineEnvironment>(
  T Function() source, {
  Directory? root,
  bool includeDartEnv = true,
}) {
  define(source().schema, root: root, includeDartEnv: includeDartEnv);
}