@event-chat/rpc 0.1.31 → 0.1.32
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/core/observerRPC.d.ts +49 -0
- package/dist/core/observerRPC.d.ts.map +1 -0
- package/dist/core/observerRPC.js +21 -0
- package/dist/entry/messagePort.d.ts +19 -13
- package/dist/entry/messagePort.d.ts.map +1 -1
- package/dist/entry/messagePort.js +5 -14
- package/dist/entry/sharedWorkerGlobalScope.d.ts +7 -1
- package/dist/entry/sharedWorkerGlobalScope.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/react/RPCProvider.d.ts.map +1 -1
- package/dist/react/RPCProvider.js +14 -25
- package/dist/react/fields.d.ts +5 -13
- package/dist/react/fields.d.ts.map +1 -1
- package/dist/react/hooks.d.ts +7 -1
- package/dist/react/hooks.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { MessageItem, Transport } from '../fields';
|
|
2
|
+
import { RequestOptions } from './RPCAction';
|
|
3
|
+
import RPCDecorator, { ActionRecord } from './RPCDecorator';
|
|
4
|
+
export declare function observerRPC(): Readonly<{
|
|
5
|
+
add: (key: Readonly<Omit<import("./RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<Transport<boolean>, "getType" | "upset"> & {
|
|
6
|
+
request: <K extends string>(keyname: K, reqops: StructuredSerializeOptions & {
|
|
7
|
+
targetOrigin?: string;
|
|
8
|
+
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
+
} & Pick<MessageItem, "requestId" | "sign"> & {
|
|
10
|
+
payload?: any;
|
|
11
|
+
retry?: number;
|
|
12
|
+
} & {
|
|
13
|
+
payload: any;
|
|
14
|
+
}) => Promise<any>;
|
|
15
|
+
}>, value: string) => Map<Readonly<Omit<import("./RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<Transport<boolean>, "getType" | "upset"> & {
|
|
16
|
+
request: <K extends string>(keyname: K, reqops: StructuredSerializeOptions & {
|
|
17
|
+
targetOrigin?: string;
|
|
18
|
+
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
+
} & Pick<MessageItem, "requestId" | "sign"> & {
|
|
20
|
+
payload?: any;
|
|
21
|
+
retry?: number;
|
|
22
|
+
} & {
|
|
23
|
+
payload: any;
|
|
24
|
+
}) => Promise<any>;
|
|
25
|
+
}>, string>;
|
|
26
|
+
clear: () => void;
|
|
27
|
+
remove: (key: Readonly<Omit<import("./RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<Transport<boolean>, "getType" | "upset"> & {
|
|
28
|
+
request: <K extends string>(keyname: K, reqops: StructuredSerializeOptions & {
|
|
29
|
+
targetOrigin?: string;
|
|
30
|
+
transmit?: () => Promise<readonly WindowClient[]>;
|
|
31
|
+
} & Pick<MessageItem, "requestId" | "sign"> & {
|
|
32
|
+
payload?: any;
|
|
33
|
+
retry?: number;
|
|
34
|
+
} & {
|
|
35
|
+
payload: any;
|
|
36
|
+
}) => Promise<any>;
|
|
37
|
+
}>) => boolean;
|
|
38
|
+
brodcastScope: <T>(data: RequestOptions<T>, options?: ScopeProps) => void;
|
|
39
|
+
}>;
|
|
40
|
+
export type RPCIns<T extends Transport<boolean> = Transport<boolean>, EVENT extends ActionRecord = ActionRecord, CONSUME extends ActionRecord = ActionRecord> = ReturnType<typeof RPCDecorator<T, EVENT, CONSUME>>[0];
|
|
41
|
+
type ScopeProps = {
|
|
42
|
+
exclude?: string[];
|
|
43
|
+
include?: string[];
|
|
44
|
+
scopein?: string[];
|
|
45
|
+
scopeout?: string[];
|
|
46
|
+
fallback?: (error: unknown) => void;
|
|
47
|
+
};
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=observerRPC.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observerRPC.d.ts","sourceRoot":"","sources":["../../src/core/observerRPC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,YAAY,EAAE,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE3D,wBAAgB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAMP,CAAC,QAAQ,cAAc,CAAC,CAAC,CAAC,YAAY,UAAU;GAyBnE;AAED,MAAM,MAAM,MAAM,CAChB,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,EACjD,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,OAAO,SAAS,YAAY,GAAG,YAAY,IACzC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEzD,KAAK,UAAU,GAAG;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACpC,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
function observerRPC() {
|
|
2
|
+
const scopeMap = new Map();
|
|
3
|
+
return Object.freeze({
|
|
4
|
+
add: scopeMap.set.bind(scopeMap),
|
|
5
|
+
clear: scopeMap.clear.bind(scopeMap),
|
|
6
|
+
remove: scopeMap.delete.bind(scopeMap),
|
|
7
|
+
brodcastScope: (data, options)=>{
|
|
8
|
+
const { exclude, include, scopein, scopeout, fallback } = options ?? {};
|
|
9
|
+
let result = {};
|
|
10
|
+
scopeMap.forEach((scope, item)=>{
|
|
11
|
+
const type = item.getType();
|
|
12
|
+
if (item.connected() && !exclude?.includes(type) && (include?.includes(type) ?? true) && !scopeout?.includes(scope) && (scopein?.includes(scope) ?? true)) result = item.broadcast({
|
|
13
|
+
...data,
|
|
14
|
+
requestId: data.requestId ?? result.requestId,
|
|
15
|
+
sign: data.sign ?? result.sign
|
|
16
|
+
}, fallback);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
export { observerRPC };
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import { RequestOptions } from '../core/RPCAction';
|
|
2
1
|
import { ActionRecord } from '../core/RPCDecorator';
|
|
3
|
-
import { EntryOptions
|
|
4
|
-
export declare function createMessagePortRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: MessagePort, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<Transport<boolean>, "getType" | "upset"> & {
|
|
5
|
-
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<RequestOptions, "payload"> & {
|
|
2
|
+
import { EntryOptions } from '../fields';
|
|
3
|
+
export declare function createMessagePortRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: MessagePort, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
4
|
+
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
6
5
|
payload?: never;
|
|
7
6
|
} : StructuredSerializeOptions & {
|
|
8
7
|
targetOrigin?: string;
|
|
9
8
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
10
|
-
} & Pick<MessageItem, "requestId" | "sign"> & {
|
|
9
|
+
} & Pick<import("..").MessageItem, "requestId" | "sign"> & {
|
|
11
10
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
12
11
|
retry?: number;
|
|
13
12
|
} & {
|
|
14
13
|
payload: Parameters<CONSUME[K]>[0];
|
|
15
|
-
}) | undefined] : [keyname: K, reqops: Parameters<CONSUME[K]> extends [] ? Omit<RequestOptions, "payload"> & {
|
|
14
|
+
}) | undefined] : [keyname: K, reqops: Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
16
15
|
payload?: never;
|
|
17
16
|
} : StructuredSerializeOptions & {
|
|
18
17
|
targetOrigin?: string;
|
|
19
18
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
20
|
-
} & Pick<MessageItem, "requestId" | "sign"> & {
|
|
19
|
+
} & Pick<import("..").MessageItem, "requestId" | "sign"> & {
|
|
21
20
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
22
21
|
retry?: number;
|
|
23
22
|
} & {
|
|
@@ -25,24 +24,30 @@ export declare function createMessagePortRPC<EVENT extends ActionRecord, CONSUME
|
|
|
25
24
|
}]) => Promise<ReturnType<CONSUME[K]> extends infer T ? T extends ReturnType<CONSUME[K]> ? T extends Promise<infer R> ? R : T : never : never>;
|
|
26
25
|
}>, () => void];
|
|
27
26
|
export declare function observerMessagePortRPC(): Readonly<{
|
|
28
|
-
brodcastScope: <T>(data: RequestOptions<T>,
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
brodcastScope: <T>(data: import("../core/RPCAction").RequestOptions<T>, options?: {
|
|
28
|
+
exclude?: string[];
|
|
29
|
+
include?: string[];
|
|
30
|
+
scopein?: string[];
|
|
31
|
+
scopeout?: string[];
|
|
32
|
+
fallback?: (error: unknown) => void;
|
|
33
|
+
}) => void;
|
|
34
|
+
push: <EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: MessagePort, config?: EntryConfig<EVENT, CONSUME>) => readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("..").Transport<boolean>, "getType" | "upset"> & {
|
|
35
|
+
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
31
36
|
payload?: never;
|
|
32
37
|
} : StructuredSerializeOptions & {
|
|
33
38
|
targetOrigin?: string;
|
|
34
39
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
35
|
-
} & Pick<MessageItem, "requestId" | "sign"> & {
|
|
40
|
+
} & Pick<import("..").MessageItem, "requestId" | "sign"> & {
|
|
36
41
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
37
42
|
retry?: number;
|
|
38
43
|
} & {
|
|
39
44
|
payload: Parameters<CONSUME[K]>[0];
|
|
40
|
-
}) | undefined] : [keyname: K, reqops: Parameters<CONSUME[K]> extends [] ? Omit<RequestOptions, "payload"> & {
|
|
45
|
+
}) | undefined] : [keyname: K, reqops: Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
41
46
|
payload?: never;
|
|
42
47
|
} : StructuredSerializeOptions & {
|
|
43
48
|
targetOrigin?: string;
|
|
44
49
|
transmit?: () => Promise<readonly WindowClient[]>;
|
|
45
|
-
} & Pick<MessageItem, "requestId" | "sign"> & {
|
|
50
|
+
} & Pick<import("..").MessageItem, "requestId" | "sign"> & {
|
|
46
51
|
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
47
52
|
retry?: number;
|
|
48
53
|
} & {
|
|
@@ -52,5 +57,6 @@ export declare function observerMessagePortRPC(): Readonly<{
|
|
|
52
57
|
}>;
|
|
53
58
|
export type EntryConfig<EVENT extends ActionRecord, CONSUME extends ActionRecord> = EntryOptions<EVENT, CONSUME> & {
|
|
54
59
|
destroy?: boolean;
|
|
60
|
+
name?: string;
|
|
55
61
|
};
|
|
56
62
|
//# sourceMappingURL=messagePort.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messagePort.d.ts","sourceRoot":"","sources":["../../src/entry/messagePort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"messagePort.d.ts","sourceRoot":"","sources":["../../src/entry/messagePort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,wBAAgB,oBAAoB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAC3F,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAItC;AAED,wBAAgB,sBAAsB;;;;;;;;WAEtB,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,UAC5D,WAAW,WACV,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;GA4BvC;AAED,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,IAAI,YAAY,CAC9F,KAAK,EACL,OAAO,CACR,GAAG;IACF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA"}
|
|
@@ -1,23 +1,14 @@
|
|
|
1
1
|
import RPCDecorator from "../core/RPCDecorator.js";
|
|
2
|
+
import { observerRPC } from "../core/observerRPC.js";
|
|
2
3
|
import MessagePortTransport from "../transports/MessagePortTransport.js";
|
|
3
4
|
function createMessagePortRPC(target, config) {
|
|
4
5
|
const { context, options } = config ?? {};
|
|
5
6
|
return RPCDecorator(new MessagePortTransport(target, options), context);
|
|
6
7
|
}
|
|
7
8
|
function observerMessagePortRPC() {
|
|
8
|
-
const
|
|
9
|
-
const brodcastScope = (data, fallback)=>{
|
|
10
|
-
let result = {};
|
|
11
|
-
ports.forEach((port)=>{
|
|
12
|
-
if (port.connected()) result = port.broadcast({
|
|
13
|
-
...data,
|
|
14
|
-
requestId: data.requestId ?? result.requestId,
|
|
15
|
-
sign: data.sign ?? result.sign
|
|
16
|
-
}, fallback);
|
|
17
|
-
});
|
|
18
|
-
};
|
|
9
|
+
const { add, brodcastScope, remove } = observerRPC();
|
|
19
10
|
const push = (target, config)=>{
|
|
20
|
-
const { context, destroy, ...ops } = config ?? {};
|
|
11
|
+
const { context, destroy, name = '', ...ops } = config ?? {};
|
|
21
12
|
const RPCIns = createMessagePortRPC(target, {
|
|
22
13
|
...ops,
|
|
23
14
|
context: {
|
|
@@ -25,13 +16,13 @@ function observerMessagePortRPC() {
|
|
|
25
16
|
config: {
|
|
26
17
|
...context?.config,
|
|
27
18
|
onConnect: ()=>{
|
|
28
|
-
|
|
19
|
+
add(RPCIns[0], name);
|
|
29
20
|
context?.config?.onConnect?.();
|
|
30
21
|
},
|
|
31
22
|
onDisconnect: (dest)=>{
|
|
32
23
|
if (destroy) {
|
|
33
24
|
RPCIns[1]();
|
|
34
|
-
|
|
25
|
+
remove(RPCIns[0]);
|
|
35
26
|
context?.config?.onDisconnect?.(true);
|
|
36
27
|
} else context?.config?.onDisconnect?.(dest);
|
|
37
28
|
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { ActionRecord } from '../core/RPCDecorator';
|
|
2
2
|
import { EntryConfig, createMessagePortRPC } from './messagePort';
|
|
3
3
|
export declare function obseverShareWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorkerGlobalScope, generate?: GenerateCtx<EVENT, CONSUME>): Readonly<{
|
|
4
|
-
brodcastScope: <T>(data: import("../core/RPCAction").RequestOptions<T>,
|
|
4
|
+
brodcastScope: <T>(data: import("../core/RPCAction").RequestOptions<T>, options?: {
|
|
5
|
+
exclude?: string[];
|
|
6
|
+
include?: string[];
|
|
7
|
+
scopein?: string[];
|
|
8
|
+
scopeout?: string[];
|
|
9
|
+
fallback?: (error: unknown) => void;
|
|
10
|
+
}) => void;
|
|
5
11
|
}>;
|
|
6
12
|
type GenerateCtx<EVENT extends ActionRecord, CONSUME extends ActionRecord> = () => EntryConfig<EVENT, CONSUME> & {
|
|
7
13
|
provider?: (RPCIns: ReturnType<typeof createMessagePortRPC<EVENT, CONSUME>>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharedWorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../src/entry/sharedWorkerGlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAA0B,MAAM,eAAe,CAAA;AAEzF,wBAAgB,gCAAgC,CAC9C,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,uBAAuB,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"sharedWorkerGlobalScope.d.ts","sourceRoot":"","sources":["../../src/entry/sharedWorkerGlobalScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAA0B,MAAM,eAAe,CAAA;AAEzF,wBAAgB,gCAAgC,CAC9C,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,MAAM,EAAE,uBAAuB,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;GAQxE;AAED,KAAK,WAAW,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,IAAI,MAAM,WAAW,CAC5F,KAAK,EACL,OAAO,CACR,GAAG;IACF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,CAAA;CACrF,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './createCtx';
|
|
2
|
-
export {
|
|
3
|
-
export { default as RPCDecorator } from './core/RPCDecorator';
|
|
2
|
+
export type { MessageItem, Transport } from './fields';
|
|
4
3
|
export type { MessageInfoType as MessageInfo } from './core/RPCAction';
|
|
4
|
+
export { type RPCIns, observerRPC } from './core/observerRPC';
|
|
5
5
|
//# 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,aAAa,CAAA;AAC3B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACtD,YAAY,EAAE,eAAe,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,KAAK,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { observerRPC } from "./core/observerRPC.js";
|
|
2
2
|
export * from "./createCtx.js";
|
|
3
|
-
export {
|
|
3
|
+
export { observerRPC };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RPCProvider.d.ts","sourceRoot":"","sources":["../../src/react/RPCProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAkC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"RPCProvider.d.ts","sourceRoot":"","sources":["../../src/react/RPCProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAkC,MAAM,OAAO,CAAA;AAI7E,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,iBAAiB,CAwBtC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -1,35 +1,24 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useEffect, useRef } from "react";
|
|
3
|
-
import {
|
|
4
|
-
import { RPCInstanceContext
|
|
3
|
+
import { observerRPC } from "../core/observerRPC.js";
|
|
4
|
+
import { RPCInstanceContext } from "./fields.js";
|
|
5
5
|
const RPCProvider = ({ children })=>{
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const {
|
|
9
|
-
if (
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
list.current.forEach((group, item)=>{
|
|
13
|
-
if ('getType' in item && scope.includes(item.getType()) && !typeout?.includes(group) && (!typein || typein.includes(group))) result = item.broadcast({
|
|
14
|
-
...data,
|
|
15
|
-
requestId: data.requestId ?? result.requestId,
|
|
16
|
-
sign: data.sign ?? result.sign
|
|
17
|
-
}, fallback);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
6
|
+
const observer = useRef(observerRPC());
|
|
7
|
+
const mount = useCallback((item, name)=>{
|
|
8
|
+
const { add, remove } = observer.current;
|
|
9
|
+
if (!('getType' in item)) return;
|
|
10
|
+
if (void 0 === name) remove(item);
|
|
11
|
+
else add(item, name);
|
|
20
12
|
}, []);
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
useEffect(()=>{
|
|
14
|
+
const ins = observer.current;
|
|
15
|
+
return ()=>{
|
|
16
|
+
ins.clear();
|
|
17
|
+
};
|
|
26
18
|
}, []);
|
|
27
|
-
useEffect(()=>()=>{
|
|
28
|
-
list.current = new Map();
|
|
29
|
-
}, []);
|
|
30
19
|
return /*#__PURE__*/ jsx(RPCInstanceContext.Provider, {
|
|
31
20
|
value: {
|
|
32
|
-
brodcastScope,
|
|
21
|
+
brodcastScope: observer.current.brodcastScope,
|
|
33
22
|
mount
|
|
34
23
|
},
|
|
35
24
|
children: children
|
package/dist/react/fields.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Transport } from '../fields';
|
|
3
|
-
import { ValueOf } from '../utils';
|
|
1
|
+
import { RPCIns, observerRPC } from '../core/observerRPC';
|
|
4
2
|
export declare const RPCInstanceContext: import("react").Context<RPCInstanceContextIns>;
|
|
5
3
|
export declare const TARGET_TYPE_STRINGS: Readonly<{
|
|
6
4
|
BroadcastChannel: "[object BroadcastChannel]";
|
|
@@ -13,16 +11,10 @@ export declare const TARGET_TYPE_STRINGS: Readonly<{
|
|
|
13
11
|
Worker: "[object Worker]";
|
|
14
12
|
DedicatedWorkerGlobalScope: "[object DedicatedWorkerGlobalScope]";
|
|
15
13
|
}>;
|
|
16
|
-
export interface RPCInstanceContextIns {
|
|
17
|
-
brodcastScope?: <T>(data: RequestOptions<T>, options?: ScopeProps) => void;
|
|
14
|
+
export interface RPCInstanceContextIns extends BrodcastType {
|
|
18
15
|
mount?: (item: RPCItem, name?: string) => void;
|
|
19
16
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
include?: Array<ValueOf<typeof TARGET_TYPE_STRINGS>>;
|
|
24
|
-
typein?: string[];
|
|
25
|
-
typeout?: string[];
|
|
26
|
-
fallback?: (error: unknown) => void;
|
|
27
|
-
};
|
|
17
|
+
type BrodcastType = Partial<Pick<ReturnType<typeof observerRPC>, 'brodcastScope'>>;
|
|
18
|
+
type RPCItem = RPCIns | Record<never, never>;
|
|
19
|
+
export {};
|
|
28
20
|
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/react/fields.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/react/fields.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGzD,eAAO,MAAM,kBAAkB,gDAA2C,CAAA;AAC1E,eAAO,MAAM,mBAAmB;;;;;;;;;;EAU9B,CAAA;AAEF,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IACzD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,KAAK,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC,CAAA;AAClF,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA"}
|
package/dist/react/hooks.d.ts
CHANGED
|
@@ -24,7 +24,13 @@ declare const useRPC: <TARGET extends TargetInit, EVENT extends ActionRecord, CO
|
|
|
24
24
|
payload: Parameters<CONSUME[K]>[0];
|
|
25
25
|
}]) => Promise<ReturnType<CONSUME[K]> extends infer T_1 ? T_1 extends ReturnType<CONSUME[K]> ? T_1 extends Promise<infer R> ? R : T_1 : never : never>;
|
|
26
26
|
}>;
|
|
27
|
-
brodcastScope: <T_1>(data: import("../core/RPCAction").RequestOptions<T_1>, options?:
|
|
27
|
+
brodcastScope: <T_1>(data: import("../core/RPCAction").RequestOptions<T_1>, options?: {
|
|
28
|
+
exclude?: string[];
|
|
29
|
+
include?: string[];
|
|
30
|
+
scopein?: string[];
|
|
31
|
+
scopeout?: string[];
|
|
32
|
+
fallback?: (error: unknown) => void;
|
|
33
|
+
}) => void;
|
|
28
34
|
destroy: () => void;
|
|
29
35
|
mount: (name: string) => void;
|
|
30
36
|
connected: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAMnE,QAAA,MAAM,MAAM,GACV,MAAM,SAAS,UAAU,EACzB,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAE5B,KAAK,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAMnE,QAAA,MAAM,MAAM,GACV,MAAM,SAAS,UAAU,EACzB,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAE5B,KAAK,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiC7E,MAAM;;;EAsFhB,CAAA;AAED,eAAe,MAAM,CAAA;AAGrB,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,yBAAyB,GACzB,YAAY,GACZ,SAAS,GACT,MAAM,GACN,MAAM,GACN,iBAAiB,GACjB,IAAI,CAAA;AAER,UAAU,cAAc,CAAC,MAAM,SAAS,UAAU;IAChD,IAAI,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAClD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACjC;AAED,UAAU,eAAe,CACvB,MAAM,SAAS,UAAU,EACzB,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,CAE5B,SAAQ,cAAc,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IAChE,KAAK,EAAE,CACL,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,KAClC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;CACvC;AAED,UAAU,eAAe,CACvB,MAAM,SAAS,UAAU,EACzB,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,CAE5B,SAAQ,cAAc,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IAChE,KAAK,EAAE,CACL,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,KACnC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;CAChD;AAED,KAAK,SAAS,CACZ,MAAM,SAAS,UAAU,EACzB,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,IAC1B,UAAU,CACZ,OAAO,YAAY,CACjB;IAAC,MAAM;CAAC,SAAS,CAAC,IAAI,CAAC,GACnB,IAAI,GACJ,MAAM,SAAS,gBAAgB,GAC7B,SAAS,CAAC,IAAI,CAAC,GACf,SAAS,CAAC,KAAK,CAAC,EACtB,KAAK,EACL,OAAO,CACR,CACF,CAAA"}
|