@agatee/cli
Version:
CLI for Agatee App
132 lines (94 loc) • 3.56 kB
Markdown
## Agatee CLI
## Prerequisites
Node 8.9 or higher, together with NPM 5.5.1 or higher.
Typescript and ts-node.
## New realese in version 1.3.0
- Now you can create an app with graphql api style
To create new app with graphql api
gat create my-app -api graphql
or add graphql feature in an existing app
gat add graphql
- New argument parser for the CLI
Check the [documentation](https://www.npmjs.com/package/@agatee/cli#documentation) for more informations
## Table of Contents
- [Installation](https://www.npmjs.com/package/@agatee/cli#installation)
- [Generating a New Project](https://www.npmjs.com/package/@agatee/cli#new-project)
- [Adding Mongoose](https://www.npmjs.com/package/@agatee/cli#add-mongoose)
- [Generating MVC Components with CRUD endpoint](https://www.npmjs.com/package/@agatee/cli#generating-mvc)
- [Adding Socket.io](https://www.npmjs.com/package/@agatee/cli#add-socket)
- [Generating socket instance](https://www.npmjs.com/package/@agatee/cli#socket-instance)
- [Documentation](https://www.npmjs.com/package/@agatee/cli#documentation)
## Installation<a name="installation"></a>
npm install -g @agatee/cli
## Generating new project<a name="new-project"></a>
Generating and serving a new project
gat create PROJECT-NAME
cd PROJECT-NAME
gat serve
You can specify the port to use by the app by adding --port ${PORT} params on serving
## Adding Mongoose<a name="add-mongoose"></a>
Stop serving the app by hitting ^C then :
gat add mongoose
4 lines will be added to the .env file to configure the connection to database :
...
DB_HOST=localhost
DB_PORT=27017
DB_PASSWORD=
DB_USERNAME=
DATABASE=agatee
You can also set your db config using those options
gat add mongoose --db-uri ${SRV_STRING_CONNECTION}
## Generating MVC Components<a name="generating-mvc"></a>
Generate MVC component named user with CRUD endpoint
gat g c user -mm -e CRUD
- -mm (or --mongoose-model) for adding mongoose model file
- -e (or --endpoint) for addinng CRUD endpoint
After generating the new component just add the router's component to app.ts to make the new component reachable
...
import { UserRouter } from './components/user/user.router';
...
@GatModule({
routes: [
UserRouter
],
middlewares
})
Then the new component is now reachable from [`http://localhost:3000/api/user`](localhost:3000/api/user) using method POST for creating, GET for reading, PUT for updating and DELETE for deleting
## Adding socket.io<a name="add-socket"></a>
gat add socket.io
Then add MainSocket to the GatModule's imports decorator in app.ts
...
import { MainSocket } from "./modules/socket/main.socket";
...
@GatModule({
routes: [
UserRouter
],
middlewares,
imports: [MainSocket]
})
Now the socket server is reachable from
[`http://localhost:3001`](localhost:3001)
You can change the socket port in the .env file
## Generating socket instance<a name="socket-instance"></a>
To generate socket instance named chat, hit :
gat g socket-i chat
Then add the new socket instance to the @GatModule imports in app.ts
...
import { MainSocket } from "./modules/socket/main.socket";
import { ChatSocket } from "./modules/socket/chat.socket";
...
@GatModule({
routes: [
UserRouter
],
middlewares,
imports: [
MainSocket,
ChatSocket
]
})
Now the socket instance is reachable from
[http://localhost:3001/chat](localhost:3001/chat)
## Documentation<a name="documentation"></a>
[Agatee - Official Documentation](https://niainagitlab.gitlab.io/agatee-doc/)