extensions 0.3.9 extensions: ^0.3.9 copied to clipboard
A set of APIs for commonly used programming patterns and utilities, such as dependency injection, logging, and configuration.
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 [create
][LoggerFactory.create] to create a [Logger
][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