@@ -59,9 +59,16 @@ export function createClient(config: {
5959 token,
6060 } ;
6161
62- const socket = RoomsSocket ( {
63- config : socketConfig ,
64- } ) ;
62+ let socket : ReturnType < typeof RoomsSocket > | null = null ;
63+
64+ const getSocket = ( ) => {
65+ if ( ! socket ) {
66+ socket = RoomsSocket ( {
67+ config : socketConfig ,
68+ } ) ;
69+ }
70+ return socket ;
71+ } ;
6572
6673 const headers = {
6774 ...optionalHeaders ,
@@ -114,15 +121,17 @@ export function createClient(config: {
114121 functions : createFunctionsModule ( functionsAxiosClient , appId ) ,
115122 agents : createAgentsModule ( {
116123 axios : axiosClient ,
117- socket ,
124+ getSocket ,
118125 appId,
119126 serverUrl,
120127 token,
121128 } ) ,
122129 appLogs : createAppLogsModule ( axiosClient , appId ) ,
123130 users : createUsersModule ( axiosClient , appId ) ,
124131 cleanup : ( ) => {
125- socket . disconnect ( ) ;
132+ if ( socket ) {
133+ socket . disconnect ( ) ;
134+ }
126135 } ,
127136 } ;
128137
@@ -134,14 +143,16 @@ export function createClient(config: {
134143 functions : createFunctionsModule ( serviceRoleFunctionsAxiosClient , appId ) ,
135144 agents : createAgentsModule ( {
136145 axios : serviceRoleAxiosClient ,
137- socket ,
146+ getSocket ,
138147 appId,
139148 serverUrl,
140149 token,
141150 } ) ,
142151 appLogs : createAppLogsModule ( serviceRoleAxiosClient , appId ) ,
143152 cleanup : ( ) => {
144- socket . disconnect ( ) ;
153+ if ( socket ) {
154+ socket . disconnect ( ) ;
155+ }
145156 } ,
146157 } ;
147158
@@ -180,9 +191,12 @@ export function createClient(config: {
180191 */
181192 setToken ( newToken : string ) {
182193 userModules . auth . setToken ( newToken ) ;
183- socket . updateConfig ( {
184- token : newToken ,
185- } ) ;
194+ if ( socket ) {
195+ socket . updateConfig ( {
196+ token : newToken ,
197+ } ) ;
198+ }
199+ socketConfig . token = newToken ;
186200 } ,
187201
188202 /**
0 commit comments