From a81a5f50b3d7d9e161766acf7c5539f53dbc5567 Mon Sep 17 00:00:00 2001 From: "Xunnamius (Romulus)" Date: Thu, 26 Aug 2021 15:52:03 -0700 Subject: [PATCH] fix(src): protect against bad key-exclusion issue --- src/backend/db.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backend/db.ts b/src/backend/db.ts index 00079b2..b520c93 100644 --- a/src/backend/db.ts +++ b/src/backend/db.ts @@ -134,10 +134,16 @@ export async function itemExists( } } + if (key == '_id' && options?.exclude_id) { + throw new GuruMeditationError( + 'assert failed: cannot use "_id" as key and use exclude_id simultaneously' + ); + } + const result = collection.find({ [key]: id, ...(options?.exclude_id ? { _id: { $ne: options.exclude_id } } : {}) - }); + } as unknown as Parameters[0]); if (options?.caseInsensitive) { result.collation({ locale: 'en', strength: 2 });