11import * as http from "http" ;
22import { RequestStatus } from "../transport/enums" ;
3- import { EventResponse , KlepperEvent } from "../transport/events" ;
3+ import {
4+ EventResponse ,
5+ KlepperConnectionEvent ,
6+ KlepperEvent ,
7+ } from "../transport/events" ;
48import { KlepperIncomingMessage , RequestOptions } from "../transport/http" ;
59import { getGlobalClientData } from "./global" ;
610import { isClientConnected } from "./is" ;
@@ -9,7 +13,13 @@ const KLEPPER_HOST = process.env.KLEPPER_HOST || "localhost";
913const KLEPPER_API = process . env . KLEPPER_API || "/sdk/incident" ;
1014const KLEPPER_PORT = process . env . KLEPPER_PORT || 8080 ;
1115
12- const createHttpOptions = ( event : KlepperEvent ) : http . RequestOptions => {
16+ const createHttpOptions = ( {
17+ event,
18+ api = KLEPPER_API ,
19+ } : {
20+ event ?: KlepperEvent | KlepperConnectionEvent | KlepperConnectionEvent ;
21+ api ?: string ;
22+ } ) : http . RequestOptions => {
1323 const client = getGlobalClientData ( ) ;
1424
1525 const { privateKey, appId } = client ;
@@ -26,19 +36,43 @@ const createHttpOptions = (event: KlepperEvent): http.RequestOptions => {
2636 } ;
2737
2838 return {
29- path : KLEPPER_API ,
39+ path : api ,
3040 ...baseOptions ,
3141 } ;
3242} ;
3343
3444const statusFromCode = ( code : number ) =>
3545 code >= 200 && code <= 299 ? RequestStatus . SUCCESS : RequestStatus . ERROR ;
3646
47+ export const sendConnection = (
48+ connectionData : KlepperConnectionEvent
49+ ) : void => {
50+ const httpOptions = createHttpOptions ( {
51+ event : connectionData ,
52+ api : "/sdk/release" ,
53+ } ) ;
54+
55+ const request = http . request ( httpOptions , ( res : KlepperIncomingMessage ) => {
56+ res . setEncoding ( "utf8" ) ;
57+ } ) ;
58+ request . write ( JSON . stringify ( connectionData ) ) ;
59+ request . end ( ) ;
60+ } ;
61+
3762export const sendEvent = async (
3863 event : KlepperEvent
3964) : Promise < EventResponse > => {
65+ const client = getGlobalClientData ( ) ;
66+
67+ const baseData = {
68+ env : client ?. environment ,
69+ version : client ?. version ,
70+ } ;
71+
72+ const payload = Object . assign ( event , baseData ) ;
73+
4074 return new Promise < EventResponse > ( ( resolve , reject ) => {
41- const httpOptions = createHttpOptions ( event ) ;
75+ const httpOptions = createHttpOptions ( { event } ) ;
4276 if ( ! httpOptions ) {
4377 reject ( {
4478 statusCode : 400 ,
@@ -87,7 +121,9 @@ export const sendEvent = async (
87121 } ) ;
88122 } ) ;
89123
90- request . write ( JSON . stringify ( event ) ) ;
124+ request . write ( JSON . stringify ( payload ) ) ;
91125 request . end ( ) ;
92126 } ) ;
93127} ;
128+
129+ const send = ( ) => { } ;
0 commit comments