UNPKG

@spotable/attio-sdk

Version:
45 lines (34 loc) 1.15 kB
import { writeGeneratedFile } from "../../helpers/fs"; import logger from "../../helpers/logger"; import { generateFileHeader } from "./fileHeader"; const FILE_NAME = "base.ts"; export function generateBaseTypes(outputDir: string): void { logger.debug(`Generating base types file: ${FILE_NAME}`); const baseContent = ` ${generateFileHeader(FILE_NAME)} export interface WebhookPayload<T> { event_id: string; event_type: 'created' | 'updated' | 'deleted' | 'merged'; entity_type: string; entity: T; timestamp: string; workspace_id: string; } export type WebhookHandler<T> = (payload: T) => Promise<void> | void; export type EntityCreatedHandler<T> = (entity: T) => Promise<void> | void; export type EntityUpdatedHandler<T> = ( entity: T, updateInfo: { event: any; attributeId?: string; actor?: { type: string; id: string; } } ) => Promise<void> | void; export type EntityDeletedHandler<T> = (entity: T | null, event: any) => Promise<void> | void; export type EntityMergedHandler<T> = (entity: T, event: any) => Promise<void> | void; `; writeGeneratedFile(outputDir, FILE_NAME, baseContent); }