A set of APIs for commonly used programming patterns and utilities, such as dependency injection, logging, and configuration.
Configuration
import 'package:extensions/configuration.dart';
void main() {
  var configurationBuilder = ConfigurationBuilder()
    // Adds a memory collection to the configuration system.
    ..addInMemoryCollection(
      <String, String>{
        'Logging:LogLevel:Default': 'Warning',
      }.entries,
    );
  var config = configurationBuilder.build();
  print(config['Logging:LogLevel:Default']);
}
Dependency Injection
import 'package:extensions/dependency_injection.dart';
void main() {
  var serviceCollection = ServiceCollection();
  serviceCollection.addSingleton<MyService>(
    implementationInstance: MyService(),
  );
  var services = serviceCollection.buildServiceProvider();
  var myService = services.getRequiredService<MyService>();
}
Logging
package:extensions/logging.dart' provides a class [LoggerFactory][LoggerFactory] to create a [Logger`]Logger for a specific category.
import 'package:extensions/logging.dart';
void main() {
  LoggerFactory.create(
    (builder) => builder
    ..addDebug()
    ..setMinimumLevel(LogLevel.debug),
  ).createLogger('MyLogger').logDebug('Hello World');
}
The preceeding code uses the LoggerFactory static method LoggerFactory.create to create a Logger. The output is displayed in the debug window and looks like this:
[MyLogger] LogLevel.debug: Hello World
Generic Host
import 'package:extensions/hosting.dart' 
Future<void> main(List<String> args) async =>
    await Host.createDefaultBuilder(args)
        .useConsoleLifetime()
        .build()
        .run();
Extensions is a derived work of the dotnet/runtime
Libraries
- configuration
- Configuration
- configuration_io
- dependency_injection
- Dependency Injection
- hosting
- Hosting
- hosting_io
- io
- logging
- Logging
- options
- Options
- primitives
- Primitives