From 07b9be50b958f2b70541212ad5ce1c4061bd8a19 Mon Sep 17 00:00:00 2001 From: Paul Huliganga Date: Mon, 23 Mar 2026 23:45:09 -0400 Subject: [PATCH] build(backend): set up TypeScript with strict mode and build script --- TODO.md | 2 +- package.json | 1 + tsconfig.json | 10 ++++++---- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/TODO.md b/TODO.md index 095f547..dd92f1a 100644 --- a/TODO.md +++ b/TODO.md @@ -9,7 +9,7 @@ ### Backend Setup - [x] Initialize Node.js backend: Create src/backend/, package.json with express, better-sqlite3, zod, vitest. Create src/backend/index.ts with "Hello World" server on port 3000. Verify: npm install && npm run dev (server starts). Commit as "feat(backend): initialize Node.js project with Express" -- [ ] Set up TypeScript: Create tsconfig.json (strict mode, ES2022, Node16 module resolution). Add build script to package.json. Verify: npm run build succeeds. Commit. +- [x] Set up TypeScript: Create tsconfig.json (strict mode, ES2022, Node16 module resolution). Add build script to package.json. Verify: npm run build succeeds. Commit. - [ ] Create SQLite schema: Create src/backend/db/schema.sql with recipes, tags, recipe_tags tables per ARCHITECTURE.md. Create src/backend/db/migrate.ts to apply schema. Verify: npm run migrate creates data/recipes.db. Commit. - [ ] Implement recipe CRUD API endpoints - [ ] Add Zod validation schemas diff --git a/package.json b/package.json index ff7c8f7..446e4a7 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "main": "src/backend/index.ts", "scripts": { "dev": "ts-node src/backend/index.ts", + "build": "tsc", "test": "vitest", "migrate": "ts-node-esm src/backend/db/migrate.ts" }, diff --git a/tsconfig.json b/tsconfig.json index 6c67cb0..1aaf6c3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,12 +3,14 @@ "target": "ES2022", "module": "Node16", "lib": ["ES2022"], + "rootDir": "src", + "outDir": "dist", "strict": true, + "moduleResolution": "Node16", "esModuleInterop": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "moduleResolution": "Node16", - "outDir": "dist" + "forceConsistentCasingInFileNames": true }, - "include": ["src/**/*.ts"] + "include": ["src"], + "exclude": ["node_modules", "dist"] }