@event-chat/rpc 0.1.27 → 0.1.29
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/RPCAction.d.ts +5 -5
- package/dist/core/RPCAction.d.ts.map +1 -1
- package/dist/core/RPCAction.js +1 -2
- package/dist/core/registry.d.ts +2 -3
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/createCtx.d.ts +1 -1
- package/dist/createCtx.d.ts.map +1 -1
- package/dist/entry/broadcastChannel.d.ts +3 -3
- package/dist/entry/broadcastChannel.d.ts.map +1 -1
- package/dist/entry/dedicatedWorkerGlobalScope.d.ts +3 -3
- package/dist/entry/dedicatedWorkerGlobalScope.d.ts.map +1 -1
- package/dist/entry/messagePort.d.ts +3 -3
- package/dist/entry/messagePort.d.ts.map +1 -1
- package/dist/entry/serviceWorkerGlobalScope.d.ts +3 -3
- package/dist/entry/serviceWorkerGlobalScope.d.ts.map +1 -1
- package/dist/entry/serviceWorkerRegistration.d.ts +3 -3
- package/dist/entry/serviceWorkerRegistration.d.ts.map +1 -1
- package/dist/entry/sharedWorker.d.ts +3 -3
- package/dist/entry/sharedWorker.d.ts.map +1 -1
- package/dist/entry/sharedWorkerGlobalScope.d.ts +3 -3
- package/dist/entry/sharedWorkerGlobalScope.d.ts.map +1 -1
- package/dist/entry/webSocket.d.ts +3 -3
- package/dist/entry/webSocket.d.ts.map +1 -1
- package/dist/entry/window.d.ts +3 -3
- package/dist/entry/window.d.ts.map +1 -1
- package/dist/entry/worker.d.ts +3 -3
- package/dist/entry/worker.d.ts.map +1 -1
- package/dist/fields.d.ts +16 -40
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +1 -30
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -4
- package/dist/react/fields.d.ts +0 -3
- package/dist/react/fields.d.ts.map +1 -1
- package/dist/react/hooks.d.ts +2 -4
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/index.d.ts +0 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +0 -1
- package/dist/transports/BaseTransport.d.ts +2 -6
- package/dist/transports/BaseTransport.d.ts.map +1 -1
- package/dist/transports/BroadcastChannelTransport.d.ts.map +1 -1
- package/dist/transports/BroadcastChannelTransport.js +1 -1
- package/dist/transports/DedicatedWorkerGlobalScopeTransport.d.ts.map +1 -1
- package/dist/transports/DedicatedWorkerGlobalScopeTransport.js +1 -1
- package/dist/transports/MessagePortTransport.d.ts.map +1 -1
- package/dist/transports/MessagePortTransport.js +1 -1
- package/dist/transports/ServiceWorkerGlobalScopeTransport.d.ts +2 -2
- package/dist/transports/ServiceWorkerGlobalScopeTransport.d.ts.map +1 -1
- package/dist/transports/ServiceWorkerGlobalScopeTransport.js +2 -2
- package/dist/transports/ServiceWorkerRegistrationTransport.d.ts +2 -2
- package/dist/transports/ServiceWorkerRegistrationTransport.d.ts.map +1 -1
- package/dist/transports/ServiceWorkerRegistrationTransport.js +1 -1
- package/dist/transports/SharedWorkerGlobalScopeTransport.d.ts.map +1 -1
- package/dist/transports/SharedWorkerGlobalScopeTransport.js +1 -1
- package/dist/transports/SharedWorkerTransport.d.ts.map +1 -1
- package/dist/transports/SharedWorkerTransport.js +1 -1
- package/dist/transports/WebSocketTransport.d.ts.map +1 -1
- package/dist/transports/WebSocketTransport.js +1 -1
- package/dist/transports/WindowTransport.d.ts +2 -2
- package/dist/transports/WindowTransport.d.ts.map +1 -1
- package/dist/transports/WindowTransport.js +1 -1
- package/dist/transports/WorkerTransport.d.ts.map +1 -1
- package/dist/transports/WorkerTransport.js +1 -1
- package/dist/utils.d.ts +6 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +17 -1
- package/package.json +1 -1
- package/dist/RPCAction.d.ts +0 -43
- package/dist/RPCAction.d.ts.map +0 -1
- package/dist/RPCAction.js +0 -196
- package/dist/RPCDecorator.d.ts +0 -21
- package/dist/RPCDecorator.d.ts.map +0 -1
- package/dist/RPCDecorator.js +0 -57
- package/dist/RPCFactory.d.ts +0 -22
- package/dist/RPCFactory.d.ts.map +0 -1
- package/dist/RPCFactory.js +0 -141
- package/dist/RPCProvider.d.ts +0 -4
- package/dist/RPCProvider.d.ts.map +0 -1
- package/dist/RPCProvider.js +0 -34
- package/dist/hooks.d.ts +0 -34
- package/dist/hooks.d.ts.map +0 -1
- package/dist/hooks.js +0 -82
- package/dist/react/createCtx.d.ts +0 -13
- package/dist/react/createCtx.d.ts.map +0 -1
- package/dist/react/createCtx.js +0 -33
- package/dist/transports/fields.d.ts +0 -19
- package/dist/transports/fields.d.ts.map +0 -1
- package/dist/transports/fields.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { IframeSerializeOptions, ListenerType, MessageItem } from '../fields';
|
|
2
|
-
import BaseTransport
|
|
1
|
+
import { FactoryOptions, IframeSerializeOptions, ListenerType, MessageItem } from '../fields';
|
|
2
|
+
import BaseTransport from './BaseTransport';
|
|
3
3
|
declare class ServiceWorkerGlobalScopeTransport extends BaseTransport<ServiceWorkerGlobalScope> {
|
|
4
4
|
protected _target: ServiceWorkerGlobalScope;
|
|
5
5
|
protected _options: FactoryOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"ServiceWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE7F,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAK3C,cAAM,iCAAkC,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IAMnF,SAAS,CAAC,OAAO,EAAE,wBAAwB;IAC3C,SAAS,CAAC,QAAQ,EAAE,cAAc;IANpC,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,UAAU,CAAuD;IACzE,OAAO,CAAC,OAAO,CAA8C;gBAGjD,OAAO,EAAE,wBAAwB,EACjC,QAAQ,GAAE,cAAmB;IAkBzC,OAAO;IAOP,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAqBvC,QAAQ,IAAI,IAAI;IAKhB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB;CAwBnE;AAED,OAAO,EAAE,CAAA;AAET,eAAe,iCAAiC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProxyPromise } from "../
|
|
1
|
+
import { ProxyPromise } from "../utils.js";
|
|
2
2
|
import BaseTransport from "./BaseTransport.js";
|
|
3
3
|
class ServiceWorkerGlobalScopeTransport extends BaseTransport {
|
|
4
4
|
_target;
|
|
@@ -29,7 +29,7 @@ class ServiceWorkerGlobalScopeTransport extends BaseTransport {
|
|
|
29
29
|
listener({
|
|
30
30
|
origin: event.origin,
|
|
31
31
|
ports: event.ports,
|
|
32
|
-
source:
|
|
32
|
+
source: event.source,
|
|
33
33
|
wait: resove,
|
|
34
34
|
data
|
|
35
35
|
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { IframeSerializeOptions, ListenerType, MessageItem } from '../fields';
|
|
1
|
+
import { IframeSerializeOptions, ListenerType, MessageInfo, MessageItem } from '../fields';
|
|
2
2
|
import BaseTransport from './BaseTransport';
|
|
3
3
|
declare class ServiceWorkerRegistrationTransport extends BaseTransport<ServiceWorkerRegistration> {
|
|
4
4
|
destroy(): void;
|
|
5
|
-
is(source:
|
|
5
|
+
is(source: MessageInfo['source'], message?: MessageItem): boolean;
|
|
6
6
|
observe(): void;
|
|
7
7
|
onmessage(listener: ListenerType): void;
|
|
8
8
|
onremove(listener: ListenerType): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceWorkerRegistrationTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerRegistrationTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"ServiceWorkerRegistrationTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerRegistrationTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE1F,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAI3C,cAAM,kCAAmC,SAAQ,aAAa,CAAC,yBAAyB,CAAC;IACvF,OAAO;IAIP,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW;IAOvD,OAAO,IAAI,IAAI;IAEf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB;CAenE;AAED,eAAe,kCAAkC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"SharedWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,gCAAiC,SAAQ,aAAa,CAAC,uBAAuB,CAAC;IACnF,OAAO,CAAC,UAAU,CAA4C;IAC9D,OAAO,CAAC,QAAQ,CAA6C;IAE7D,OAAO;IAOP,OAAO,IAAI,IAAI;IAEf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAevC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAQtC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB;CAMnE;AAED,eAAe,gCAAgC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedWorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"SharedWorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,qBAAsB,SAAQ,aAAa,CAAC,YAAY,CAAC;IAC7D,OAAO;IAIP,OAAO,IAAI,IAAI;IAEf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAKvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB;CAInE;AAED,eAAe,qBAAqB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WebSocketTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WebSocketTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAErE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAS3C,cAAM,kBAAmB,SAAQ,aAAa,CAAC,SAAS,CAAC;IAIrD,SAAS,CAAC,OAAO,EAAE,SAAS;IAC5B,SAAS,CAAC,QAAQ,EAAE,cAAc;IAJpC,OAAO,CAAC,UAAU,CAAyB;gBAG/B,OAAO,EAAE,SAAS,EAClB,QAAQ,GAAE,cAAmB;IAczC,OAAO;IAOP,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAMjC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,WAAW;CAajC;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { IframeSerializeOptions, ListenerType, MessageItem } from '../fields';
|
|
1
|
+
import { IframeSerializeOptions, ListenerType, MessageInfo, MessageItem } from '../fields';
|
|
2
2
|
import BaseTransport from './BaseTransport';
|
|
3
3
|
declare class WindowTransport extends BaseTransport<Window> {
|
|
4
4
|
private _errorHandle;
|
|
5
5
|
destroy(): void;
|
|
6
6
|
allow(origin: string, current?: string[]): boolean;
|
|
7
|
-
is(source:
|
|
7
|
+
is(source: MessageInfo['source']): boolean;
|
|
8
8
|
onmessage(listener: ListenerType): void;
|
|
9
9
|
onremove(listener: ListenerType): void;
|
|
10
10
|
originFilter(origin?: string[]): string[] | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindowTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WindowTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"WindowTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WindowTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE1F,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAM3C,cAAM,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IACjD,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO;IAKP,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE;IAKxC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;IAIhC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE;IAI9B,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAMlE,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI;CAkB3B;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ProxyPromise } from "../
|
|
1
|
+
import { ProxyPromise } from "../utils.js";
|
|
2
2
|
import BaseTransport from "./BaseTransport.js";
|
|
3
3
|
const getOrigin = (url)=>'string' == typeof self?.location?.origin ? new URL(url, self.location.origin).origin : '';
|
|
4
4
|
class WindowTransport extends BaseTransport {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"WorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE7E,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IAEjD,OAAO;IAMP,OAAO,IAAI,IAAI;IAEf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB;CAInE;AAED,eAAe,eAAe,CAAA"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
export declare const getError: (error: unknown, tips?: string) => Error | DOMException;
|
|
1
2
|
export declare const isKey: <T extends Record<string, unknown>>(key: unknown, data: T) => key is keyof T;
|
|
2
3
|
export declare const isPropertyKey: (value: unknown) => value is PropertyKey;
|
|
3
4
|
export declare const objectValues: <T extends object, V = ValueOf<T>>(obj: T) => V[];
|
|
5
|
+
declare function promiseTryPolyfill<T, A extends any[]>(fn: (...args: A) => T | PromiseLike<T>, ...args: A): Promise<T>;
|
|
6
|
+
export declare const ProxyPromise: PromiseConstructor & {
|
|
7
|
+
try: typeof promiseTryPolyfill;
|
|
8
|
+
};
|
|
4
9
|
export type ValueOf<T> = T[keyof T];
|
|
10
|
+
export {};
|
|
5
11
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,OAAO,EAAE,MAAM,CAAC,KAAG,GAAG,IAAI,MAAM,CAC3D,CAAA;AAEnC,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WACD,CAAA;AAEvD,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAA2B,CAAC,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,EAAE,aAAuB,yBAU7D,CAAA;AAEH,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,OAAO,EAAE,MAAM,CAAC,KAAG,GAAG,IAAI,MAAM,CAC3D,CAAA;AAEnC,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WACD,CAAA;AAEvD,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAA2B,CAAC,EAAE,CAAA;AAInG,iBAAS,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,EAC5C,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EACtC,GAAG,IAAI,EAAE,CAAC,GACT,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED,eAAO,MAAM,YAAY,EAOnB,kBAAkB,GAAG;IACzB,GAAG,EAAE,OAAO,kBAAkB,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA"}
|
package/dist/utils.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
const getError = (error, tips = 'unknown error.')=>(error instanceof Error || error instanceof DOMException ? error : void 0) ?? ('string' == typeof error ? new Error(error) : void 0) ?? new Error(error instanceof Object && 'message' in error && 'string' == typeof error.message ? error.message : tips, {
|
|
2
|
+
cause: error
|
|
3
|
+
});
|
|
1
4
|
const isKey = (key, data)=>isPropertyKey(key) && key in data;
|
|
2
5
|
const isPropertyKey = (value)=>[
|
|
3
6
|
'number',
|
|
@@ -5,4 +8,17 @@ const isPropertyKey = (value)=>[
|
|
|
5
8
|
'symbol'
|
|
6
9
|
].includes(typeof value);
|
|
7
10
|
const objectValues = (obj)=>Object.values(obj);
|
|
8
|
-
|
|
11
|
+
function promiseTryPolyfill(fn, ...args) {
|
|
12
|
+
try {
|
|
13
|
+
return Promise.resolve(fn(...args));
|
|
14
|
+
} catch (error) {
|
|
15
|
+
return Promise.reject(getError(error));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const ProxyPromise = new Proxy(Promise, {
|
|
19
|
+
get (target, propKey) {
|
|
20
|
+
if ('try' === propKey) return 'try' in target ? target.try : promiseTryPolyfill;
|
|
21
|
+
return target[propKey];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
export { ProxyPromise, getError, isKey, isPropertyKey, objectValues };
|
package/package.json
CHANGED
package/dist/RPCAction.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import RPCFactory, { IframeSerializeOptions } from './RPCFactory';
|
|
2
|
-
declare class RPCAction {
|
|
3
|
-
private _target;
|
|
4
|
-
private _brodcastListeners;
|
|
5
|
-
private _handlers;
|
|
6
|
-
private _heartbeatTimer;
|
|
7
|
-
private _isConnected;
|
|
8
|
-
private _lastHeartbeat;
|
|
9
|
-
private _options;
|
|
10
|
-
private _pending;
|
|
11
|
-
private _boundMessageHandler;
|
|
12
|
-
constructor(_target: RPCFactory, options?: RPCOptionsType);
|
|
13
|
-
destroy(): void;
|
|
14
|
-
broadcast<T>(options?: Omit<RequestOptions<T>, 'retry'>): void;
|
|
15
|
-
config(options: Omit<RPCOptionsType, 'onConnect' | 'onDisconnect'>): void;
|
|
16
|
-
on<T extends ActionFunType>(type: PropertyKey, handler: T): void;
|
|
17
|
-
onBrodcast(listener: BrodcastItem): void;
|
|
18
|
-
request<T = unknown>(type: PropertyKey, options?: RequestOptions<T>): Promise<unknown>;
|
|
19
|
-
private _abort;
|
|
20
|
-
private _createRequestId;
|
|
21
|
-
private _isOriginAllowed;
|
|
22
|
-
private _messageHandler;
|
|
23
|
-
private _startHeartbeat;
|
|
24
|
-
}
|
|
25
|
-
export default RPCAction;
|
|
26
|
-
export type RPCOptionsType = {
|
|
27
|
-
allowedOrigins?: string[];
|
|
28
|
-
channel?: string;
|
|
29
|
-
heartbeatInterval?: number;
|
|
30
|
-
heartbeatTimeout?: number;
|
|
31
|
-
retryTimeout?: number;
|
|
32
|
-
retryTimes?: number;
|
|
33
|
-
onConnect?: () => void;
|
|
34
|
-
onDisconnect?: () => void;
|
|
35
|
-
};
|
|
36
|
-
export type ActionFunType = (payload?: any, info?: MessageInfo) => any;
|
|
37
|
-
export type BrodcastItem = (value: unknown, origin?: string) => void;
|
|
38
|
-
export type RequestOptions<T = unknown> = IframeSerializeOptions & {
|
|
39
|
-
payload?: T;
|
|
40
|
-
retry?: number;
|
|
41
|
-
};
|
|
42
|
-
type MessageInfo = Pick<MessageEvent, 'origin' | 'ports' | 'source'>;
|
|
43
|
-
//# sourceMappingURL=RPCAction.d.ts.map
|
package/dist/RPCAction.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RPCAction.d.ts","sourceRoot":"","sources":["../src/RPCAction.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,EAAE,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAejE,cAAM,SAAS;IAWX,OAAO,CAAC,OAAO;IAVjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,oBAAoB,CAAkC;gBAGpD,OAAO,EAAE,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc;IAc1B,OAAO;IAUP,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IASvD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,cAAc,CAAC;IAIlE,EAAE,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IAIzD,UAAU,CAAC,QAAQ,EAAE,YAAY;IAIjC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IA6CnE,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,eAAe;IA2EvB,OAAO,CAAC,eAAe;CAsBxB;AAED,eAAe,SAAS,CAAA;AAExB,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAID,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,GAAG,CAAA;AAEtE,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAEpE,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI,sBAAsB,GAAG;IACjE,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAID,KAAK,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAA"}
|
package/dist/RPCAction.js
DELETED
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
import { isKey } from "./utils.js";
|
|
2
|
-
const RPC_SIGN = 'RPCActionSign';
|
|
3
|
-
const defaultOptions = {
|
|
4
|
-
allowedOrigins: [],
|
|
5
|
-
heartbeatInterval: 3000,
|
|
6
|
-
heartbeatTimeout: 8000,
|
|
7
|
-
retryTimeout: 5000,
|
|
8
|
-
retryTimes: 2
|
|
9
|
-
};
|
|
10
|
-
const getOrigin = (url)=>new URL(url, window.location.origin).origin;
|
|
11
|
-
class RPCAction {
|
|
12
|
-
_target;
|
|
13
|
-
_brodcastListeners = [];
|
|
14
|
-
_handlers = {};
|
|
15
|
-
_heartbeatTimer = null;
|
|
16
|
-
_isConnected = false;
|
|
17
|
-
_lastHeartbeat = Date.now();
|
|
18
|
-
_options = {};
|
|
19
|
-
_pending = new Map();
|
|
20
|
-
_boundMessageHandler = this._messageHandler.bind(this);
|
|
21
|
-
constructor(_target, options){
|
|
22
|
-
this._target = _target;
|
|
23
|
-
this._options = {
|
|
24
|
-
...defaultOptions,
|
|
25
|
-
...options,
|
|
26
|
-
allowedOrigins: options?.allowedOrigins?.map((item)=>'*' === item ? item : getOrigin(item))
|
|
27
|
-
};
|
|
28
|
-
this._target.onmessage(this._boundMessageHandler);
|
|
29
|
-
this._startHeartbeat();
|
|
30
|
-
}
|
|
31
|
-
destroy() {
|
|
32
|
-
clearInterval(this._heartbeatTimer ?? void 0);
|
|
33
|
-
this._target.onremove(this._boundMessageHandler);
|
|
34
|
-
this._abort();
|
|
35
|
-
this._brodcastListeners = [];
|
|
36
|
-
this._handlers = {};
|
|
37
|
-
this._heartbeatTimer = null;
|
|
38
|
-
}
|
|
39
|
-
broadcast(options) {
|
|
40
|
-
const { payload, ...ops } = options ?? {};
|
|
41
|
-
const { channel } = this._options;
|
|
42
|
-
this._target.postMessage({
|
|
43
|
-
__RPC__: RPC_SIGN,
|
|
44
|
-
broadcast: true,
|
|
45
|
-
kind: 'request',
|
|
46
|
-
channel,
|
|
47
|
-
payload
|
|
48
|
-
}, {
|
|
49
|
-
...ops,
|
|
50
|
-
targetOrigin: ops.targetOrigin ?? window.location.origin
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
config(options) {
|
|
54
|
-
this._options = {
|
|
55
|
-
...this._options,
|
|
56
|
-
...options
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
on(type, handler) {
|
|
60
|
-
this._handlers[type] = handler;
|
|
61
|
-
}
|
|
62
|
-
onBrodcast(listener) {
|
|
63
|
-
this._brodcastListeners.push(listener);
|
|
64
|
-
}
|
|
65
|
-
request(type, options) {
|
|
66
|
-
const { payload, retry = 0, ...ops } = options ?? {};
|
|
67
|
-
const { channel, retryTimeout = defaultOptions.retryTimeout, retryTimes = defaultOptions.retryTimes } = this._options;
|
|
68
|
-
return new Promise((resolve, reject)=>{
|
|
69
|
-
if (!this._isConnected) return void reject(new Error(`[RPC] 连接未建立,无法请求:${type.toString()}`));
|
|
70
|
-
const requestId = this._createRequestId();
|
|
71
|
-
const timer = window.setTimeout(()=>{
|
|
72
|
-
this._pending.delete(requestId);
|
|
73
|
-
if (retry < retryTimes) resolve(this.request(type, {
|
|
74
|
-
...options,
|
|
75
|
-
retry: retry + 1
|
|
76
|
-
}));
|
|
77
|
-
else reject(new Error(`[RPC] 请求超时:${type.toString()}`));
|
|
78
|
-
}, retryTimeout);
|
|
79
|
-
this._pending.set(requestId, {
|
|
80
|
-
resolve: (res)=>{
|
|
81
|
-
clearTimeout(timer);
|
|
82
|
-
resolve(res);
|
|
83
|
-
},
|
|
84
|
-
reject: (err)=>{
|
|
85
|
-
const message = err instanceof Error ? err.message : '[RPC] 处理消息时发生错误';
|
|
86
|
-
clearTimeout(timer);
|
|
87
|
-
reject(new Error(message));
|
|
88
|
-
},
|
|
89
|
-
timer
|
|
90
|
-
});
|
|
91
|
-
this._target.postMessage({
|
|
92
|
-
__RPC__: RPC_SIGN,
|
|
93
|
-
kind: 'request',
|
|
94
|
-
channel,
|
|
95
|
-
payload,
|
|
96
|
-
requestId,
|
|
97
|
-
type
|
|
98
|
-
}, {
|
|
99
|
-
...ops,
|
|
100
|
-
targetOrigin: ops.targetOrigin ?? window.location.origin
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
_abort() {
|
|
105
|
-
this._isConnected = false;
|
|
106
|
-
this._options?.onDisconnect?.();
|
|
107
|
-
this._pending.forEach(({ reject, timer })=>{
|
|
108
|
-
clearTimeout(timer);
|
|
109
|
-
reject(new Error('[RPC] 连接已断开,请求已取消'));
|
|
110
|
-
});
|
|
111
|
-
this._pending.clear();
|
|
112
|
-
}
|
|
113
|
-
_createRequestId() {
|
|
114
|
-
const requestId = Math.random().toString(36).slice(2, 10);
|
|
115
|
-
return this._pending.has(requestId) ? this._createRequestId() : requestId;
|
|
116
|
-
}
|
|
117
|
-
_isOriginAllowed(origin) {
|
|
118
|
-
return this._options?.allowedOrigins?.some((item)=>'*' === item || getOrigin(item) === getOrigin(origin)) ?? false;
|
|
119
|
-
}
|
|
120
|
-
_messageHandler(event) {
|
|
121
|
-
const { data, origin, source } = event;
|
|
122
|
-
const { __RPC__, broadcast, channel, error, heartbeat, kind, payload, requestId, type } = data ?? {};
|
|
123
|
-
if (__RPC__ !== RPC_SIGN) return;
|
|
124
|
-
if (this._options?.channel !== channel) return;
|
|
125
|
-
if (!this._target.is(source)) return;
|
|
126
|
-
if (this._target.getType() === window.toString() && !this._isOriginAllowed(origin)) return;
|
|
127
|
-
if (heartbeat) {
|
|
128
|
-
this._lastHeartbeat = Date.now();
|
|
129
|
-
if (!this._isConnected) {
|
|
130
|
-
this._isConnected = true;
|
|
131
|
-
this._options?.onConnect?.();
|
|
132
|
-
}
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
if (broadcast) return void this._brodcastListeners.forEach((listener)=>listener(payload, origin));
|
|
136
|
-
const pending = requestId ? this._pending.get(requestId) : void 0;
|
|
137
|
-
if (requestId && pending) {
|
|
138
|
-
const { resolve, reject } = pending;
|
|
139
|
-
this._pending.delete(requestId);
|
|
140
|
-
if (void 0 !== error) reject(new Error(error));
|
|
141
|
-
else resolve(payload);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
if ('request' !== kind) return;
|
|
145
|
-
const handler = type && isKey(type, this._handlers) ? this._handlers[type] : void 0;
|
|
146
|
-
if (handler) Promise.resolve().then(()=>{
|
|
147
|
-
const result = handler(payload, {
|
|
148
|
-
origin,
|
|
149
|
-
ports: [],
|
|
150
|
-
source
|
|
151
|
-
});
|
|
152
|
-
return result;
|
|
153
|
-
}).then((result)=>{
|
|
154
|
-
this._target.postMessage({
|
|
155
|
-
__RPC__: RPC_SIGN,
|
|
156
|
-
kind: 'response',
|
|
157
|
-
payload: result,
|
|
158
|
-
channel,
|
|
159
|
-
requestId,
|
|
160
|
-
type
|
|
161
|
-
}, {
|
|
162
|
-
targetOrigin: origin
|
|
163
|
-
});
|
|
164
|
-
}).catch((err)=>{
|
|
165
|
-
const message = err instanceof Error ? err.message : '[RPC] 处理消息时发生错误';
|
|
166
|
-
this._target.postMessage({
|
|
167
|
-
__RPC__: RPC_SIGN,
|
|
168
|
-
error: message,
|
|
169
|
-
kind: 'response',
|
|
170
|
-
payload: '',
|
|
171
|
-
channel,
|
|
172
|
-
requestId
|
|
173
|
-
}, {
|
|
174
|
-
targetOrigin: origin
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
_startHeartbeat() {
|
|
179
|
-
const { channel, heartbeatInterval = defaultOptions.heartbeatInterval, heartbeatTimeout = defaultOptions.heartbeatTimeout } = this._options;
|
|
180
|
-
const intervalLoops = ()=>{
|
|
181
|
-
this._target.postMessage({
|
|
182
|
-
__RPC__: RPC_SIGN,
|
|
183
|
-
heartbeat: true,
|
|
184
|
-
kind: 'request',
|
|
185
|
-
channel
|
|
186
|
-
});
|
|
187
|
-
if (!this._isConnected) return;
|
|
188
|
-
if (Date.now() - this._lastHeartbeat > heartbeatTimeout) this._abort();
|
|
189
|
-
};
|
|
190
|
-
intervalLoops();
|
|
191
|
-
clearInterval(this._heartbeatTimer ?? void 0);
|
|
192
|
-
this._heartbeatTimer = window.setInterval(intervalLoops, heartbeatInterval);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
const src_RPCAction = RPCAction;
|
|
196
|
-
export { src_RPCAction as default };
|
package/dist/RPCDecorator.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import RPCAction, { ActionFunType, BrodcastItem, RPCOptionsType, RequestOptions } from './RPCAction';
|
|
2
|
-
import RPCFactory, { FactoryOptions, TargetType } from './RPCFactory';
|
|
3
|
-
declare const factoryKey: readonly ["getType", "upset"];
|
|
4
|
-
declare function RPCDecorator<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: TargetType | null, context?: DecoratorContext<EVENT, CONSUME>): Readonly<Omit<RPCAction, "on" | "request"> & Pick<RPCFactory, (typeof factoryKey)[number]> & {
|
|
5
|
-
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: RequestOptionsByAction<CONSUME[K]>] : [keyname: K, reqops: RequestOptionsByAction<CONSUME[K]>]) => Promise<ReturnType<CONSUME[K]>>;
|
|
6
|
-
}>;
|
|
7
|
-
export default RPCDecorator;
|
|
8
|
-
export interface DecoratorContext<EVENT extends ActionRecord, CONSUME extends ActionRecord> {
|
|
9
|
-
brodcast?: Record<string, BrodcastItem>;
|
|
10
|
-
config?: RPCOptionsType;
|
|
11
|
-
consume?: CONSUME;
|
|
12
|
-
event?: EVENT;
|
|
13
|
-
options?: FactoryOptions;
|
|
14
|
-
}
|
|
15
|
-
export type ActionRecord = Record<string, ActionFunType>;
|
|
16
|
-
type RequestOptionsByAction<F extends ActionFunType> = Parameters<F> extends [] ? Omit<RequestOptions, 'payload'> & {
|
|
17
|
-
payload?: never;
|
|
18
|
-
} : RequestOptions<Parameters<F>[0]> & {
|
|
19
|
-
payload: Parameters<F>[0];
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=RPCDecorator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RPCDecorator.d.ts","sourceRoot":"","sources":["../src/RPCDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACpG,OAAO,UAAU,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAErE,QAAA,MAAM,UAAU,+BAAgC,CAAA;AAUhD,iBAAS,YAAY,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAC5E,MAAM,EAAE,UAAU,GAAG,IAAI,EACzB,OAAO,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,GAwDrC,QAAQ,CACX,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS,CAAC,GAC/B,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,UAAU,EAAE,MAAM,CAAC,CAAC,GAAG;IAC9C,OAAO,GArDI,CAAC,SAAS,MAAM,OAAO,WAC7B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GACtC,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GACzD,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAGjB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CA+C/C;CACxB,CACJ,CACF;AAED,eAAe,YAAY,CAAA;AAE3B,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAExD,KAAK,sBAAsB,CAAC,CAAC,SAAS,aAAa,IACjD,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,GACpB,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,GACrD,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAA"}
|
package/dist/RPCDecorator.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import RPCAction from "./RPCAction.js";
|
|
2
|
-
import RPCFactory from "./RPCFactory.js";
|
|
3
|
-
const factoryKey = [
|
|
4
|
-
'getType',
|
|
5
|
-
'upset'
|
|
6
|
-
];
|
|
7
|
-
function isAction(action, key) {
|
|
8
|
-
return key in action;
|
|
9
|
-
}
|
|
10
|
-
function isFactory(action, key) {
|
|
11
|
-
return null !== action && key in action && factoryKey.map(String).includes(key);
|
|
12
|
-
}
|
|
13
|
-
function RPCDecorator(target, context) {
|
|
14
|
-
const { brodcast, config, event, options } = context ?? {};
|
|
15
|
-
const factory = target ? new RPCFactory(target, options) : null;
|
|
16
|
-
const action = factory ? new RPCAction(factory, config) : null;
|
|
17
|
-
const request = (...args)=>{
|
|
18
|
-
const [keyname, reqops] = args;
|
|
19
|
-
return action?.request(keyname, reqops);
|
|
20
|
-
};
|
|
21
|
-
Object.entries(event ?? {}).forEach(([keyname, handle])=>action?.on(keyname, handle));
|
|
22
|
-
Object.values(brodcast ?? {}).forEach((handle)=>action?.onBrodcast(handle));
|
|
23
|
-
return new Proxy({}, {
|
|
24
|
-
get (_, key) {
|
|
25
|
-
const keyname = key.toString();
|
|
26
|
-
if (!action || 'on' === keyname || !(keyname in action) && !isFactory(factory, keyname)) return;
|
|
27
|
-
switch(key){
|
|
28
|
-
case 'destroy':
|
|
29
|
-
return ()=>{
|
|
30
|
-
action.destroy();
|
|
31
|
-
factory?.destory();
|
|
32
|
-
};
|
|
33
|
-
case 'request':
|
|
34
|
-
return request;
|
|
35
|
-
default:
|
|
36
|
-
if (isAction(action, keyname)) {
|
|
37
|
-
const value = action[keyname];
|
|
38
|
-
return 'function' == typeof value ? value.bind(action) : value;
|
|
39
|
-
}
|
|
40
|
-
if (factory && isFactory(factory, keyname)) {
|
|
41
|
-
const value = factory[keyname];
|
|
42
|
-
return 'function' == typeof value ? value.bind(factory) : value;
|
|
43
|
-
}
|
|
44
|
-
throw new Error('outof decorator');
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
has (_, key) {
|
|
48
|
-
const keyname = key.toString();
|
|
49
|
-
return null !== action && 'on' !== keyname && (keyname in action || isFactory(factory, keyname));
|
|
50
|
-
},
|
|
51
|
-
set () {
|
|
52
|
-
throw new Error('decorator is readonly');
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
const src_RPCDecorator = RPCDecorator;
|
|
57
|
-
export { src_RPCDecorator as default };
|
package/dist/RPCFactory.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
declare class RPCFactory<T extends TargetType = TargetType> {
|
|
2
|
-
private _target;
|
|
3
|
-
private _options;
|
|
4
|
-
private _onconnect;
|
|
5
|
-
constructor(_target: T, _options?: FactoryOptions);
|
|
6
|
-
destory(): void;
|
|
7
|
-
getType(): string;
|
|
8
|
-
is(source: MessageEventSource | null): boolean;
|
|
9
|
-
onmessage(listener: (ev: MessageEvent) => unknown): void;
|
|
10
|
-
onremove(listener: (ev: MessageEvent) => unknown): void;
|
|
11
|
-
postMessage(message: unknown, options?: IframeSerializeOptions): void;
|
|
12
|
-
upset(options: FactoryOptions): void;
|
|
13
|
-
}
|
|
14
|
-
export default RPCFactory;
|
|
15
|
-
export interface FactoryOptions {
|
|
16
|
-
message?: boolean | AddEventListenerOptions;
|
|
17
|
-
}
|
|
18
|
-
export type IframeSerializeOptions = StructuredSerializeOptions & {
|
|
19
|
-
targetOrigin?: string;
|
|
20
|
-
};
|
|
21
|
-
export type TargetType = BroadcastChannel | WebSocket | Window | ServiceWorkerRegistration | ServiceWorkerGlobalScope | SharedWorker | SharedWorkerGlobalScope | Worker | DedicatedWorkerGlobalScope;
|
|
22
|
-
//# sourceMappingURL=RPCFactory.d.ts.map
|
package/dist/RPCFactory.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RPCFactory.d.ts","sourceRoot":"","sources":["../src/RPCFactory.ts"],"names":[],"mappings":"AAQA,cAAM,UAAU,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU;IAI9C,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,QAAQ;IAJlB,OAAO,CAAC,UAAU,CAAwB;gBAGhC,OAAO,EAAE,CAAC,EACV,QAAQ,GAAE,cAAmB;IAqBvC,OAAO;IA4CP,OAAO;IAIP,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO;IAoFjD,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO;IA0DhD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAqE9D,KAAK,CAAC,OAAO,EAAE,cAAc;CAG9B;AAED,eAAe,UAAU,CAAA;AAEzB,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,GAAG;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAID,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,SAAS,GACT,MAAM,GAEN,yBAAyB,GACzB,wBAAwB,GACxB,YAAY,GACZ,uBAAuB,GACvB,MAAM,GACN,0BAA0B,CAAA"}
|