UNPKG

@lokalise/fastify-extras

Version:

Opinionated set of fastify plugins, commonly used in Lokalise

24 lines (23 loc) 1.03 kB
import { z } from 'zod/v4'; import type { Amplitude } from './Amplitude.js'; export declare const AMPLITUDE_BASE_MESSAGE_SCHEMA: z.ZodObject<{ event_type: z.ZodLiteral<string>; user_id: z.ZodUnion<[z.ZodString, z.ZodLiteral<"SYSTEM">]>; groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; }, z.core.$strip>; export type AmplitudeAdapterDependencies = { amplitude: Amplitude; }; export type AmplitudeMessage = { schema: z.ZodObject<(typeof AMPLITUDE_BASE_MESSAGE_SCHEMA)['shape'], z.core.$strip>; }; type AmplitudeMessageSchemaType<T extends AmplitudeMessage> = z.infer<T['schema']>; /** * Amplitude adapter which provides type safe tracking of events */ export declare class AmplitudeAdapter<AmplitudeMessages extends AmplitudeMessage[]> { private readonly amplitude; constructor({ amplitude }: AmplitudeAdapterDependencies); track<Message extends AmplitudeMessages[number]>(supportedMessage: Message, data: Omit<AmplitudeMessageSchemaType<Message>, 'event_type'>): void; } export {};