@livequery/rpc 2.0.92 → 2.0.96
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/LimitConcurrency.js +36 -0
- package/dist/LimitConcurrency.js.map +1 -0
- package/dist/RpcChannel.js +4 -0
- package/dist/RpcChannel.js.map +1 -0
- package/dist/RxjsQueue.js +30 -0
- package/dist/RxjsQueue.js.map +1 -0
- package/dist/ServiceLinker.d.ts +2 -4
- package/dist/ServiceLinker.d.ts.map +1 -1
- package/dist/ServiceLinker.js +99 -0
- package/dist/ServiceLinker.js.map +1 -0
- package/dist/SharedWorkerChannel.d.ts +1 -1
- package/dist/SharedWorkerChannel.d.ts.map +1 -1
- package/dist/SharedWorkerChannel.js +58 -0
- package/dist/SharedWorkerChannel.js.map +1 -0
- package/dist/StorageBehaviorSubject.js +19 -0
- package/dist/StorageBehaviorSubject.js.map +1 -0
- package/dist/WorkerManager.d.ts +1 -1
- package/dist/WorkerManager.d.ts.map +1 -1
- package/dist/WorkerManager.js +73 -0
- package/dist/WorkerManager.js.map +1 -0
- package/dist/WorkerService.js +2 -0
- package/dist/WorkerService.js.map +1 -0
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2245
- package/dist/index.js.map +1 -81
- package/package.json +51 -12
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { catchError, EMPTY, finalize, from, lastValueFrom, mergeMap, Observable, of, Subject, Subscriber, tap } from "rxjs";
|
|
2
|
+
export const LimitConcurrency = (limit = 1) => (target, propertyKey, descriptor) => {
|
|
3
|
+
const originalMethod = descriptor.value;
|
|
4
|
+
const sj = new Subject();
|
|
5
|
+
sj.pipe(mergeMap(async ({ args, o }) => {
|
|
6
|
+
try {
|
|
7
|
+
const result = await originalMethod.apply(target, args);
|
|
8
|
+
const observable = result instanceof Promise ? from(result) : (result instanceof Observable ? result : of(result));
|
|
9
|
+
await lastValueFrom(observable.pipe(tap(data => o.next(data)), catchError(e => {
|
|
10
|
+
o.error(e);
|
|
11
|
+
return EMPTY;
|
|
12
|
+
}), finalize(() => o.complete())), { defaultValue: null });
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
o.error(e);
|
|
16
|
+
}
|
|
17
|
+
}, limit)).subscribe();
|
|
18
|
+
const ovf = (...args) => {
|
|
19
|
+
const o = new Observable(o => {
|
|
20
|
+
sj.next({ args, o });
|
|
21
|
+
});
|
|
22
|
+
return Object.assign(o, {
|
|
23
|
+
async then(resolve, reject) {
|
|
24
|
+
try {
|
|
25
|
+
const r = await lastValueFrom(o, { defaultValue: null });
|
|
26
|
+
resolve(r);
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
reject(e);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
return ovf;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=LimitConcurrency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LimitConcurrency.js","sourceRoot":"","sources":["../src/LimitConcurrency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAI3H,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAA6C,QAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,MAAW,EAAE,WAAmB,EAAE,UAAsC,EAAE,EAAE;IAC5K,MAAM,cAAc,GAAG,UAAU,CAAC,KAAU,CAAA;IAC5C,MAAM,EAAE,GAAG,IAAI,OAAO,EAAqC,CAAA;IAC3D,EAAE,CAAC,IAAI,CACH,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACvD,MAAM,UAAU,GAAG,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;YAClH,MAAM,aAAa,CAAC,UAAU,CAAC,IAAI,CAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EACzB,UAAU,CAAC,CAAC,CAAC,EAAE;gBACX,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBACV,OAAO,KAAK,CAAA;YAChB,CAAC,CAAC,EACF,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAC/B,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACd,CAAC;IACL,CAAC,EAAE,KAAK,CAAC,CACZ,CAAC,SAAS,EAAE,CAAA;IAEb,MAAM,GAAG,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;YACzB,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;YACpB,KAAK,CAAC,IAAI,CAAC,OAA6B,EAAE,MAA8B;gBACpE,IAAI,CAAC;oBACD,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;oBACxD,OAAO,CAAC,CAAC,CAAC,CAAA;gBACd,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,MAAM,CAAC,CAAC,CAAC,CAAA;gBACb,CAAC;YACL,CAAC;SACJ,CAAC,CAAA;IACN,CAAC,CAAA;IAED,OAAO,GAAU,CAAA;AACrB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RpcChannel.js","sourceRoot":"","sources":["../src/RpcChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAmB9B,MAAM,OAAgB,UAAW,SAAQ,OAAwE;CAEhH"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { mergeMap, Subject, switchMap } from "rxjs";
|
|
2
|
+
export class RxjsQueue {
|
|
3
|
+
#limit$ = new Subject();
|
|
4
|
+
#task = new Subject();
|
|
5
|
+
constructor(limit) {
|
|
6
|
+
this.#limit$.pipe(switchMap(limit => (this.#task.pipe(mergeMap(async ({ fn, s, r }) => {
|
|
7
|
+
try {
|
|
8
|
+
const data = await fn();
|
|
9
|
+
s(data);
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
r(e);
|
|
13
|
+
}
|
|
14
|
+
}, limit))))).subscribe();
|
|
15
|
+
limit && limit >= 1 && this.#limit$.next(limit);
|
|
16
|
+
}
|
|
17
|
+
updateLimit(limit) {
|
|
18
|
+
this.#limit$.next(limit);
|
|
19
|
+
}
|
|
20
|
+
run(fn) {
|
|
21
|
+
return new Promise((s, r) => {
|
|
22
|
+
this.#task.next({
|
|
23
|
+
fn,
|
|
24
|
+
s,
|
|
25
|
+
r
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=RxjsQueue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RxjsQueue.js","sourceRoot":"","sources":["../src/RxjsQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAIpD,MAAM,OAAO,SAAS;IAElB,OAAO,GAAG,IAAI,OAAO,EAAU,CAAA;IAE/B,KAAK,GAAG,IAAI,OAAO,EAIf,CAAA;IACJ,YAAY,KAAc;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CACf,IAAI,CAAC,KAAK,CAAC,IAAI,CACX,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;YAC5B,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,EAAE,EAAE,CAAA;gBACvB,CAAC,CAAC,IAAI,CAAC,CAAA;YACX,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,CAAC,CAAC,CAAC,CAAC,CAAA;YACR,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,CACZ,CACJ,CAAC,CACL,CAAC,SAAS,EAAE,CAAA;QACb,KAAK,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC;IAED,WAAW,CAAC,KAAa;QACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,GAAG,CAAC,EAAsB;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACZ,EAAE;gBACF,CAAC;gBACD,CAAC;aACJ,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;CACJ"}
|
package/dist/ServiceLinker.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import type { WorkerService } from "./WorkerService";
|
|
1
|
+
import type { RpcChannel } from "./RpcChannel.js";
|
|
2
|
+
import type { WorkerService } from "./WorkerService.js";
|
|
4
3
|
export declare class ServiceLinker {
|
|
5
4
|
#private;
|
|
6
5
|
private channel;
|
|
7
6
|
constructor(channel: RpcChannel);
|
|
8
7
|
linkService<T>(name: string): WorkerService<T>;
|
|
9
|
-
static ready$(services: any): Observable<boolean>;
|
|
10
8
|
}
|
|
11
9
|
//# sourceMappingURL=ServiceLinker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceLinker.d.ts","sourceRoot":"","sources":["../src/ServiceLinker.ts"],"names":[],"mappings":"
|
|
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;IAkBvC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;CAiFjD"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { BehaviorSubject, EMPTY, finalize, firstValueFrom, lastValueFrom, merge, Observable, share, Subject, tap } from "rxjs";
|
|
2
|
+
export class ServiceLinker {
|
|
3
|
+
channel;
|
|
4
|
+
#request_id = 1;
|
|
5
|
+
#services = new Map();
|
|
6
|
+
#requests = new Map;
|
|
7
|
+
constructor(channel) {
|
|
8
|
+
this.channel = channel;
|
|
9
|
+
lastValueFrom(merge(this.channel.pipe(tap(e => {
|
|
10
|
+
if (!e.response)
|
|
11
|
+
return;
|
|
12
|
+
const request = this.#requests.get(e.id);
|
|
13
|
+
if (!request)
|
|
14
|
+
return;
|
|
15
|
+
const { completed, data, error } = e.response;
|
|
16
|
+
if (completed || error)
|
|
17
|
+
request.completed = true;
|
|
18
|
+
data && request.o.next(data);
|
|
19
|
+
completed && request.o.complete();
|
|
20
|
+
error && request.o.error(new Error(error));
|
|
21
|
+
}))));
|
|
22
|
+
}
|
|
23
|
+
linkService(name) {
|
|
24
|
+
const cache = this.#services.get(name);
|
|
25
|
+
if (cache)
|
|
26
|
+
return cache;
|
|
27
|
+
const observables = new Map();
|
|
28
|
+
const rpc = (paths, args) => {
|
|
29
|
+
if (paths.length == 0 || paths[0] == '#')
|
|
30
|
+
throw new Error(`Invalid method path: ${paths.join('.')}`);
|
|
31
|
+
const id = this.#request_id++;
|
|
32
|
+
const o = new Subject();
|
|
33
|
+
this.#requests.set(id, { o, completed: false });
|
|
34
|
+
const observable = o.pipe(finalize(() => {
|
|
35
|
+
const request = this.#requests.get(id);
|
|
36
|
+
this.#requests.delete(id);
|
|
37
|
+
if (!request || request.completed)
|
|
38
|
+
return;
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
this.channel.send({ id: 0, cancel: { id } });
|
|
41
|
+
});
|
|
42
|
+
}));
|
|
43
|
+
setTimeout(() => {
|
|
44
|
+
this.channel.send({
|
|
45
|
+
id,
|
|
46
|
+
request: {
|
|
47
|
+
service: name,
|
|
48
|
+
method: paths,
|
|
49
|
+
args,
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
return Object.assign(observable, {
|
|
54
|
+
then(onFulfilled, onRejected) {
|
|
55
|
+
return firstValueFrom(observable, { defaultValue: { data: null } }).then(onFulfilled, onRejected);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
const build = (paths = []) => {
|
|
60
|
+
const fn = (...args) => rpc(paths, args);
|
|
61
|
+
return new Proxy(fn, {
|
|
62
|
+
get: (_, prop) => {
|
|
63
|
+
if (prop == 'then' || typeof prop != 'string')
|
|
64
|
+
return null;
|
|
65
|
+
if (prop == 'pipe' || prop == 'subscribe' || prop == 'getValue') {
|
|
66
|
+
return (...args) => {
|
|
67
|
+
const key = paths.join('.');
|
|
68
|
+
const cache = observables.get(key);
|
|
69
|
+
if (cache)
|
|
70
|
+
return cache;
|
|
71
|
+
const sbj = new BehaviorSubject(null);
|
|
72
|
+
const observable = Object.assign(rpc(paths, args).pipe(share({
|
|
73
|
+
connector: () => sbj,
|
|
74
|
+
resetOnRefCountZero: false,
|
|
75
|
+
resetOnComplete: false,
|
|
76
|
+
resetOnError: false,
|
|
77
|
+
})), {
|
|
78
|
+
getValue: () => sbj.getValue()
|
|
79
|
+
});
|
|
80
|
+
observables.set(key, observable);
|
|
81
|
+
return observable;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return build([...paths, prop]);
|
|
85
|
+
},
|
|
86
|
+
has(target, prop) {
|
|
87
|
+
if (prop == 'pipe' || prop == 'subscribe' || prop == 'getValue') {
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
return prop in target;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
const service = build();
|
|
95
|
+
this.#services.set(name, service);
|
|
96
|
+
return service;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=ServiceLinker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceLinker.js","sourceRoot":"","sources":["../src/ServiceLinker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAO/H,MAAM,OAAO,aAAa;IAUF;IARpB,WAAW,GAAG,CAAC,CAAA;IACf,SAAS,GAAG,IAAI,GAAG,EAAe,CAAA;IAClC,SAAS,GAAG,IAAI,GAGd,CAAA;IAGF,YAAoB,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;QACnC,aAAa,CAAC,KAAK,CACf,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,GAAG,CAAC,CAAC,CAAC,EAAE;YACJ,IAAI,CAAC,CAAC,CAAC,QAAQ;gBAAE,OAAM;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACxC,IAAI,CAAC,OAAO;gBAAE,OAAM;YACpB,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAA;YAC7C,IAAI,SAAS,IAAI,KAAK;gBAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAA;YAChD,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5B,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,CAAC,CAAC,CACL,CACJ,CAAC,CAAA;IAEN,CAAC;IAED,WAAW,CAAI,IAAY;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;QAEvB,MAAM,WAAW,GAAG,IAAI,GAAG,EAA2B,CAAA;QAEtD,MAAM,GAAG,GAAG,CAAU,KAAe,EAAE,IAAW,EAAyB,EAAE;YACzE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACpG,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;YAC7B,MAAM,CAAC,GAAG,IAAI,OAAO,EAAO,CAAA;YAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;YAC/C,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CACrB,QAAQ,CAAC,GAAG,EAAE;gBACV,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACzB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS;oBAAE,OAAM;gBACzC,UAAU,CAAC,GAAG,EAAE;oBACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;gBAChD,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CACL,CAAA;YACD,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBACd,EAAE;oBACF,OAAO,EAAE;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,KAAK;wBACb,IAAI;qBACP;iBACJ,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YACF,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;gBAC7B,IAAI,CAAC,WAAiC,EAAE,UAAiC;oBACrE,OAAO,cAAc,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;gBACrG,CAAC;aACJ,CAA4B,CAAA;QACjC,CAAC,CAAA;QAED,MAAM,KAAK,GAAG,CAAC,QAAkB,EAAE,EAAE,EAAE;YACnC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAC/C,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE;gBACjB,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;oBACb,IAAI,IAAI,IAAI,MAAM,IAAI,OAAO,IAAI,IAAI,QAAQ;wBAAE,OAAO,IAAI,CAAA;oBAC1D,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;wBAC9D,OAAO,CAAC,GAAG,IAAS,EAAE,EAAE;4BACpB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;4BAC3B,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;4BAClC,IAAI,KAAK;gCAAE,OAAO,KAAK,CAAA;4BACvB,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAA;4BACrC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAC5B,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CACjB,KAAK,CAAC;gCACF,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG;gCACpB,mBAAmB,EAAE,KAAK;gCAC1B,eAAe,EAAE,KAAK;gCACtB,YAAY,EAAE,KAAK;6BACtB,CAAC,CACL,EACD;gCACI,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE;6BACjC,CACJ,CAAA;4BACD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;4BAChC,OAAO,UAAU,CAAA;wBACrB,CAAC,CAAA;oBACL,CAAC;oBACD,OAAO,KAAK,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;gBAClC,CAAC;gBACD,GAAG,CAAC,MAAM,EAAE,IAAI;oBACZ,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;wBAC9D,OAAO,IAAI,CAAA;oBACf,CAAC;oBACD,OAAO,IAAI,IAAI,MAAM,CAAA;gBACzB,CAAC;aACJ,CAAM,CAAA;QACX,CAAC,CAAA;QACD,MAAM,OAAO,GAAG,KAAK,EAAS,CAAA;QAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACjC,OAAO,OAAO,CAAA;IAClB,CAAC;CAEJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedWorkerChannel.d.ts","sourceRoot":"","sources":["../src/SharedWorkerChannel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SharedWorkerChannel.d.ts","sourceRoot":"","sources":["../src/SharedWorkerChannel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI9D,qBAAa,mBAAoB,SAAQ,UAAU;;IAEnC,OAAO,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE,YAAY,YAAA;IA4DzC,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;CAIlC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { catchError, EMPTY, finalize, fromEvent, mergeMap, takeUntil, tap } from "rxjs";
|
|
2
|
+
import { RpcChannel } from "./RpcChannel.js";
|
|
3
|
+
export class SharedWorkerChannel extends RpcChannel {
|
|
4
|
+
worker;
|
|
5
|
+
constructor(worker) {
|
|
6
|
+
super();
|
|
7
|
+
this.worker = worker;
|
|
8
|
+
if (typeof window == 'undefined') {
|
|
9
|
+
this.#initBackground();
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
if (worker) {
|
|
13
|
+
this.#initForegound(worker);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
#initBackground() {
|
|
18
|
+
const me = globalThis;
|
|
19
|
+
fromEvent(me, 'connect').pipe(mergeMap(e => {
|
|
20
|
+
const port = e.ports[0];
|
|
21
|
+
if (!port)
|
|
22
|
+
return EMPTY;
|
|
23
|
+
port.start();
|
|
24
|
+
return fromEvent(port, 'message').pipe(takeUntil(fromEvent(port, 'messageerror')), tap(msg => {
|
|
25
|
+
const respond = (response) => {
|
|
26
|
+
port.postMessage({
|
|
27
|
+
id: msg.data.id,
|
|
28
|
+
response
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
this.next({ ...msg.data, respond });
|
|
32
|
+
}), finalize(() => {
|
|
33
|
+
port.close();
|
|
34
|
+
}));
|
|
35
|
+
})).subscribe();
|
|
36
|
+
}
|
|
37
|
+
#initForegound(worker) {
|
|
38
|
+
worker.port.start();
|
|
39
|
+
fromEvent(worker.port, 'message').pipe(takeUntil(fromEvent(worker.port, 'messageerror')), tap(e => {
|
|
40
|
+
const respond = (response) => {
|
|
41
|
+
const msg = {
|
|
42
|
+
id: e.data.id,
|
|
43
|
+
response
|
|
44
|
+
};
|
|
45
|
+
worker.port.postMessage(msg);
|
|
46
|
+
};
|
|
47
|
+
this.next({ ...e.data, respond });
|
|
48
|
+
}), finalize(() => worker.port.close()), catchError(e => {
|
|
49
|
+
return EMPTY;
|
|
50
|
+
})).subscribe();
|
|
51
|
+
}
|
|
52
|
+
send(message) {
|
|
53
|
+
if (!this.worker)
|
|
54
|
+
return;
|
|
55
|
+
this.worker.port.postMessage(message);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=SharedWorkerChannel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SharedWorkerChannel.js","sourceRoot":"","sources":["../src/SharedWorkerChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACvF,OAAO,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAC;AAI9D,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAE3B;IAApB,YAAoB,MAAqB;QACrC,KAAK,EAAE,CAAC;QADQ,WAAM,GAAN,MAAM,CAAe;QAErC,IAAI,OAAO,MAAM,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,EAAE,CAAA;QAC1B,CAAC;aAAM,CAAC;YACJ,IAAI,MAAM,EAAE,CAAC;gBACT,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC;QACL,CAAC;IACL,CAAC;IAGD,eAAe;QACX,MAAM,EAAE,GAAG,UAA4C,CAAA;QACvD,SAAS,CAAe,EAAE,EAAE,SAAS,CAAC,CAAC,IAAI,CACvC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACT,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACvB,IAAI,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAA;YACvB,IAAI,CAAC,KAAK,EAAE,CAAA;YACZ,OAAO,SAAS,CAA2B,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAC5D,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAC1C,GAAG,CAAC,GAAG,CAAC,EAAE;gBACN,MAAM,OAAO,GAAG,CAAC,QAAgC,EAAE,EAAE;oBACjD,IAAI,CAAC,WAAW,CAAC;wBACb,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;wBACf,QAAQ;qBACX,CAAC,CAAA;gBACN,CAAC,CAAA;gBAED,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YACvC,CAAC,CAAC,EACF,QAAQ,CAAC,GAAG,EAAE;gBACV,IAAI,CAAC,KAAK,EAAE,CAAA;YAChB,CAAC,CAAC,CACL,CAAA;QACL,CAAC,CAAC,CACL,CAAC,SAAS,EAAE,CAAA;IACjB,CAAC;IAED,cAAc,CAAC,MAAoB;QAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QACnB,SAAS,CAA2B,MAAM,CAAC,IAA8B,EAAE,SAAS,CAAC,CAAC,IAAI,CACtF,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,IAA8B,EAAE,cAAc,CAAC,CAAC,EAC3E,GAAG,CAAC,CAAC,CAAC,EAAE;YACJ,MAAM,OAAO,GAAG,CAAC,QAAgC,EAAE,EAAE;gBACjD,MAAM,GAAG,GAAe;oBACpB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE;oBACb,QAAQ;iBACX,CAAA;gBACD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAChC,CAAC,CAAA;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QACrC,CAAC,CAAC,EACF,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EACnC,UAAU,CAAC,CAAC,CAAC,EAAE;YACX,OAAO,KAAK,CAAA;QAChB,CAAC,CAAC,CACL,CAAC,SAAS,EAAE,CAAA;IACjB,CAAC;IAED,IAAI,CAAC,OAAmB;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAM;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;CACJ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BehaviorSubject } from "rxjs";
|
|
2
|
+
export class StorageBehaviorSubject extends BehaviorSubject {
|
|
3
|
+
storage;
|
|
4
|
+
key;
|
|
5
|
+
constructor(storage, key, defaultValue) {
|
|
6
|
+
const value = storage.getItem(key);
|
|
7
|
+
super(value instanceof Promise ? defaultValue : value || defaultValue);
|
|
8
|
+
this.storage = storage;
|
|
9
|
+
this.key = key;
|
|
10
|
+
if (value instanceof Promise) {
|
|
11
|
+
value.then(v => this.next(v ?? defaultValue));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
next(value) {
|
|
15
|
+
super.next(value);
|
|
16
|
+
this.storage.setItem(this.key, value);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=StorageBehaviorSubject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageBehaviorSubject.js","sourceRoot":"","sources":["../src/StorageBehaviorSubject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAUtC,MAAM,OAAO,sBAA0B,SAAQ,eAAkB;IACzC;IAA2B;IAA/C,YAAoB,OAAiB,EAAU,GAAW,EAAE,YAAe;QACvE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAI,GAAG,CAAC,CAAA;QACrC,KAAK,CAAC,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,CAAA;QAFtD,YAAO,GAAP,OAAO,CAAU;QAAU,QAAG,GAAH,GAAG,CAAQ;QAGtD,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAA;QACjD,CAAC;IACL,CAAC;IAEQ,IAAI,CAAC,KAAQ;QAClB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACzC,CAAC;CACJ"}
|
package/dist/WorkerManager.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerManager.d.ts","sourceRoot":"","sources":["../src/WorkerManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"WorkerManager.d.ts","sourceRoot":"","sources":["../src/WorkerManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAMlD,qBAAa,aAAa;;IAoBV,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,UAAU;IAoDvC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;CAQ3C"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { BehaviorSubject, filter, finalize, map, mergeMap, Subscription } from "rxjs";
|
|
2
|
+
function isObservableLike(value) {
|
|
3
|
+
return !!value && typeof value === 'object' && typeof value.pipe === 'function';
|
|
4
|
+
}
|
|
5
|
+
export class WorkerManager {
|
|
6
|
+
channel;
|
|
7
|
+
#services = new BehaviorSubject(new Map());
|
|
8
|
+
async #call(target, paths, args) {
|
|
9
|
+
const [first, ...rest] = paths;
|
|
10
|
+
if (!first || first == '#')
|
|
11
|
+
throw new Error(`Invalid method path: ${paths.join('.')}`);
|
|
12
|
+
if (rest.length == 0) {
|
|
13
|
+
const prop = target[first];
|
|
14
|
+
if (typeof prop == 'function') {
|
|
15
|
+
return await prop.apply(target, args);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return prop;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return this.#call(target[first], rest, args);
|
|
22
|
+
}
|
|
23
|
+
constructor(channel) {
|
|
24
|
+
this.channel = channel;
|
|
25
|
+
const responses = new Map();
|
|
26
|
+
this.channel.pipe(map(({ id, cancel, request, respond }) => {
|
|
27
|
+
if (cancel) {
|
|
28
|
+
const subscription = responses.get(cancel.id);
|
|
29
|
+
if (subscription) {
|
|
30
|
+
subscription.unsubscribe();
|
|
31
|
+
responses.delete(cancel.id);
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (!request)
|
|
36
|
+
return;
|
|
37
|
+
const service = this.#services.getValue().get(request.service);
|
|
38
|
+
if (!service)
|
|
39
|
+
return respond({ error: `Service ${request.service} not found` });
|
|
40
|
+
if (request.method.length == 0 || request.method[0] == '#') {
|
|
41
|
+
respond({ error: `Can not call [${request.service}.${request.method.join('.')}]` });
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
return { request, id, respond, service };
|
|
45
|
+
}), filter(Boolean), map(a => a), mergeMap(async ({ id, request, respond, service }) => {
|
|
46
|
+
try {
|
|
47
|
+
const result = await this.#call(service, request.method, request.args);
|
|
48
|
+
if (isObservableLike(result)) {
|
|
49
|
+
const subscription = result.pipe(finalize(() => {
|
|
50
|
+
responses.delete(id);
|
|
51
|
+
})).subscribe((data) => respond({ data }), (err) => respond({ error: err?.message ?? String(err), completed: true }), () => respond({ completed: true }));
|
|
52
|
+
responses.set(id, subscription);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
const data = await result;
|
|
56
|
+
respond({ data, completed: true });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
respond({
|
|
61
|
+
error: err?.message ?? String(err),
|
|
62
|
+
completed: true
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
})).subscribe();
|
|
66
|
+
}
|
|
67
|
+
exposeService(name, service) {
|
|
68
|
+
const services = this.#services.getValue();
|
|
69
|
+
services.set(name, Object.assign(service));
|
|
70
|
+
this.#services.next(services);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=WorkerManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerManager.js","sourceRoot":"","sources":["../src/WorkerManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerService.js","sourceRoot":"","sources":["../src/WorkerService.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export * from "./RpcChannel";
|
|
2
|
-
export * from "./SharedWorkerChannel";
|
|
3
|
-
export * from "./ServiceLinker";
|
|
4
|
-
export * from "./WorkerService";
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
1
|
+
export * from "./RpcChannel.js";
|
|
2
|
+
export * from "./SharedWorkerChannel.js";
|
|
3
|
+
export * from "./ServiceLinker.js";
|
|
4
|
+
export * from "./WorkerService.js";
|
|
5
|
+
export * from "./WorkerManager.js";
|
|
6
|
+
export * from "./LimitConcurrency.js";
|
|
7
|
+
export * from "./StorageBehaviorSubject.js";
|
|
8
|
+
export * from "./RxjsQueue.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA"}
|