hardcoded-config
This commit is contained in:
parent
36ca02dc1b
commit
144db5c0e8
|
@ -3,9 +3,10 @@ import type { Accessor, JSX } from 'solid-js'
|
||||||
import type { Author, Reaction, Shout, Topic } from '../graphql/schema/core.gen'
|
import type { Author, Reaction, Shout, Topic } from '../graphql/schema/core.gen'
|
||||||
|
|
||||||
import { EventStreamContentType, fetchEventSource } from '@microsoft/fetch-event-source'
|
import { EventStreamContentType, fetchEventSource } from '@microsoft/fetch-event-source'
|
||||||
import { createContext, createEffect, createSignal, useContext } from 'solid-js'
|
import { createContext, createEffect, createSignal, on, useContext } from 'solid-js'
|
||||||
|
|
||||||
import { Chat, Message } from '../graphql/schema/chat.gen'
|
import { Chat, Message } from '../graphql/schema/chat.gen'
|
||||||
|
import { sseUrl } from '../utils/config'
|
||||||
import { useSession } from './session'
|
import { useSession } from './session'
|
||||||
|
|
||||||
const RECONNECT_TIMES = 2
|
const RECONNECT_TIMES = 2
|
||||||
|
@ -38,16 +39,20 @@ export const ConnectProvider = (props: { children: JSX.Element }) => {
|
||||||
setHandlers((hhh) => [...hhh, handler])
|
setHandlers((hhh) => [...hhh, handler])
|
||||||
}
|
}
|
||||||
|
|
||||||
createEffect(async () => {
|
createEffect(
|
||||||
const token = session()?.access_token
|
on(
|
||||||
if (token && !connected() && retried() <= RECONNECT_TIMES) {
|
() => session()?.access_token,
|
||||||
console.info('[context.connect] init SSE connection')
|
async ([tkn]) => {
|
||||||
|
if (!sseUrl) return
|
||||||
|
if (!tkn) return
|
||||||
|
if (!connected() && retried() <= RECONNECT_TIMES) {
|
||||||
|
console.info('[context.connect] got token, init SSE connection')
|
||||||
try {
|
try {
|
||||||
await fetchEventSource('https://connect.discours.io', {
|
await fetchEventSource(sseUrl, {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
Authorization: token,
|
Authorization: tkn,
|
||||||
},
|
},
|
||||||
onmessage(event) {
|
onmessage(event) {
|
||||||
const m: SSEMessage = JSON.parse(event.data || '{}')
|
const m: SSEMessage = JSON.parse(event.data || '{}')
|
||||||
|
@ -61,7 +66,9 @@ export const ConnectProvider = (props: { children: JSX.Element }) => {
|
||||||
setRetried(0)
|
setRetried(0)
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
}
|
}
|
||||||
return Promise.reject(`SSE: cannot connect to real-time updates, status: ${response.status}`)
|
return Promise.reject(
|
||||||
|
`SSE: cannot connect to real-time updates, status: ${response.status}`,
|
||||||
|
)
|
||||||
},
|
},
|
||||||
onclose() {
|
onclose() {
|
||||||
console.log('[context.connect] SSE connection closed by server')
|
console.log('[context.connect] SSE connection closed by server')
|
||||||
|
@ -82,7 +89,9 @@ export const ConnectProvider = (props: { children: JSX.Element }) => {
|
||||||
console.error('[context.connect] SSE connection failed:', error)
|
console.error('[context.connect] SSE connection failed:', error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
const value: ConnectContextType = { addHandler, connected }
|
const value: ConnectContextType = { addHandler, connected }
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ import { hydrate } from 'solid-js/web'
|
||||||
|
|
||||||
import { App } from '../components/App'
|
import { App } from '../components/App'
|
||||||
import { initRouter } from '../stores/router'
|
import { initRouter } from '../stores/router'
|
||||||
import { GLITCHTIP_DSN } from '../utils/config'
|
import { errorsReportingDsn } from '../utils/config'
|
||||||
import { resolveHydrationPromise } from '../utils/hydrationPromise'
|
import { resolveHydrationPromise } from '../utils/hydrationPromise'
|
||||||
|
|
||||||
let layoutReady = false
|
let layoutReady = false
|
||||||
|
@ -22,7 +22,7 @@ export const render = async (pageContext: PageContextBuiltInClientWithClientRout
|
||||||
initRouter(pathname, searchParams)
|
initRouter(pathname, searchParams)
|
||||||
|
|
||||||
SentryInit({
|
SentryInit({
|
||||||
dsn: GLITCHTIP_DSN,
|
dsn: errorsReportingDsn,
|
||||||
tracesSampleRate: 0.01,
|
tracesSampleRate: 0.01,
|
||||||
integrations: [replayIntegration()],
|
integrations: [replayIntegration()],
|
||||||
// Session Replay
|
// Session Replay
|
||||||
|
|
|
@ -1,17 +1,8 @@
|
||||||
export const isDev = import.meta.env.MODE === 'development'
|
export const isDev = import.meta.env.MODE === 'development'
|
||||||
|
|
||||||
const defaultThumborUrl = 'https://images.discours.io'
|
|
||||||
export const cdnUrl = 'https://cdn.discours.io'
|
export const cdnUrl = 'https://cdn.discours.io'
|
||||||
export const thumborUrl = import.meta.env.PUBLIC_THUMBOR_URL || defaultThumborUrl
|
export const thumborUrl = import.meta.env.PUBLIC_THUMBOR_URL || 'https://images.discours.io'
|
||||||
|
export const errorsReportingDsn = import.meta.env.PUBLIC_GLITCHTIP_DSN || import.meta.env.PUBLIC_SENTRY_DSN || ''
|
||||||
export const SENTRY_DSN = import.meta.env.PUBLIC_SENTRY_DSN || ''
|
export const coreApiUrl = 'https://coretest.discours.io'
|
||||||
export const GLITCHTIP_DSN = import.meta.env.PUBLIC_GLITCHTIP_DSN || ''
|
export const chatApiUrl = 'https://inboxtest.discours.io'
|
||||||
|
export const authApiUrl = 'https://authtest.discours.io'
|
||||||
const defaultCoreUrl = 'https://coretest.discours.io'
|
export const sseUrl = 'https://presencetest.discours.io'
|
||||||
export const coreApiUrl = import.meta.env.PUBLIC_CORE_API || defaultCoreUrl
|
|
||||||
|
|
||||||
const defaultChatUrl = 'https://inboxtest.discours.io'
|
|
||||||
export const chatApiUrl = import.meta.env.PUBLIC_CHAT_API || defaultChatUrl
|
|
||||||
|
|
||||||
const defaultAuthUrl = 'https://authtest.discours.io'
|
|
||||||
export const authApiUrl = import.meta.env.PUBLIC_AUTH_API || defaultAuthUrl
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user