Socket
Socket
Sign inDemoInstall

rsdi

Package Overview
Dependencies
0
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.3.0 to 2.4.0

1

dist/DIContainer.d.ts

@@ -27,2 +27,3 @@ import { DependencyResolver, IDIContainer, NamedResolvers, ResolveDependencyType, ResolverName, ConvertToDefinedDependencies, NonStrictNamedResolvers } from "./types";

private addResolver;
__(): ContainerResolvers;
}

@@ -29,0 +30,0 @@ /**

7

dist/DIContainer.js

@@ -34,5 +34,3 @@ "use strict";

*/
DIContainer.prototype.get = function (dependencyName,
// @todo: move parent deps to separate method
parentDeps) {
DIContainer.prototype.get = function (dependencyName, parentDeps) {
if (parentDeps === void 0) { parentDeps = []; }

@@ -78,2 +76,5 @@ var name = (0, DefinitionName_1.definitionNameToString)(dependencyName);

};
DIContainer.prototype.__ = function () {
throw new Error("Method not implemented.");
};
return DIContainer;

@@ -80,0 +81,0 @@ }());

@@ -8,5 +8,5 @@ import { DependencyResolver } from "../types";

protected parentDeps: string[];
abstract resolve: (container: DIContainer) => T;
abstract resolve: (container: DIContainer<any>) => T;
setParentDependencies(parentDeps: string[]): void;
}
export default AbstractResolver;
import AbstractResolver from "./AbstractResolver";
import { IDIContainer } from "../types";
import DIContainer from "../DIContainer";
export declare type Factory = (container: IDIContainer) => any;
export type Factory = (container: IDIContainer) => any;
/**

@@ -6,0 +6,0 @@ * FactoryResolver - allows to use custom function to build dependency

@@ -46,2 +46,3 @@ "use strict";

var constructorParameters = (0, DIContainer_1.resolveFunctionParameters)(diContainer, _this.deps, _this.parentDeps);
// eslint-disable-next-line new-cap
var object = new ((_a = _this.constructorFunction).bind.apply(_a, __spreadArray([void 0], constructorParameters, false)))();

@@ -48,0 +49,0 @@ _this.methods.forEach(function (method) {

@@ -30,3 +30,4 @@ "use strict";

_this.resolve = function (container) {
return container.get(_this.existingDefinitionName, _this.parentDeps);
var resolved = container.get(_this.existingDefinitionName, _this.parentDeps);
return resolved;
};

@@ -33,0 +34,0 @@ _this.existingDefinitionName = existingDefinitionName;

@@ -5,7 +5,7 @@ import ObjectResolver from "./resolvers/ObjectResolver";

import FactoryResolver from "./resolvers/FactoryResolver";
export declare type DependencyResolver<T extends any = any> = {
export type DependencyResolver<T extends any = any> = {
setParentDependencies: (parentDeps: string[]) => void;
resolve: (container: DIContainer) => T;
resolve: (container: DIContainer<any>) => T;
};
export declare type AnyNamedResolvers = {
export type AnyNamedResolvers = {
[k: string]: DependencyResolver;

@@ -22,3 +22,3 @@ };

*/
export declare type NonStrictNamedResolvers = {
export type NonStrictNamedResolvers = {
[k: string]: DependencyResolver | any;

@@ -33,12 +33,12 @@ };

*/
export declare type NamedResolvers = {
export type NamedResolvers = {
[k: string]: DependencyResolver;
};
export declare type ConvertToDefinedDependencies<T = NonStrictNamedResolvers> = {
export type ConvertToDefinedDependencies<T = NonStrictNamedResolvers> = {
[K in keyof T]: T[K] extends DependencyResolver ? T[K] : DependencyResolver<T[K]>;
};
export declare type WrapWithResolver<T extends any[]> = {
export type WrapWithResolver<T extends any[]> = {
[K in keyof T]: T[K] | DependencyResolver<T[K]>;
};
declare type Resolve<N extends DependencyResolver> = N extends {
type Resolve<N extends DependencyResolver> = N extends {
resolve(...args: any[]): infer R;

@@ -49,16 +49,16 @@ } ? R : never;

}
export declare type FetchClassesFromContainerResolvers<ContainerResolvers extends NamedResolvers = AnyNamedResolvers> = {
export type FetchClassesFromContainerResolvers<ContainerResolvers extends NamedResolvers = AnyNamedResolvers> = {
[P in keyof ContainerResolvers]: ContainerResolvers[P] extends ObjectResolver<ClassOf<any>> ? ContainerResolvers[P] extends ObjectResolver<infer X> ? X : never : never;
}[keyof ContainerResolvers];
export declare type FetchFunctionsFromContainerResolvers<ContainerResolvers extends NamedResolvers = AnyNamedResolvers> = {
export type FetchFunctionsFromContainerResolvers<ContainerResolvers extends NamedResolvers = AnyNamedResolvers> = {
[P in keyof ContainerResolvers]: ContainerResolvers[P] extends FunctionResolver<infer FT> ? FT : never;
}[keyof ContainerResolvers];
export declare type FetchFactoriesFromContainerResolvers<ContainerResolvers extends NamedResolvers = AnyNamedResolvers> = {
export type FetchFactoriesFromContainerResolvers<ContainerResolvers extends NamedResolvers = AnyNamedResolvers> = {
[P in keyof ContainerResolvers]: ContainerResolvers[P] extends FactoryResolver<infer FT> ? FT : never;
}[keyof ContainerResolvers];
export declare type ResolverName<ContainerResolvers extends NamedResolvers = AnyNamedResolvers> = keyof ContainerResolvers | {
export type ResolverName<ContainerResolvers extends NamedResolvers = AnyNamedResolvers> = keyof ContainerResolvers | {
name: keyof ContainerResolvers;
} | FetchClassesFromContainerResolvers<ContainerResolvers> | FetchFunctionsFromContainerResolvers<ContainerResolvers> | FetchFactoriesFromContainerResolvers<ContainerResolvers>;
export declare type ParametersWithResolver<T extends (...args: any) => any> = T extends (...args: infer P) => any ? WrapWithResolver<P> : never;
export declare type MethodArgs<T extends ClassOf<any>, K extends keyof InstanceType<T>> = ParametersWithResolver<InstanceType<T>[K]>;
export type ParametersWithResolver<T extends (...args: any) => any> = T extends (...args: infer P) => any ? WrapWithResolver<P> : never;
export type MethodArgs<T extends ClassOf<any>, K extends keyof InstanceType<T>> = ParametersWithResolver<InstanceType<T>[K]>;
/**

@@ -70,3 +70,3 @@ * Resolves types using self type

*/
export declare type ResolveUsingSelfType<T> = T extends ClassOf<any> ? InstanceType<T> : T extends (...args: any) => infer FT ? FT : never;
export type ResolveUsingSelfType<T> = T extends ClassOf<any> ? InstanceType<T> : T extends (...args: any) => infer FT ? FT : never;
/**

@@ -76,3 +76,3 @@ * Tries to resolve type based on provided name and accumulated

*/
export declare type TryResolveUsingExistingResolvers<Name, ExistingNamedResolvers extends NamedResolvers> = Name extends keyof NamedResolvers ? ExistingNamedResolvers[Name] extends DependencyResolver ? Resolve<ExistingNamedResolvers[Name]> : never : never;
export type TryResolveUsingExistingResolvers<Name, ExistingNamedResolvers extends NamedResolvers> = Name extends keyof NamedResolvers ? ExistingNamedResolvers[Name] extends DependencyResolver ? Resolve<ExistingNamedResolvers[Name]> : never : never;
/**

@@ -87,3 +87,3 @@ * Resolve dependency type

*/
export declare type ResolveDependencyType<ExistingNamedResolvers extends NamedResolvers = NamedResolvers, Name extends ResolverName<ExistingNamedResolvers> = ResolverName<ExistingNamedResolvers>> = TryResolveUsingExistingResolvers<Name, ExistingNamedResolvers> extends never ? ResolveUsingSelfType<Name> : TryResolveUsingExistingResolvers<Name, ExistingNamedResolvers>;
export type ResolveDependencyType<ExistingNamedResolvers extends NamedResolvers = NamedResolvers, Name extends ResolverName<ExistingNamedResolvers> = ResolverName<ExistingNamedResolvers>> = TryResolveUsingExistingResolvers<Name, ExistingNamedResolvers> extends never ? ResolveUsingSelfType<Name> : TryResolveUsingExistingResolvers<Name, ExistingNamedResolvers>;
export interface IDIContainer<ContainerResolvers extends NamedResolvers = AnyNamedResolvers> {

@@ -90,0 +90,0 @@ get: <UserDefinedType = void, Name extends ResolverName<ContainerResolvers> = ResolverName<ContainerResolvers>>(dependencyName: Name) => UserDefinedType extends void ? ResolveDependencyType<ContainerResolvers, Name> : UserDefinedType;

{
"name": "rsdi",
"version": "2.3.0",
"version": "2.4.0",
"description": "Simple dependency injection container for JavaScript/TypeScript",

@@ -39,4 +39,5 @@ "scripts": {

"devDependencies": {
"@tsd/typescript": "^4.6.4",
"@types/jest": "^27.5.0",
"@tsd/typescript": "^5.0.4",
"@types/jest": "^29.5.1",
"@types/node": "^20.1.2",
"@typescript-eslint/eslint-plugin": "^5.27.1",

@@ -50,10 +51,10 @@ "eslint": "^8.17.0",

"husky": "^7.0.2",
"jest": "^28.0.3",
"jest-runner-tsd": "^3.0.0",
"jest": "^29.5.0",
"jest-runner-tsd": "^5.0.0",
"lint-staged": "^11.2.0",
"prettier": "^2.6.2",
"ts-jest": "^28.0.1",
"ts-jest": "^29.1.0",
"tsd": "^0.20.0",
"typescript": "^4.6.4"
"typescript": "^5.0.4"
}
}

@@ -99,6 +99,4 @@ # RSDI - Dependency Injection Container

public async register(userData: SignupData) {
// validate
const user = this.userRepository.saveNewUser(userData);
// send sign up email
return user;
// validate and send sign up email
return this.userRepository.saveNewUser(userData);
}

@@ -138,3 +136,3 @@ }

),
[UserRegistrator.name]: object(UserRegistrator).contrstruct(
[UserRegistrator.name]: object(UserRegistrator).construct(
use(MyDbProviderUserRepository.name)

@@ -141,0 +139,0 @@ ),

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc