@livequery/rpc 2.0.141 → 2.0.143
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLinker.d.ts","sourceRoot":"","sources":["../src/ServiceLinker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD,qBAAa,aAAa;;IAUV,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"ServiceLinker.d.ts","sourceRoot":"","sources":["../src/ServiceLinker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD,qBAAa,aAAa;;IAUV,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,UAAU;IAyBvC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;CAiFjD"}
|
package/dist/ServiceLinker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BehaviorSubject, finalize, firstValueFrom, Observable, share, Subject, tap } from "rxjs";
|
|
1
|
+
import { BehaviorSubject, defer, finalize, firstValueFrom, Observable, ReplaySubject, share, Subject, tap, timer } from "rxjs";
|
|
2
2
|
export class ServiceLinker {
|
|
3
3
|
channel;
|
|
4
4
|
#request_id = 1;
|
|
@@ -15,8 +15,9 @@ export class ServiceLinker {
|
|
|
15
15
|
const { completed, data, error, stack } = e.response;
|
|
16
16
|
if (completed || error)
|
|
17
17
|
request.completed = true;
|
|
18
|
-
if ("data" in e.response)
|
|
18
|
+
if ("data" in e.response) {
|
|
19
19
|
request.o.next(data);
|
|
20
|
+
}
|
|
20
21
|
if (error) {
|
|
21
22
|
const err = new Error(error);
|
|
22
23
|
// Surface the worker-side stack for debugging instead of the (useless)
|
|
@@ -25,14 +26,15 @@ export class ServiceLinker {
|
|
|
25
26
|
err.stack = stack;
|
|
26
27
|
request.o.error(err);
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
+
else {
|
|
30
|
+
completed && request.o.complete();
|
|
31
|
+
}
|
|
29
32
|
})).subscribe();
|
|
30
33
|
}
|
|
31
34
|
linkService(name) {
|
|
32
35
|
const cache = this.#services.get(name);
|
|
33
36
|
if (cache)
|
|
34
37
|
return cache;
|
|
35
|
-
const observables = new Map();
|
|
36
38
|
const rpc = (paths, args) => {
|
|
37
39
|
if (paths.length == 0 || paths[0] == '#')
|
|
38
40
|
throw new Error(`Invalid method path: ${paths.join('.')}`);
|
|
@@ -64,42 +66,45 @@ export class ServiceLinker {
|
|
|
64
66
|
}
|
|
65
67
|
});
|
|
66
68
|
};
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
69
|
+
const values = new Map();
|
|
70
|
+
const observables = new Map();
|
|
71
|
+
const service = new Proxy({}, {
|
|
72
|
+
get: (_, key) => {
|
|
73
|
+
if (key == 'then' || typeof key != 'string')
|
|
74
|
+
return null;
|
|
75
|
+
if (observables.has(key)) {
|
|
76
|
+
return Object.assign(observables.get(key), {
|
|
77
|
+
getValue: () => values.get(key)
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const fn = (...args) => rpc([key], args);
|
|
81
|
+
return new Proxy(fn, {
|
|
82
|
+
get: (_, prop) => {
|
|
83
|
+
if (prop == 'then' || typeof prop != 'string')
|
|
84
|
+
return null;
|
|
85
|
+
if (prop == 'pipe' || prop == 'subscribe') {
|
|
86
|
+
const $ = observables.get(key) || defer(() => rpc([key], [])).pipe(tap(value => values.set(key, value)), finalize(() => observables.delete(key)), share({
|
|
87
|
+
connector: () => new ReplaySubject(1),
|
|
88
|
+
resetOnError: true,
|
|
83
89
|
resetOnComplete: false,
|
|
84
|
-
|
|
85
|
-
}))
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
resetOnRefCountZero: () => timer(1000)
|
|
91
|
+
}));
|
|
92
|
+
!observables.has(key) && observables.set(key, $);
|
|
93
|
+
return (...args) => $[prop](...args);
|
|
94
|
+
}
|
|
95
|
+
if (prop == 'getValue')
|
|
96
|
+
return () => values.get(key);
|
|
97
|
+
return (...args) => rpc([key, prop], args);
|
|
91
98
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
return prop in target;
|
|
99
|
+
});
|
|
100
|
+
},
|
|
101
|
+
has(target, prop) {
|
|
102
|
+
if (prop == 'pipe' || prop == 'subscribe' || prop == 'getValue') {
|
|
103
|
+
return true;
|
|
99
104
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
105
|
+
return prop in target;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
103
108
|
this.#services.set(name, service);
|
|
104
109
|
return service;
|
|
105
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLinker.js","sourceRoot":"","sources":["../src/ServiceLinker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ServiceLinker.js","sourceRoot":"","sources":["../src/ServiceLinker.ts"],"names":[],"mappings":"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"}
|