https://github.com/binarcode/tse-cli
🛠️ CLI for rapid generators
https://github.com/binarcode/tse-cli
cli nodejs tse tsejs typescript
Last synced: 25 days ago
JSON representation
🛠️ CLI for rapid generators
- Host: GitHub
- URL: https://github.com/binarcode/tse-cli
- Owner: BinarCode
- License: mit
- Created: 2018-05-12T08:42:16.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2022-12-07T16:26:59.000Z (over 3 years ago)
- Last Synced: 2025-09-11T01:53:21.027Z (6 months ago)
- Topics: cli, nodejs, tse, tsejs, typescript
- Language: JavaScript
- Homepage:
- Size: 191 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: license
Awesome Lists containing this project
README
# tse-cli
## CLI for scaffolding [tse](https://github.com/tsejs/tse) boilerplate
- Init project from default template
``` sh
npm install -g tse-cli
```
## Init tse project
```sh
tse init my-first-tse
```
## Generate a new entity
```sh
tse make coffe <- coffe here is the entity name
```

- Entity will contains:
1. Schema definition with created_date timestamp
```typescript
import * as mongoose from 'mongoose';
const Schema = mongoose.Schema;
export const CoffeSchema = new Schema({
created_date: {
type: Date,
default: Date.now
}
});
```
2. CRUD routes
```typescript
import coffeController from '../controllers/CoffeController';
import {router} from '../lib/Facades';
router.group({
prefix: 'coffe',
middleware: []
}, router => {
router.post('', coffeController.store);
router.get(':coffeId', coffeController.getCoffeWithID);
router.get('', coffeController.getCoffes);
router.post('', coffeController.store);
router.put(':coffeId', coffeController.updateCoffe);
router.delete(':coffeId', coffeController.deleteCoffe);
});
```
3. Controller that support base CRUD
```typescript
import * as mongoose from 'mongoose';
import { Controller } from './Controller';
import { CoffeSchema } from '../models/CoffeSchema';
import { Request, Response } from '../lib/framework/application/http';
const Coffe = mongoose.model('Coffe', CoffeSchema);
export class CoffeController extends Controller {
public getCoffes (req: Request, res: Response) {
Coffe.find({}, (err, entity) => {
if (err) {
res.send(err);
}
res.respond(entity);
});
}
public store(req: Request, res: Response) {
Coffe.create(req.body, (err, entity) => {
if (err) {
res.send(err);
}
res.respond(entity);
});
}
public getCoffeWithID (req: Request, res: Response) {
Coffe.findById(req.params.coffeId, (err, entity) => {
if (err) {
res.send(err);
}
res.respond(entity);
});
}
public updateCoffe (req: Request, res: Response) {
Coffe.findOneAndUpdate({ _id: req.params.coffeId }, req.body, { new: true }, (err, entity) => {
if (err) {
res.send(err);
}
res.respond(entity);
});
}
public deleteCoffe (req: Request, res: Response) {
Coffe.remove({ _id: req.params.coffeId }, (err, entity) => {
if (err) {
res.send(err);
}
res.respond({ message: 'Successfully deleted Coffe!'});
});
}
}
export default new CoffeController();
```
- Go to [postman](https://www.getpostman.com/) and try to run http://127.0.0.1:3000/coffe/

## Stay In Touch
- [Twitter](https://twitter.com/LupacescuEuard)
## License
[MIT](http://opensource.org/licenses/MIT)
Copyright (c) 2018-present, Binaryk (Eduard) Lupacescu