dioc_generator 0.1.5

  • README.md
  • CHANGELOG.md
  • Installing
  • Versions
  • 61

dioc_generator

A generator of code for dioc containers.

Usage

All registrations are made by annotating a partial bootstrapper class.

Various environments could be declared as methods that return a Container. You have to decorate these methods with Provide annotations to register dependencies.

library example;

import 'package:dioc/src/container.dart';
import 'package:dioc/src/built_container.dart';

part "example.g.dart";

@bootstrapper
@Provide.implemented(OtherService) // Default registration for all environments
abstract class AppBootstrapper extends Bootstrapper {

  @Provide(Service, MockService)
  Container development();

  @Provide(Service, WebService)
  Container production();
}

To indicate how to inject dependencies, you have two options : specifying a default mode, or declaring specific injections.

For a default inject mode, add it to the Provide constructor.

@bootstrapper
@Provide.implemented(OtherService)
abstract class AppBootstrapper extends Bootstrapper {
  @Provide(Service, MockService, defaultMode: InjectMode.singleton)
  Container development();
}

Getting an instances and default injections will then use the default mode :

final service = container<Service>(); // singleton

Decorate your class fields with Inject annotations (and @inject, @singleton shortcuts) to declare specific injections.

class OtherService {
  @inject
  final Service dependency;

  @singleton
  final Service dependency2;

  OtherService(this.dependency,{this.dependency2});
}

To trigger code generation, run the command :

pub run build_runner build

Then simply use the provided builder to create your Container.

final container = AppBootstrapperBuilder.instance.development();

A complete example is also available.

Features and bugs

Please file feature requests and bugs at the issue tracker.

Changelog

0.0.1

  • Initial version

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  dioc_generator: ^0.1.5

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:dioc_generator/dioc_generator.dart';
  
Version Uploaded Documentation Archive
0.1.5 Nov 3, 2018 Go to the documentation of dioc_generator 0.1.5 Download dioc_generator 0.1.5 archive
0.1.4 Nov 3, 2018 Go to the documentation of dioc_generator 0.1.4 Download dioc_generator 0.1.4 archive
0.1.3 Nov 3, 2018 Go to the documentation of dioc_generator 0.1.3 Download dioc_generator 0.1.3 archive
0.1.2 Oct 16, 2018 Go to the documentation of dioc_generator 0.1.2 Download dioc_generator 0.1.2 archive
0.1.1 Sep 5, 2018 Go to the documentation of dioc_generator 0.1.1 Download dioc_generator 0.1.1 archive
0.1.0 Sep 5, 2018 Go to the documentation of dioc_generator 0.1.0 Download dioc_generator 0.1.0 archive
0.0.1 Jan 24, 2018 Go to the documentation of dioc_generator 0.0.1 Download dioc_generator 0.0.1 archive
Popularity:
Describes how popular the package is relative to other packages. [more]
35
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
70
Overall:
Weighted score of the above. [more]
61
Learn more about scoring.

We analyzed this package on Dec 5, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.1.0
  • pana: 0.12.7

Platforms

Detected platforms: other

Primary library: package:dioc_generator/dioc_generator.dart with components: io, isolate, build, mirrors.

Health suggestions

Fix lib/dioc_generator.dart. (-0.50 points)

Analysis of lib/dioc_generator.dart reported 1 hint:

line 139 col 15: 'parameterKind' is deprecated and shouldn't be used.

Format lib/builder.dart.

Run dartfmt to format lib/builder.dart.

Maintenance suggestions

The description is too short. (-20 points)

Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

Maintain an example. (-10 points)

Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use dioc_generator.dart.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >2.0.0-dev <3.0.0
analyzer ^0.32.4 0.32.6 0.34.0
build ^1.0.0 1.0.1
build_runner ^1.0.0 1.1.2
build_test ^0.10.3+1 0.10.3+3
code_builder ^3.1.3 3.1.3
dart_style ^1.1.3 1.1.3 1.2.1
dioc ^0.1.4 0.1.4
source_gen ^0.9.0+1 0.9.1+3
Transitive dependencies
args 1.5.1
async 2.0.8
boolean_selector 1.0.4
build_config 0.3.1+4
build_resolvers 0.2.2+6
build_runner_core 1.1.1
built_collection 4.1.0
built_value 6.1.6
charcode 1.1.2
collection 1.14.11
convert 2.0.2
crypto 2.0.6
csslib 0.14.6
fixnum 0.10.9
front_end 0.1.4+2 0.1.7
glob 1.1.7
graphs 0.1.3+1
html 0.13.3+3
http 0.12.0
http_multi_server 2.0.5
http_parser 3.1.3
io 0.3.3
js 0.6.1+1
json_annotation 2.0.0
json_rpc_2 2.0.9
kernel 0.3.4+2 0.3.7
logging 0.11.3+2
matcher 0.12.3+1 0.12.4
meta 1.1.6
mime 0.9.6+2
multi_server_socket 1.0.2
node_preamble 1.4.4
package_config 1.0.5
package_resolver 1.0.6
path 1.6.2
pedantic 1.3.0
plugin 0.2.0+3
pool 1.3.6
pub_semver 1.4.2
pubspec_parse 0.1.2+3
quiver 2.0.1
shelf 0.7.3+3
shelf_packages_handler 1.0.4
shelf_static 0.2.8
shelf_web_socket 0.2.2+4
source_map_stack_trace 1.1.5
source_maps 0.10.8
source_span 1.4.1
stack_trace 1.9.3
stream_channel 1.6.8
stream_transform 0.0.14+1
string_scanner 1.0.4
term_glyph 1.0.1
test_api 0.2.1
test_core 0.2.0+1
timing 0.1.1+1
typed_data 1.1.6
utf 0.9.0+5
vm_service_client 0.2.6
watcher 0.9.7+10
web_socket_channel 1.0.9
yaml 2.1.15
Dev dependencies
test any 1.5.1+1