diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000..f58110bf --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,3 @@ +FROM mcr.microsoft.com/devcontainers/typescript-node:22 + +CMD [ "sleep", "infinity" ] diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index db0980a7..f458a255 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,9 +1,9 @@ { - "dockerComposeFile": "../docker-compose.yml", + "dockerComposeFile": ["docker-compose.yml"], "service": "devcontainer", "workspaceFolder": "/workspace", "forwardPorts": [8080], - "postCreateCommand": "npm install", + "postStartCommand": "./.devcontainer/postStartCommand.sh", "customizations": { "vscode": { "extensions": [ @@ -12,7 +12,10 @@ "eamodio.gitlens", "vitest.explorer", "mongodb.mongodb-vscode" - ] + ], + "settings": { + "git.autofetch": true + } } } } diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 00000000..8bacc6b8 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3.8' +services: + devcontainer: + container_name: boilerplate-backend-devcontainer + build: + context: .. + dockerfile: ./.devcontainer/Dockerfile + environment: + EXAMPLE: ${EXAMPLE} + + volumes: + - ..:/workspace:cached diff --git a/.devcontainer/postStartCommand.sh b/.devcontainer/postStartCommand.sh new file mode 100755 index 00000000..fbef141b --- /dev/null +++ b/.devcontainer/postStartCommand.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +npm ci +cat README.md diff --git a/.gitignore b/.gitignore index 25222ebb..700a25d2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules .idea .vscode .DS_Store +**/.env diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..c42da845 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict = true diff --git a/package-lock.json b/package-lock.json index ee66ca32..0b07b6bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,6 +28,10 @@ "pino-pretty": "^13.0.0", "typescript": "^5.8.2", "vitest": "^3.0.8" + }, + "engines": { + "node": "^22||^24", + "npm": "~10.9" } }, "node_modules/@apidevtools/json-schema-ref-parser": { diff --git a/package.json b/package.json index 0801a7c6..d1b440f0 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,9 @@ "version": "1.0.0", "main": "src/main.ts", "type": "module", + "author": "", + "license": "ISC", + "description": "", "scripts": { "start": "node src/main.ts", "start:dev": "node --watch src/main.ts", @@ -16,9 +19,10 @@ "test:e2e:db": "vitest --config ./test/config/vitest.e2e-db.ts", "test:memory": "vitest --config ./test/config/vitest.memory.ts" }, - "author": "", - "license": "ISC", - "description": "", + "engines": { + "node": "^22||^24", + "npm": "~10.9" + }, "dependencies": { "@aws-sdk/client-sqs": "^3.758.0", "@hono/node-server": "^1.12.0",