elit 3.5.0 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -2
- package/dist/build.d.mts +1 -1
- package/dist/cli.js +178 -54
- package/dist/config.d.mts +1 -1
- package/dist/coverage.d.mts +1 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +5 -4
- package/dist/http.js.map +1 -1
- package/dist/http.mjs +5 -4
- package/dist/http.mjs.map +1 -1
- package/dist/https.js +5 -4
- package/dist/https.js.map +1 -1
- package/dist/https.mjs +5 -4
- package/dist/https.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.js +20 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +20 -1
- package/dist/index.mjs.map +1 -1
- package/dist/native.js +20 -1
- package/dist/native.js.map +1 -1
- package/dist/native.mjs +20 -1
- package/dist/native.mjs.map +1 -1
- package/dist/{server-DpnTyF7I.d.mts → server--YFoC6ln.d.mts} +27 -0
- package/dist/{server-BU71N4fk.d.ts → server-DacsdjFJ.d.ts} +27 -0
- package/dist/server.d.mts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +141 -52
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +141 -52
- package/dist/server.mjs.map +1 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +20 -1
- package/dist/state.js.map +1 -1
- package/dist/state.mjs +20 -1
- package/dist/state.mjs.map +1 -1
- package/dist/types.d.mts +28 -1
- package/dist/types.d.ts +27 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/ws.d.mts +1 -1
- package/dist/ws.d.ts +1 -1
- package/dist/ws.d.ts.map +1 -1
- package/dist/ws.js +9 -4
- package/dist/ws.js.map +1 -1
- package/dist/ws.mjs +9 -4
- package/dist/ws.mjs.map +1 -1
- package/dist/wss.js +14 -8
- package/dist/wss.js.map +1 -1
- package/dist/wss.mjs +14 -8
- package/dist/wss.mjs.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +18 -0
- package/src/http.ts +5 -4
- package/src/server.ts +182 -56
- package/src/state.ts +25 -1
- package/src/types.ts +30 -0
- package/src/ws.ts +12 -5
package/dist/index.mjs
CHANGED
|
@@ -742,6 +742,7 @@ var mount = render;
|
|
|
742
742
|
|
|
743
743
|
// src/state.ts
|
|
744
744
|
var ELIT_NATIVE_BINDING = /* @__PURE__ */ Symbol.for("elit.native.binding");
|
|
745
|
+
var ELIT_INTERNAL_WS_PATH = "/__elit_ws";
|
|
745
746
|
var createState = (initial, options) => dom.createState(initial, options);
|
|
746
747
|
var computed = (states, fn) => dom.computed(states, fn);
|
|
747
748
|
var effect = (fn) => dom.effect(fn);
|
|
@@ -807,6 +808,24 @@ function bindChecked(state) {
|
|
|
807
808
|
};
|
|
808
809
|
return props;
|
|
809
810
|
}
|
|
811
|
+
function resolveSharedStateWebSocketUrl(wsUrl) {
|
|
812
|
+
const protocol = typeof location !== "undefined" && location.protocol === "https:" ? "wss:" : "ws:";
|
|
813
|
+
const origin = typeof location !== "undefined" ? `${protocol}//${location.host}` : `${protocol}//localhost`;
|
|
814
|
+
if (!wsUrl) {
|
|
815
|
+
return `${origin}${ELIT_INTERNAL_WS_PATH}`;
|
|
816
|
+
}
|
|
817
|
+
if (/^wss?:\/\//i.test(wsUrl)) {
|
|
818
|
+
const parsedUrl = new URL(wsUrl);
|
|
819
|
+
if (!parsedUrl.pathname || parsedUrl.pathname === "/") {
|
|
820
|
+
parsedUrl.pathname = ELIT_INTERNAL_WS_PATH;
|
|
821
|
+
}
|
|
822
|
+
return parsedUrl.toString();
|
|
823
|
+
}
|
|
824
|
+
if (wsUrl.startsWith("/")) {
|
|
825
|
+
return `${origin}${wsUrl}`;
|
|
826
|
+
}
|
|
827
|
+
return wsUrl;
|
|
828
|
+
}
|
|
810
829
|
var SharedState = class {
|
|
811
830
|
constructor(key, defaultValue, wsUrl) {
|
|
812
831
|
this.key = key;
|
|
@@ -858,7 +877,7 @@ var SharedState = class {
|
|
|
858
877
|
*/
|
|
859
878
|
connect() {
|
|
860
879
|
if (typeof window === "undefined") return;
|
|
861
|
-
const url = this.wsUrl
|
|
880
|
+
const url = resolveSharedStateWebSocketUrl(this.wsUrl);
|
|
862
881
|
this.ws = new WebSocket(url);
|
|
863
882
|
this.ws.addEventListener("open", () => {
|
|
864
883
|
this.subscribe();
|