Modify WS dev hooks

This commit is contained in:
Bojan Mojsilovic 2023-09-04 12:13:39 +02:00
parent 44567394e0
commit 27c52965a5
4 changed files with 24 additions and 19 deletions

View File

@ -73,7 +73,7 @@ const Router: Component = () => {
primalWindow.onPrimalComponentMount = () => {};
primalWindow.onPrimalComponentCleanup = () => {};
primalWindow.onPrimalCacheServerConnected = () => {};
primalWindow.onPrimalCacheServerMessage = () => {};
primalWindow.onPrimalUploadServerConnected = () => {};
}
const getKnownProfiles = ({ params }: RouteDataFuncArgs) => {

View File

@ -12,7 +12,7 @@ const onOpen = () => {
if (localStorage.getItem('devMode') === 'true') {
const hook = (window as PrimalWindow).onPrimalCacheServerConnected;
hook && hook(cacheServer);
hook && hook(cacheServer, socket());
}
}
@ -22,21 +22,12 @@ const onClose = () => {
socket()?.removeEventListener('open', onOpen);
socket()?.removeEventListener('close', onClose);
socket()?.removeEventListener('error', onError);
socket()?.removeEventListener('message', onMessage);
setTimeout(() => {
connect();
}, 200);
}
const onMessage = (event: MessageEvent) => {
if (localStorage.getItem('devMode') === 'true') {
const hook = (window as PrimalWindow).onPrimalCacheServerMessage;
hook && hook(event);
}
}
const onError = (error: Event) => {
console.log("ws error: ", error);
};
@ -55,7 +46,6 @@ export const connect = () => {
socket()?.addEventListener('open', onOpen);
socket()?.addEventListener('close', onClose);
socket()?.addEventListener('error', onError);
socket()?.addEventListener('message', onMessage);
}
};
@ -69,7 +59,11 @@ export const reset = () => {
};
export const sendMessage = (message: string) => {
isConnected() && socket()?.send(message);
if (isConnected()) {
const e = new CustomEvent('send', { detail: { message, ws: socket() }});
socket()?.send(message);
socket()?.dispatchEvent(e);
}
}
export const refreshSocketListeners = (

View File

@ -342,8 +342,8 @@ export type PrimalWindow = Window & typeof globalThis & {
primal?: any,
onPrimalComponentMount?: (data: any) => void,
onPrimalComponentCleanup?: (data: any) => void,
onPrimalCacheServerConnected?: (url: string) => void,
onPrimalCacheServerMessage?: (message: MessageEvent) => void,
onPrimalCacheServerConnected?: (url: string, ws: WebSocket | undefined) => void,
onPrimalUploadServerConnected?: (url: string, ws: WebSocket | undefined) => void,
};
export type NostrEventType = "EVENT" | "EOSE" | "NOTICE";

View File

@ -1,5 +1,5 @@
import { createSignal } from "solid-js";
import { NostrEvent, NostrEOSE, NostrEventType, NostrEventContent } from "./types/primal";
import { NostrEvent, NostrEOSE, NostrEventType, NostrEventContent, PrimalWindow } from "./types/primal";
export const [socket, setSocket] = createSignal<WebSocket>();
@ -9,6 +9,11 @@ export const isNotConnected = () => !isConnected();
const onOpen = () => {
setConnected(true);
if (localStorage.getItem('devMode') === 'true') {
const hook = (window as PrimalWindow).onPrimalUploadServerConnected;
hook && hook(uploadServer, socket());
}
}
const onClose = () => {
@ -27,12 +32,14 @@ const onError = (error: Event) => {
console.log("ws error: ", error);
};
export let uploadServer = '';
export const connect = () => {
if (isNotConnected()) {
const cacheServer = localStorage.getItem('uploadServer') ||
uploadServer = localStorage.getItem('uploadServer') ||
import.meta.env.PRIMAL_UPLOAD_URL;
setSocket(new WebSocket(cacheServer));
setSocket(new WebSocket(uploadServer));
console.log('UPLOAD SOCKET: ', socket());
socket()?.addEventListener('open', onOpen);
@ -51,7 +58,11 @@ export const reset = () => {
};
export const sendMessage = (message: string) => {
isConnected() && socket()?.send(message);
if (isConnected()) {
const e = new CustomEvent('send', { detail: { message, ws: socket() }});
socket()?.send(message);
socket()?.dispatchEvent(e);
}
}
export const refreshSocketListeners = (