import assert from "assert"; import { RawEvent, NormalizedEvent } from "../../types"; export default (event: RawEvent): NormalizedEvent<"stripe"> => { assert(event, `Stripe:Events null event: ${event}`); assert( event.id, `Stripe:Events event is missing the required field id ${event}` ); assert( event.created, `Stripe:Events event is missing the required field created ${event}` ); return { id: event.id, ts: Date.parse(event.created), user_info: { source_user_id: event.id, user_id: null, name: event.name || (event.shipping && event.shipping.name) || null, email: event.email || (event.shipping && event.shipping.name) || null, ip: null, avatar: null, nickname: null, phone: event.phone || null, city: (event.address && event.address.city) || (event.shipping && event.shipping.address.city) || null, continent_code: null, country: null, postal_code: (event.address && event.address.postal_code) || (event.shipping && event.shipping.address.postal_code) || null, region: null, timezone: null, country_code: (event.address && event.address.country) || (event.shipping && event.shipping.address.country) || null, address_line1: (event.address && event.address.line1) || (event.shipping && event.shipping.address.line1) || null, address_line2: (event.address && event.address.line2) || (event.shipping && event.shipping.address.line2) || null, user_agent: null, is_employee: null, birthday: null, age: null, gender: null, title: null, company: { name: null, id: null, industry: null, employee_count: null, plan: null }, created_at: Date.parse(event.created), website: null, custom_attributes: null }, text: `Customer '${event.name || event.email || event.id}' created`, href: null, is_bad: null, direction: null, source: "stripe", stream: "customers" }; };