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 02206a4cf139c878c705496c8a74c141aa27faa9..d12d133e7eb23be7e3505434f7a0ce2684b7ad39 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 0000000000000000000000000000000000000000..2168ed38afc94a390469def5c23105128d8b0593 --- /dev/null +++ b/upcoming-release-notes/2929.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [MikesGlitch] +--- + +Fixes regex filtering on the desktop app