Skip to content

CustomEventResolver

CustomEventResolver<TKey, TMetadata, TCategory, TExclude> = (key) => CustomEventConfig<TMetadata, TCategory, TExclude> | undefined

Resolver function that provides custom configuration for each event key. Returns partial event properties that will be merged with the generated event.

TKey extends string

Event key type (e.g., MassKey, LunarKey)

TMetadata extends Record<string, unknown> = Record<string, unknown>

Custom metadata type extending Record<string, unknown>

TCategory extends string = string

TExclude extends keyof BaseEventProperties = never

Fields to exclude from customization (default: never)

TKey

CustomEventConfig<TMetadata, TCategory, TExclude> | undefined

// Liturgical events - allow all customization
const resolver: CustomEventResolver<MassKey, LiturgicalMetadata> = (key) => ({
title: localTexts[key]?.title,
metadata: { localName: localTexts[key]?.name },
});
// Lunar events - restrict status and reminders
const resolver: CustomEventResolver<LunarKey, LunarMetadata, "status" | "reminders"> = (key) => ({
title: lunarTexts[key]?.title,
});