From 339a4abf8424070b9a05acf85307185405e0cbe3 Mon Sep 17 00:00:00 2001 From: shadow-light <42055707+shadow-light@users.noreply.github.com> Date: Tue, 6 Jun 2023 10:22:09 +1000 Subject: [PATCH 1/3] pattern can be RegExp --- packages/netlify-cms-core/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/netlify-cms-core/index.d.ts b/packages/netlify-cms-core/index.d.ts index 54ca3ec3dd99..c58330aa6349 100644 --- a/packages/netlify-cms-core/index.d.ts +++ b/packages/netlify-cms-core/index.d.ts @@ -63,7 +63,7 @@ declare module 'netlify-cms-core' { label?: string; required?: boolean; hint?: string; - pattern?: [string, string]; + pattern?: [string | RegExp, string]; i18n?: boolean | 'translate' | 'duplicate' | 'none'; media_folder?: string; public_folder?: string; From 32f9dd2bf48b83fa6ddba111d9a7380ebf6cc2d9 Mon Sep 17 00:00:00 2001 From: Yan <61414485+yanthomasdev@users.noreply.github.com> Date: Tue, 19 May 2026 15:52:08 -0300 Subject: [PATCH 2/3] fix: other pattern types --- packages/decap-cms-core/index.d.ts | 2 +- packages/decap-cms-core/src/types/redux.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/decap-cms-core/index.d.ts b/packages/decap-cms-core/index.d.ts index fcae20c10334..9469c5802de4 100644 --- a/packages/decap-cms-core/index.d.ts +++ b/packages/decap-cms-core/index.d.ts @@ -299,7 +299,7 @@ declare module 'decap-cms-core' { export interface ViewFilter { label: string; field: string; - pattern: string; + pattern: string | boolean; } export interface ViewGroup { diff --git a/packages/decap-cms-core/src/types/redux.ts b/packages/decap-cms-core/src/types/redux.ts index ef31fbfc0a1e..3f3f3d7c702d 100644 --- a/packages/decap-cms-core/src/types/redux.ts +++ b/packages/decap-cms-core/src/types/redux.ts @@ -72,7 +72,7 @@ export interface CmsFieldBase { label?: string; required?: boolean; hint?: string; - pattern?: [string, string]; + pattern?: [string | RegExp, string]; i18n?: boolean | 'translate' | 'duplicate' | 'none'; media_folder?: string; public_folder?: string; @@ -315,14 +315,14 @@ export interface CmsCollectionFile { export interface ViewFilter { label: string; field: string; - pattern: string; + pattern: string | boolean; id: string; } export interface ViewGroup { label: string; field: string; - pattern: string; + pattern?: string; id: string; } From 1792538d768c16ef8e957a16019102c247336d87 Mon Sep 17 00:00:00 2001 From: Yan <61414485+yanthomasdev@users.noreply.github.com> Date: Tue, 19 May 2026 15:53:40 -0300 Subject: [PATCH 3/3] fix: add guard for undefined pattern --- packages/decap-cms-core/src/reducers/entries.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/decap-cms-core/src/reducers/entries.ts b/packages/decap-cms-core/src/reducers/entries.ts index 653b77aee867..e651bcf6768b 100644 --- a/packages/decap-cms-core/src/reducers/entries.ts +++ b/packages/decap-cms-core/src/reducers/entries.ts @@ -474,14 +474,16 @@ function getGroup(entry: EntryMap, selectedGroup: GroupMap) { if (selectedGroup.has('pattern')) { const pattern = selectedGroup.get('pattern'); let value = ''; - try { - const regex = new RegExp(pattern); - const matched = dataAsString.match(regex); - if (matched) { - value = matched[0]; + if (pattern !== undefined) { + try { + const regex = new RegExp(pattern); + const matched = dataAsString.match(regex); + if (matched) { + value = matched[0]; + } + } catch (e) { + console.warn(`Invalid view group pattern '${pattern}' for field '${field}'`, e); } - } catch (e) { - console.warn(`Invalid view group pattern '${pattern}' for field '${field}'`, e); } return { id: `${label}${value}`,