Skip to content

Tags: gburgyan/go-ctxdep

Tags

v0.9.3

Toggle v0.9.3's commit message
Add adapters and optional dependency support with validations

Introduce an adapter pattern for partial function applications and extend dependency handling with `Optional()` and `GetOptional()` features to allow handling nil dependencies gracefully. Include exhaustive validations to prevent misuse of wrappers and invalid scenarios. Add extensive documentation and tests covering adapters, optional dependencies, advanced use cases, lifecycle management, and thread safety.

v0.9.2

Toggle v0.9.2's commit message
Add cleanup functionality and optional dependency retrieval

v0.9.1

Toggle v0.9.1's commit message
Tighten up how the cache keys are generated.

This eliminates a few edge cases that could happen with key generation and adds some logging for when those cases do happen.

v0.9.0

Toggle v0.9.0's commit message
Minor doc updates.

v0.8.8

Toggle v0.8.8's commit message
Refactor timing context naming in dependencies

The timing context naming convention has been updated for improved consistency and clarity. Previously, all contexts were named 'CtxDep', but now the name reflects the target type. This change also includes an additional timing context detail that shows the generator signature. This update is reflected in the corresponding sections of the Readme.md file to ensure accurate documentation.

v0.8.7

Toggle v0.8.7's commit message
Fix wording on error log.

v0.8.6

Toggle v0.8.6's commit message
Add custom cache key generators.

v0.8.5

Toggle v0.8.5's commit message
Move to sync.Map for slot storage.

In certain pessimal cases, a slot can be created by either a parent hoist or slot cast operations. If that happened at the same time as a get, that could lead to a panic. Move to sync.Map to eliminate all possibility of a panic even in such cases.

v0.8.4

Toggle v0.8.4's commit message
Fix the hoisting of dependencies from parent contexts.

The first call would work, but the hoisting process was storing a pointer to the value, not the value itself. This was causing the _second_ access to fail.

v0.8.3

Toggle v0.8.3's commit message
Added the ability to adopt a parent context for use with dependency r…

…esolution.