@@ -159,7 +159,7 @@ const effectMinDuration =
159159 < A , E , R > ( e : Effect . Effect < A , E , R > ) =>
160160 Effect . all ( [ e , Effect . sleep ( duration ) ] , { concurrency : "unbounded" } ) . pipe ( Effect . map ( ( v ) => v [ 0 ] ) )
161161
162- function ConnectionGate ( props : ParentProps ) {
162+ function ConnectionGate ( props : ParentProps < { disableHealthCheck ?: boolean } > ) {
163163 const server = useServer ( )
164164 const checkServerHealth = useCheckServerHealth ( )
165165
@@ -168,21 +168,23 @@ function ConnectionGate(props: ParentProps) {
168168 // performs repeated health check with a grace period for
169169 // non-http connections, otherwise fails instantly
170170 const [ startupHealthCheck , healthCheckActions ] = createResource ( ( ) =>
171- Effect . gen ( function * ( ) {
172- if ( ! server . current ) return true
173- const { http, type } = server . current
171+ props . disableHealthCheck
172+ ? true
173+ : Effect . gen ( function * ( ) {
174+ if ( ! server . current ) return true
175+ const { http, type } = server . current
174176
175- while ( true ) {
176- const res = yield * Effect . promise ( ( ) => checkServerHealth ( http ) )
177- if ( res . healthy ) return true
178- if ( checkMode ( ) === "background" || type === "http" ) return false
179- }
180- } ) . pipe (
181- effectMinDuration ( checkMode ( ) === "blocking" ? "1.2 seconds" : 0 ) ,
182- Effect . timeoutOrElse ( { duration : "10 seconds" , onTimeout : ( ) => Effect . succeed ( false ) } ) ,
183- Effect . ensuring ( Effect . sync ( ( ) => setCheckMode ( "background" ) ) ) ,
184- Effect . runPromise ,
185- ) ,
177+ while ( true ) {
178+ const res = yield * Effect . promise ( ( ) => checkServerHealth ( http ) )
179+ if ( res . healthy ) return true
180+ if ( checkMode ( ) === "background" || type === "http" ) return false
181+ }
182+ } ) . pipe (
183+ effectMinDuration ( checkMode ( ) === "blocking" ? "1.2 seconds" : 0 ) ,
184+ Effect . timeoutOrElse ( { duration : "10 seconds" , onTimeout : ( ) => Effect . succeed ( false ) } ) ,
185+ Effect . ensuring ( Effect . sync ( ( ) => setCheckMode ( "background" ) ) ) ,
186+ Effect . runPromise ,
187+ ) ,
186188 )
187189
188190 return (
@@ -261,10 +263,11 @@ export function AppInterface(props: {
261263 defaultServer : ServerConnection . Key
262264 servers ?: Array < ServerConnection . Any >
263265 router ?: Component < BaseRouterProps >
266+ disableHealthCheck ?: boolean
264267} ) {
265268 return (
266269 < ServerProvider defaultServer = { props . defaultServer } servers = { props . servers } >
267- < ConnectionGate >
270+ < ConnectionGate disableHealthCheck = { props . disableHealthCheck } >
268271 < GlobalSDKProvider >
269272 < GlobalSyncProvider >
270273 < Dynamic
0 commit comments