InversifyJS icon indicating copy to clipboard operation
InversifyJS copied to clipboard

Support @singleton annotation

Open mikeki opened this issue 2 years ago • 2 comments

Expected Behavior

Other IoC libraries have support for the @singleton annotation which indicates that an @injectable class will always resolve inSingletonScope.

I think having support for this annotation would be extremely helpful for my team, and other teams that use inversify.

Current Behavior

Currently it is necessary to create a binding just to mark a class as Singleton, but being singleton is such a core aspect of dependency injection.

mikeki avatar Aug 08 '23 00:08 mikeki

Hi! If you are using mostly singleton scope dpeendencies in a container you can pass the option defaultScope to the container when you create it:

const container = new Container({ defaultScope: 'Singleton'})

carlossalasamper avatar Aug 27 '23 10:08 carlossalasamper

Thank you @carlossalasamper, not all of my injections are singletons, but I was poking around and found https://github.com/inversify/inversify-binding-decorators which allows to create the annotation I needed

IMO we should just get that project as part of the main InversifyJS project too

mikeki avatar Aug 27 '23 17:08 mikeki