Socket
Socket
Sign inDemoInstall

rsdi

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rsdi - npm Package Compare versions

Comparing version 1.0.8 to 1.0.9

2

package.json
{
"name": "rsdi",
"version": "1.0.8",
"version": "1.0.9",
"description": "dependency injection container",

@@ -5,0 +5,0 @@ "scripts": {

@@ -156,3 +156,4 @@ # Dependency Injection Container

In most scenarios, following approach will work.
The following approach will work in most scenarios.
```typescript

@@ -187,42 +188,4 @@

// main.ts
const userRepository = configureDI().get<UserRepository>("UserRepository");
const diContainer = await configureDI();
const userRepository = diContainer.get<UserRepository>("UserRepository");
```
If you still want to use lazy initialization, we advise you to resolve promises inside your classes.
```typescript
// UserRepository.ts
class UserRepository {
private dbConnection: any;
public constructor(private readonly dbConnectionPromise: any) {}
async init() {
this.dbConnection = await this.dbConnectionPromise;
}
async findUser() {
await this.init();
return await this.dbConnection.find(...)
}
}
// index.ts
import { createConnections } from "my-orm-library";
import DIContainer, { factory, IDIContainer } from "rsdi";
const container = new DIContainer();
container.addDefinitions({
"DbConnection": factory((container: IDIContainer) => {
// return Promise{<pending>} instead of await createConnection()
return createConnections([{
username: container.get("DB_USERNAME"),
// ...
}])
}),
"UserRepository": object(UserRepository).construct(
get("DbConnection")
)
});
const userRepository = container.get<UserRepository>("UserRepository");
```
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc