KubernetesClassAkademik/Clase 5/Ejercicio/server-graphql
2022-09-14 15:56:37 -06:00
..
.vscode Agregando Clase 5 2022-09-14 15:56:37 -06:00
config Agregando Clase 5 2022-09-14 15:56:37 -06:00
src Agregando Clase 5 2022-09-14 15:56:37 -06:00
.babelrc Agregando Clase 5 2022-09-14 15:56:37 -06:00
.dockerignore Agregando Clase 5 2022-09-14 15:56:37 -06:00
.env.development Agregando Clase 5 2022-09-14 15:56:37 -06:00
.env.example Agregando Clase 5 2022-09-14 15:56:37 -06:00
.eslintignore Agregando Clase 5 2022-09-14 15:56:37 -06:00
.eslintrc.js Agregando Clase 5 2022-09-14 15:56:37 -06:00
.gitignore Agregando Clase 5 2022-09-14 15:56:37 -06:00
Dockerfile Agregando Clase 5 2022-09-14 15:56:37 -06:00
jest.config.js Agregando Clase 5 2022-09-14 15:56:37 -06:00
LICENSE Agregando Clase 5 2022-09-14 15:56:37 -06:00
package-lock.json Agregando Clase 5 2022-09-14 15:56:37 -06:00
package.json Agregando Clase 5 2022-09-14 15:56:37 -06:00
PRNameGenerator.ts Agregando Clase 5 2022-09-14 15:56:37 -06:00
README.md Agregando Clase 5 2022-09-14 15:56:37 -06:00
tsconfig.json Agregando Clase 5 2022-09-14 15:56:37 -06:00
webpack.config.dev.ts Agregando Clase 5 2022-09-14 15:56:37 -06:00
webpack.config.ts Agregando Clase 5 2022-09-14 15:56:37 -06:00

Create Node TS GraphQL Server

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.

Tech(Library or Framework) Version
Jest (Testing) 29.0.3
Typescript 4.8.3
GraphQL 16.6.0

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
WHITELIST_URLS=https://someurl.com
#GRAPHIQL Default to "false"
GRAPHIQL=true
#PLAYGROUND GRAPHQL Default to "false"
PLAYGROUND_GRAPHQL=true
# 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.