refactor: simplify — мёртвые поля контента, общие хелперы api и тестов, липкая CTA без site в бандле

landing:
- site.ts: убраны неиспользуемые roast, brew, priceDisplay, hero.eyebrow, footer.phone (Footer берёт CONTACT_PHONE)
- form.ts: убраны FORM_TEXT.title/lead, CTAS, CtaPreset
- StickyCta получает тексты пропсами от layout: клиентский чанк больше не тащит все тексты страницы
- LeadForm/useLeadForm: без неиспользуемой подмены sendLead и className; leadPrefill без счётчика seq
- Stamp без мёртвого tone; убраны data-interest, data-hot, класс lead-form (ничем не читались)
- одно LEAD_FIELDS на sendLead и leadFormModel; регэксп typo вынесен из вызова; дубль фона body

api:
- changedFields и Version общие для leads и outbox; countLeads и leadStamps без копий SQL
- errorMessage в system.ts вместо четырёх копий; take() для ожидающих подтверждений
- backup: один Intl.DateTimeFormat на модуль, без невызываемых параметров timeZone/hour
- без мёртвых LOOPBACK '::ffff:127.0.0.1', client.call, Pick<BackupCommands> со всеми ключами
- testing.ts: validLead, addLead, count, leadIds вместо копий в тестах

deploy.sh: deployed_field и цикл по REPOS вместо повторов имён
This commit is contained in:
2026-10-17 17:31:11 +03:00
parent be8db997a5
commit 88b6e1395e
32 changed files with 169 additions and 192 deletions
+5 -1
View File
@@ -45,12 +45,16 @@ export function createSystemReporter({
text: count > 1 ? `×${count} за период · ${text}` : text,
});
} catch (err) {
log(`[system] не отправлено в Telegram: ${err instanceof Error ? err.message : String(err)}`);
log(`[system] не отправлено в Telegram: ${errorMessage(err)}`);
}
},
};
}
export function errorMessage(err: unknown): string {
return err instanceof Error ? err.message : String(err);
}
/** Короткий stack без путей до node_modules: в «Систему» и stdout. */
export function shortError(err: unknown): string {
if (!(err instanceof Error)) return String(err);