Releases: bkonkle/nakago
Releases · bkonkle/nakago
v0.15.0
v0.14.1
0.14.1
Added
nakago-axum
: Add a default AxumAddLoaders
struct that wraps the basenakago::config::AddLoaders
struct.nakago-sea
: Add a default SeaOrmAddLoaders
struct that wraps the basenakago::config::AddLoaders
struct.
Changed
nakago
: Introduced thederive-new
crate and used it in a few places.nakago-axum
: Introduced thederive-new
crate and used it in a few places.
v0.14.0
0.14.0
Changed
nakago
: Renamednakago::error
tonakago::errors
nakago-axum
: Moved away from a custom Axum State, using a hardcoded State that simply contains anInject
container instead.nakago-axum
: Major routing improvements, with drastic simplification from the previous version.nakago-async-graphql
: Reworked things around the new State approach for Axum.- Updated examples.
Added
nakago-axum
: Addednakago-axum::State
andnakago-axum::Inject
for smoother interop with Axum handlers.nakago-async-graphql
: Addednakago-async-graphql::errors::to_graphql_response
to convertnakago::Error
into a GraphQL response.
v0.13.0
v0.12.1
v0.12.0
0.12.0
Changed
- Update Github Actions workflows
- Use a build tag for integration tests rather than ignoring them
- Simplify Docker Compose resource management for the example projects
- Added the config path to the TestUtils
- Added to the tutorial documentation
Removed
- Simplified the DatabaseConfig
v0.11.0
0.11.0
Added
- Added test utils to
nakago
,nakago-axum
, andnakago-async-graphql
. - Added a convenience method to retrieve the config for an Application by tag or type.
Changed
- Updated
nakago-axum
to make the mocked authenticate method injectable by DI rather than using build tags. - Updated the Async-GraphQL example to streamline things and take advantage of the
TestUtils
provided in the library.
v0.10.0
0.10.0
Added
- Added a Config tag and a State tag to the AxumApplication struct, to prevent the need for explicit turbofish syntax when injecting those dependencies.
- Added "modify" and "modify_type" convenience methods, making it easier to handle cases where you want to consume a dependency, modify it, and then immediately re-inject it.
- Added an
HttpConfigLoader
to thenakago-axum
crate, and added it to the list of default config loaders for Axum. - Added a
simple
example with a simple Axum HTTP application with authentication. - Added to the
website/docs/tutorial.md
documentation.
v0.9.0
0.9.0
Added
- Added the
nakago-async-graphql
library with an initial implementation of schema building. - Added a new Lifecycle Event,
Load
, which is intended for use before the config is loaded. During this phase, an Application will typically set up all of its Providers and ConfigLoaders.- The
Init
Lifecycle Event is now used for constructing anything needed to run the app. This is typically where an Application initializes things like GraphQL schemas, Axum routes, or anything else that needs to make use of Provided dependencies or the loaded Config.
- The
- Added the
Inject::override_tag()
andInject::override_type()
methods to allow for injecting a dependency whether or not it was already there, returning a boolean result to indicate whether the key already existed or not.
Changed
- Re-organized the Async-GraphQL example to be more modular and easier to follow.
- Moved the Injector and Provider code into their own files within the
inject
module.
v0.8.0
0.8.0
Added
- Added the
nakago-sea-orm
library with an initial implementation of SeaORM Configs, Connections, and Mocked tools for testing. - Added the
eject
operation, mostly used in testing when you want to unload the container and take ownership of referenced dependencies. - Added a
#[Provider]
proc macro for trait implementations to automatically provide the necessaryimpl Provider<Dependency>
needed for the Provider to be injected into the container.
Changed
- Re-introduced the
<T>
type parameter to Providers, allowing various container methods to warn you before you pass aProvider
that provides the wrong type. - Updated tests in the Async-GraphQL package to incorporate the dependency injection system, and polished up the init flow a bit more.