Files
veilix.app/src/core/content/placeholders.ts
T

21 lines
753 B
TypeScript
Raw Normal View History

2026-10-22 04:53:15 +02:00
/**
* Подстановки в текстах блоков: {priceFirst}, {countries} и т. п. (D-029).
* Неизвестная подстановка остаётся как есть — так ошибку в админке видно на странице.
*/
export type Placeholders = Partial<Record<PlaceholderName, string>>
export const PLACEHOLDER_NAMES = [
'priceFirst',
'priceRenewal',
'priceMonth',
'priceYear',
'pricePerMonth',
'savings',
'countries',
'devices',
] as const
export type PlaceholderName = (typeof PLACEHOLDER_NAMES)[number]
export const fillPlaceholders = (text: string, values: Placeholders): string =>
text.replace(/\{(\w+)\}/g, (match, name: string) => values[name as PlaceholderName] ?? match)