@ooneex/module
v1.3.3
Published
Module system for organizing application features into cohesive units — groups controllers, entities, services, and middleware by domain
Maintainers
Readme
@ooneex/module
Module system for organizing application features into cohesive units -- groups controllers, entities, services, and middleware by domain.
Features
✅ Domain Grouping - Organize controllers, entities, middleware, and more by feature domain
✅ Controller Registration - Bundle related controllers into a single module
✅ Entity Binding - Associate database entities with their owning module
✅ Middleware Scoping - Attach middleware to specific modules
✅ Cron Jobs - Optional cron job classes scoped to a module
✅ Event Handling - Optional pub/sub event classes per module
Installation
bun add @ooneex/moduleUsage
Defining a Module
import type { ModuleType } from '@ooneex/module';
import { UserCreateController, UserListController } from './controllers';
import { UserEntity } from './entities';
import { AuthMiddleware } from './middleware';
const UserModule: ModuleType = {
controllers: [UserCreateController, UserListController],
entities: [UserEntity],
middlewares: [AuthMiddleware],
cronJobs: [],
events: [],
};
export { UserModule };Full Example
import type { ModuleType } from '@ooneex/module';
const OrderModule: ModuleType = {
controllers: [OrderCreateController, OrderListController],
entities: [OrderEntity, OrderItemEntity],
middlewares: [OrderValidationMiddleware],
cronJobs: [OrderCleanupCron],
events: [OrderCreatedEvent, OrderShippedEvent],
};API Reference
Types
ModuleType
type ModuleType = {
controllers: ControllerClassType[];
entities: EntityClassType[];
middlewares: MiddlewareClassType[];
cronJobs: CronClassType[];
events: PubSubClassType[];
};Fields:
controllers- Array of controller classes belonging to this moduleentities- Array of entity classes belonging to this modulemiddlewares- Middleware classes to apply to this modulecronJobs- Cron job classes scoped to this moduleevents- Pub/sub event classes for this module
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Development Setup
- Clone the repository
- Install dependencies:
bun install - Run tests:
bun run test - Build the project:
bun run build
Guidelines
- Write tests for new features
- Follow the existing code style
- Update documentation for API changes
- Ensure all tests pass before submitting PR
Made with ❤️ by the Ooneex team
