tramway.js
A collection of libraries to help build your next project.
Whether it's an API built with ExpressJS...
You can leverage the common boilerplate and Dependency Injection to quickly get started.
...Or front-end client built with ReactJS
You can leverage the routing configuration from your API to create corresponding features.
Features
SOLID design principles out of the box
Tramway leverages design patterns to speed up development, giving you the flexibility to add the pieces you'd normally need to boilerplate.
A collection of opt-in libraries
Tramway, together with all of its parts, is a modular solution to building applications.
The Core
Dependency Injector
Increase reusability within your application and other applications with a non-intrusive configuration-driven dependency injection library. Inspired by Symfony's container system, Tramway's Dependency Injection library lets you assign keys to services and parameters and dynamically builds the instances of your services as they become required within your application.
Routing
Add a standard configuration layer over Express or React Router to decouple middleware and routing logic, as well as streamline with dependency injection.
Providers
Streamline your data sources with a consistent interface and leverage dependency injection to ease changes if necessary. Some providers for MySQL, MongoDB, APIs and local caching are ready for you to use.
Commands
Inspired by Symfony's commands, Tramway's Command library allows you to standardize commands with a configurable CLI interface, arguments and options.
Logging
Keep track of your application's health and much more with a logger of your choice.