Skip to content

Releases: bkonkle/nakago

v0.15.0

14 Nov 22:16
ec10a51
Compare
Choose a tag to compare

0.15.0

Removed

  • nakago-async-graphql: Removed the generic SchemaBuilder, since it only works for schemas with no dependencies that can implement Default.

v0.14.1

14 Nov 21:29
d98663b
Compare
Choose a tag to compare

0.14.1

Added

  • nakago-axum: Add a default Axum AddLoaders struct that wraps the base nakago::config::AddLoaders struct.
  • nakago-sea: Add a default SeaOrm AddLoaders struct that wraps the base nakago::config::AddLoaders struct.

Changed

  • nakago: Introduced the derive-new crate and used it in a few places.
  • nakago-axum: Introduced the derive-new crate and used it in a few places.

v0.14.0

08 Nov 23:43
03f09b8
Compare
Choose a tag to compare

0.14.0

Changed

  • nakago: Renamed nakago::error to nakago::errors
  • nakago-axum: Moved away from a custom Axum State, using a hardcoded State that simply contains an Inject 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: Added nakago-axum::State and nakago-axum::Inject for smoother interop with Axum handlers.
  • nakago-async-graphql: Added nakago-async-graphql::errors::to_graphql_response to convert nakago::Error into a GraphQL response.

v0.13.0

31 Oct 22:34
51c4257
Compare
Choose a tag to compare

0.13.0

Changed

  • Updated imports, added new public use statements, and renamed types to conform to RFC-356.

v0.12.1

10 Oct 14:24
5543355
Compare
Choose a tag to compare

0.12.1

Added

  • Added an optional Backtrace to the NotFound error, which uses the RUST_BACKTRACE variable to determine whether or not to include it.

Changed

  • Fixed the Config init process so that it would work even if you haven't added any loaders.

v0.12.0

10 Oct 14:22
ee97c4e
Compare
Choose a tag to compare

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

12 Sep 04:01
a14a041
Compare
Choose a tag to compare

0.11.0

Added

  • Added test utils to nakago, nakago-axum, and nakago-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

08 Sep 13:29
398b6d3
Compare
Choose a tag to compare

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 the nakago-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

30 Aug 21:39
7b823f6
Compare
Choose a tag to compare

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.
  • Added the Inject::override_tag() and Inject::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

17 Aug 03:11
7b823f6
Compare
Choose a tag to compare

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 necessary impl 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 a Provider 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.