Repository navigation
Releases: thomas3577/oakest
Release list
v0.1.1
What's Changed
- Document and export public types for full JSR symbol docs by @thomas3577 in #15
Full Changelog: v0.1.0...v0.1.1
v0.1.0
What's Changed
- Feat/repalce inject by @thomas3577 in #1
- Feat/repalce inject by @thomas3577 in #2
- fix fmt by @thomas3577 in #3
- fix lint issues by @thomas3577 in #4
- Delete CHANGELOG.md by @thomas3577 in #5
- Add Dependabot config for Deno and GitHub Actions by @thomas3577 in #6
- Bump denoland/setup-deno from 2.0.4 to 2.0.5 by @dependabot[bot] in #7
- Bump actions/checkout from 6.0.2 to 7.0.1 by @dependabot[bot] in #8
- Add .gitattributes, git hooks, and CLAUDE.md git guidelines by @thomas3577 in #9
- Chore/libs by @thomas3577 in #11
- Bump @needle-di/core from 1.1.3 to 1.2.0 by @dependabot[bot] in #10
- Updated libs by @thomas3577 in #13
- Bump @needle-di/core from 1.2.0 to 1.2.1 by @dependabot[bot] in #12
- Chore/prepare release by @thomas3577 in #14
New Contributors
- @thomas3577 made their first contribution in #1
- @dependabot[bot] made their first contribution in #7
Full Changelog: 0.0.20...v0.1.0
v0.1.0-alpha.3
What's Changed
- Updated libs by @thomas3577 in #13
- Bump @needle-di/core from 1.2.0 to 1.2.1 by @dependabot[bot] in #12
Full Changelog: v0.1.0-alpha.2...0.1.0-alpha.3
v0.1.0-alpha.2
What's Changed
- Add Dependabot config for Deno and GitHub Actions by @thomas3577 in #6
- Bump denoland/setup-deno from 2.0.4 to 2.0.5 by @dependabot[bot] in #7
- Bump actions/checkout from 6.0.2 to 7.0.1 by @dependabot[bot] in #8
- Add .gitattributes, git hooks, and CLAUDE.md git guidelines by @thomas3577 in #9
- Chore/libs by @thomas3577 in #11
- Bump @needle-di/core from 1.1.3 to 1.2.0 by @dependabot[bot] in #10
New Contributors
- @dependabot[bot] made their first contribution in #7
Full Changelog: v0.1.0-alpha.1...v0.1.0-alpha.2
v0.1.0-alpha.1
Oakest 0.1.0-alpha.1
This release is a substantial modernization of Oakest. It removes legacy metadata dependencies, switches dependency injection to Needle, replaces parameter decorators with explicit route argument resolvers, and moves the project to standard decorators.
Highlights
- Replaced
@dx/injectwith@needle-di/core - Removed the need for
reflect-metadata - Removed the need for
emitDecoratorMetadata - Migrated Oakest to standard decorators, so
experimentalDecoratorsis no longer required - Replaced parameter decorators with explicit route argument resolvers on
@Get(),@Post(), and the other HTTP decorators - Expanded test coverage and fixed multiple routing and metadata issues in the process
Breaking Changes
-
Implicit constructor injection based on emitted type metadata no longer works
-
Constructor dependencies must now be declared explicitly with
inject(...) -
Parameter decorators such as
@Body(),@Param(),@Query(),@Headers(),@Req(),@Res(), and@Ctx()have been removed -
Route handler arguments must now be declared directly on the route decorator, for example:
@Post(':id', [param<string>('id'), body<UpdateDto>(), query<string | null>('dryRun')])
-
@Controller({ injectables: [...] })has been removed -
@Injectable({ isSingleton: false })is no longer supported in the current Needle-based DI flow -
Custom middleware decorators must use the standard decorator signature and call
registerMiddlewareMethodDecorator(context, handler)
Migration
Constructor injection before:
constructor(private readonly usersService: UsersService) {}Constructor injection now:
constructor(private readonly usersService = inject(UsersService)) {}Route arguments before:
@Post(':id')
update(@Param('id') id: string, @Body() body: UpdateDto) {}Route arguments now:
@Post(':id', [param<string>('id'), body<UpdateDto>()])
update(id: string, body: UpdateDto) {}Custom middleware decorator before:
return function (target, methodName) {
registerMiddlewareMethodDecorator(target, methodName, handler);
};Custom middleware decorator now:
return function (_value, context) {
registerMiddlewareMethodDecorator(context, handler);
};Additional Improvements
- Fixed nested
routePrefixcomposition across module trees - Fixed controller deduplication leaking across separate router builds
- Fixed controller registration when multiple controllers share the same class name
- Ensured providers are aggregated consistently across nested modules so singleton behavior is preserved
- Improved the error message when
@Module()metadata is missing - Cleaned up lint and typing issues uncovered during the migration
Summary
This release makes Oakest more explicit, more predictable, and easier to maintain. If you are upgrading an existing codebase, the main things to review are constructor injection, route handler arguments, and any custom middleware decorators.