From 6163deecf34bd4993a0ce73787021d662497373b Mon Sep 17 00:00:00 2001 From: vjrj Date: Mon, 13 Jul 2026 01:02:15 +0200 Subject: [PATCH] Fase 1a: fix interop CJS/ESM del driver mongodb v3 mongodb v3.x es CommonJS; el import nombrado ESM (import { MongoClient }) no lo resuelve el cjs-lexer de Node en runtime (SyntaxError al arrancar dist). Tomo los valores del default export (mongodb.MongoClient / mongodb.ObjectId). Verificado importando dist/*.js con node (no solo compilando). --- src/db.ts | 8 ++++++-- src/handlers.ts | 4 +++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/db.ts b/src/db.ts index c2aa0c8..717b793 100644 --- a/src/db.ts +++ b/src/db.ts @@ -1,9 +1,13 @@ -import { MongoClient, type Collection, type Db } from 'mongodb'; +import mongodb, { type Collection, type Db } from 'mongodb'; import type { Config } from './config.js'; + +// mongodb v3.x is CommonJS; named ESM imports of its values aren't resolvable by +// Node's cjs-lexer, so pull runtime values off the default (module.exports). +const { MongoClient } = mongodb; import type { NotificationDoc, SendRecord, UserDoc } from './types.js'; export interface Repos { - client: MongoClient; + client: mongodb.MongoClient; db: Db; notifications: Collection; users: Collection; diff --git a/src/handlers.ts b/src/handlers.ts index ed8ff86..ee3c0ad 100644 --- a/src/handlers.ts +++ b/src/handlers.ts @@ -1,5 +1,7 @@ -import { ObjectId } from 'mongodb'; +import mongodb from 'mongodb'; import type { Config } from './config.js'; +// mongodb v3.x is CommonJS — take ObjectId off the default export (see db.ts). +const { ObjectId } = mongodb; import type { Repos } from './db.js'; import type { FcmClient } from './fcm.js'; import type { Mailer } from './mailer.js';