@songfreedom/sse-client 0.1.0 → 0.1.2
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 +213 -190
- package/batch.d.ts +13 -11
- package/batch.d.ts.map +1 -1
- package/batch.js.map +1 -1
- package/client.d.ts +70 -60
- package/client.d.ts.map +1 -1
- package/client.js +56 -45
- package/client.js.map +1 -1
- package/errors.d.ts +16 -13
- package/errors.d.ts.map +1 -1
- package/errors.js +20 -9
- package/errors.js.map +1 -1
- package/package.json +3 -4
- package/parser.d.ts +14 -13
- package/parser.d.ts.map +1 -1
- package/parser.js +14 -11
- package/parser.js.map +1 -1
- package/share.d.ts +10 -7
- package/share.d.ts.map +1 -1
- package/share.js +9 -6
- package/share.js.map +1 -1
- package/stream.d.ts +7 -5
- package/stream.d.ts.map +1 -1
- package/stream.js +12 -7
- package/stream.js.map +1 -1
- package/types.d.ts +10 -10
- package/types.d.ts.map +1 -1
- package/vue.d.ts +12 -12
- package/vue.d.ts.map +1 -1
- package/vue.js +4 -3
- package/vue.js.map +1 -1
package/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,uGAAuG;IACvG,EAAE,EAAE,MAAM,CAAC;IACX,yFAAyF;IACzF,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,IAAI,EAAE,CAAC,CAAC;IACR,0FAA0F;IAC1F,GAAG,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,kFAAkF;AAClF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,cAAc,GAAG,QAAQ,CAAC;AAEnF,gCAAgC;AAChC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAEtD,sEAAsE;AACtE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAElD,kEAAkE;AAClE,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC"}
|
package/vue.d.ts
CHANGED
|
@@ -2,34 +2,34 @@ import { type Ref, type ShallowRef } from "vue";
|
|
|
2
2
|
import { SSEClient, type SSEClientOptions } from "./client.js";
|
|
3
3
|
import type { SSEError } from "./errors.js";
|
|
4
4
|
import type { SSEEventMap, SSEMessage, SSEStatus } from "./types.js";
|
|
5
|
-
/** `useSSE
|
|
5
|
+
/** Options for `useSSE`. */
|
|
6
6
|
export interface UseSSEOptions extends SSEClientOptions {
|
|
7
|
-
/**
|
|
7
|
+
/** Connect immediately, defaults to true. */
|
|
8
8
|
immediate?: boolean;
|
|
9
|
-
/**
|
|
9
|
+
/** How many recent messages to keep, defaults to 200. Pass 0 to keep only the latest one. */
|
|
10
10
|
maxEvents?: number;
|
|
11
11
|
}
|
|
12
|
-
/** `useSSE
|
|
12
|
+
/** Return value of `useSSE`. */
|
|
13
13
|
export interface UseSSEReturn<E extends object = SSEEventMap> {
|
|
14
|
-
/**
|
|
14
|
+
/** Underlying client, use it to subscribe to specific event names. */
|
|
15
15
|
client: SSEClient<E>;
|
|
16
|
-
/**
|
|
16
|
+
/** Connection state, ready to bind to the UI. */
|
|
17
17
|
status: Ref<SSEStatus>;
|
|
18
|
-
/**
|
|
18
|
+
/** Most recent message. */
|
|
19
19
|
lastEvent: ShallowRef<SSEMessage | null>;
|
|
20
|
-
/**
|
|
20
|
+
/** Recent messages, kept in a ring buffer. */
|
|
21
21
|
events: ShallowRef<SSEMessage[]>;
|
|
22
|
-
/**
|
|
22
|
+
/** Most recent connection error. */
|
|
23
23
|
error: ShallowRef<SSEError | null>;
|
|
24
24
|
start: () => void;
|
|
25
25
|
stop: () => void;
|
|
26
|
-
/**
|
|
26
|
+
/** Reconnect while keeping `lastEventId` so the server can resume. */
|
|
27
27
|
restart: () => void;
|
|
28
|
-
/**
|
|
28
|
+
/** Subscribe to an event name and unsubscribe automatically when the scope is disposed. */
|
|
29
29
|
on: SSEClient<E>["on"];
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
* Vue
|
|
32
|
+
* Vue composable: auto-reconnect, message ring buffer, cleanup on unmount.
|
|
33
33
|
*
|
|
34
34
|
* ```ts
|
|
35
35
|
* interface AlarmEvent { level: "high" | "low"; deviceId: string }
|
package/vue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,GAAG,EACR,KAAK,UAAU,EAChB,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAErE,
|
|
1
|
+
{"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,GAAG,EACR,KAAK,UAAU,EAChB,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAErE,4BAA4B;AAC5B,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW;IAC1D,sEAAsE;IACtE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACrB,iDAAiD;IACjD,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,2BAA2B;IAC3B,SAAS,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACzC,8CAA8C;IAC9C,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACjC,oCAAoC;IACpC,KAAK,EAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,sEAAsE;IACtE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,2FAA2F;IAC3F,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,EACnD,OAAO,EAAE,aAAa,GACrB,YAAY,CAAC,CAAC,CAAC,CAgEjB"}
|
package/vue.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getCurrentScope, onScopeDispose, ref, shallowRef, } from "vue";
|
|
2
2
|
import { SSEClient } from "./client.js";
|
|
3
3
|
/**
|
|
4
|
-
* Vue
|
|
4
|
+
* Vue composable: auto-reconnect, message ring buffer, cleanup on unmount.
|
|
5
5
|
*
|
|
6
6
|
* ```ts
|
|
7
7
|
* interface AlarmEvent { level: "high" | "low"; deviceId: string }
|
|
@@ -36,7 +36,7 @@ export function useSSE(options) {
|
|
|
36
36
|
const keep = maxEvents - 1;
|
|
37
37
|
const next = keep > 0 ? events.value.slice(-keep) : [];
|
|
38
38
|
next.push(message);
|
|
39
|
-
//
|
|
39
|
+
// Replace the array so a shallowRef triggers, without deep-proxying payloads.
|
|
40
40
|
events.value = next;
|
|
41
41
|
}
|
|
42
42
|
clientOptions.onMessage?.(message);
|
|
@@ -52,7 +52,8 @@ export function useSSE(options) {
|
|
|
52
52
|
const restart = () => {
|
|
53
53
|
client.restart();
|
|
54
54
|
};
|
|
55
|
-
//
|
|
55
|
+
// Subscriptions follow the scope: unmounting a component (or a qiankun
|
|
56
|
+
// sub-app) unsubscribes automatically.
|
|
56
57
|
const on = ((event, handler) => {
|
|
57
58
|
const unsubscribe = client.on(event, handler);
|
|
58
59
|
if (getCurrentScope()) {
|
package/vue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue.js","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,cAAc,EACd,GAAG,EACH,UAAU,GAGX,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,SAAS,EAAyB,MAAM,aAAa,CAAC;AAgC/D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,MAAM,CACpB,OAAsB;IAEtB,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,GAAG,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IAExE,MAAM,MAAM,GAAG,GAAG,CAAY,MAAM,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,UAAU,CAAoB,IAAI,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,UAAU,CAAe,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,UAAU,CAAkB,IAAI,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAI;QAC9B,GAAG,aAAa;QAChB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YACjB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,aAAa,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;YACxB,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;YAClB,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YACrB,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC;YAC1B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACnB,
|
|
1
|
+
{"version":3,"file":"vue.js","sourceRoot":"","sources":["../src/vue.ts"],"names":[],"mappings":"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"}
|