Skip to content
/ IoC Public

📦 Simple IoC Container for Node.js

License

Notifications You must be signed in to change notification settings

SecJS/IoC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IoC Container 📦

Very simple IoC container for NodeJS

GitHub followers GitHub stars

Buy Me A Coffee

GitHub language count Repository size License Commitizen

The intention behind this repository is to always maintain a viable and simple IoC to use in any type of NodeJS applications, with or without Frameworks

Installation

npm install @secjs/ioc

Usage

Set

Container can register dependencies for you, every container.get will create a new instance for UserService.

import { Container } from '@SecJS/IoC'
import { UserService } from 'app/Services/UserService'

const container = new Container()

container.set(UserService)
const userService = container.get<UserService>('UserService', 'props', 'to', 'UserService Constructor here')

console.log(userService.findAll())

Singleton

Container can register singleton dependencies, when singleton container.get will return the same UserService instance all time.

import { Container } from '@SecJS/IoC'
import { UserService } from 'app/Services/UserService'

const container = new Container()

container.singleton(UserService, 'props', 'to', 'UserService Constructor here')
const userService = container.get<UserService>('UserService')

console.log(userService.findAll())

Singleton can register static objects and arrays too, but for arrays and objects the name is required:

container.singleton([], 'myArray')
container.singleton({}, 'myObject')

console.log(container.get('myArray')) // []
console.log(container.get('myObject')) // {}

License

Made with 🖤 by jlenon7 👋