Create Modules

Generate advanced modules with built-in features, middleware, and route patterns. MoroJS modules provide complete functionality with minimal configuration.

Quick Start

Basic Module

Simple module

bash

1morojs-cli module create users

Creates a basic module with standard CRUD operations.

Advanced Module

Full-featured module

bash

1morojs-cli module create users \
2  --features=auth,database,validation \
3  --middleware=rate-limit,cache \
4  --with-tests --with-docs

Enterprise-ready module with authentication, caching, and documentation.

Available Features

WebSocket Support

Real-time bidirectional communication

Adds WebSocket handlers, connection management, and event broadcasting

--features=websocket

Database Integration

Complete database operations and models

Includes CRUD operations, models, migrations, and connection handling

--features=database

Authentication

User authentication and authorization

JWT tokens, session management, role-based access control

--features=auth

Caching

Response and data caching

Memory, Redis, or file-based caching with TTL configuration

--features=cache

Validation

Request validation with Zod schemas

Type-safe validation for routes, body, params, and query parameters

--features=validation

API Documentation

Automatic API documentation generation

OpenAPI/Swagger documentation with interactive testing

--features=docs

Built-in Middleware

Authentication Middleware

Protect routes with authentication

Flag:--middleware=auth
Config:{"strategy": "jwt", "roles": ["user", "admin"]}

Rate Limiting

Prevent abuse with request throttling

Flag:--middleware=rate-limit
Config:{"requests": 100, "window": 60000}

CORS

Cross-origin resource sharing

Flag:--middleware=cors
Config:{"origin": "*", "credentials": true}

Response Caching

Cache responses for performance

Flag:--middleware=cache
Config:{"ttl": 300, "strategy": "memory"}

Request Validation

Validate incoming requests

Flag:--middleware=validation
Config:{"strict": true, "stripUnknown": true}

Route Patterns

CRUD Operations

Create, Read, Update, Delete endpoints

Generated Routes:
GET /
GET /:id
POST /
PUT /:id
DELETE /:id
--routes=crud

RESTful API

RESTful resource endpoints

Generated Routes:
GET /users
POST /users
GET /users/:id
PATCH /users/:id
--routes=rest

GraphQL

GraphQL endpoint with resolvers

Generated Routes:
POST /graphql
GET /graphql (playground)
--routes=graphql

Complete Examples

User Management Module

Enterprise user module

bash

1# Create comprehensive user management module
2morojs-cli module create users \
3  --features=auth,database,validation,cache \
4  --middleware=rate-limit,auth \
5  --routes=crud \
6  --auth-roles=user,admin,moderator \
7  --with-tests \
8  --with-docs
9
10# What this generates:
11# ├── modules/users/
12# │   ├── index.ts              # Module definition
13# │   ├── routes/
14# │   │   ├── auth.ts           # Authentication routes
15# │   │   ├── users.ts          # CRUD operations
16# │   │   └── admin.ts          # Admin-only routes
17# │   ├── models/
18# │   │   └── User.ts           # User model with validation
19# │   ├── middleware/
20# │   │   ├── auth.ts           # Authentication middleware
21# │   │   └── permissions.ts    # Role-based permissions
22# │   ├── services/
23# │   │   └── UserService.ts    # Business logic
24# │   ├── tests/
25# │   │   └── users.test.ts     # Comprehensive tests
26# │   └── docs/
27# │       └── api.md            # API documentation

Real-time Chat Module

WebSocket chat module

bash

1# Create real-time chat module
2morojs-cli module create chat \
3  --features=websocket,database,auth \
4  --middleware=auth,rate-limit \
5  --auth-roles=user \
6  --with-tests
7
8# Generates WebSocket handlers for:
9# - Real-time messaging
10# - Room management
11# - User presence
12# - Message history
13# - Authentication integration

Product Catalog Module

E-commerce product module

bash

1# Create product catalog with caching
2morojs-cli module create products \
3  --features=database,cache,validation \
4  --middleware=cache \
5  --routes=rest \
6  --with-docs
7
8# Includes:
9# - Product CRUD operations
10# - Category management
11# - Search and filtering
12# - Response caching
13# - Input validation
14# - API documentation

Command Reference

Full syntax

bash

1morojs-cli module create <name> [options]
2
3Options:
4  -f, --features <list>     Features (websocket,database,auth,cache,validation,docs)
5  -d, --database <type>     Database adapter type
6  -m, --middleware <list>   Built-in middleware (auth,cors,rate-limit,cache,validation)
7  -r, --routes <pattern>    Route patterns (crud,rest,graphql)
8  --auth-roles <roles>      Authentication roles (comma-separated)
9  --with-tests             Generate test files
10  --with-docs              Generate API documentation
11  --skip-git               Skip Git operations
12  --dry-run                Preview without creating files
13
14Examples:
15  morojs-cli module create users
16  morojs-cli module create products --features=database,cache --routes=crud
17  morojs-cli module create chat --features=websocket,auth --auth-roles=user,admin
18  morojs-cli module create api --features=database,validation --with-tests --with-docs

After Creating Modules