@event-chat/rpc 0.1.15 → 0.1.17
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 +2 -2
- package/dist/core/RPCAction.d.ts.map +1 -1
- package/dist/core/RPCAction.js +3 -3
- package/dist/core/RPCDecorator.d.ts +7 -3
- package/dist/core/RPCDecorator.d.ts.map +1 -1
- package/dist/core/RPCDecorator.js +2 -1
- package/dist/core/registry.d.ts +4 -4
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/entry/auto.d.ts.map +1 -1
- package/dist/entry/broadcastChannel.d.ts +2 -22
- package/dist/entry/broadcastChannel.d.ts.map +1 -1
- package/dist/entry/dedicatedWorkerGlobalScope.d.ts +1 -1
- package/dist/entry/serviceWorkerGlobalScope.d.ts +1 -1
- package/dist/entry/serviceWorkerRegistration.d.ts +1 -1
- package/dist/entry/sharedWorker.d.ts +1 -1
- package/dist/entry/sharedWorkerGlobalScope.d.ts +1 -1
- package/dist/entry/webSocket.d.ts +1 -1
- package/dist/entry/window.d.ts +1 -1
- package/dist/entry/window.d.ts.map +1 -1
- package/dist/entry/window.js +4 -1
- package/dist/entry/worker.d.ts +1 -1
- package/dist/fields.d.ts +3 -1
- package/dist/fields.d.ts.map +1 -1
- package/dist/react/RPCProvider.d.ts.map +1 -1
- package/dist/react/RPCProvider.js +1 -1
- package/dist/react/fields.d.ts +2 -2
- package/dist/react/fields.d.ts.map +1 -1
- package/dist/react/hooks.d.ts +20 -15
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/hooks.js +21 -9
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/transports/BaseTransport.d.ts +4 -1
- package/dist/transports/BaseTransport.d.ts.map +1 -1
- package/dist/transports/BaseTransport.js +1 -0
- package/dist/transports/BroadcastChannelTransport.d.ts +3 -1
- package/dist/transports/BroadcastChannelTransport.d.ts.map +1 -1
- package/dist/transports/BroadcastChannelTransport.js +2 -0
- package/dist/transports/DedicatedWorkerGlobalScopeTransport.d.ts +1 -0
- package/dist/transports/DedicatedWorkerGlobalScopeTransport.d.ts.map +1 -1
- package/dist/transports/DedicatedWorkerGlobalScopeTransport.js +1 -0
- package/dist/transports/ServiceWorkerGlobalScopeTransport.d.ts +1 -0
- package/dist/transports/ServiceWorkerGlobalScopeTransport.d.ts.map +1 -1
- package/dist/transports/ServiceWorkerGlobalScopeTransport.js +1 -0
- package/dist/transports/ServiceWorkerRegistrationTransport.d.ts +4 -1
- package/dist/transports/ServiceWorkerRegistrationTransport.d.ts.map +1 -1
- package/dist/transports/ServiceWorkerRegistrationTransport.js +14 -3
- package/dist/transports/SharedWorkerGlobalScopeTransport.d.ts +1 -0
- package/dist/transports/SharedWorkerGlobalScopeTransport.d.ts.map +1 -1
- package/dist/transports/SharedWorkerGlobalScopeTransport.js +1 -0
- package/dist/transports/SharedWorkerTransport.d.ts +1 -0
- package/dist/transports/SharedWorkerTransport.d.ts.map +1 -1
- package/dist/transports/SharedWorkerTransport.js +1 -0
- package/dist/transports/WebSocketTransport.d.ts +1 -0
- package/dist/transports/WebSocketTransport.d.ts.map +1 -1
- package/dist/transports/WebSocketTransport.js +5 -0
- package/dist/transports/WindowTransport.d.ts +3 -0
- package/dist/transports/WindowTransport.d.ts.map +1 -1
- package/dist/transports/WindowTransport.js +35 -1
- package/dist/transports/WorkerTransport.d.ts +1 -0
- package/dist/transports/WorkerTransport.d.ts.map +1 -1
- package/dist/transports/WorkerTransport.js +1 -0
- package/dist/transports/fields.d.ts +1 -3
- package/dist/transports/fields.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/core/RPCAction.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ declare class RPCAction {
|
|
|
10
10
|
private _options;
|
|
11
11
|
private _pending;
|
|
12
12
|
private _boundMessageHandler;
|
|
13
|
-
constructor(_target: Transport
|
|
13
|
+
constructor(_target: Transport<boolean>, options?: RPCOptionsType);
|
|
14
14
|
destroy(): void;
|
|
15
15
|
broadcast<T>(options?: Omit<RequestOptions<T>, 'retry'>): void;
|
|
16
16
|
config(options: Omit<RPCOptionsType, 'onConnect' | 'onDisconnect'>): void;
|
|
@@ -33,7 +33,7 @@ export type RPCOptionsType = {
|
|
|
33
33
|
retryTimeout?: number;
|
|
34
34
|
retryTimes?: number;
|
|
35
35
|
onConnect?: () => void;
|
|
36
|
-
onDisconnect?: () => void;
|
|
36
|
+
onDisconnect?: (destroy?: boolean) => void;
|
|
37
37
|
};
|
|
38
38
|
export type ActionFunType = (payload?: any, info?: MessageInfo) => any;
|
|
39
39
|
export type BrodcastItem = (value: unknown, info?: MessageInfo) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RPCAction.d.ts","sourceRoot":"","sources":["../../src/core/RPCAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAI7D,QAAA,MAAM,WAAW,oBAAoB,CAAA;AAarC,cAAM,SAAS;IAWX,OAAO,CAAC,OAAO;IAVjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAA8B;IACrD,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,SAAS,
|
|
1
|
+
{"version":3,"file":"RPCAction.d.ts","sourceRoot":"","sources":["../../src/core/RPCAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAI7D,QAAA,MAAM,WAAW,oBAAoB,CAAA;AAarC,cAAM,SAAS;IAWX,OAAO,CAAC,OAAO;IAVjB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,eAAe,CAA8B;IACrD,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,SAAS,CAAC,OAAO,CAAC,EACnC,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;IAmFvB,OAAO,CAAC,eAAe;CAsBxB;AAED,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,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,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CAC3C,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,IAAI,CAAC,EAAE,WAAW,KAAK,IAAI,CAAA;AAEvE,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/core/RPCAction.js
CHANGED
|
@@ -32,7 +32,7 @@ class RPCAction {
|
|
|
32
32
|
destroy() {
|
|
33
33
|
clearInterval(this._heartbeatTimer ?? void 0);
|
|
34
34
|
this._target.onremove(this._boundMessageHandler);
|
|
35
|
-
this._abort();
|
|
35
|
+
this._abort(true);
|
|
36
36
|
this._brodcastListeners = [];
|
|
37
37
|
this._handlers = {};
|
|
38
38
|
this._heartbeatTimer = null;
|
|
@@ -102,9 +102,9 @@ class RPCAction {
|
|
|
102
102
|
});
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
|
-
_abort() {
|
|
105
|
+
_abort(destroy) {
|
|
106
106
|
this._isConnected = false;
|
|
107
|
-
this._options?.onDisconnect?.();
|
|
107
|
+
this._options?.onDisconnect?.(destroy);
|
|
108
108
|
this._pending.forEach(({ reject, timer })=>{
|
|
109
109
|
clearTimeout(timer);
|
|
110
110
|
reject(new Error('[RPC] 连接已断开,请求已取消'));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Transport } from '../fields';
|
|
2
2
|
import RPCAction, { ActionFunType, BrodcastItem, RPCOptionsType, RequestOptions } from './RPCAction';
|
|
3
|
-
declare
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
declare const factoryKey: readonly ["getType", "upset"];
|
|
4
|
+
declare const disabledKey: readonly ["destroy", "on", "onBrodcast"];
|
|
5
|
+
declare function RPCDecorator<TARGET extends Transport<boolean> | null, EVENT extends ActionRecord, CONSUME extends ActionRecord>(factory: TARGET, context?: DecoratorContext<EVENT, CONSUME>): readonly [ResultType<(<K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: RequestOptionsByAction<CONSUME[K]>] : [keyname: K, reqops: RequestOptionsByAction<CONSUME[K]>]) => Promise<UnwrapPromise<ReturnType<CONSUME[K]>>>), TARGET>, () => void];
|
|
6
6
|
export default RPCDecorator;
|
|
7
7
|
export interface DecoratorContext<EVENT extends ActionRecord, CONSUME extends ActionRecord> {
|
|
8
8
|
brodcast?: Record<string, BrodcastItem>;
|
|
@@ -11,10 +11,14 @@ export interface DecoratorContext<EVENT extends ActionRecord, CONSUME extends Ac
|
|
|
11
11
|
event?: EVENT;
|
|
12
12
|
}
|
|
13
13
|
export type ActionRecord = Record<string, ActionFunType>;
|
|
14
|
+
type GetTransportFlag<T> = T extends Transport<infer B> ? B : never;
|
|
14
15
|
type RequestOptionsByAction<F extends ActionFunType> = Parameters<F> extends [] ? Omit<RequestOptions, 'payload'> & {
|
|
15
16
|
payload?: never;
|
|
16
17
|
} : RequestOptions<Parameters<F>[0]> & {
|
|
17
18
|
payload: Parameters<F>[0];
|
|
18
19
|
};
|
|
20
|
+
type ResultType<REQ, TARGET extends Transport<boolean> | null> = [TARGET] extends [null] ? Record<never, never> : Readonly<Omit<RPCAction, (typeof disabledKey)[number] | 'request'> & Pick<Transport<boolean>, (typeof factoryKey)[number]> & {
|
|
21
|
+
request: GetTransportFlag<TARGET> extends true ? never : REQ;
|
|
22
|
+
}>;
|
|
19
23
|
type UnwrapPromise<T> = T extends Promise<infer R> ? R : T;
|
|
20
24
|
//# sourceMappingURL=RPCDecorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RPCDecorator.d.ts","sourceRoot":"","sources":["../../src/core/RPCDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,SAAS,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"RPCDecorator.d.ts","sourceRoot":"","sources":["../../src/core/RPCDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,SAAS,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEpG,QAAA,MAAM,UAAU,+BAAgC,CAAA;AAChD,QAAA,MAAM,WAAW,0CAA2C,CAAA;AAU5D,iBAAS,YAAY,CACnB,MAAM,SAAS,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,EACxC,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,EAC5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,0BAI1C,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,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBA0C5F;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;CACd;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAGxD,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAEnE,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;AAEtE,KAAK,UAAU,CAAC,GAAG,EAAE,MAAM,SAAS,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GACpF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GACpB,QAAQ,CACN,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GACvD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG;IACtD,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,GAAG,CAAA;CAC7D,CACJ,CAAA;AAEL,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA"}
|
|
@@ -27,12 +27,13 @@ function RPCDecorator(factory, context) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.entries(event ?? {}).forEach(([keyname, handle])=>action?.on(keyname, handle));
|
|
29
29
|
Object.values(brodcast ?? {}).forEach((handle)=>action?.onBrodcast(handle));
|
|
30
|
+
factory?.observe(destroy);
|
|
30
31
|
const rpcInsc = new Proxy({}, {
|
|
31
32
|
get (_, key) {
|
|
32
33
|
const keyname = key.toString();
|
|
33
34
|
switch(key){
|
|
34
35
|
case 'request':
|
|
35
|
-
return request;
|
|
36
|
+
return factory?.onlyBrod ? void 0 : request;
|
|
36
37
|
default:
|
|
37
38
|
if (action && isAction(action, keyname)) {
|
|
38
39
|
const value = action[keyname];
|
package/dist/core/registry.d.ts
CHANGED
|
@@ -3,9 +3,9 @@ import { TargetType } from '../transports/BaseTransport';
|
|
|
3
3
|
import { EntryOptions } from '../transports/fields';
|
|
4
4
|
import { ActionRecord } from './RPCDecorator';
|
|
5
5
|
export declare function cacheImport(item?: TransportItem): Promise<{
|
|
6
|
-
default: new (target: any, options?: FactoryOptions) => Transport
|
|
6
|
+
default: new (target: any, options?: FactoryOptions) => Transport<boolean>;
|
|
7
7
|
} | undefined>;
|
|
8
|
-
export declare function createRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: unknown, config?: EntryOptions<EVENT, CONSUME>): Promise<readonly [Readonly<Omit<import("./RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<Transport
|
|
8
|
+
export declare function createRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: unknown, config?: EntryOptions<EVENT, CONSUME>): Promise<readonly [Readonly<Omit<import("./RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<Transport<boolean>, "getType" | "upset"> & {
|
|
9
9
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("./RPCAction").RequestOptions, "payload"> & {
|
|
10
10
|
payload?: never;
|
|
11
11
|
} : StructuredSerializeOptions & {
|
|
@@ -29,13 +29,13 @@ export declare function createRPC<EVENT extends ActionRecord, CONSUME extends Ac
|
|
|
29
29
|
}]) => Promise<ReturnType<CONSUME[K]> extends infer T ? T extends ReturnType<CONSUME[K]> ? T extends Promise<infer R> ? R : T : never : never>;
|
|
30
30
|
}>, () => void]>;
|
|
31
31
|
export declare function registerTransport<T extends TargetType>(resolver: TransportResolver<T>): void;
|
|
32
|
-
export declare function resolveTransport(target: unknown, options?: FactoryOptions): Promise<Transport | null>;
|
|
32
|
+
export declare function resolveTransport(target: unknown, options?: FactoryOptions): Promise<Transport<boolean> | null>;
|
|
33
33
|
export type TransportResolver<T extends TargetType = TargetType> = {
|
|
34
34
|
name: string;
|
|
35
35
|
in: () => boolean;
|
|
36
36
|
match: (target: unknown) => target is T;
|
|
37
37
|
load: () => Promise<{
|
|
38
|
-
default: new (target: T, options?: FactoryOptions) => Transport
|
|
38
|
+
default: new (target: T, options?: FactoryOptions) => Transport<boolean>;
|
|
39
39
|
}>;
|
|
40
40
|
};
|
|
41
41
|
type TransportItem = TransportResolver<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAqB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK3D,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa;yCAoCW,cAAc,KAAK,SAAS;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAqB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK3D,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,aAAa;yCAoCW,cAAc,KAAK,SAAS,CAAC,OAAO,CAAC;eA7B/F;AAED,wBAAgB,SAAS,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAChF,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;iBAItC;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,UAAU,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,QAErF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,cAAc,sCASzE;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI;IACjE,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,OAAO,CAAA;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC,CAAA;IACvC,IAAI,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,KAAK,SAAS,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,CAAA;CAClG,CAAA;AAID,KAAK,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA"}
|
package/dist/entry/auto.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/entry/auto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../../src/entry/auto.ts"],"names":[],"mappings":"AAmEA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -1,26 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createBroadcastChannelRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: BroadcastChannel, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport
|
|
4
|
-
request:
|
|
5
|
-
payload?: never;
|
|
6
|
-
} : StructuredSerializeOptions & {
|
|
7
|
-
targetOrigin?: string;
|
|
8
|
-
transmit?: () => Promise<readonly WindowClient[]>;
|
|
9
|
-
} & {
|
|
10
|
-
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
11
|
-
retry?: number;
|
|
12
|
-
} & {
|
|
13
|
-
payload: Parameters<CONSUME[K]>[0];
|
|
14
|
-
}) | undefined] : [keyname: K, reqops: Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
15
|
-
payload?: never;
|
|
16
|
-
} : StructuredSerializeOptions & {
|
|
17
|
-
targetOrigin?: string;
|
|
18
|
-
transmit?: () => Promise<readonly WindowClient[]>;
|
|
19
|
-
} & {
|
|
20
|
-
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
21
|
-
retry?: number;
|
|
22
|
-
} & {
|
|
23
|
-
payload: Parameters<CONSUME[K]>[0];
|
|
24
|
-
}]) => Promise<ReturnType<CONSUME[K]> extends infer T ? T extends ReturnType<CONSUME[K]> ? T extends Promise<infer R> ? R : T : never : never>;
|
|
3
|
+
export declare function createBroadcastChannelRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: BroadcastChannel, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
|
|
4
|
+
request: never;
|
|
25
5
|
}>, () => void];
|
|
26
6
|
//# sourceMappingURL=broadcastChannel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcastChannel.d.ts","sourceRoot":"","sources":["../../src/entry/broadcastChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAChG,MAAM,EAAE,gBAAgB,EACxB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"broadcastChannel.d.ts","sourceRoot":"","sources":["../../src/entry/broadcastChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAChG,MAAM,EAAE,gBAAgB,EACxB,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;gBAItC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createDedicatedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: DedicatedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport
|
|
3
|
+
export declare function createDedicatedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: DedicatedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createServiceWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport
|
|
3
|
+
export declare function createServiceWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createServiceWorkerRegistrationRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerRegistration, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport
|
|
3
|
+
export declare function createServiceWorkerRegistrationRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: ServiceWorkerRegistration, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createSharedWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport
|
|
3
|
+
export declare function createSharedWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createSharedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport
|
|
3
|
+
export declare function createSharedWorkerGlobalScopeRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: SharedWorkerGlobalScope, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createWebSocketRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: WebSocket, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport
|
|
3
|
+
export declare function createWebSocketRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: WebSocket, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
package/dist/entry/window.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createWindowRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Window | HTMLIFrameElement, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport
|
|
3
|
+
export declare function createWindowRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Window | HTMLIFrameElement, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../src/entry/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,eAAe,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EACtF,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAClC,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../src/entry/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,wBAAgB,eAAe,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EACtF,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAClC,MAAM,CAAC,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;gBAYtC"}
|
package/dist/entry/window.js
CHANGED
|
@@ -3,6 +3,9 @@ import WindowTransport from "../transports/WindowTransport.js";
|
|
|
3
3
|
function createWindowRPC(target, config) {
|
|
4
4
|
const { context, options } = config ?? {};
|
|
5
5
|
const instance = target instanceof HTMLIFrameElement ? target.contentWindow : target;
|
|
6
|
-
|
|
6
|
+
const ops = target instanceof HTMLIFrameElement ? Object.assign({}, options, {
|
|
7
|
+
observer: ()=>target
|
|
8
|
+
}) : options;
|
|
9
|
+
return RPCDecorator(instance ? new WindowTransport(instance, ops) : null, context);
|
|
7
10
|
}
|
|
8
11
|
export { createWindowRPC };
|
package/dist/entry/worker.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionRecord } from '../RPCDecorator';
|
|
2
2
|
import { EntryOptions } from '../transports/fields';
|
|
3
|
-
export declare function createWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Worker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport
|
|
3
|
+
export declare function createWorkerRPC<EVENT extends ActionRecord, CONSUME extends ActionRecord>(target: Worker, config?: EntryOptions<EVENT, CONSUME>): readonly [Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<import("../fields").Transport<boolean>, "getType" | "upset"> & {
|
|
4
4
|
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
5
5
|
payload?: never;
|
|
6
6
|
} : StructuredSerializeOptions & {
|
package/dist/fields.d.ts
CHANGED
|
@@ -20,14 +20,16 @@ export interface RPCInstanceContextIns {
|
|
|
20
20
|
brodcastScope?: <T>(data: RequestOptions<T>, options?: ScopeProps) => void;
|
|
21
21
|
mount?: (item: RPCItem, name?: string) => void;
|
|
22
22
|
}
|
|
23
|
-
export interface Transport {
|
|
23
|
+
export interface Transport<ONLYBD extends boolean = false> {
|
|
24
24
|
destroy: () => void;
|
|
25
25
|
getType: () => string;
|
|
26
26
|
is: (source: MessageEventSource | null) => boolean;
|
|
27
|
+
observe: (close?: () => void) => void;
|
|
27
28
|
onmessage: (listener: ListenerType) => void;
|
|
28
29
|
onremove: (listener: ListenerType) => void;
|
|
29
30
|
postMessage: (message: unknown, options?: IframeSerializeOptions) => void;
|
|
30
31
|
upset: (options: FactoryOptions) => void;
|
|
32
|
+
onlyBrod?: ONLYBD;
|
|
31
33
|
}
|
|
32
34
|
export type IframeSerializeOptions = StructuredSerializeOptions & {
|
|
33
35
|
targetOrigin?: string;
|
package/dist/fields.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,eAAO,MAAM,kBAAkB,gDAA2C,CAAA;AAC1E,eAAO,MAAM,mBAAmB;;;;;;;;;;EAU9B,CAAA;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1E,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,MAAM,WAAW,SAAS;
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,eAAO,MAAM,kBAAkB,gDAA2C,CAAA;AAC1E,eAAO,MAAM,mBAAmB;;;;;;;;;;EAU9B,CAAA;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1E,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,MAAM,WAAW,SAAS,CAAC,MAAM,SAAS,OAAO,GAAG,KAAK;IACvD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,EAAE,MAAM,MAAM,CAAA;IACrB,EAAE,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,KAAK,OAAO,CAAA;IAClD,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACrC,SAAS,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAA;IAC3C,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAA;IAC1C,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzE,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,GAAG;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CACzB,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,KACnF,IAAI,CAAA;AAET,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AAEhF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;IACpD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA"}
|
|
@@ -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;AAW7E,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,iBAAiB,
|
|
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;AAW7E,QAAA,MAAM,WAAW,EAAE,EAAE,CAAC,iBAAiB,CA6CtC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -9,7 +9,7 @@ const RPCProvider = ({ children })=>{
|
|
|
9
9
|
if (list.current.size > 0) {
|
|
10
10
|
const scope = objectValues(TARGET_TYPE_STRINGS).filter((item)=>!exclude?.includes(item)).filter((item)=>!include || include.includes(item)).map(String);
|
|
11
11
|
list.current.forEach((group, item)=>{
|
|
12
|
-
if (scope.includes(item.getType()) && !typeout?.includes(group) && (!typein || typein.includes(group))) item.broadcast(data);
|
|
12
|
+
if ('getType' in item && scope.includes(item.getType()) && !typeout?.includes(group) && (!typein || typein.includes(group))) item.broadcast(data);
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
}, []);
|
package/dist/react/fields.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import RPCAction, { RequestOptions } from '../core/RPCAction';
|
|
2
|
-
import { Transport } from '../
|
|
2
|
+
import { Transport } from '../fields';
|
|
3
3
|
import { ValueOf } from '../utils';
|
|
4
4
|
export declare const RPCInstanceContext: import("react").Context<RPCInstanceContextIns>;
|
|
5
5
|
export declare const TARGET_TYPE_STRINGS: Readonly<{
|
|
@@ -20,7 +20,7 @@ export interface RPCInstanceContextIns {
|
|
|
20
20
|
brodcastScope?: <T>(data: RequestOptions<T>, options?: ScopeProps) => void;
|
|
21
21
|
mount?: (item: RPCItem, name?: string) => void;
|
|
22
22
|
}
|
|
23
|
-
export type RPCItem = Pick<RPCAction, 'broadcast'> & Pick<Transport
|
|
23
|
+
export type RPCItem = (Pick<RPCAction, 'broadcast'> & Pick<Transport<boolean>, 'getType'>) | Record<never, never>;
|
|
24
24
|
export type ScopeProps = {
|
|
25
25
|
exclude?: Array<ValueOf<typeof TARGET_TYPE_STRINGS>>;
|
|
26
26
|
include?: Array<ValueOf<typeof TARGET_TYPE_STRINGS>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/react/fields.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/react/fields.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,eAAO,MAAM,kBAAkB,gDAA2C,CAAA;AAC1E,eAAO,MAAM,mBAAmB;;;;;;;;;;EAU9B,CAAA;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1E,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,MAAM,MAAM,OAAO,GACf,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,GACpE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAExB,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;IACpD,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;IACpD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA"}
|
package/dist/react/hooks.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import RPCDecorator, { ActionRecord, DecoratorContext } from '../core/RPCDecorator';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import { Transport } from '../fields';
|
|
3
|
+
import { FactoryOptions } from '../transports/BaseTransport';
|
|
4
|
+
import { EntryOptions } from '../transports/fields';
|
|
5
|
+
declare const useRPC: <TARGET extends TargetInit, EVENT extends ActionRecord, CONSUME extends ActionRecord>(ops: RPCHooksOptions<TARGET, EVENT, CONSUME> | RPCDriveOptions<TARGET, EVENT, CONSUME>) => Readonly<{
|
|
6
|
+
rpc: [[TARGET] extends [null] ? null : TARGET extends BroadcastChannel ? Transport<true> : Transport<false>] extends [null] ? Record<never, never> : Readonly<Omit<import("../core/RPCAction").default, "destroy" | "on" | "onBrodcast" | "request"> & Pick<Transport<boolean>, "getType" | "upset"> & {
|
|
7
|
+
request: (([TARGET] extends [null] ? null : TARGET extends BroadcastChannel ? Transport<true> : Transport<false>) extends infer T ? T extends ([TARGET] extends [null] ? null : TARGET extends BroadcastChannel ? Transport<true> : Transport<false>) ? T extends Transport<infer B extends boolean> ? B : never : never : never) extends true ? never : <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("../core/RPCAction").RequestOptions, "payload"> & {
|
|
6
8
|
payload?: never;
|
|
7
9
|
} : StructuredSerializeOptions & {
|
|
8
10
|
targetOrigin?: string;
|
|
@@ -22,26 +24,29 @@ declare const useRPC: <EVENT extends ActionRecord, CONSUME extends ActionRecord,
|
|
|
22
24
|
retry?: number;
|
|
23
25
|
} & {
|
|
24
26
|
payload: Parameters<CONSUME[K]>[0];
|
|
25
|
-
}]) => Promise<ReturnType<CONSUME[K]> extends infer
|
|
27
|
+
}]) => 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
28
|
}>;
|
|
27
|
-
brodcastScope: <
|
|
29
|
+
brodcastScope: <T_1>(data: import("../core/RPCAction").RequestOptions<T_1>, options?: import("./fields").ScopeProps) => void;
|
|
30
|
+
destroy: () => void;
|
|
28
31
|
mount: (name: string) => void;
|
|
29
32
|
connected: boolean;
|
|
33
|
+
start: () => () => void;
|
|
30
34
|
}>;
|
|
31
35
|
export default useRPC;
|
|
32
|
-
|
|
36
|
+
export type TargetInit = BroadcastChannel | ServiceWorkerRegistration | SharedWorker | WebSocket | Window | Worker | HTMLIFrameElement | null;
|
|
37
|
+
interface RPCBaseOptions<TARGET extends TargetInit> {
|
|
38
|
+
init: () => TARGET | null | Promise<TARGET | null>;
|
|
33
39
|
name?: string;
|
|
34
40
|
options?: FactoryOptions;
|
|
35
41
|
faild?: (error: unknown) => void;
|
|
36
42
|
}
|
|
37
|
-
interface RPCDriveOptions<EVENT extends ActionRecord, CONSUME extends ActionRecord
|
|
38
|
-
drive: (target: TARGET, config?: EntryOptions<EVENT, CONSUME>) => RPCResult<EVENT, CONSUME>;
|
|
39
|
-
init: () => TARGET | null | Promise<TARGET | null>;
|
|
43
|
+
interface RPCDriveOptions<TARGET extends TargetInit, EVENT extends ActionRecord, CONSUME extends ActionRecord> extends RPCBaseOptions<TARGET>, DecoratorContext<EVENT, CONSUME> {
|
|
44
|
+
drive: (target: TARGET, config?: EntryOptions<EVENT, CONSUME>) => RPCResult<TARGET, EVENT, CONSUME>;
|
|
40
45
|
}
|
|
41
|
-
interface RPCHooksOptions<EVENT extends ActionRecord, CONSUME extends ActionRecord> extends RPCBaseOptions
|
|
42
|
-
drive: (target: unknown, context?: EntryOptions<EVENT, CONSUME>) => Promise<RPCResult<EVENT, CONSUME>>;
|
|
43
|
-
init: () => TargetInit | Promise<TargetInit>;
|
|
46
|
+
interface RPCHooksOptions<TARGET extends TargetInit, EVENT extends ActionRecord, CONSUME extends ActionRecord> extends RPCBaseOptions<TARGET>, DecoratorContext<EVENT, CONSUME> {
|
|
47
|
+
drive: (target: unknown, context?: EntryOptions<EVENT, CONSUME>) => Promise<RPCResult<TARGET, EVENT, CONSUME>>;
|
|
44
48
|
}
|
|
45
|
-
type RPCResult<EVENT extends ActionRecord, CONSUME extends ActionRecord> = ReturnType<typeof RPCDecorator<
|
|
46
|
-
|
|
49
|
+
type RPCResult<TARGET extends TargetInit, EVENT extends ActionRecord, CONSUME extends ActionRecord> = ReturnType<typeof RPCDecorator<[
|
|
50
|
+
TARGET
|
|
51
|
+
] extends [null] ? null : TARGET extends BroadcastChannel ? Transport<true> : Transport<false>, EVENT, CONSUME>>;
|
|
47
52
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -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,
|
|
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,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAMnD,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"}
|
package/dist/react/hooks.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
2
|
-
import RPCDecorator from "../core/RPCDecorator.js";
|
|
3
2
|
import { isKey } from "../utils.js";
|
|
4
3
|
import { RPCInstanceContext } from "./fields.js";
|
|
5
4
|
const defaultBrod = ()=>{};
|
|
@@ -8,6 +7,7 @@ const useRPC = (ops)=>{
|
|
|
8
7
|
const [connected, setConnected] = useState(false);
|
|
9
8
|
const decoratorRef = useRef(null);
|
|
10
9
|
const processRef = useRef(Promise.resolve(null));
|
|
10
|
+
const destroyRef = useRef(()=>{});
|
|
11
11
|
const opsRef = useRef(ops);
|
|
12
12
|
const rpcIns = useMemo(()=>new Proxy({}, {
|
|
13
13
|
get (_, key, ref) {
|
|
@@ -26,9 +26,13 @@ const useRPC = (ops)=>{
|
|
|
26
26
|
}, [
|
|
27
27
|
mount
|
|
28
28
|
]);
|
|
29
|
-
|
|
29
|
+
const start = useCallback(()=>{
|
|
30
30
|
const { config, options, drive, faild, init, name = '', ...opConfig } = opsRef.current;
|
|
31
|
-
|
|
31
|
+
setConnected(false);
|
|
32
|
+
processRef.current = processRef.current.then(()=>init()).then((tar)=>{
|
|
33
|
+
if (options && tar instanceof HTMLIFrameElement) options.observer = ()=>tar;
|
|
34
|
+
return tar instanceof HTMLIFrameElement ? tar.contentWindow : tar;
|
|
35
|
+
}).then((tar)=>{
|
|
32
36
|
const context = {
|
|
33
37
|
...opConfig,
|
|
34
38
|
config: {
|
|
@@ -37,22 +41,25 @@ const useRPC = (ops)=>{
|
|
|
37
41
|
config?.onConnect?.();
|
|
38
42
|
setConnected(true);
|
|
39
43
|
},
|
|
40
|
-
onDisconnect () {
|
|
41
|
-
config?.onDisconnect?.();
|
|
44
|
+
onDisconnect (destroy) {
|
|
45
|
+
config?.onDisconnect?.(destroy);
|
|
42
46
|
setConnected(false);
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
};
|
|
46
|
-
return
|
|
50
|
+
return drive(tar, {
|
|
47
51
|
context,
|
|
48
52
|
options
|
|
49
|
-
})
|
|
53
|
+
});
|
|
50
54
|
}).then((target)=>{
|
|
51
|
-
const [result] = target;
|
|
55
|
+
const [result, destroy] = target;
|
|
52
56
|
decoratorRef.current = result;
|
|
57
|
+
destroyRef.current = destroy;
|
|
53
58
|
mount?.(result, name);
|
|
54
59
|
return target;
|
|
55
60
|
}).catch((error)=>{
|
|
61
|
+
if (decoratorRef.current) mount?.(decoratorRef.current);
|
|
62
|
+
destroyRef.current();
|
|
56
63
|
faild?.(error);
|
|
57
64
|
return null;
|
|
58
65
|
});
|
|
@@ -71,11 +78,16 @@ const useRPC = (ops)=>{
|
|
|
71
78
|
}, [
|
|
72
79
|
mount
|
|
73
80
|
]);
|
|
81
|
+
useEffect(start, [
|
|
82
|
+
start
|
|
83
|
+
]);
|
|
74
84
|
return Object.freeze({
|
|
75
85
|
rpc: rpcIns,
|
|
76
86
|
brodcastScope: brodcastScope ?? defaultBrod,
|
|
87
|
+
destroy: ()=>destroyRef.current?.(),
|
|
77
88
|
mount: mounHandle,
|
|
78
|
-
connected
|
|
89
|
+
connected,
|
|
90
|
+
start
|
|
79
91
|
});
|
|
80
92
|
};
|
|
81
93
|
const hooks = useRPC;
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './createCtx';
|
|
2
2
|
export { type RPCInstanceContextIns, TARGET_TYPE_STRINGS } from './fields';
|
|
3
|
-
export { default as useRPC } from './hooks';
|
|
3
|
+
export { default as useRPC, type TargetInit } from './hooks';
|
|
4
4
|
export { default as RPCProvider } from './RPCProvider';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,KAAK,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,KAAK,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { IframeSerializeOptions, ListenerType, Transport } from '../fields';
|
|
2
|
-
declare abstract class BaseTransport<T extends TargetType = TargetType> implements Transport {
|
|
2
|
+
declare abstract class BaseTransport<T extends TargetType = TargetType, ONLYBD extends boolean = false> implements Transport<ONLYBD> {
|
|
3
3
|
protected _target: T;
|
|
4
4
|
protected _options: FactoryOptions;
|
|
5
|
+
readonly onlyBrod?: ONLYBD;
|
|
5
6
|
constructor(_target: T, _options?: FactoryOptions);
|
|
6
7
|
getType(): string;
|
|
7
8
|
is(source: MessageEventSource | null): boolean;
|
|
8
9
|
upset(options: FactoryOptions): void;
|
|
9
10
|
abstract destroy(): void;
|
|
11
|
+
abstract observe(close?: () => void): void;
|
|
10
12
|
abstract onmessage(listener: ListenerType): void;
|
|
11
13
|
abstract onremove(listener: ListenerType): void;
|
|
12
14
|
abstract postMessage(message: unknown, options?: IframeSerializeOptions): void;
|
|
@@ -14,6 +16,7 @@ declare abstract class BaseTransport<T extends TargetType = TargetType> implemen
|
|
|
14
16
|
export default BaseTransport;
|
|
15
17
|
export interface FactoryOptions {
|
|
16
18
|
message?: boolean | AddEventListenerOptions;
|
|
19
|
+
observer?: () => unknown;
|
|
17
20
|
}
|
|
18
21
|
export type TargetType = BroadcastChannel | WebSocket | Window | ServiceWorkerRegistration | ServiceWorkerGlobalScope | SharedWorker | SharedWorkerGlobalScope | Worker | DedicatedWorkerGlobalScope;
|
|
19
22
|
//# sourceMappingURL=BaseTransport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BaseTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAM3E,uBAAe,aAAa,
|
|
1
|
+
{"version":3,"file":"BaseTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BaseTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAM3E,uBAAe,aAAa,CAC1B,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,MAAM,SAAS,OAAO,GAAG,KAAK,CAC9B,YAAW,SAAS,CAAC,MAAM,CAAC;IAG1B,SAAS,CAAC,OAAO,EAAE,CAAC;IACpB,SAAS,CAAC,QAAQ,EAAE,cAAc;IAHpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;gBAEd,OAAO,EAAE,CAAC,EACV,QAAQ,GAAE,cAAmB;IAGzC,OAAO;IAKP,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpC,KAAK,CAAC,OAAO,EAAE,cAAc;IAM7B,QAAQ,CAAC,OAAO,IAAI,IAAI;IAIxB,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAC1C,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAGhD,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAC/C,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAC/E;AAED,eAAe,aAAa,CAAA;AAE5B,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAA;IAE3C,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAA;CACzB;AAID,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,SAAS,GACT,MAAM,GAEN,yBAAyB,GACzB,wBAAwB,GACxB,YAAY,GACZ,uBAAuB,GACvB,MAAM,GACN,0BAA0B,CAAA"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ListenerType } from '../fields';
|
|
2
2
|
import BaseTransport from './BaseTransport';
|
|
3
|
-
declare class BroadcastChannelTransport extends BaseTransport<BroadcastChannel> {
|
|
3
|
+
declare class BroadcastChannelTransport extends BaseTransport<BroadcastChannel, true> {
|
|
4
|
+
readonly onlyBrod = true;
|
|
4
5
|
destroy(): void;
|
|
6
|
+
observe(): void;
|
|
5
7
|
onmessage(listener: ListenerType): void;
|
|
6
8
|
onremove(listener: ListenerType): void;
|
|
7
9
|
postMessage(message: unknown): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BroadcastChannelTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BroadcastChannelTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,yBAA0B,SAAQ,aAAa,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"BroadcastChannelTransport.d.ts","sourceRoot":"","sources":["../../src/transports/BroadcastChannelTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,yBAA0B,SAAQ,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC;IAC3E,SAAkB,QAAQ,QAAO;IAEjC,OAAO;IAKP,OAAO,IAAI,IAAI;IAEf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAGpC;AAED,eAAe,yBAAyB,CAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import BaseTransport from "./BaseTransport.js";
|
|
2
2
|
class BroadcastChannelTransport extends BaseTransport {
|
|
3
|
+
onlyBrod = true;
|
|
3
4
|
destroy() {
|
|
4
5
|
this._target.close();
|
|
5
6
|
}
|
|
7
|
+
observe() {}
|
|
6
8
|
onmessage(listener) {
|
|
7
9
|
this._target.addEventListener('message', listener, this._options.message);
|
|
8
10
|
}
|
|
@@ -2,6 +2,7 @@ import { IframeSerializeOptions, ListenerType } from '../fields';
|
|
|
2
2
|
import BaseTransport from './BaseTransport';
|
|
3
3
|
declare class DedicatedWorkerGlobalScopeTransport extends BaseTransport<DedicatedWorkerGlobalScope> {
|
|
4
4
|
destroy(): void;
|
|
5
|
+
observe(): void;
|
|
5
6
|
onmessage(listener: ListenerType): void;
|
|
6
7
|
onremove(listener: ListenerType): void;
|
|
7
8
|
postMessage(message: unknown, options?: IframeSerializeOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DedicatedWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/DedicatedWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,mCAAoC,SAAQ,aAAa,CAAC,0BAA0B,CAAC;IAEzF,OAAO;
|
|
1
|
+
{"version":3,"file":"DedicatedWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/DedicatedWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,mCAAoC,SAAQ,aAAa,CAAC,0BAA0B,CAAC;IAEzF,OAAO;IAKP,OAAO,IAAI,IAAI;IAEf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,mCAAmC,CAAA"}
|
|
@@ -4,6 +4,7 @@ declare class ServiceWorkerGlobalScopeTransport extends BaseTransport<ServiceWor
|
|
|
4
4
|
private _onconnect;
|
|
5
5
|
private _source;
|
|
6
6
|
destroy(): void;
|
|
7
|
+
observe(): void;
|
|
7
8
|
onmessage(listener: ListenerType): void;
|
|
8
9
|
onremove(): void;
|
|
9
10
|
postMessage(message: unknown, options?: IframeSerializeOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,iCAAkC,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IACrF,OAAO,CAAC,UAAU,CAAuD;IACzE,OAAO,CAAC,OAAO,CAA8C;IAI7D,OAAO;
|
|
1
|
+
{"version":3,"file":"ServiceWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,iCAAkC,SAAQ,aAAa,CAAC,wBAAwB,CAAC;IACrF,OAAO,CAAC,UAAU,CAAuD;IACzE,OAAO,CAAC,OAAO,CAA8C;IAI7D,OAAO;IAKP,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAyBvC,QAAQ,IAAI,IAAI;IAKhB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAYtE;AAED,eAAe,iCAAiC,CAAA"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { IframeSerializeOptions, ListenerType } from '../fields';
|
|
2
2
|
import BaseTransport from './BaseTransport';
|
|
3
3
|
declare class ServiceWorkerRegistrationTransport extends BaseTransport<ServiceWorkerRegistration> {
|
|
4
|
+
private _listener;
|
|
4
5
|
destroy(): void;
|
|
6
|
+
is(source: MessageEventSource | null): source is ServiceWorker;
|
|
7
|
+
observe(): void;
|
|
5
8
|
onmessage(listener: ListenerType): void;
|
|
6
|
-
onremove(
|
|
9
|
+
onremove(): void;
|
|
7
10
|
postMessage(message: unknown, options?: IframeSerializeOptions): void;
|
|
8
11
|
}
|
|
9
12
|
export default ServiceWorkerRegistrationTransport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceWorkerRegistrationTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerRegistrationTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAI3C,cAAM,kCAAmC,SAAQ,aAAa,CAAC,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"ServiceWorkerRegistrationTransport.d.ts","sourceRoot":"","sources":["../../src/transports/ServiceWorkerRegistrationTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAI3C,cAAM,kCAAmC,SAAQ,aAAa,CAAC,yBAAyB,CAAC;IACvF,OAAO,CAAC,SAAS,CAA+C;IAIhE,OAAO;IAKP,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAQpC,OAAO,IAAI,IAAI;IAEf,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAuBvC,QAAQ,IAAI,IAAI;IAKhB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,kCAAkC,CAAA"}
|
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
import BaseTransport from "./BaseTransport.js";
|
|
2
2
|
class ServiceWorkerRegistrationTransport extends BaseTransport {
|
|
3
|
+
_listener = null;
|
|
3
4
|
destroy() {
|
|
4
5
|
this._target.unregister().catch(()=>{});
|
|
5
6
|
}
|
|
7
|
+
is(source) {
|
|
8
|
+
return source instanceof ServiceWorker;
|
|
9
|
+
}
|
|
10
|
+
observe() {}
|
|
6
11
|
onmessage(listener) {
|
|
7
|
-
|
|
12
|
+
this._listener = (event)=>{
|
|
13
|
+
navigator.serviceWorker.getRegistrations().then((registrations)=>{
|
|
14
|
+
const matched = registrations.find((registration)=>event.source === registration.active || event.source === registration.installing || event.source === registration.waiting);
|
|
15
|
+
if (Object.is(matched, this._target)) listener(event);
|
|
16
|
+
}).catch(()=>{});
|
|
17
|
+
};
|
|
18
|
+
navigator.serviceWorker.addEventListener('message', this._listener, this._options.message);
|
|
8
19
|
}
|
|
9
|
-
onremove(
|
|
10
|
-
navigator.serviceWorker.removeEventListener('message',
|
|
20
|
+
onremove() {
|
|
21
|
+
if (this._listener) navigator.serviceWorker.removeEventListener('message', this._listener, this._options.message);
|
|
11
22
|
}
|
|
12
23
|
postMessage(message, options) {
|
|
13
24
|
const { transfer } = options ?? {};
|
|
@@ -4,6 +4,7 @@ declare class SharedWorkerGlobalScopeTransport extends BaseTransport<SharedWorke
|
|
|
4
4
|
private _onconnect;
|
|
5
5
|
private _message;
|
|
6
6
|
destroy(): void;
|
|
7
|
+
observe(): void;
|
|
7
8
|
onmessage(listener: ListenerType): void;
|
|
8
9
|
onremove(listener: ListenerType): void;
|
|
9
10
|
postMessage(message: unknown, options?: IframeSerializeOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,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,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAevC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAQtC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAQtE;AAED,eAAe,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"SharedWorkerGlobalScopeTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerGlobalScopeTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,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,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAQtE;AAED,eAAe,gCAAgC,CAAA"}
|
|
@@ -6,6 +6,7 @@ class SharedWorkerGlobalScopeTransport extends BaseTransport {
|
|
|
6
6
|
this._onconnect.then((messagePort)=>messagePort?.close()).catch(()=>{});
|
|
7
7
|
if (this._message) this._target.removeEventListener('connect', this._message);
|
|
8
8
|
}
|
|
9
|
+
observe() {}
|
|
9
10
|
onmessage(listener) {
|
|
10
11
|
const SharedWorker = this._target;
|
|
11
12
|
this._onconnect = new Promise((resolve)=>{
|
|
@@ -2,6 +2,7 @@ import { IframeSerializeOptions, ListenerType } from '../fields';
|
|
|
2
2
|
import BaseTransport from './BaseTransport';
|
|
3
3
|
declare class SharedWorkerTransport extends BaseTransport<SharedWorker> {
|
|
4
4
|
destroy(): void;
|
|
5
|
+
observe(): void;
|
|
5
6
|
onmessage(listener: ListenerType): void;
|
|
6
7
|
onremove(listener: ListenerType): void;
|
|
7
8
|
postMessage(message: unknown, options?: IframeSerializeOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharedWorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,qBAAsB,SAAQ,aAAa,CAAC,YAAY,CAAC;IAC7D,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAKvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"SharedWorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/SharedWorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,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,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,qBAAqB,CAAA"}
|
|
@@ -6,6 +6,7 @@ declare class WebSocketTransport extends BaseTransport<WebSocket> {
|
|
|
6
6
|
private _onconnect;
|
|
7
7
|
constructor(_target: WebSocket, _options?: FactoryOptions);
|
|
8
8
|
destroy(): void;
|
|
9
|
+
observe(close?: () => void): void;
|
|
9
10
|
onmessage(listener: ListenerType): void;
|
|
10
11
|
onremove(): void;
|
|
11
12
|
postMessage(message: unknown): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WebSocketTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxD,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,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,IAAI,IAAI;IAIhB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAWpC;AAED,eAAe,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"WebSocketTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WebSocketTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxD,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,OAAO,GAAG,IAAI;CAWpC;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -22,6 +22,11 @@ class WebSocketTransport extends BaseTransport {
|
|
|
22
22
|
this._target.onopen = null;
|
|
23
23
|
if (this._target.readyState === WebSocket.OPEN) this._target.close();
|
|
24
24
|
}
|
|
25
|
+
observe(close) {
|
|
26
|
+
this._target.onclose = ()=>{
|
|
27
|
+
close?.();
|
|
28
|
+
};
|
|
29
|
+
}
|
|
25
30
|
onmessage(listener) {
|
|
26
31
|
this._target.onmessage = listener;
|
|
27
32
|
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { IframeSerializeOptions, ListenerType } from '../fields';
|
|
2
2
|
import BaseTransport from './BaseTransport';
|
|
3
3
|
declare class WindowTransport extends BaseTransport<Window> {
|
|
4
|
+
private _errorHandle;
|
|
5
|
+
private _observerTarget;
|
|
4
6
|
destroy(): void;
|
|
5
7
|
is(source: MessageEventSource | null): boolean;
|
|
6
8
|
onmessage(listener: ListenerType): void;
|
|
7
9
|
onremove(listener: ListenerType): void;
|
|
8
10
|
postMessage(message: unknown, options?: IframeSerializeOptions): void;
|
|
11
|
+
observe(close?: () => void): void;
|
|
9
12
|
}
|
|
10
13
|
export default WindowTransport;
|
|
11
14
|
//# sourceMappingURL=WindowTransport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindowTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WindowTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"WindowTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WindowTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IACjD,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,eAAe,CAAgC;IAEvD,OAAO;IAMP,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;IAQrE,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI;CA0C3B;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import BaseTransport from "./BaseTransport.js";
|
|
2
2
|
class WindowTransport extends BaseTransport {
|
|
3
|
-
|
|
3
|
+
_errorHandle = null;
|
|
4
|
+
_observerTarget = null;
|
|
5
|
+
destroy() {
|
|
6
|
+
this._errorHandle?.({
|
|
7
|
+
isDestroy: true
|
|
8
|
+
});
|
|
9
|
+
this._observerTarget?.disconnect();
|
|
10
|
+
}
|
|
4
11
|
is(source) {
|
|
5
12
|
return Object.is(this._target, source);
|
|
6
13
|
}
|
|
@@ -17,6 +24,33 @@ class WindowTransport extends BaseTransport {
|
|
|
17
24
|
transfer
|
|
18
25
|
});
|
|
19
26
|
}
|
|
27
|
+
observe(close) {
|
|
28
|
+
const element = this._options.observer?.();
|
|
29
|
+
if (!(element instanceof HTMLIFrameElement) || !Object.is(element.contentWindow, this._target)) return;
|
|
30
|
+
if (!element.isConnected) return void close?.();
|
|
31
|
+
const parent = element?.parentElement;
|
|
32
|
+
if (element) {
|
|
33
|
+
const errorHandle = (error)=>{
|
|
34
|
+
element.removeEventListener('error', errorHandle);
|
|
35
|
+
if (!error.isDestroy) close?.();
|
|
36
|
+
};
|
|
37
|
+
element.addEventListener('error', errorHandle);
|
|
38
|
+
this._errorHandle = errorHandle;
|
|
39
|
+
}
|
|
40
|
+
if (parent) {
|
|
41
|
+
const observer = new MutationObserver(()=>{
|
|
42
|
+
if (!element.isConnected) {
|
|
43
|
+
observer.disconnect();
|
|
44
|
+
close?.();
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
observer.observe(parent, {
|
|
48
|
+
childList: true,
|
|
49
|
+
subtree: false
|
|
50
|
+
});
|
|
51
|
+
this._observerTarget = observer;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
20
54
|
}
|
|
21
55
|
const transports_WindowTransport = WindowTransport;
|
|
22
56
|
export { transports_WindowTransport as default };
|
|
@@ -2,6 +2,7 @@ import { IframeSerializeOptions, ListenerType } from '../fields';
|
|
|
2
2
|
import BaseTransport from './BaseTransport';
|
|
3
3
|
declare class WorkerTransport extends BaseTransport<Worker> {
|
|
4
4
|
destroy(): void;
|
|
5
|
+
observe(): void;
|
|
5
6
|
onmessage(listener: ListenerType): void;
|
|
6
7
|
onremove(listener: ListenerType): void;
|
|
7
8
|
postMessage(message: unknown, options?: IframeSerializeOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAG3C,cAAM,eAAgB,SAAQ,aAAa,CAAC,MAAM,CAAC;IAEjD,OAAO;
|
|
1
|
+
{"version":3,"file":"WorkerTransport.d.ts","sourceRoot":"","sources":["../../src/transports/WorkerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAChE,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,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;CAItE;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { ActionRecord, DecoratorContext } from '../core/RPCDecorator';
|
|
2
|
-
|
|
3
|
-
message?: boolean | AddEventListenerOptions;
|
|
4
|
-
}
|
|
2
|
+
import { FactoryOptions } from './BaseTransport';
|
|
5
3
|
export interface Transport {
|
|
6
4
|
destory: () => void;
|
|
7
5
|
getType: () => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/transports/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/transports/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAMhD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,EAAE,MAAM,MAAM,CAAA;IACrB,EAAE,EAAE,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,KAAK,OAAO,CAAA;IAClD,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,KAAK,IAAI,CAAA;IAC5D,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,KAAK,IAAI,CAAA;IAC3D,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAA;IACzE,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAA;CACzC;AAED,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,GAAG;IAChE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,WAAW,YAAY,CAAC,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY;IACpF,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,OAAO,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;CAC3C"}
|