Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove the inversify-binding-decorators dependency from templates #253

Open
rsaz opened this issue Apr 4, 2024 · 0 comments
Open

Remove the inversify-binding-decorators dependency from templates #253

rsaz opened this issue Apr 4, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@rsaz
Copy link
Member

rsaz commented Apr 4, 2024

Description

Remove the dependency of inversify-binding-decorators library from the templates. Currently the only functionality in used from this library is the @provide decorator. All the other decorators such as @provideSingleton and @provideTransient

In this task, core will provide the decorators as an abstraction from inversify-bindings as we currently do for provide singleton and request.

The @provide decorators should be moved to the decorator folder in the core.
Before moving this piece of functionality, analyze other functionalities from the library such as:

  • Fluent api binding decorator
  • using provide multiple times
  • using symbols as identifies
  • creating alias
  • auto provide utility

Requirements

Objective: Eliminate the reliance on the inversify-binding-decorators library by incorporating the @provide decorator's functionality into the core module of the framework. Ensure all existing functionalities related to dependency injection and service provision are preserved and efficiently integrated into the core architecture.

Conduct a thorough review of the inversify-binding-decorators library, specifically focusing on:

  • The @provide decorator usage.
  • The utility of additional decorators such as @provideSingleton and @provideTransient, ensuring these are already abstracted within the core.
  • Other features including fluent API binding, multiple uses of @provide, symbol as identifiers, alias creation, and the auto-provide utility.
  • Decorator Integration:
  • Migrate the @provide decorator to the core/decorator folder. Ensure this migration includes not just the relocation of code but also the adaptation of the decorator to fit the core module’s architecture and conventions.

Compatibility and Extension:

  • Design the integrated @provide decorator to be fully compatible with the core module’s existing dependency injection mechanisms.
  • Ensure the decorator supports all the analyzed functionalities from the inversify-binding-decorators library that are deemed necessary and beneficial for the core module.

Testing:

  • Develop comprehensive tests to verify the @provide decorator's functionality within the core module. Tests should cover:
    Standard usage scenarios.
  • Advanced scenarios identified during the functionality analysis (e.g., using symbols as identifiers, creating aliases).
  • Compatibility with existing @provideSingleton and @provideTransient functionalities.

Documentation:

  • Update the project documentation to reflect the removal of the inversify-binding-decorators dependency and the integration of the @provide decorator into the core.
  • Provide clear examples and guidance on using the new core-based @provide decorator, including any new features or syntax introduced.
@rsaz rsaz added the enhancement New feature or request label Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Backlog
Development

No branches or pull requests

1 participant