create-node-ts-graphql-server/README.md

75 lines
1.8 KiB
Markdown
Raw Normal View History

2022-05-25 18:02:22 -06:00
# Create Node TS GraphQL Server
2022-05-26 07:15:12 -06:00
This project aims to have a starter kit for creating a new Node with typescript, GraphQL server and tools that generally go along with it.
2022-05-25 18:02:22 -06:00
Tech(Library or Framework) | Version |
--- | --- |
2023-10-09 14:42:59 -06:00
Jest (Testing) | 29.7.0
Typescript | 5.3.3
2023-10-09 14:42:59 -06:00
GraphQL | 16.8.1
Type GraphQL | 2.0.0-beta.6
2022-05-25 18:02:22 -06:00
## Setup
To create a new project run in the terminal:
```
npx @aleleba/create-node-ts-graphql-server server-app-name
```
Then run:
```
cd server-app-name
```
You will need to create a new .env file at the root of the project for global config.
This is an example of config.
```
#ENVIRONMENT Defauld production
ENVIRONMENT=development
#WHITELIST URLS Default to http://localhost
2022-05-25 18:05:06 -06:00
WHITELIST_URLS=https://someurl.com
2022-06-04 21:08:11 -06:00
#PLAYGROUND GRAPHQL Default to "false"
PLAYGROUND_GRAPHQL=true
2022-05-25 18:02:22 -06:00
# PORT EXPOSE APP Default to 4000
PORT=4000
```
The default environment is production, the server-app port defauld is 4000, the default whitelist is http://localhost and the default graphiql is false.
### For Development
In the terminal run:
```
npm run start:dev
```
The ENV enviroment variable should be "development" and choose the port of your preference with the enviroment variable PORT.
You will find the controllers on:
```
scr/controllers/
```
You will find the models on:
```
scr/models
```
You will find the GraphQL server, resolvers and schema definition on:
```
scr/GraphQL
```
The manage of the routes for custom API you should find on:
```
scr/routes
```
This will start the app in development mode, also use nodemon and webpack to real time coding!
Enjoy coding!
### For Production
In the terminal run:
```
npm run build
```
It will create a build folder and run:
```
npm start
```
This will start the app.
## Cheers
Hope you enjoy this proyect! Sincerely Alejandro Lembke Barrientos.