Skip to content

Generate Command

The lts generate (or g) command is your tool for creating modular components like controllers, services, validators, or resources in LightTs. It generates clean, editable Node.js code tailored to your naming style (Angular or regular), saving you time while keeping your project organized.

Terminal window
lts generate <type> <name>
lts g <type> <name>
  1. Choose a Type: Pick controller, service, validate, or resource.
  2. Name It: Specify a name (e.g., user, product).
  3. Generate: Run lts g <type> <name> to create files in src/modules/<name>/.

Controller

Handles HTTP requests with clean, Express-based routing.

Terminal window
lts g controller user
src/modules/user/user.controller.ts
import express from 'express';
<!-- import services from './user.service'; -->
const router = express.Router();
router.get('/', services.hello);
export default router;

Service

Manages business logic, keeping controllers lean.

Terminal window
lts g service user
src/modules/user/user.service.ts
import { MessageResponse } from '@/core/responses/message.response';
import { Request, Response } from 'express';
export default {
hello: async (req: Request, res: Response) => {
new MessageResponse(res, { message: 'Hello LightTs!' });
}
};

Validator

Creates Joi schemas for robust input validation.

Terminal window
lts g validate user
src/modules/user/user.schema.ts
import Joi from 'joi';
export default {
create: Joi.object().keys({
name: Joi.string().required(),
email: Joi.string().email().required(),
}),
};

Resource

Generates a full module: controller, service, and validator.

Terminal window
lts g resource product

Creates src/modules/product/ with:

  • product.controller.ts
  • product.service.ts
  • product.schema.ts
  • Naming: Files follow your lts init choice (Angular-style: user.service.ts or regular: user.ts).
  • Modularity: Components are organized in src/modules/<name>/ for scalability.
  • Customization: Generated code uses standard Node.js libraries, ready for your tweaks.