An open API service indexing awesome lists of open source software.

https://github.com/bobbyg603/unwinder-server

🤖🌪🧑‍💻 TS/JS error unwinding backend built with Docker Compose
https://github.com/bobbyg603/unwinder-server

docker docker-compose express nodejs source-maps typescript unwind

Last synced: about 2 months ago
JSON representation

🤖🌪🧑‍💻 TS/JS error unwinding backend built with Docker Compose

Awesome Lists containing this project

README

          

# Node TypeScript Express Docker Starter

![node typescript express docker logos](https://user-images.githubusercontent.com/2646053/191009021-82d404d7-3d51-4dd3-ad0a-51009f89e048.png)

## 📖 Definitions

| Library | Description |
| ------- | ----------- |
| [Node.js](https://nodejs.org/en/) | JavaScript runtime built on [Chrome's V8 JavaScript engine](https://v8.dev/) |
| [Express](https://expressjs.com/) | Minimal and flexible Node.js web application framework for creating [APIs](https://en.wikipedia.org/wiki/API). |
| [TypeScript](https://www.typescriptlang.org/) | A [strongly typed](https://en.wikipedia.org/wiki/Strong_and_weak_typing) programming language that builds on JavaScript, giving you better tooling at any scale. |
| [ESLint](https://eslint.org/) | [Statically analyzes](https://en.wikipedia.org/wiki/Static_program_analysis) your code to quickly find problems. |
| [Jest](https://jestjs.io/) | A delightful JavaScript testing framework with a focus on simplicity. |
| [Docker](https://www.docker.com/) | Package software into standardized units for development, shipment and deployment |

## 🧑‍🏫 About

Node-TypeScript-Express-Docker-Starter is a template repo for building a [Node.js](https://nodejs.org/en/) [APIs](https://en.wikipedia.org/wiki/API) with [TypeScript](https://www.typescriptlang.org/), [Express](https://expressjs.com/) and [Docker](https://www.docker.com/). This template contains a minimal [ESLint](https://eslint.org/) configuration to enforce coding styles, and comes equipped with [Jest](https://jestjs.io/) for unit and integration testing. Additionally, this project's API routes are structured similarly to how components are organized in an [Angular](https://angular.io/guide/file-structure) project. Controllers are grouped by the API resource they serve, and the associated unit (spec.ts) and integration (e2e.ts) files live in the same directory.

## 🧑‍💻 Development

Install [Docker Desktop](https://www.docker.com/products/docker-desktop/), [VS Code](https://code.visualstudio.com/download) and [Git](https://git-scm.com/downloads). Click the green [Use this template](https://github.com/bobbyg603/express-typescript-starter/generate) button to copy this repo to your GitHub account. Once you've copied the repo, clone it to your workspace (be sure to replace my URL with the URL to the repo you generated by clicking `Use this template`):

### Download and Install

```sh
git clone https://github.com/bobbyg603/node-typescript-express-docker-starter
```

Install the project's dependencies:

```sh
npm i
```

### Testing

Run the unit and integration tests to ensure everything installed correctly:

```sh
npm test && npm run e2e
```

You can also run and debug tests from within the VS Code Testing Explorer by installing [Jest Test Explorer](https://marketplace.visualstudio.com/items?itemName=kavod-io.vscode-jest-test-adapter).

VS Code Jest Test Explorer Debug

### Developing

If you'd like to automatically build and restart the development sever when source files are changed you can can run the `watch` command:

```sh
npm run watch
```

The development server can also be started without watching the local file system or attaching the debugger:

```sh
npm start
```

If you'd like to attach the VS Code Debugger to a Node.js instance running on your local machine use the **Launch Program** task.

VS Code Launch Program

The VS Code Debugger can also be attached to a Node.js instance running inside a Docker container via the **Docker: Node.js Launch** task.

Docker Node JS Launch

The development server should begin listening for web requests. If you navigate to http://localhost:3000 in your browser you should see something that resembles the following:

Development Server Running

### Contributing

If you believe that this example can be improved, please open an [issue](https://github.com/bobbyg603/node-typescript-express-docker-starter/pulls) or submit a [pull request](https://github.com/bobbyg603/node-typescript-express-docker-starter/pulls)!