@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.
Files changed (87) hide show
  1. package/dist/core/RPCAction.d.ts.map +1 -1
  2. package/dist/core/RPCAction.js +1 -2
  3. package/dist/core/registry.d.ts +2 -3
  4. package/dist/core/registry.d.ts.map +1 -1
  5. package/dist/createCtx.d.ts +1 -1
  6. package/dist/createCtx.d.ts.map +1 -1
  7. package/dist/entry/broadcastChannel.d.ts +2 -2
  8. package/dist/entry/broadcastChannel.d.ts.map +1 -1
  9. package/dist/entry/dedicatedWorkerGlobalScope.d.ts +2 -2
  10. package/dist/entry/dedicatedWorkerGlobalScope.d.ts.map +1 -1
  11. package/dist/entry/messagePort.d.ts +2 -2
  12. package/dist/entry/messagePort.d.ts.map +1 -1
  13. package/dist/entry/serviceWorkerGlobalScope.d.ts +2 -2
  14. package/dist/entry/serviceWorkerGlobalScope.d.ts.map +1 -1
  15. package/dist/entry/serviceWorkerRegistration.d.ts +2 -2
  16. package/dist/entry/serviceWorkerRegistration.d.ts.map +1 -1
  17. package/dist/entry/sharedWorker.d.ts +2 -2
  18. package/dist/entry/sharedWorker.d.ts.map +1 -1
  19. package/dist/entry/sharedWorkerGlobalScope.d.ts +2 -2
  20. package/dist/entry/sharedWorkerGlobalScope.d.ts.map +1 -1
  21. package/dist/entry/webSocket.d.ts +2 -2
  22. package/dist/entry/webSocket.d.ts.map +1 -1
  23. package/dist/entry/window.d.ts +2 -2
  24. package/dist/entry/window.d.ts.map +1 -1
  25. package/dist/entry/worker.d.ts +2 -2
  26. package/dist/entry/worker.d.ts.map +1 -1
  27. package/dist/fields.d.ts +15 -41
  28. package/dist/fields.d.ts.map +1 -1
  29. package/dist/fields.js +1 -30
  30. package/dist/index.d.ts +2 -4
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -4
  33. package/dist/react/fields.d.ts +0 -3
  34. package/dist/react/fields.d.ts.map +1 -1
  35. package/dist/react/hooks.d.ts +2 -4
  36. package/dist/react/hooks.d.ts.map +1 -1
  37. package/dist/react/index.d.ts +0 -1
  38. package/dist/react/index.d.ts.map +1 -1
  39. package/dist/react/index.js +0 -1
  40. package/dist/transports/BaseTransport.d.ts +1 -5
  41. package/dist/transports/BaseTransport.d.ts.map +1 -1
  42. package/dist/transports/BroadcastChannelTransport.d.ts.map +1 -1
  43. package/dist/transports/BroadcastChannelTransport.js +1 -1
  44. package/dist/transports/DedicatedWorkerGlobalScopeTransport.d.ts.map +1 -1
  45. package/dist/transports/DedicatedWorkerGlobalScopeTransport.js +1 -1
  46. package/dist/transports/MessagePortTransport.d.ts.map +1 -1
  47. package/dist/transports/MessagePortTransport.js +1 -1
  48. package/dist/transports/ServiceWorkerGlobalScopeTransport.d.ts +2 -2
  49. package/dist/transports/ServiceWorkerGlobalScopeTransport.d.ts.map +1 -1
  50. package/dist/transports/ServiceWorkerGlobalScopeTransport.js +1 -1
  51. package/dist/transports/ServiceWorkerRegistrationTransport.d.ts.map +1 -1
  52. package/dist/transports/ServiceWorkerRegistrationTransport.js +1 -1
  53. package/dist/transports/SharedWorkerGlobalScopeTransport.d.ts.map +1 -1
  54. package/dist/transports/SharedWorkerGlobalScopeTransport.js +1 -1
  55. package/dist/transports/SharedWorkerTransport.d.ts.map +1 -1
  56. package/dist/transports/SharedWorkerTransport.js +1 -1
  57. package/dist/transports/WebSocketTransport.d.ts.map +1 -1
  58. package/dist/transports/WebSocketTransport.js +1 -1
  59. package/dist/transports/WindowTransport.d.ts.map +1 -1
  60. package/dist/transports/WindowTransport.js +1 -1
  61. package/dist/transports/WorkerTransport.d.ts.map +1 -1
  62. package/dist/transports/WorkerTransport.js +1 -1
  63. package/dist/utils.d.ts +6 -0
  64. package/dist/utils.d.ts.map +1 -1
  65. package/dist/utils.js +17 -1
  66. package/package.json +1 -1
  67. package/dist/RPCAction.d.ts +0 -43
  68. package/dist/RPCAction.d.ts.map +0 -1
  69. package/dist/RPCAction.js +0 -196
  70. package/dist/RPCDecorator.d.ts +0 -21
  71. package/dist/RPCDecorator.d.ts.map +0 -1
  72. package/dist/RPCDecorator.js +0 -57
  73. package/dist/RPCFactory.d.ts +0 -22
  74. package/dist/RPCFactory.d.ts.map +0 -1
  75. package/dist/RPCFactory.js +0 -141
  76. package/dist/RPCProvider.d.ts +0 -4
  77. package/dist/RPCProvider.d.ts.map +0 -1
  78. package/dist/RPCProvider.js +0 -34
  79. package/dist/hooks.d.ts +0 -34
  80. package/dist/hooks.d.ts.map +0 -1
  81. package/dist/hooks.js +0 -82
  82. package/dist/react/createCtx.d.ts +0 -13
  83. package/dist/react/createCtx.d.ts.map +0 -1
  84. package/dist/react/createCtx.js +0 -33
  85. package/dist/transports/fields.d.ts +0 -19
  86. package/dist/transports/fields.d.ts.map +0 -1
  87. 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
@@ -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"}
@@ -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