
Dependency injection for React done right. Hierarchical injection on both component and service layer powered by injection-js (Angular DI framework)
Navigating dependency injection in React can be tricky, but with rea-di, that challenge is significantly reduced. Pronounced "Ready", this library brings a hierarchical injection system that allows for seamless integration of services within your React components. Drawing inspiration from Angular's dependency injection framework, rea-di stands out by eliminating the need for an Angular environment, making it a lightweight solution that developers can easily adopt.
With its straightforward API and emphasis on both components and state management, rea-di encourages a more organized and efficient approach to handling dependencies. Whether you are building a small application or a large-scale project, rea-di provides the tools to ensure that your components can interact with services in a clean and understandable manner.
Hierarchical Dependency Injection: Easily manage dependencies across both the component and service layers without the bulk of Angular.
Lightweight Polyfill Requirement: A simple 3kB polyfill for the Reflect API is recommended, promoting minimalism in your project setup.
Supports TypeScript: Enhance your development experience with experimental decorators and metadata support, allowing for better type inference and error handling.
Flexible Service Management: Extend a base service class to incorporate state management similar to React components, giving you control over service-side state efficiently.
High Order Components: Utilize two high order components for service registration and injection, offering flexibility in how you architect your application.
Debug Mode Option: Enable debug mode to visualize the injector tree, which is incredibly useful for debugging and understanding service relationships.
Tuple Helper Function: Streamline the injection of multiple providers using a tuple, avoiding common TypeScript pitfalls.
Optional Injection Support: Implement optional injections to prevent errors when specific services might not be provided, enhancing your app's resilience.
With these features, rea-di offers an organized, efficient, and TypeScript-friendly solution for handling dependency injection in React applications.

Angular is a TypeScript-based open-source framework by Google for building dynamic single-page applications and cross-platform mobile apps with MVC architecture and a rich set of features.
React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components
RollupJS is a popular and efficient JavaScript module bundler that takes the code from multiple modules and packages them into a single optimized file, minimizing the overall size of the application and improving its performance.
TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.