Isqanderm / ioc

MIT License
1 stars 0 forks source link

npm license build

Nexus IoC is a powerful and flexible Inversion of Control (IoC) container for TypeScript applications. Inspired by Angular and NestJS, it leverages decorators to provide a simple and efficient way to manage dependencies and modules.

Table of Contents

Features

Installation

npm install nexus-ioc reflect-metadata

Quick Start

Step 1: Define Your Modules and Providers

Create a module and a provider using decorators.

import { NsModule, Injectable, Inject } from 'nexus-ioc';

@Injectable()
class DependencyService {
  public readonly name = 'World';
}

@Injectable()
export class AppService {
  constructor(
    @Inject(DependencyService)
    private readonly dependencyService: DependencyService,
  ) {
  }

  getHello(): string {
    return `Hello ${this.dependencyService.name}!`;
  }
}

@NsModule({
  providers: [AppService, DependencyService],
})
export class AppModule {}

Step 2: Create an Application

Create and bootstrap your application.

import { NexusApplicationsBrowser } from 'nexus-ioc/dist/server';
import { AppModule, AppService } from './app.module';

async function bootstrap() {
  const app = await NexusApplicationsBrowser
    .create(AppModule)
    .bootstrap();

  const appService = app.get<AppService>(AppService);

  console.log(appService?.getHello());
}

bootstrap();

License

This project is licensed under the MIT License. See the LICENSE file for details.

Author

Isqanderm (Aleksandr Melnik) - LinkedIn

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

Acknowledgements

Special thanks to the developers of Angular and NestJS for the inspiration.

Wiki

For more detailed documentation, please visit the Wiki.