@tinkoff/dippy
Advanced tools
Comparing version 0.8.6 to 0.8.7
@@ -156,7 +156,7 @@ const Scope = { | ||
let factory; | ||
let resolvedDeps = {}; | ||
let resolvedDeps; | ||
let scope = Scope.REQUEST; | ||
if ('useFactory' in provider) { | ||
factory = (deps) => provider.useFactory(deps); | ||
if (provider.deps) { | ||
if ('deps' in provider) { | ||
resolvedDeps = provider.deps; | ||
@@ -171,3 +171,3 @@ } | ||
factory = (deps) => new provider.useClass(deps); | ||
if (provider.deps) { | ||
if ('deps' in provider) { | ||
resolvedDeps = provider.deps; | ||
@@ -174,0 +174,0 @@ } |
@@ -160,7 +160,7 @@ 'use strict'; | ||
let factory; | ||
let resolvedDeps = {}; | ||
let resolvedDeps; | ||
let scope = Scope.REQUEST; | ||
if ('useFactory' in provider) { | ||
factory = (deps) => provider.useFactory(deps); | ||
if (provider.deps) { | ||
if ('deps' in provider) { | ||
resolvedDeps = provider.deps; | ||
@@ -175,3 +175,3 @@ } | ||
factory = (deps) => new provider.useClass(deps); | ||
if (provider.deps) { | ||
if ('deps' in provider) { | ||
resolvedDeps = provider.deps; | ||
@@ -178,0 +178,0 @@ } |
@@ -23,3 +23,3 @@ import type { TokenInterface, ExtractTokenType, OptionalTokenDependency, ExtractDependencyType } from './createToken/createToken'; | ||
declare type FactoryCreator<Deps, P extends Provide = any> = (deps: ProvideDepsIterator<Deps>) => P extends TokenInterface<unknown> ? ExtractTokenType<P> : P extends string ? any : P; | ||
export interface FactoryProvider<Deps, P extends Provide = any> { | ||
interface FactoryProviderBase<P extends Provide> { | ||
/** | ||
@@ -34,16 +34,25 @@ * Идентификатор токена | ||
/** | ||
* Список токенов которые нужны сервису. При получении зависимости | ||
* эти зависимости будут проинициализованы и переданны в функцию/класс | ||
*/ | ||
deps?: Deps; | ||
/** | ||
* Если true, то позволяет зарегистрировать несколько провайдеров на одном токен. Придет массив как значение | ||
*/ | ||
multi?: boolean; | ||
} | ||
export interface FactoryProviderWithoutDeps<P extends Provide> extends FactoryProviderBase<P> { | ||
/** | ||
* Функция которая будет вызвана при инициализации провайдера и получит зависимости, если они были заданы | ||
*/ | ||
useFactory: () => P extends TokenInterface<unknown> ? ExtractTokenType<P> : Provide; | ||
} | ||
export interface FactoryProviderWithDeps<Deps, P extends Provide> extends FactoryProviderBase<P> { | ||
/** | ||
* Список токенов которые нужны сервису. При получении зависимости | ||
* эти зависимости будут проинициализованы и переданны в функцию/класс | ||
*/ | ||
deps: Deps; | ||
/** | ||
* Функция которая будет вызвана при инициализации провайдера и получит зависимости, если они были заданы | ||
*/ | ||
useFactory: FactoryCreator<Deps, P>; | ||
} | ||
export interface ClassProvider<Deps, P extends Provide = any> { | ||
export declare type FactoryProvider<Deps, P extends Provide = any> = FactoryProviderWithDeps<Deps, P> | FactoryProviderWithoutDeps<P>; | ||
interface ClassProviderBase<P extends Provide> { | ||
/** | ||
@@ -58,15 +67,24 @@ * Идентификатор токена | ||
/** | ||
* Список токенов которые нужны сервису. При получении зависимости | ||
* эти зависимости будут проинициализованы и переданны в функцию/класс | ||
*/ | ||
deps?: Deps; | ||
/** | ||
* Если true, то позволяет зарегистрировать несколько провайдеров на одном токен. Придет массив как значение | ||
*/ | ||
multi?: boolean; | ||
} | ||
export interface ClassProviderWithoutDeps<P extends Provide> extends ClassProviderBase<P> { | ||
/** | ||
* Класс который будет создана при инициализации провайдера и получит зависимости, если они были заданы | ||
*/ | ||
useClass: new () => P extends TokenInterface<unknown> ? ExtractTokenType<P> : Provide; | ||
} | ||
export interface ClassProviderWithDeps<Deps, P extends Provide> extends ClassProviderBase<P> { | ||
/** | ||
* Список токенов которые нужны сервису. При получении зависимости | ||
* эти зависимости будут проинициализованы и переданны в функцию/класс | ||
*/ | ||
deps: Deps; | ||
/** | ||
* Класс который будет создана при инициализации провайдера и получит зависимости, если они были заданы | ||
*/ | ||
useClass: ClassCreator<Deps, P>; | ||
} | ||
export declare type ClassProvider<Deps, P extends Provide = any> = ClassProviderWithDeps<Deps, P> | ClassProviderWithoutDeps<P>; | ||
export interface ValueProvider<P extends Provide = any> { | ||
@@ -73,0 +91,0 @@ /** |
{ | ||
"name": "@tinkoff/dippy", | ||
"version": "0.8.6", | ||
"version": "0.8.7", | ||
"initialVersion": "0.7.27", | ||
@@ -5,0 +5,0 @@ "description": "", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
64182
28
1378