Skip to content

Service Container ​

The Service Container is CurisJS's powerful dependency injection container.

Work in Progress

This feature is currently under development. Documentation will be available soon.

Overview ​

The Service Container (IoC Container) is a powerful tool for managing class dependencies and performing dependency injection. It allows you to:

  • Bind classes and interfaces
  • Resolve dependencies automatically
  • Manage singletons
  • Create scoped instances
  • Use contextual binding

Basic Usage ​

typescript
import { Container } from '@curisjs/core';

// Create container
const container = new Container();

// Bind a service
container.bind('UserService', UserService);

// Resolve a service
const userService = container.make('UserService');

Binding ​

Simple Binding ​

typescript
container.bind('logger', Logger);

Singleton Binding ​

typescript
container.singleton('database', Database);

Instance Binding ​

typescript
const config = { apiKey: 'secret' };
container.instance('config', config);

Auto-Resolution ​

The container can automatically resolve dependencies:

typescript
class UserController {
  constructor(
    private userService: UserService,
    private logger: Logger
  ) {}
}

// Container will auto-inject dependencies
const controller = container.make(UserController);

Coming Soon ​

Full documentation will include:

  • Advanced binding techniques
  • Contextual binding
  • Method injection
  • Container events
  • Service providers integration
  • Best practices

Released under the MIT License.