mirror of
https://github.com/pese-git/cherrypick.git
synced 2026-01-23 21:13:35 +00:00
Compare commits
2 Commits
talker_che
...
0.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1aa0ae045e | ||
|
|
12d877333a |
23
.gitlab-ci.yml
Normal file
23
.gitlab-ci.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
# This file is a template, and might need editing before it works on your project.
|
||||
# https://hub.docker.com/r/google/dart
|
||||
image: google/dart:latest
|
||||
|
||||
variables:
|
||||
# Use to learn more:
|
||||
# pub run test --help
|
||||
PUB_VARS: "--platform vm --timeout 30s --concurrency=6 --test-randomize-ordering-seed=random --reporter=expanded"
|
||||
|
||||
# Cache downloaded dependencies and plugins between builds.
|
||||
# To keep cache across branches add 'key: "$CI_JOB_NAME"'
|
||||
cache:
|
||||
paths:
|
||||
- .pub-cache/global_packages
|
||||
|
||||
before_script:
|
||||
- export PATH="$PATH":"~/.pub-cache/bin"
|
||||
- pub get --no-precompile
|
||||
|
||||
test:
|
||||
stage: test
|
||||
script:
|
||||
- pub run test $PUB_VARS
|
||||
@@ -59,7 +59,7 @@ abstract class ApiClient {
|
||||
class ApiClientMock implements ApiClient {
|
||||
@override
|
||||
Future sendRequest(
|
||||
{@required String url, String token, Map requestBody}) async {
|
||||
{@required String? url, String? token, Map? requestBody}) async {
|
||||
return 'hello world';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
name: example
|
||||
version: 1.0.0
|
||||
author: "Sergey Penkovsky <sergey.penkovsky@gmail.com>"
|
||||
homepage:
|
||||
homepage: localhost
|
||||
|
||||
environment:
|
||||
sdk: ">=2.2.0 <3.0.0"
|
||||
sdk: ">=2.12.0 <3.0.0"
|
||||
|
||||
|
||||
dependencies:
|
||||
@@ -12,3 +12,4 @@ dependencies:
|
||||
path: ../
|
||||
|
||||
dev_dependencies:
|
||||
test: ^1.16.8
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:dart_di/resolvers/resolving_context.dart';
|
||||
* Контейнер - это объект, которой хранит все резолверы зависимостей.
|
||||
*/
|
||||
class DiContainer {
|
||||
final DiContainer _parent;
|
||||
final DiContainer? _parent;
|
||||
|
||||
final _resolvers = <Type, ResolvingContext>{};
|
||||
|
||||
@@ -46,7 +46,7 @@ class DiContainer {
|
||||
/**
|
||||
* Возвращает разрешенную зависимость типа [T] или null, если она не может быть разрешена.
|
||||
*/
|
||||
T tryResolve<T>() {
|
||||
T? tryResolve<T>() {
|
||||
var resolver = _resolvers[T];
|
||||
if (resolver != null) {
|
||||
return resolver.resolve();
|
||||
@@ -70,6 +70,6 @@ class DiContainer {
|
||||
* @return - возвращает булево значение
|
||||
*/
|
||||
bool hasInTree<T>() {
|
||||
return has<T>() || (_parent != null && _parent.hasInTree<T>());
|
||||
return has<T>() || (_parent != null && _parent!.hasInTree<T>());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,5 +7,5 @@ abstract class Resolver<T> {
|
||||
* Разрешает зависимость типа [T]
|
||||
* @return - возвращает объект типа [T]
|
||||
*/
|
||||
T resolve();
|
||||
T? resolve();
|
||||
}
|
||||
|
||||
@@ -6,11 +6,13 @@ import 'package:dart_di/resolvers/value_resolver.dart';
|
||||
|
||||
class ResolvingContext<T> extends Resolver {
|
||||
/// Корневой резолвер
|
||||
Resolver<T> get resolver => _resolver;
|
||||
Resolver<T> get resolver {
|
||||
return _resolver as Resolver<T>;
|
||||
}
|
||||
|
||||
DiContainer _container;
|
||||
|
||||
Resolver _resolver;
|
||||
late Resolver _resolver;
|
||||
|
||||
ResolvingContext(this._container);
|
||||
|
||||
@@ -21,7 +23,7 @@ class ResolvingContext<T> extends Resolver {
|
||||
@override
|
||||
T resolve() {
|
||||
_verify();
|
||||
return _resolver?.resolve();
|
||||
return _resolver.resolve();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -38,7 +40,7 @@ class ResolvingContext<T> extends Resolver {
|
||||
* Создать резолвер значения
|
||||
*/
|
||||
ResolvingContext<T> toValue<TImpl extends T>(T value) {
|
||||
Resolver<TImpl> resolver = ValueResolver(value);
|
||||
Resolver<TImpl> resolver = ValueResolver(value as TImpl);
|
||||
return toResolver<TImpl>(resolver);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@ import 'package:dart_di/resolvers/resolver.dart';
|
||||
|
||||
class SingletonResolver<T> extends Resolver<T> {
|
||||
Resolver<T> _decoratedResolver;
|
||||
T _value = null;
|
||||
T? _value = null;
|
||||
|
||||
SingletonResolver(this._decoratedResolver);
|
||||
|
||||
@override
|
||||
T resolve() {
|
||||
T? resolve() {
|
||||
if (_value == null) {
|
||||
_value = _decoratedResolver.resolve();
|
||||
}
|
||||
|
||||
12
pubspec.yaml
12
pubspec.yaml
@@ -1,16 +1,16 @@
|
||||
name: dart_di
|
||||
description: Experimental Dependency Injection library.
|
||||
version: 0.0.1
|
||||
version: 0.0.2
|
||||
author: Sergey Penkovsky <sergey.penkovsky@gmail.com>
|
||||
homepage:
|
||||
homepage: locahost
|
||||
|
||||
environment:
|
||||
sdk: ">=2.7.0 <3.0.0"
|
||||
sdk: ">=2.12.0 <3.0.0"
|
||||
|
||||
dependencies:
|
||||
meta: ^1.1.8
|
||||
meta: ^1.3.0
|
||||
|
||||
dev_dependencies:
|
||||
test: ^1.14.3
|
||||
test: ^1.16.8
|
||||
|
||||
mockito: ^4.1.1
|
||||
mockito: ^5.0.3
|
||||
|
||||
Reference in New Issue
Block a user