From 5b8edc2ce9835111c04f75892bc2a8976a95e27d Mon Sep 17 00:00:00 2001 From: &mile Date: Wed, 11 Mar 2026 19:38:44 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20refactor(metadata):=20comp?= =?UTF-8?q?ile=20metadata=20package=20with=20tsc=20--build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - enable composite mode and emit compiled output to build/ directory - change package exports from ./src/*.ts to ./build/*.js and ./build/*.d.ts so consumers import pre-compiled artifacts - add "build" script to metadata package.json - add TypeScript project reference from api to metadata in packages/api/tsconfig.json - run pnpm build before lint and tests in CI Dockerfile so workspace dependencies are compiled - build workspace dependencies in dev API start script before launching the dev server --- .workflows/.build/packages/ci/Dockerfile | 6 +++--- .workflows/.dev/packages/api/start.sh | 8 ++++++-- packages/api/tsconfig.json | 3 ++- packages/metadata/package.json | 25 ++++++++++++------------ packages/metadata/tsconfig.json | 4 +++- 5 files changed, 27 insertions(+), 19 deletions(-) diff --git a/.workflows/.build/packages/ci/Dockerfile b/.workflows/.build/packages/ci/Dockerfile index 1417f6df..afc930f5 100644 --- a/.workflows/.build/packages/ci/Dockerfile +++ b/.workflows/.build/packages/ci/Dockerfile @@ -23,11 +23,11 @@ COPY tests/ ./tests/ # Install dependencies RUN pnpm install --frozen-lockfile +# Build all packages (must run before tests so workspace deps are compiled) +RUN pnpm run build + # Run Biome check (lint + format) RUN pnpm check # Run unit tests RUN pnpm --recursive --if-present --filter='./packages/**' run test:unit - -# Build all packages -RUN pnpm run build diff --git a/.workflows/.dev/packages/api/start.sh b/.workflows/.dev/packages/api/start.sh index 8f0d613e..6fcf9344 100644 --- a/.workflows/.dev/packages/api/start.sh +++ b/.workflows/.dev/packages/api/start.sh @@ -2,10 +2,14 @@ # ============================================================================== # Start API Server # ============================================================================== -# Starts the API development server with hot reload +# Starts the API development server with hot reload. +# Builds workspace dependencies first (tsc --build follows project references). # ============================================================================== set -e -echo "Starting API dev server..." +echo "Building workspace dependencies..." cd /workspace/packages/api +pnpm run build + +echo "Starting API dev server..." exec pnpm --filter="@arrhes/application-api" dev diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json index 5281ed60..db11ed04 100644 --- a/packages/api/tsconfig.json +++ b/packages/api/tsconfig.json @@ -23,5 +23,6 @@ } }, "exclude": ["./node_modules", "./build"], - "include": ["./src"] + "include": ["./src"], + "references": [{ "path": "../metadata" }] } diff --git a/packages/metadata/package.json b/packages/metadata/package.json index 3763dd9d..5401c272 100644 --- a/packages/metadata/package.json +++ b/packages/metadata/package.json @@ -3,6 +3,7 @@ "type": "module", "private": true, "scripts": { + "build": "tsc --build", "typecheck": "tsc --noEmit" }, "devDependencies": { @@ -16,28 +17,28 @@ }, "exports": { ".": { - "types": "./src/index.ts", - "default": "./src/index.ts" + "types": "./build/index.d.ts", + "default": "./build/index.js" }, "./models": { - "types": "./src/models/index.ts", - "default": "./src/models/index.ts" + "types": "./build/models/index.d.ts", + "default": "./build/models/index.js" }, "./components": { - "types": "./src/components/index.ts", - "default": "./src/components/index.ts" + "types": "./build/components/index.d.ts", + "default": "./build/components/index.js" }, "./schemas": { - "types": "./src/schemas/index.ts", - "default": "./src/schemas/index.ts" + "types": "./build/schemas/index.d.ts", + "default": "./build/schemas/index.js" }, "./routes": { - "types": "./src/routes/index.ts", - "default": "./src/routes/index.ts" + "types": "./build/routes/index.d.ts", + "default": "./build/routes/index.js" }, "./utilities": { - "types": "./src/utilities/index.ts", - "default": "./src/utilities/index.ts" + "types": "./build/utilities/index.d.ts", + "default": "./build/utilities/index.js" } } } diff --git a/packages/metadata/tsconfig.json b/packages/metadata/tsconfig.json index ada959de..ad690bfa 100644 --- a/packages/metadata/tsconfig.json +++ b/packages/metadata/tsconfig.json @@ -12,10 +12,12 @@ "moduleResolution": "NodeNext", "resolveJsonModule": true, "isolatedModules": true, + "composite": true, "declaration": true, "declarationMap": true, "sourceMap": true, - "noEmit": true, + "rootDir": "./src", + "outDir": "./build", "paths": { "#/*": ["./src/*"] }