chore: establish TypeScript monorepo foundation

This commit is contained in:
Christian Johannesen 2026-10-18 16:05:43 +02:00
commit 454ae1c915
5 changed files with 9984 additions and 0 deletions

9
.env.example Normal file
View file

@ -0,0 +1,9 @@
NODE_ENV=development
PORT=3001
DATABASE_URL=./data/tech-library.db
WEB_ORIGIN=http://localhost:5173
ADMIN_USERNAME=admin
# Generate with: npm run password:hash -w @tech-library/api -- "your password"
ADMIN_PASSWORD_HASH=
SESSION_SECRET=replace-with-at-least-32-random-characters
SOURCE_POLL_INTERVAL_HOURS=24

13
.gitignore vendored Normal file
View file

@ -0,0 +1,13 @@
node_modules/
dist/
.vite/
coverage/
data/
*.db
*.db-shm
*.db-wal
.env
.env.local
backups/
playwright-report/
test-results/

9923
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

25
package.json Normal file
View file

@ -0,0 +1,25 @@
{
"name": "tech-library",
"private": true,
"version": "0.1.0",
"type": "module",
"workspaces": ["apps/*", "packages/*"],
"scripts": {
"dev": "concurrently -n api,web,worker -c blue,magenta,yellow \"npm:dev -w @tech-library/api\" \"npm:dev -w @tech-library/web\" \"npm:dev -w @tech-library/worker\"",
"build": "npm run build -w @tech-library/contracts && npm run build -w @tech-library/database && npm run build -w @tech-library/api && npm run build -w @tech-library/worker && npm run build -w @tech-library/web",
"test": "npm run build -w @tech-library/contracts && npm run build -w @tech-library/database && npm run test --workspaces --if-present",
"typecheck": "npm run build -w @tech-library/contracts && npm run build -w @tech-library/database && npm run typecheck --workspaces --if-present",
"db:migrate": "npm run db:migrate -w @tech-library/database",
"db:seed": "npm run db:seed -w @tech-library/database",
"format": "prettier --write .",
"check": "npm run typecheck && npm test && npm run build"
},
"devDependencies": {
"@types/node": "^24.0.0",
"concurrently": "^9.2.1",
"prettier": "^3.6.2",
"typescript": "^5.9.2",
"vitest": "^5.0.5"
},
"engines": { "node": ">=22" }
}

14
tsconfig.base.json Normal file
View file

@ -0,0 +1,14 @@
{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"strict": true,
"noUncheckedIndexedAccess": true,
"skipLibCheck": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"declaration": true,
"sourceMap": true
}
}