mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-08-27 01:22:49 +00:00
117 lines
3.7 KiB
JavaScript
117 lines
3.7 KiB
JavaScript
(function() {
|
|
|
|
|
|
//#region src/server/constant.ts
|
|
const DEFAULT_WEB_SOCKET_PORT = 16322;
|
|
const WEB_SOCKET_CONNECT_MAGIC_ID = "1hpzW-zo2z-o8io-gfmV1-2cb1d82";
|
|
|
|
//#endregion
|
|
//#region src/server/message/Message.ts
|
|
var Message = class {
|
|
constructor(type, kind) {
|
|
this.type = type;
|
|
this.kind = kind;
|
|
this.time = Date.now();
|
|
}
|
|
};
|
|
|
|
//#endregion
|
|
//#region src/server/message/Action/Action.ts
|
|
let ActionKind = /* @__PURE__ */ function(ActionKind) {
|
|
ActionKind["ADD_SUBSCRIBER"] = "ADD_SUBSCRIBER";
|
|
ActionKind["EXIT_SUBSCRIBER"] = "EXIT_SUBSCRIBER";
|
|
ActionKind["ADD_PUBLISHER"] = "ADD_PUBLISHER";
|
|
ActionKind["UPDATE_PUBLISHER"] = "UPDATE_PUBLISHER";
|
|
ActionKind["NOTIFY_SUBSCRIBER"] = "NOTIFY_SUBSCRIBER";
|
|
ActionKind["EXIT_PUBLISHER"] = "EXIT_PUBLISHER";
|
|
ActionKind["ADD_WEB_CLIENT"] = "ADD_WEB_CLIENT";
|
|
ActionKind["NOTIFY_WEB_CLIENT"] = "NOTIFY_WEB_CLIENT";
|
|
ActionKind["FETCH_TYPES"] = "FETCH_TYPES";
|
|
ActionKind["ADD_DYNAMIC_REMOTE"] = "ADD_DYNAMIC_REMOTE";
|
|
return ActionKind;
|
|
}({});
|
|
var Action = class extends Message {
|
|
constructor(content, kind) {
|
|
super("Action", kind);
|
|
const { payload } = content;
|
|
this.payload = payload;
|
|
}
|
|
};
|
|
|
|
//#endregion
|
|
//#region src/server/message/Action/AddWebClient.ts
|
|
var AddWebClientAction = class extends Action {
|
|
constructor(payload) {
|
|
super({ payload }, ActionKind.ADD_WEB_CLIENT);
|
|
}
|
|
};
|
|
|
|
//#endregion
|
|
//#region src/server/message/API/API.ts
|
|
let APIKind = /* @__PURE__ */ function(APIKind) {
|
|
APIKind["UPDATE_SUBSCRIBER"] = "UPDATE_SUBSCRIBER";
|
|
APIKind["RELOAD_WEB_CLIENT"] = "RELOAD_WEB_CLIENT";
|
|
APIKind["FETCH_TYPES"] = "FETCH_TYPES";
|
|
return APIKind;
|
|
}({});
|
|
|
|
//#endregion
|
|
//#region ../../node_modules/.pnpm/isomorphic-ws@5.0.0_ws@8.18.0/node_modules/isomorphic-ws/browser.js
|
|
var ws = null;
|
|
if (typeof WebSocket !== "undefined") ws = WebSocket;
|
|
else if (typeof MozWebSocket !== "undefined") ws = MozWebSocket;
|
|
else if (typeof global !== "undefined") ws = global.WebSocket || global.MozWebSocket;
|
|
else if (typeof window !== "undefined") ws = window.WebSocket || window.MozWebSocket;
|
|
else if (typeof self !== "undefined") ws = self.WebSocket || self.MozWebSocket;
|
|
var browser_default = ws;
|
|
|
|
//#endregion
|
|
//#region src/server/createWebsocket.ts
|
|
function createWebsocket() {
|
|
return new browser_default(`ws://127.0.0.1:${DEFAULT_WEB_SOCKET_PORT}?WEB_SOCKET_CONNECT_MAGIC_ID=${WEB_SOCKET_CONNECT_MAGIC_ID}`);
|
|
}
|
|
|
|
//#endregion
|
|
//#region src/server/WebClient.ts
|
|
var WebClient = class {
|
|
constructor(options) {
|
|
this._webSocket = null;
|
|
this._name = options.name;
|
|
this.logPrefix = options.logPrefix || "";
|
|
this._connect();
|
|
}
|
|
_connect() {
|
|
console.log(`${this.logPrefix}Trying to connect to {cyan ws://127.0.0.1:${DEFAULT_WEB_SOCKET_PORT}}...}`);
|
|
this._webSocket = createWebsocket();
|
|
this._webSocket.onopen = () => {
|
|
console.log(`${this.logPrefix}Connected to {cyan ws://127.0.0.1:${DEFAULT_WEB_SOCKET_PORT}} success!`);
|
|
const startWebClient = new AddWebClientAction({ name: this._name });
|
|
this._webSocket && this._webSocket.send(JSON.stringify(startWebClient));
|
|
};
|
|
this._webSocket.onmessage = (message) => {
|
|
console.log(message);
|
|
const parsedMessage = JSON.parse(message.data.toString());
|
|
if (parsedMessage.type === "API") {
|
|
if (parsedMessage.kind === APIKind.RELOAD_WEB_CLIENT) {
|
|
const { payload: { name } } = parsedMessage;
|
|
if (name !== this._name) return;
|
|
this._reload();
|
|
}
|
|
}
|
|
};
|
|
this._webSocket.onerror = (err) => {
|
|
console.error(`${this.logPrefix}err: ${err}`);
|
|
};
|
|
}
|
|
_reload() {
|
|
console.log(`${this.logPrefix}reload`);
|
|
location.reload();
|
|
}
|
|
};
|
|
|
|
//#endregion
|
|
//#region src/server/launchWebClient.ts
|
|
new WebClient(__WEB_CLIENT_OPTIONS__);
|
|
|
|
//#endregion
|
|
})(); |