@event-chat/rpc 0.1.28 → 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.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 +2 -2
- package/dist/entry/broadcastChannel.d.ts.map +1 -1
- package/dist/entry/dedicatedWorkerGlobalScope.d.ts +2 -2
- package/dist/entry/dedicatedWorkerGlobalScope.d.ts.map +1 -1
- package/dist/entry/messagePort.d.ts +2 -2
- package/dist/entry/messagePort.d.ts.map +1 -1
- package/dist/entry/serviceWorkerGlobalScope.d.ts +2 -2
- package/dist/entry/serviceWorkerGlobalScope.d.ts.map +1 -1
- package/dist/entry/serviceWorkerRegistration.d.ts +2 -2
- package/dist/entry/serviceWorkerRegistration.d.ts.map +1 -1
- package/dist/entry/sharedWorker.d.ts +2 -2
- package/dist/entry/sharedWorker.d.ts.map +1 -1
- package/dist/entry/sharedWorkerGlobalScope.d.ts +2 -2
- package/dist/entry/sharedWorkerGlobalScope.d.ts.map +1 -1
- package/dist/entry/webSocket.d.ts +2 -2
- package/dist/entry/webSocket.d.ts.map +1 -1
- package/dist/entry/window.d.ts +2 -2
- package/dist/entry/window.d.ts.map +1 -1
- package/dist/entry/worker.d.ts +2 -2
- package/dist/entry/worker.d.ts.map +1 -1
- package/dist/fields.d.ts +15 -41
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +1 -30
- package/dist/index.d.ts +2 -4
- 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 +1 -5
- 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 +1 -1
- 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.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
package/dist/hooks.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { ActionRecord, DecoratorContext } from './RPCDecorator';
|
|
2
|
-
declare const useRPC: <EVENT extends ActionRecord, CONSUME extends ActionRecord>({ init, ...ops }: RPCHooksOptions<EVENT, CONSUME>) => Readonly<{
|
|
3
|
-
rpc: Readonly<Omit<Readonly<Omit<import("./RPCAction").default, "request" | "on"> & Pick<import("./RPCFactory").default<import("./RPCFactory").TargetType>, "getType" | "upset"> & {
|
|
4
|
-
request: <K extends keyof CONSUME>(...args: Parameters<CONSUME[K]> extends [] ? [keyname: K, reqops?: (Parameters<CONSUME[K]> extends [] ? Omit<import("./RPCAction").RequestOptions, "payload"> & {
|
|
5
|
-
payload?: never;
|
|
6
|
-
} : StructuredSerializeOptions & {
|
|
7
|
-
targetOrigin?: string;
|
|
8
|
-
} & {
|
|
9
|
-
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
10
|
-
retry?: number;
|
|
11
|
-
} & {
|
|
12
|
-
payload: Parameters<CONSUME[K]>[0];
|
|
13
|
-
}) | undefined] : [keyname: K, reqops: Parameters<CONSUME[K]> extends [] ? Omit<import("./RPCAction").RequestOptions, "payload"> & {
|
|
14
|
-
payload?: never;
|
|
15
|
-
} : StructuredSerializeOptions & {
|
|
16
|
-
targetOrigin?: string;
|
|
17
|
-
} & {
|
|
18
|
-
payload?: Parameters<CONSUME[K]>[0] | undefined;
|
|
19
|
-
retry?: number;
|
|
20
|
-
} & {
|
|
21
|
-
payload: Parameters<CONSUME[K]>[0];
|
|
22
|
-
}]) => Promise<ReturnType<CONSUME[K]>>;
|
|
23
|
-
}>, "destroy">>;
|
|
24
|
-
mount: (name: string) => void;
|
|
25
|
-
connected: boolean;
|
|
26
|
-
brodcastScope: <T>(data: import("./RPCAction").RequestOptions<T>, options?: import("./fields").ScopeProps) => void;
|
|
27
|
-
}>;
|
|
28
|
-
export default useRPC;
|
|
29
|
-
interface RPCHooksOptions<EVENT extends ActionRecord, CONSUME extends ActionRecord> extends DecoratorContext<EVENT, CONSUME> {
|
|
30
|
-
init: () => TargetInit | Promise<TargetInit>;
|
|
31
|
-
name?: string;
|
|
32
|
-
}
|
|
33
|
-
type TargetInit = BroadcastChannel | ServiceWorkerRegistration | SharedWorker | WebSocket | Window | Worker | HTMLIFrameElement | null;
|
|
34
|
-
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/hooks.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AACA,OAAqB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAI7E,QAAA,MAAM,MAAM,GAAI,KAAK,SAAS,YAAY,EAAE,OAAO,SAAS,YAAY,EAAE,kBAGvE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;kBAoDvB,MAAM;;;EAkDhB,CAAA;AAED,eAAe,MAAM,CAAA;AAErB,UAAU,eAAe,CACvB,KAAK,SAAS,YAAY,EAC1B,OAAO,SAAS,YAAY,CAC5B,SAAQ,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC;IACxC,IAAI,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAOD,KAAK,UAAU,GACX,gBAAgB,GAChB,yBAAyB,GACzB,YAAY,GACZ,SAAS,GACT,MAAM,GACN,MAAM,GACN,iBAAiB,GACjB,IAAI,CAAA"}
|
package/dist/hooks.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
2
|
-
import RPCDecorator from "./RPCDecorator.js";
|
|
3
|
-
import { RPCInstanceContext } from "./fields.js";
|
|
4
|
-
const disableKey = [
|
|
5
|
-
'destroy'
|
|
6
|
-
];
|
|
7
|
-
const useRPC = ({ init, ...ops })=>{
|
|
8
|
-
const { mount, brodcastScope = ()=>{} } = useContext(RPCInstanceContext);
|
|
9
|
-
const [connected, setConnected] = useState(false);
|
|
10
|
-
const initRef = useRef(init);
|
|
11
|
-
const opsRef = useRef(ops);
|
|
12
|
-
const decoratorRef = useRef(null);
|
|
13
|
-
const processRef = useRef(Promise.resolve(null));
|
|
14
|
-
const isRPCResult = useCallback((data, key)=>null !== data && key in data, []);
|
|
15
|
-
const rpcIns = useMemo(()=>new Proxy({}, {
|
|
16
|
-
get (_, key) {
|
|
17
|
-
const decorator = decoratorRef.current;
|
|
18
|
-
const keyname = key.toString();
|
|
19
|
-
if (decorator && !disableKey.map(String).includes(keyname) && isRPCResult(decorator, keyname)) return decorator[keyname];
|
|
20
|
-
throw new Error(`outof decorator: ${key.toString()}`);
|
|
21
|
-
},
|
|
22
|
-
has (_, key) {
|
|
23
|
-
const decorator = decoratorRef.current;
|
|
24
|
-
const keyname = key.toString();
|
|
25
|
-
return null !== decorator && !disableKey.map(String).includes(keyname) && isRPCResult(decorator, keyname);
|
|
26
|
-
},
|
|
27
|
-
set () {
|
|
28
|
-
throw new Error('decorator is readonly');
|
|
29
|
-
}
|
|
30
|
-
}), [
|
|
31
|
-
decoratorRef,
|
|
32
|
-
isRPCResult
|
|
33
|
-
]);
|
|
34
|
-
const mounHandle = useCallback((name)=>{
|
|
35
|
-
if (decoratorRef.current) mount?.(decoratorRef.current, name);
|
|
36
|
-
}, [
|
|
37
|
-
mount
|
|
38
|
-
]);
|
|
39
|
-
useEffect(()=>{
|
|
40
|
-
const { config, name = '', ...opConfig } = opsRef.current;
|
|
41
|
-
processRef.current = processRef.current.then(initRef.current).then((tar)=>{
|
|
42
|
-
const result = RPCDecorator(tar instanceof HTMLIFrameElement ? tar.contentWindow : tar, {
|
|
43
|
-
...opConfig,
|
|
44
|
-
config: {
|
|
45
|
-
...config,
|
|
46
|
-
onConnect () {
|
|
47
|
-
config?.onConnect?.();
|
|
48
|
-
setConnected(true);
|
|
49
|
-
},
|
|
50
|
-
onDisconnect () {
|
|
51
|
-
config?.onDisconnect?.();
|
|
52
|
-
setConnected(false);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
decoratorRef.current = result;
|
|
57
|
-
mount?.(result, name);
|
|
58
|
-
return result;
|
|
59
|
-
});
|
|
60
|
-
return ()=>{
|
|
61
|
-
processRef.current = processRef.current.then((result)=>{
|
|
62
|
-
setConnected(false);
|
|
63
|
-
if (result) {
|
|
64
|
-
mount?.(result);
|
|
65
|
-
result.destroy();
|
|
66
|
-
}
|
|
67
|
-
decoratorRef.current = null;
|
|
68
|
-
return null;
|
|
69
|
-
});
|
|
70
|
-
};
|
|
71
|
-
}, [
|
|
72
|
-
mount
|
|
73
|
-
]);
|
|
74
|
-
return Object.freeze({
|
|
75
|
-
rpc: rpcIns,
|
|
76
|
-
mount: mounHandle,
|
|
77
|
-
connected,
|
|
78
|
-
brodcastScope
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
const hooks = useRPC;
|
|
82
|
-
export { hooks as default };
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { ActionFunType, BrodcastItem } from '../core/RPCAction';
|
|
2
|
-
declare function createCtx<CTX extends Record<string, unknown>, ACTIONS extends Record<string, ActionFunType>, BRODCATS extends Record<string, BrodcastItem>>(factory: (ctx: Partial<CTX>) => ACTIONS, brodcast?: (ctx: Partial<CTX>) => BRODCATS): Readonly<{
|
|
3
|
-
actions: ACTIONS;
|
|
4
|
-
brodcasts: BRODCATS | undefined;
|
|
5
|
-
provider: (next: Partial<CTX>) => () => void;
|
|
6
|
-
}>;
|
|
7
|
-
declare function createService<CTX extends Record<string, unknown>>(): <ACTIONS extends Record<string, ActionFunType>, BRODCATS extends Record<string, BrodcastItem>>(factory: (ctx: Partial<CTX>) => ACTIONS, brodcast?: (ctx: Partial<CTX>) => BRODCATS) => Readonly<{
|
|
8
|
-
actions: ACTIONS;
|
|
9
|
-
brodcasts: BRODCATS | undefined;
|
|
10
|
-
provider: (next: Partial<CTX>) => () => void;
|
|
11
|
-
}>;
|
|
12
|
-
export { createCtx, createService };
|
|
13
|
-
//# sourceMappingURL=createCtx.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createCtx.d.ts","sourceRoot":"","sources":["../../src/react/createCtx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE/D,iBAAS,SAAS,CAChB,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAC7C,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC7C,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ;;;qBAiB3D,OAAO,CAAC,GAAG,CAAC;GAYrC;AAED,iBAAS,aAAa,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAEtD,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAC7C,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAE7C,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EACvC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ;;;;GAE7C;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA"}
|
package/dist/react/createCtx.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
function createCtx(factory, brodcast) {
|
|
2
|
-
const ctx = {
|
|
3
|
-
current: null
|
|
4
|
-
};
|
|
5
|
-
const proxyCtx = new Proxy({}, {
|
|
6
|
-
get (_, key) {
|
|
7
|
-
return ctx.current ? Reflect.get(ctx.current, key) : void 0;
|
|
8
|
-
},
|
|
9
|
-
set () {
|
|
10
|
-
throw new Error('ctx is readonly');
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
const actions = factory(proxyCtx);
|
|
14
|
-
const brodcasts = brodcast?.(proxyCtx);
|
|
15
|
-
const provider = (next)=>{
|
|
16
|
-
ctx.current = {
|
|
17
|
-
...ctx.current ?? {},
|
|
18
|
-
...next
|
|
19
|
-
};
|
|
20
|
-
return ()=>{
|
|
21
|
-
ctx.current = null;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
return Object.freeze({
|
|
25
|
-
actions,
|
|
26
|
-
brodcasts,
|
|
27
|
-
provider
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
function createService() {
|
|
31
|
-
return (factory, brodcast)=>createCtx(factory, brodcast);
|
|
32
|
-
}
|
|
33
|
-
export { createCtx, createService };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ActionRecord, DecoratorContext } from '../core/RPCDecorator';
|
|
2
|
-
import { FactoryOptions } from './BaseTransport';
|
|
3
|
-
export interface Transport {
|
|
4
|
-
destory: () => void;
|
|
5
|
-
getType: () => string;
|
|
6
|
-
is: (source: MessageEventSource | null) => boolean;
|
|
7
|
-
onmessage: (listener: (ev: MessageEvent) => unknown) => void;
|
|
8
|
-
onremove: (listener: (ev: MessageEvent) => unknown) => void;
|
|
9
|
-
postMessage: (message: unknown, options?: IframeSerializeOptions) => void;
|
|
10
|
-
upset: (options: FactoryOptions) => void;
|
|
11
|
-
}
|
|
12
|
-
export type IframeSerializeOptions = StructuredSerializeOptions & {
|
|
13
|
-
targetOrigin?: string;
|
|
14
|
-
};
|
|
15
|
-
export interface EntryOptions<EVENT extends ActionRecord, CONSUME extends ActionRecord> {
|
|
16
|
-
options?: FactoryOptions;
|
|
17
|
-
context?: DecoratorContext<EVENT, CONSUME>;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
File without changes
|