Marketplace móvil para negocios locales mexicanos. Estructura inicial: - apps/backend (NestJS API) - apps/frontend (React Web) - apps/mobile (Expo/React Native) - apps/mcp-server (Claude MCP Server) - apps/whatsapp-service (WhatsApp Business API) - database/ (PostgreSQL DDL) - docs/ (Documentación) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
26 lines
692 B
JavaScript
26 lines
692 B
JavaScript
// src/middleware/timeout/index.ts
|
|
import { HTTPException } from "../../http-exception.js";
|
|
var defaultTimeoutException = new HTTPException(504, {
|
|
message: "Gateway Timeout"
|
|
});
|
|
var timeout = (duration, exception = defaultTimeoutException) => {
|
|
return async function timeout2(context, next) {
|
|
let timer;
|
|
const timeoutPromise = new Promise((_, reject) => {
|
|
timer = setTimeout(() => {
|
|
reject(typeof exception === "function" ? exception(context) : exception);
|
|
}, duration);
|
|
});
|
|
try {
|
|
await Promise.race([next(), timeoutPromise]);
|
|
} finally {
|
|
if (timer !== void 0) {
|
|
clearTimeout(timer);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
export {
|
|
timeout
|
|
};
|