TypeWire 0.1.0 is a DI library for TypeScript that promotes clarity and composability as systems scale, without decorators or magic, focusing on explicit registration and typed wires.
It addresses the challenge of maintaining clear boundaries in systems by formalizing dependency injection and construction behavior, shifting ownership to individual wires.
TypeWire avoids heavy decorator usage and tight coupling to frameworks, offering declarative type definitions and clear boundaries between resolution, behavior, and configuration.
Each wire in TypeWire exposes methods for dependency instance retrieval and application, allowing use with compatible DI frameworks.
By eliminating guesswork and inference via decorators, TypeWire emphasizes types and functions for a more natural DI modeling tool.
Example code demonstrates how to define and use wires for services like UserService and UserController, emphasizing explicit registration and separation of concerns.
TypeWire allows easy override of dependencies for testing purposes, promoting explicit mocking without complex setup.
It supports various instantiation patterns like classes, factory functions, and async constructors, helping formalize system glue as complexity grows.
TypeWire builds on architectural clarity themes and series by the author, offering a transparent and stable solution, suited for TypeScript projects.
Feedback is welcome from developers dealing with messy construction logic, blurry service boundaries, or complex DI scenarios, with the project available on GitHub.