rsdi
Advanced tools
Comparing version 3.0.1 to 3.0.2
@@ -1,2 +0,2 @@ | ||
import { Container, DenyInputKeys, Factory, ResolvedDependencies, StringLiteral } from "./types"; | ||
import { DenyInputKeys, Factory, IDIContainer, ResolvedDependencies, StringLiteral } from "./types"; | ||
/** | ||
@@ -16,3 +16,3 @@ * Dependency injection container | ||
*/ | ||
add<N extends string, R extends Factory<ContainerResolvers>>(name: StringLiteral<DenyInputKeys<N, keyof ContainerResolvers>>, resolver: R): Container<ContainerResolvers & { | ||
add<N extends string, R extends Factory<ContainerResolvers>>(name: StringLiteral<DenyInputKeys<N, keyof ContainerResolvers>>, resolver: R): IDIContainer<ContainerResolvers & { | ||
[n in N]: ReturnType<R>; | ||
@@ -30,3 +30,5 @@ }>; | ||
*/ | ||
update<N extends keyof ContainerResolvers, R extends Factory<ContainerResolvers>>(name: StringLiteral<N>, resolver: R): Container<Omit<ContainerResolvers, N> & { | ||
update<N extends keyof ContainerResolvers, R extends Factory<ContainerResolvers>>(name: StringLiteral<N>, resolver: R): IDIContainer<{ | ||
[P in Exclude<keyof ContainerResolvers, N>]: ContainerResolvers[P]; | ||
} & { | ||
[n in N]: ReturnType<R>; | ||
@@ -66,5 +68,5 @@ }>; | ||
*/ | ||
extend<E extends (container: Container<ContainerResolvers>) => any>(f: E): ReturnType<E>; | ||
extend<E extends (container: IDIContainer<ContainerResolvers>) => any>(f: E): ReturnType<E>; | ||
private setValue; | ||
private toContainer; | ||
} |
@@ -40,3 +40,3 @@ import { DenyOverrideDependencyError, DependencyIsMissingError, ForbiddenNameError, IncorrectInvocationError, } from "./errors.js"; | ||
} | ||
if (this.has(name)) { | ||
if (!this.has(name)) { | ||
throw new DependencyIsMissingError(name); | ||
@@ -43,0 +43,0 @@ } |
@@ -1,2 +0,1 @@ | ||
import { DIContainer } from "./DIContainer.js"; | ||
export type Factory<ContainerResolvers extends ResolvedDependencies> = (resolvers: ContainerResolvers) => any; | ||
@@ -11,2 +10,14 @@ export type ResolvedDependencies = { | ||
export type StringLiteral<T> = T extends string ? string extends T ? never : T : never; | ||
export type Container<ContainerResolvers extends ResolvedDependencies> = DIContainer<ContainerResolvers> & ContainerResolvers; | ||
export type IDIContainer<ContainerResolvers extends ResolvedDependencies = {}> = ContainerResolvers & { | ||
add: <N extends string, R extends Factory<ContainerResolvers>>(name: StringLiteral<DenyInputKeys<N, keyof ContainerResolvers>>, resolver: R) => IDIContainer<ContainerResolvers & { | ||
[n in N]: ReturnType<R>; | ||
}>; | ||
update: <N extends keyof ContainerResolvers, R extends Factory<ContainerResolvers>>(name: StringLiteral<N>, resolver: R) => IDIContainer<{ | ||
[P in Exclude<keyof ContainerResolvers, N>]: ContainerResolvers[P]; | ||
} & { | ||
[n in N]: ReturnType<R>; | ||
}>; | ||
has: (name: string) => boolean; | ||
extend: <E extends (container: IDIContainer<ContainerResolvers>) => any>(f: E) => ReturnType<E>; | ||
get: <Name extends keyof ContainerResolvers>(dependencyName: Name) => ContainerResolvers[Name]; | ||
}; |
{ | ||
"name": "rsdi", | ||
"version": "3.0.1", | ||
"version": "3.0.2", | ||
"description": "TypeScript dependency injection container. Strong types without decorators.", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
29669
14
250
0