Update : @bejibun/core v0.4.24
Improvements
CORS Initialization Optimization
CORS configuration is now loaded during application startup instead of being resolved per request.
Benefits :
- Reduced request-processing overhead
- Faster response times
- Improved throughput under high traffic
- More efficient request lifecycle
https://t.co/cVijr3Ah5E
Update : @bejibun/core v0.4.24
Improvements
CORS Initialization Optimization
CORS configuration is now loaded during application startup instead of being resolved per request.
Benefits :
- Reduced request-processing overhead
- Faster response times
- Improved throughput under high traffic
- More efficient request lifecycle
https://t.co/cVijr3Ah5E
Update : @bejibun/core v0.4.23
Counter & Numeric Value Utilities
This release introduces built-in helpers for managing counters and numeric values across Redis and Cache drivers.
---
Redis Utilities
Added new Redis helper methods :
- Added `.exists()` Check whether a key exists
- Added `.incr()` Increment a numeric value by 1
- Added `.decr()` Decrement a numeric value by 1
- Added `.incrBy()` Increment a numeric value by a specified amount
- Added `.decrBy()` Decrement a numeric value by a specified amount
Example :
await Redis.exists("visitors");
await Redis.incr("visitors");
await Redis.decr("visitors");
await Redis.incrBy("visitors", 10);
await Redis.decrBy("visitors", 5);
---
Cache Utilities
Added atomic cache counter operations :
- Added `.incrementBy()` Increment a numeric value by a specified amount
- Added `.decrementBy()` Decrement a numeric value by a specified amount
Example :
await Cache.incrementBy("cache-key", 10);
await Cache.decrementBy("cache-key", 5);
These helpers eliminate the need for manual read-modify-write operations and provide a cleaner API for working with numeric values.
https://t.co/k0XKjzPfws
Update : @bejibun/core v0.4.23
Counter & Numeric Value Utilities
This release introduces built-in helpers for managing counters and numeric values across Redis and Cache drivers.
---
Redis Utilities
Added new Redis helper methods :
- Added `.exists()` Check whether a key exists
- Added `.incr()` Increment a numeric value by 1
- Added `.decr()` Decrement a numeric value by 1
- Added `.incrBy()` Increment a numeric value by a specified amount
- Added `.decrBy()` Decrement a numeric value by a specified amount
Example :
await Redis.exists("visitors");
await Redis.incr("visitors");
await Redis.decr("visitors");
await Redis.incrBy("visitors", 10);
await Redis.decrBy("visitors", 5);
---
Cache Utilities
Added atomic cache counter operations :
- Added `.incrementBy()` Increment a numeric value by a specified amount
- Added `.decrementBy()` Decrement a numeric value by a specified amount
Example :
await Cache.incrementBy("cache-key", 10);
await Cache.decrementBy("cache-key", 5);
These helpers eliminate the need for manual read-modify-write operations and provide a cleaner API for working with numeric values.
https://t.co/k0XKjzPfws
Update : @bejibun/core v0.4.22
WebSocket Controller Enhancements
To simplify connection management and enable more advanced real-time features, the current WebSocket client instance is now automatically passed to controller methods.
This allows handlers to :
- Access the active client connection directly
- Identify the sender without performing additional lookups
- Broadcast messages more efficiently
- Build room, presence, and private messaging systems with less boilerplate
https://t.co/HnJq0ZH9iR
Update : @bejibun/core v0.4.22
WebSocket Controller Enhancements
To simplify connection management and enable more advanced real-time features, the current WebSocket client instance is now automatically passed to controller methods.
This allows handlers to :
- Access the active client connection directly
- Identify the sender without performing additional lookups
- Broadcast messages more efficiently
- Build room, presence, and private messaging systems with less boilerplate
https://t.co/HnJq0ZH9iR
Update : @bejibun/core v0.4.0
Introduce WebSocket Router
- Introduced WebSocket route support with a simple router-based setup
- Added `Router.websocket()` method for registering WebSocket handlers directly from the router
- Enabled prefix chaining support for WebSocket routes using `Router.prefix()`
- Simplified WebSocket initialization to match standard HTTP route definitions for a more consistent developer experience
- WebSocket routes now feel identical to regular route registration
- Reduced boilerplate for real-time feature setup
- Cleaner and more maintainable routing configuration
https://t.co/Y1si5Xee3I
Update : @bejibun/core v0.4.0
Introduce WebSocket Router
- Introduced WebSocket route support with a simple router-based setup
- Added `Router.websocket()` method for registering WebSocket handlers directly from the router
- Enabled prefix chaining support for WebSocket routes using `Router.prefix()`
- Simplified WebSocket initialization to match standard HTTP route definitions for a more consistent developer experience
- WebSocket routes now feel identical to regular route registration
- Reduced boilerplate for real-time feature setup
- Cleaner and more maintainable routing configuration
https://t.co/Y1si5Xee3I
Update : @bejibun/core v0.3.16
Changes :
- Swagger improvements
- Adds a sleep to `queue:work` if the job is empty to prevent access to the database
https://t.co/RtzvEducnw
Update : @bejibun/core v0.3.16
Changes :
- Swagger improvements
- Adds a sleep to `queue:work` if the job is empty to prevent access to the database
https://t.co/RtzvEducnw
Update : @bejibun/core v0.3.15
Schedule worker improvements
Fixed :
- Reworked schedule worker execution logic to fix cron timing inaccuracies
- Fixed potential duplicate execution caused by cron re-evaluation per tick
- Fixed drift issues in scheduling caused by `cron-parser.prev()` based checks
- Fixed possible stuck running state by ensuring cleanup in finally
- Improved shutdown handling of schedule worker interval
Changes :
- Replaced per-tick cron parsing with cached `CronExpression`
- Added `nextRun` based execution system instead of `lastRuns` tracking
- Replaced `setInterval` loop with adaptive `setTimeout` scheduler (better timing accuracy)
- Added `prepareSchedules()` step during boot to register all cron jobs once
- Improved `run()` execution to await process completion (`proc.exited`)
- Reduced runtime overhead in scheduler tick loop
- Reduced CPU usage by eliminating repeated cron parsing every second
- More efficient scheduler loop using timestamp comparisons instead of cron evaluation
- Better scaling behavior when many scheduled tasks exist
- Removed internal reliance on lastRuns tracking system
- Scheduling logic now depends entirely on precomputed `nextRun`
- Behavior may differ slightly for edge-case cron expressions due to new evaluation model
https://t.co/FVdCHkISaY
Update : @bejibun/core v0.3.15
Schedule worker improvements
Fixed :
- Reworked schedule worker execution logic to fix cron timing inaccuracies
- Fixed potential duplicate execution caused by cron re-evaluation per tick
- Fixed drift issues in scheduling caused by `cron-parser.prev()` based checks
- Fixed possible stuck running state by ensuring cleanup in finally
- Improved shutdown handling of schedule worker interval
Changes :
- Replaced per-tick cron parsing with cached `CronExpression`
- Added `nextRun` based execution system instead of `lastRuns` tracking
- Replaced `setInterval` loop with adaptive `setTimeout` scheduler (better timing accuracy)
- Added `prepareSchedules()` step during boot to register all cron jobs once
- Improved `run()` execution to await process completion (`proc.exited`)
- Reduced runtime overhead in scheduler tick loop
- Reduced CPU usage by eliminating repeated cron parsing every second
- More efficient scheduler loop using timestamp comparisons instead of cron evaluation
- Better scaling behavior when many scheduled tasks exist
- Removed internal reliance on lastRuns tracking system
- Scheduling logic now depends entirely on precomputed `nextRun`
- Behavior may differ slightly for edge-case cron expressions due to new evaluation model
https://t.co/FVdCHkISaY
Update : @bejibun/core v0.3.14
Fixed :
- Router.match() and Router.any() not working
- Fix route list for multiple method
What's New :
- Added config/route.ts for route list config
- Added bun ace route:list for list all registered routes
https://t.co/7IHM3eUshR
Update : @bejibun/core v0.3.14
Fixed :
- Router.match() and Router.any() not working
- Fix route list for multiple method
What's New :
- Added config/route.ts for route list config
- Added bun ace route:list for list all registered routes
https://t.co/7IHM3eUshR
Update : @bejibun/core v0.3.13
What's New :
- Added global config() for getting value from config path
- Added global env() for getting value from env file
- Added config/performance.ts to turn features into on/off for better performances
https://t.co/uuWhzR44Up
Update : @bejibun/core v0.3.13
What's New :
- Added global config() for getting value from config path
- Added global env() for getting value from env file
- Added config/performance.ts to turn features into on/off for better performances
https://t.co/uuWhzR44Up