Fix API build: shared package emits dist, fix type errors
- packages/shared: tsconfig adds outDir/declaration, package.json adds build script
- apps/api/tsconfig.json: paths now point to shared/dist (.d.ts) instead of source,
resolves TS6059 rootDir conflict
- apps/api/src/routes/{health,notifications,users}.ts: explicit Router type annotation
to fix TS2742 portable type inference
- apps/api/src/events/handler.ts: cast via 'as unknown as' to satisfy TS2352
- apps/api/Dockerfile: build shared package before api
This commit is contained in:
@@ -16,6 +16,9 @@ RUN pnpm install --frozen-lockfile
|
||||
COPY packages/shared ./packages/shared
|
||||
COPY apps/api ./apps/api
|
||||
|
||||
# Compila primero el paquete shared (api lo consume vía dist/)
|
||||
RUN pnpm --filter @naturcalabacera/shared build
|
||||
|
||||
# Compila TypeScript del api
|
||||
RUN pnpm --filter @naturcalabacera/api build
|
||||
|
||||
|
||||
@@ -75,8 +75,8 @@ function buildChangesBlock(prev: Reservation, curr: Reservation): string {
|
||||
const changes: Array<{ label: string; from: string; to: string }> = [];
|
||||
|
||||
for (const [field, label] of Object.entries(FIELD_LABELS)) {
|
||||
const prevVal = (prev as Record<string, unknown>)[field];
|
||||
const currVal = (curr as Record<string, unknown>)[field];
|
||||
const prevVal = (prev as unknown as Record<string, unknown>)[field];
|
||||
const currVal = (curr as unknown as Record<string, unknown>)[field];
|
||||
const prevStr = formatFieldValue(field, prevVal);
|
||||
const currStr = formatFieldValue(field, currVal);
|
||||
if (prevStr !== currStr) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Router } from 'express';
|
||||
import { Router, type Router as ExpressRouter } from 'express';
|
||||
|
||||
const router = Router();
|
||||
const router: ExpressRouter = Router();
|
||||
|
||||
router.get('/', (_req, res) => {
|
||||
res.json({ status: 'ok', timestamp: new Date().toISOString() });
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Router } from 'express';
|
||||
import { Router, type Router as ExpressRouter } from 'express';
|
||||
import { scheduleNotificationsForReservation } from '../jobs/runner.js';
|
||||
import { handleNotificationEvent } from '../events/handler.js';
|
||||
import { supabaseAdmin } from '../lib/supabase.js';
|
||||
import type { Reservation } from '@naturcalabacera/shared';
|
||||
|
||||
const router = Router();
|
||||
const router: ExpressRouter = Router();
|
||||
|
||||
/**
|
||||
* POST /api/notifications/reservation-event
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Router, type Request, type Response, type NextFunction } from 'express';
|
||||
import { Router, type Request, type Response, type NextFunction, type Router as ExpressRouter } from 'express';
|
||||
import { supabaseAdmin } from '../lib/supabase.js';
|
||||
import type { UserRole } from '@naturcalabacera/shared';
|
||||
|
||||
const router = Router();
|
||||
const router: ExpressRouter = Router();
|
||||
|
||||
const VALID_ROLES: UserRole[] = ['admin', 'internal_staff', 'external_availability_viewer'];
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
"esModuleInterop": true,
|
||||
"declaration": true,
|
||||
"paths": {
|
||||
"@naturcalabacera/shared": ["../../packages/shared/src/index.ts"],
|
||||
"@naturcalabacera/shared/*": ["../../packages/shared/src/*"]
|
||||
"@naturcalabacera/shared": ["../../packages/shared/dist/index.d.ts"],
|
||||
"@naturcalabacera/shared/*": ["../../packages/shared/dist/*"]
|
||||
}
|
||||
},
|
||||
"include": ["src"],
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
"main": "./src/index.ts",
|
||||
"types": "./src/index.ts",
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"test": "vitest run",
|
||||
"test:watch": "vitest"
|
||||
},
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2022",
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"strict": true,
|
||||
"skipLibCheck": true,
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"rootDir": "./src",
|
||||
"outDir": "./dist"
|
||||
},
|
||||
"include": ["src"]
|
||||
"include": ["src"],
|
||||
"exclude": ["node_modules", "dist", "**/*.test.ts"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user