2024-03-18 16:09:19 +01:00
|
|
|
import { Variable } from './types'
|
2023-03-15 12:21:52 +01:00
|
|
|
|
|
|
|
export const extractVariablesFromText =
|
|
|
|
(variables: Variable[]) =>
|
|
|
|
(text: string): Variable[] => {
|
|
|
|
const matches = [...text.matchAll(/\{\{(.*?)\}\}/g)]
|
|
|
|
return matches.reduce<Variable[]>((acc, match) => {
|
|
|
|
const variableName = match[1]
|
|
|
|
const variable = variables.find(
|
|
|
|
(variable) => variable.name === variableName
|
|
|
|
)
|
2023-04-25 08:15:53 +02:00
|
|
|
if (
|
|
|
|
!variable ||
|
|
|
|
acc.find((accVariable) => accVariable.id === variable.id)
|
|
|
|
)
|
|
|
|
return acc
|
2023-03-15 12:21:52 +01:00
|
|
|
return [...acc, variable]
|
|
|
|
}, [])
|
|
|
|
}
|