@skipruntime/helpers 0.0.14 → 0.0.15
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/dist/src/external.d.ts +3 -4
- package/dist/src/external.d.ts.map +1 -1
- package/dist/src/external.js +10 -12
- package/dist/src/external.js.map +1 -1
- package/dist/src/remote.d.ts +3 -4
- package/dist/src/remote.d.ts.map +1 -1
- package/dist/src/remote.js +17 -15
- package/dist/src/remote.js.map +1 -1
- package/package.json +2 -2
- package/src/external.ts +16 -17
- package/src/remote.ts +27 -27
package/dist/src/external.d.ts
CHANGED
|
@@ -59,10 +59,9 @@ export declare class PolledExternalService implements ExternalService {
|
|
|
59
59
|
[resource: string]: PolledHTTPResource;
|
|
60
60
|
});
|
|
61
61
|
subscribe(instance: string, resourceName: string, params: Json, callbacks: {
|
|
62
|
-
update: (updates: Entry<Json, Json>[], isInit: boolean) => void
|
|
63
|
-
error: (error:
|
|
64
|
-
|
|
65
|
-
}): void;
|
|
62
|
+
update: (updates: Entry<Json, Json>[], isInit: boolean) => Promise<void>;
|
|
63
|
+
error: (error: unknown) => void;
|
|
64
|
+
}): Promise<void>;
|
|
66
65
|
unsubscribe(instance: string): void;
|
|
67
66
|
shutdown(): Promise<void>;
|
|
68
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../src/external.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAMtE;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CASxD;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;IAC1C;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,MAAM,CAAC;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE;YAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,eAAe;IASzD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAR5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;;;OAIG;gBAEgB,SAAS,EAAE;QAC1B,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAAC;KACxC;
|
|
1
|
+
{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../src/external.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAMtE;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CASxD;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;IAC1C;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,KAAK,MAAM,CAAC;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE;YAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,eAAe;IASzD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAR5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;;;OAIG;gBAEgB,SAAS,EAAE;QAC1B,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAAC;KACxC;IAGG,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACzE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;KACjC,GACA,OAAO,CAAC,IAAI,CAAC;IAuBhB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQnC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAO1B"}
|
package/dist/src/external.js
CHANGED
|
@@ -37,24 +37,22 @@ export class PolledExternalService {
|
|
|
37
37
|
this.resources = resources;
|
|
38
38
|
this.intervals = new Map();
|
|
39
39
|
}
|
|
40
|
-
subscribe(instance, resourceName, params, callbacks) {
|
|
40
|
+
async subscribe(instance, resourceName, params, callbacks) {
|
|
41
41
|
const resource = this.resources[resourceName];
|
|
42
42
|
if (!resource)
|
|
43
43
|
throw new SkipUnknownResourceError(`Unknown resource named '${resourceName}'`);
|
|
44
44
|
const url = `${resource.url}${(resource.encodeParams ?? defaultParamEncoder)(params)}`;
|
|
45
|
-
const call = () => {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
callbacks.error(e
|
|
45
|
+
const call = async (init) => {
|
|
46
|
+
const [data, _] = await fetchJSON(url, "GET", resource.options ?? {});
|
|
47
|
+
await callbacks.update(resource.conv(data ?? []), init);
|
|
48
|
+
};
|
|
49
|
+
await call(true);
|
|
50
|
+
this.intervals.set(instance, setInterval(() => {
|
|
51
|
+
call(false).catch((e) => {
|
|
52
|
+
callbacks.error(e);
|
|
53
53
|
console.error(e);
|
|
54
54
|
});
|
|
55
|
-
};
|
|
56
|
-
call();
|
|
57
|
-
this.intervals.set(instance, setInterval(call, resource.interval));
|
|
55
|
+
}, resource.interval));
|
|
58
56
|
}
|
|
59
57
|
unsubscribe(instance) {
|
|
60
58
|
const interval = this.intervals.get(instance);
|
package/dist/src/external.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../src/external.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAY;IAC9C,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAgC,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,OAAO,KAAK,IAAI,QAAQ;gBAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;gBAClE,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC3D,CAAC;;QAAM,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AACpD,CAAC;AAgCD;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IAGhC;;;;OAIG;IACH,YACmB,SAEhB;QAFgB,cAAS,GAAT,SAAS,CAEzB;QAVc,cAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IAWrD,CAAC;IAEJ,SAAS,
|
|
1
|
+
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../src/external.ts"],"names":[],"mappings":"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"}
|
package/dist/src/remote.d.ts
CHANGED
|
@@ -22,10 +22,9 @@ export declare class SkipExternalService implements ExternalService {
|
|
|
22
22
|
*/
|
|
23
23
|
static direct(entrypoint: Entrypoint): SkipExternalService;
|
|
24
24
|
subscribe(instance: string, resource: string, params: Json, callbacks: {
|
|
25
|
-
update: (updates: Entry<Json, Json>[], isInitial: boolean) => void
|
|
26
|
-
error: (error:
|
|
27
|
-
|
|
28
|
-
}): void;
|
|
25
|
+
update: (updates: Entry<Json, Json>[], isInitial: boolean) => Promise<void>;
|
|
26
|
+
error: (error: unknown) => void;
|
|
27
|
+
}): Promise<void>;
|
|
29
28
|
unsubscribe(instance: string): void;
|
|
30
29
|
shutdown(): Promise<void>;
|
|
31
30
|
}
|
package/dist/src/remote.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,KAAK,EACL,eAAe,EACf,IAAI,EAGJ,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM5C;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAQvD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAR9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IAEzD;;;OAGG;gBAEgB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM;IAGtC;;;;;OAKG;IAEH,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,mBAAmB;
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAGV,KAAK,EACL,eAAe,EACf,IAAI,EAGJ,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM5C;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAQvD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAR9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IAEzD;;;OAGG;gBAEgB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM;IAGtC;;;;;OAKG;IAEH,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,mBAAmB;IAUpD,SAAS,CACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE;QACT,MAAM,EAAE,CACN,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAC5B,SAAS,EAAE,OAAO,KACf,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;KACjC,GACA,OAAO,CAAC,IAAI,CAAC;IA8BhB,WAAW,CAAC,QAAQ,EAAE,MAAM;IAQ5B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAM1B;AAqBD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAM1D;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE;IACN,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,GACA,WAAW,CAoBb"}
|
package/dist/src/remote.js
CHANGED
|
@@ -33,33 +33,35 @@ export class SkipExternalService {
|
|
|
33
33
|
}
|
|
34
34
|
return new SkipExternalService(url, control_url);
|
|
35
35
|
}
|
|
36
|
-
subscribe(instance, resource, params, callbacks) {
|
|
37
|
-
|
|
38
|
-
fetch(`${this.control_url}/v1/streams/${resource}`, {
|
|
36
|
+
async subscribe(instance, resource, params, callbacks) {
|
|
37
|
+
const resp = await fetch(`${this.control_url}/v1/streams/${resource}`, {
|
|
39
38
|
method: "POST",
|
|
40
39
|
headers: {
|
|
41
40
|
"Content-Type": "application/json",
|
|
42
41
|
},
|
|
43
42
|
body: JSON.stringify(params),
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
});
|
|
44
|
+
const uuid = await resp.text();
|
|
45
|
+
return new Promise((resolve, reject) => {
|
|
47
46
|
const evSource = new EventSource(`${this.url}/v1/streams/${uuid}`);
|
|
47
|
+
evSource.addEventListener("open", () => {
|
|
48
|
+
this.resources.set(instance, evSource);
|
|
49
|
+
resolve();
|
|
50
|
+
});
|
|
48
51
|
evSource.addEventListener("init", (e) => {
|
|
49
52
|
const updates = JSON.parse(e.data);
|
|
50
|
-
callbacks.update(updates, true);
|
|
53
|
+
callbacks.update(updates, true).catch(console.error);
|
|
51
54
|
});
|
|
52
55
|
evSource.addEventListener("update", (e) => {
|
|
53
56
|
const updates = JSON.parse(e.data);
|
|
54
|
-
callbacks.update(updates, false);
|
|
57
|
+
callbacks.update(updates, false).catch(console.error);
|
|
58
|
+
});
|
|
59
|
+
evSource.addEventListener("error", (e) => {
|
|
60
|
+
if (this.resources.has(instance))
|
|
61
|
+
callbacks.error(e.data);
|
|
62
|
+
else
|
|
63
|
+
reject(e.data);
|
|
55
64
|
});
|
|
56
|
-
evSource.onerror = (e) => {
|
|
57
|
-
console.log(e);
|
|
58
|
-
};
|
|
59
|
-
this.resources.set(instance, evSource);
|
|
60
|
-
})
|
|
61
|
-
.catch((e) => {
|
|
62
|
-
console.log(e);
|
|
63
65
|
});
|
|
64
66
|
}
|
|
65
67
|
unsubscribe(instance) {
|
package/dist/src/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,iBAAiB;AACjB,OAAO,WAAW,MAAM,aAAa,CAAC;AAYtC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAQ9C;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAG9B;;;OAGG;IACH,YACmB,GAAW,EACX,WAAmB;QADnB,QAAG,GAAH,GAAG,CAAQ;QACX,gBAAW,GAAX,WAAW,CAAQ;QARrB,cAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAStD,CAAC;IAEJ;;;;;OAKG;IACH,gEAAgE;IAChE,MAAM,CAAC,MAAM,CAAC,UAAsB;QAClC,IAAI,GAAG,GAAG,UAAU,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC9E,IAAI,WAAW,GAAG,UAAU,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;QACpF,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,GAAG,GAAG,WAAW,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC3E,WAAW,GAAG,WAAW,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnF,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,SAAS,
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skipruntime/helpers",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.15",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/src/index.js"
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"eventsource": "^2.0.2",
|
|
21
21
|
"express": "^4.21.1",
|
|
22
|
-
"@skipruntime/core": "0.0.
|
|
22
|
+
"@skipruntime/core": "0.0.15"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/eventsource": "^1.1.15"
|
package/src/external.ts
CHANGED
|
@@ -72,36 +72,35 @@ export class PolledExternalService implements ExternalService {
|
|
|
72
72
|
},
|
|
73
73
|
) {}
|
|
74
74
|
|
|
75
|
-
subscribe(
|
|
75
|
+
async subscribe(
|
|
76
76
|
instance: string,
|
|
77
77
|
resourceName: string,
|
|
78
78
|
params: Json,
|
|
79
79
|
callbacks: {
|
|
80
|
-
update: (updates: Entry<Json, Json>[], isInit: boolean) => void
|
|
81
|
-
error: (error:
|
|
82
|
-
loading: () => void;
|
|
80
|
+
update: (updates: Entry<Json, Json>[], isInit: boolean) => Promise<void>;
|
|
81
|
+
error: (error: unknown) => void;
|
|
83
82
|
},
|
|
84
|
-
) {
|
|
83
|
+
): Promise<void> {
|
|
85
84
|
const resource = this.resources[resourceName];
|
|
86
85
|
if (!resource)
|
|
87
86
|
throw new SkipUnknownResourceError(
|
|
88
87
|
`Unknown resource named '${resourceName}'`,
|
|
89
88
|
);
|
|
90
|
-
|
|
91
89
|
const url = `${resource.url}${(resource.encodeParams ?? defaultParamEncoder)(params)}`;
|
|
92
|
-
const call = () => {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
90
|
+
const call = async (init: boolean) => {
|
|
91
|
+
const [data, _] = await fetchJSON(url, "GET", resource.options ?? {});
|
|
92
|
+
await callbacks.update(resource.conv(data ?? []), init);
|
|
93
|
+
};
|
|
94
|
+
await call(true);
|
|
95
|
+
this.intervals.set(
|
|
96
|
+
instance,
|
|
97
|
+
setInterval(() => {
|
|
98
|
+
call(false).catch((e: unknown) => {
|
|
99
|
+
callbacks.error(e);
|
|
100
100
|
console.error(e);
|
|
101
101
|
});
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
this.intervals.set(instance, setInterval(call, resource.interval));
|
|
102
|
+
}, resource.interval),
|
|
103
|
+
);
|
|
105
104
|
}
|
|
106
105
|
|
|
107
106
|
unsubscribe(instance: string): void {
|
package/src/remote.ts
CHANGED
|
@@ -54,45 +54,45 @@ export class SkipExternalService implements ExternalService {
|
|
|
54
54
|
return new SkipExternalService(url, control_url);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
subscribe(
|
|
57
|
+
async subscribe(
|
|
58
58
|
instance: string,
|
|
59
59
|
resource: string,
|
|
60
60
|
params: Json,
|
|
61
61
|
callbacks: {
|
|
62
|
-
update: (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
update: (
|
|
63
|
+
updates: Entry<Json, Json>[],
|
|
64
|
+
isInitial: boolean,
|
|
65
|
+
) => Promise<void>;
|
|
66
|
+
error: (error: unknown) => void;
|
|
67
67
|
},
|
|
68
|
-
): void {
|
|
69
|
-
|
|
70
|
-
fetch(`${this.control_url}/v1/streams/${resource}`, {
|
|
68
|
+
): Promise<void> {
|
|
69
|
+
const resp = await fetch(`${this.control_url}/v1/streams/${resource}`, {
|
|
71
70
|
method: "POST",
|
|
72
71
|
headers: {
|
|
73
72
|
"Content-Type": "application/json",
|
|
74
73
|
},
|
|
75
74
|
body: JSON.stringify(params),
|
|
76
|
-
})
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const updates = JSON.parse(e.data) as Entry<Json, Json>[];
|
|
82
|
-
callbacks.update(updates, true);
|
|
83
|
-
});
|
|
84
|
-
evSource.addEventListener("update", (e: MessageEvent<string>) => {
|
|
85
|
-
const updates = JSON.parse(e.data) as Entry<Json, Json>[];
|
|
86
|
-
callbacks.update(updates, false);
|
|
87
|
-
});
|
|
88
|
-
evSource.onerror = (e) => {
|
|
89
|
-
console.log(e);
|
|
90
|
-
};
|
|
75
|
+
});
|
|
76
|
+
const uuid = await resp.text();
|
|
77
|
+
return new Promise<void>((resolve, reject) => {
|
|
78
|
+
const evSource = new EventSource(`${this.url}/v1/streams/${uuid}`);
|
|
79
|
+
evSource.addEventListener("open", () => {
|
|
91
80
|
this.resources.set(instance, evSource);
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
81
|
+
resolve();
|
|
82
|
+
});
|
|
83
|
+
evSource.addEventListener("init", (e: MessageEvent<string>) => {
|
|
84
|
+
const updates = JSON.parse(e.data) as Entry<Json, Json>[];
|
|
85
|
+
callbacks.update(updates, true).catch(console.error);
|
|
86
|
+
});
|
|
87
|
+
evSource.addEventListener("update", (e: MessageEvent<string>) => {
|
|
88
|
+
const updates = JSON.parse(e.data) as Entry<Json, Json>[];
|
|
89
|
+
callbacks.update(updates, false).catch(console.error);
|
|
90
|
+
});
|
|
91
|
+
evSource.addEventListener("error", (e) => {
|
|
92
|
+
if (this.resources.has(instance)) callbacks.error(e.data);
|
|
93
|
+
else reject(e.data as Error);
|
|
95
94
|
});
|
|
95
|
+
});
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
unsubscribe(instance: string) {
|