From 46ea8fbf722441425c443481137b192767e07923 Mon Sep 17 00:00:00 2001
From: Michael Clark <5285928+MikesGlitch@users.noreply.github.com>
Date: Mon, 24 Jun 2024 16:08:15 +0100
Subject: [PATCH] :electron: Fix regex filters on electron app (#2929)

* fix regex on desktop app

* add release notes
---
 .../loot-core/src/platform/server/sqlite/index.electron.ts  | 6 ++++++
 upcoming-release-notes/2929.md                              | 6 ++++++
 2 files changed, 12 insertions(+)
 create mode 100644 upcoming-release-notes/2929.md

diff --git a/packages/loot-core/src/platform/server/sqlite/index.electron.ts b/packages/loot-core/src/platform/server/sqlite/index.electron.ts
index 02206a4cf..d12d133e7 100644
--- a/packages/loot-core/src/platform/server/sqlite/index.electron.ts
+++ b/packages/loot-core/src/platform/server/sqlite/index.electron.ts
@@ -95,6 +95,10 @@ export async function asyncTransaction(
   }
 }
 
+function regexp(regex: string, text: string | null) {
+  return new RegExp(regex).test(text) ? 1 : 0;
+}
+
 export function openDatabase(pathOrBuffer: string | Buffer) {
   const db = new SQL(pathOrBuffer);
   // Define Unicode-aware LOWER and UPPER implementation.
@@ -107,6 +111,8 @@ export function openDatabase(pathOrBuffer: string | Buffer) {
   db.function('UNICODE_UPPER', { deterministic: true }, (arg: string | null) =>
     arg?.toUpperCase(),
   );
+  // @ts-expect-error @types/better-sqlite3 does not support setting strict 3rd argument
+  db.function('REGEXP', { deterministic: true }, regexp);
   return db;
 }
 
diff --git a/upcoming-release-notes/2929.md b/upcoming-release-notes/2929.md
new file mode 100644
index 000000000..2168ed38a
--- /dev/null
+++ b/upcoming-release-notes/2929.md
@@ -0,0 +1,6 @@
+---
+category: Bugfix
+authors: [MikesGlitch]
+---
+
+Fixes regex filtering on the desktop app
-- 
GitLab