# runtime/entrypoints/server.entrypoint.ts

> 16 lines of code and 2 definitions.

Tree: Bane's Lab Build Scripts
Language: typescript
Layer: runtime
Canonical: https://banes-lab.com/anatomy/build-scripts#file-build-scripts-runtime-entrypoints-server-entrypoint-ts
Source text: https://banes-lab.com/source/build-scripts/runtime/entrypoints/server.entrypoint.ts.txt

Listed in [runtime/entrypoints](https://banes-lab.com/api/source/build-scripts/runtime/entrypoints.md), before [runtime/entrypoints/tree.entrypoint.ts](https://banes-lab.com/source/build-scripts/runtime/entrypoints/tree.entrypoint.ts.md).

## Definitions

- `servers` (lexical_declaration, line 10)
- `supervisor` (lexical_declaration, line 12)

## Contained in

- [runtime/entrypoints](https://banes-lab.com/anatomy/build-scripts/folder-build-scripts-runtime-entrypoints.md)

## Source

```typescript
import { DEV_ARGV } from "#configuration/constants/server.constants";
import { devServers } from "#core/factories/server.factory";
import { freePort } from "#core/adapters/server.adapter";
import process from "node:process";
import { resolveArgv } from "@govlab/argv";
import { superviseServers } from "#core/coordinators/server.coordinator";

resolveArgv(DEV_ARGV);

const servers = devServers();
await Promise.all(servers.map(async (server) => freePort(server.port)));
const supervisor = superviseServers(servers);

process.on("SIGINT", () => {
    supervisor.stop(0);
});
process.on("SIGTERM", () => {
    supervisor.stop(0);
});
```
