@lokalise/fastify-extras
Version:
Opinionated set of fastify plugins, commonly used in Lokalise
24 lines (23 loc) • 1.03 kB
TypeScript
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 {};