@zimi/remote 0.2.1 → 0.2.3
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/LICENSE.md +21 -21
- package/README.md +289 -285
- package/dist/adaptor.d.mts +33 -0
- package/dist/adaptor.d.ts +5 -4
- package/dist/adaptor.js +1 -1
- package/dist/adaptor.js.map +1 -1
- package/dist/adaptor.mjs +1 -0
- package/dist/adaptor.mjs.map +1 -0
- package/dist/adaptors/dao3/client.d.mts +39 -0
- package/dist/adaptors/dao3/client.d.ts +5 -3
- package/dist/adaptors/dao3/client.js +1 -44
- package/dist/adaptors/dao3/client.js.map +1 -1
- package/dist/adaptors/dao3/client.mjs +2 -0
- package/dist/adaptors/dao3/client.mjs.map +1 -0
- package/dist/adaptors/dao3/server.d.mts +82 -0
- package/dist/adaptors/dao3/server.d.ts +5 -3
- package/dist/adaptors/dao3/server.js +1 -104
- package/dist/adaptors/dao3/server.js.map +1 -1
- package/dist/adaptors/dao3/server.mjs +2 -0
- package/dist/adaptors/dao3/server.mjs.map +1 -0
- package/dist/adaptors/electron/constants.d.mts +5 -0
- package/dist/adaptors/electron/constants.d.ts +5 -0
- package/dist/adaptors/electron/constants.js +2 -0
- package/dist/adaptors/electron/constants.js.map +1 -0
- package/dist/adaptors/electron/constants.mjs +2 -0
- package/dist/adaptors/electron/constants.mjs.map +1 -0
- package/dist/adaptors/electron/main.d.mts +10 -0
- package/dist/adaptors/electron/main.d.ts +10 -0
- package/dist/adaptors/electron/main.js +2 -0
- package/dist/adaptors/electron/main.js.map +1 -0
- package/dist/adaptors/electron/main.mjs +2 -0
- package/dist/adaptors/electron/main.mjs.map +1 -0
- package/dist/adaptors/electron/messenger.d.mts +8 -0
- package/dist/adaptors/electron/messenger.d.ts +8 -0
- package/dist/adaptors/electron/messenger.js +2 -0
- package/dist/adaptors/electron/messenger.js.map +1 -0
- package/dist/adaptors/electron/messenger.mjs +2 -0
- package/dist/adaptors/electron/messenger.mjs.map +1 -0
- package/dist/adaptors/electron/preload.d.mts +6 -0
- package/dist/adaptors/electron/preload.d.ts +6 -0
- package/dist/adaptors/electron/preload.js +2 -0
- package/dist/adaptors/electron/preload.js.map +1 -0
- package/dist/adaptors/electron/preload.mjs +2 -0
- package/dist/adaptors/electron/preload.mjs.map +1 -0
- package/dist/adaptors/electron/renderer.d.mts +9 -0
- package/dist/adaptors/electron/renderer.d.ts +9 -0
- package/dist/adaptors/electron/renderer.js +2 -0
- package/dist/adaptors/electron/renderer.js.map +1 -0
- package/dist/adaptors/electron/renderer.mjs +2 -0
- package/dist/adaptors/electron/renderer.mjs.map +1 -0
- package/dist/adaptors/http.d.mts +15 -0
- package/dist/adaptors/http.d.ts +6 -4
- package/dist/adaptors/http.js +1 -26
- package/dist/adaptors/http.js.map +1 -1
- package/dist/adaptors/http.mjs +2 -0
- package/dist/adaptors/http.mjs.map +1 -0
- package/dist/adaptors/iframe.d.mts +7 -0
- package/dist/adaptors/iframe.d.ts +5 -2
- package/dist/adaptors/iframe.js +1 -38
- package/dist/adaptors/iframe.js.map +1 -1
- package/dist/adaptors/iframe.mjs +2 -0
- package/dist/adaptors/iframe.mjs.map +1 -0
- package/dist/index.d.mts +16 -0
- package/dist/index.d.ts +16 -10
- package/dist/index.js +1 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -0
- package/dist/remote.d.mts +81 -0
- package/dist/remote.d.ts +6 -4
- package/dist/remote.js +1 -196
- package/dist/remote.js.map +1 -1
- package/dist/remote.mjs +2 -0
- package/dist/remote.mjs.map +1 -0
- package/dist/remoteValue/exposeToRemote.d.mts +43 -0
- package/dist/remoteValue/exposeToRemote.d.ts +7 -5
- package/dist/remoteValue/exposeToRemote.js +1 -52
- package/dist/remoteValue/exposeToRemote.js.map +1 -1
- package/dist/remoteValue/exposeToRemote.mjs +2 -0
- package/dist/remoteValue/exposeToRemote.mjs.map +1 -0
- package/dist/remoteValue/remoteValue.d.mts +29 -0
- package/dist/remoteValue/remoteValue.d.ts +6 -4
- package/dist/remoteValue/remoteValue.js +1 -67
- package/dist/remoteValue/remoteValue.js.map +1 -1
- package/dist/remoteValue/remoteValue.mjs +2 -0
- package/dist/remoteValue/remoteValue.mjs.map +1 -0
- package/dist/remoteValue/type.d.mts +67 -0
- package/dist/remoteValue/type.d.ts +20 -19
- package/dist/remoteValue/type.js +1 -1
- package/dist/remoteValue/type.js.map +1 -1
- package/dist/remoteValue/type.mjs +1 -0
- package/dist/remoteValue/type.mjs.map +1 -0
- package/dist/response.d.mts +105 -0
- package/dist/response.d.ts +6 -5
- package/dist/response.js +1 -154
- package/dist/response.js.map +1 -1
- package/dist/response.mjs +2 -0
- package/dist/response.mjs.map +1 -0
- package/package.json +13 -6
- package/src/adaptor.ts +34 -34
- package/src/adaptors/dao3/client.ts +53 -53
- package/src/adaptors/dao3/server.ts +136 -136
- package/src/adaptors/electron/constants.ts +3 -0
- package/src/adaptors/electron/main.ts +59 -0
- package/src/adaptors/electron/messenger.ts +13 -0
- package/src/adaptors/electron/preload.ts +21 -0
- package/src/adaptors/electron/renderer.ts +52 -0
- package/src/adaptors/http.ts +31 -31
- package/src/adaptors/iframe.ts +47 -47
- package/src/index.ts +5 -0
- package/src/remote.ts +263 -260
- package/src/remoteValue/exposeToRemote.ts +102 -102
- package/src/remoteValue/remoteValue.ts +94 -94
- package/src/remoteValue/type.ts +124 -124
- package/src/response.ts +170 -170
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AdaptorPackageData, Adaptor } from '../../adaptor.mjs';
|
|
2
|
+
|
|
3
|
+
declare function onElectronRendererEmit(data: AdaptorPackageData): void;
|
|
4
|
+
interface Options {
|
|
5
|
+
onEmit?: (data: AdaptorPackageData) => void;
|
|
6
|
+
}
|
|
7
|
+
declare function createElectronRendererAdaptor(options?: Options): Adaptor;
|
|
8
|
+
|
|
9
|
+
export { createElectronRendererAdaptor, onElectronRendererEmit };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AdaptorPackageData, Adaptor } from '../../adaptor.js';
|
|
2
|
+
|
|
3
|
+
declare function onElectronRendererEmit(data: AdaptorPackageData): void;
|
|
4
|
+
interface Options {
|
|
5
|
+
onEmit?: (data: AdaptorPackageData) => void;
|
|
6
|
+
}
|
|
7
|
+
declare function createElectronRendererAdaptor(options?: Options): Adaptor;
|
|
8
|
+
|
|
9
|
+
export { createElectronRendererAdaptor, onElectronRendererEmit };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var s=Object.create;var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var v=(e,t)=>{for(var o in t)a(e,o,{get:t[o],enumerable:!0})},i=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of A(t))!g.call(e,r)&&r!==o&&a(e,r,{get:()=>t[r],enumerable:!(n=f(t,r))||n.enumerable});return e};var M=(e,t,o)=>(o=e!=null?s(_(e)):{},i(t||!e||!e.__esModule?a(o,"default",{value:e,enumerable:!0}):o,e)),N=e=>i(a({},"__esModule",{value:!0}),e);var V={};v(V,{createElectronRendererAdaptor:()=>u,onElectronRendererEmit:()=>p});module.exports=N(V);var m=M(require("eventemitter3")),d=require("../../remote"),E=require("./messenger"),c=require("./constants");class R extends m.default{EVERY_EVENT_NAME="__remote_every__";constructor(){super(),!(typeof window>"u")&&(0,E.getMessenger)().on(c.MESSENGER_EVENT_NAME,t=>{(0,d.isRemoteAdaptorData)(t)&&(this.emit(t.name,t),this.emit(this.EVERY_EVENT_NAME,t))})}onEvery(t){this.on(this.EVERY_EVENT_NAME,t)}}function p(e){(0,E.getMessenger)().postMessage(e)}function u(e){const t=(e==null?void 0:e.onEmit)??p,o=new R;return{every:o.onEvery.bind(o),on:o.on.bind(o),once:o.once.bind(o),off:o.off.bind(o),emit:t}}0&&(module.exports={createElectronRendererAdaptor,onElectronRendererEmit});
|
|
2
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/adaptors/electron/renderer.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\nimport { Adaptor, AdaptorPackageData } from '../../adaptor'\r\nimport { isRemoteAdaptorData } from '../../remote'\r\nimport { getMessenger } from './messenger'\r\nimport { MESSENGER_EVENT_NAME } from './constants'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n constructor() {\r\n super()\r\n if (typeof window === 'undefined') {\r\n return\r\n }\r\n getMessenger().on(MESSENGER_EVENT_NAME, (data) => {\r\n if (isRemoteAdaptorData(data)) {\r\n this.emit(data.name, data)\r\n // 一定要抛出 every 事件,remote 包基于此处理远端的响应\r\n this.emit(this.EVERY_EVENT_NAME, data)\r\n }\r\n })\r\n }\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport function onElectronRendererEmit(data: AdaptorPackageData) {\r\n getMessenger().postMessage(data)\r\n}\r\n\r\ninterface Options {\r\n onEmit?: (data: AdaptorPackageData) => void\r\n}\r\n\r\nexport function createElectronRendererAdaptor(options?: Options) {\r\n const onEmit = options?.onEmit ?? onElectronRendererEmit\r\n const remoteEventManager = new RemoteEventManager()\r\n\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mCAAAE,EAAA,2BAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAyB,4BAEzBC,EAAoC,wBACpCC,EAA6B,uBAC7BC,EAAqC,uBAErC,MAAMC,UAA2B,EAAAC,OAE9B,CACD,iBAAmB,mBAEnB,aAAc,CACZ,MAAM,EACF,SAAO,OAAW,SAGtB,gBAAa,EAAE,GAAG,uBAAuBC,GAAS,IAC5C,uBAAoBA,CAAI,IAC1B,KAAK,KAAKA,EAAK,KAAMA,CAAI,EAEzB,KAAK,KAAK,KAAK,iBAAkBA,CAAI,EAEzC,CAAC,CACH,CAEA,QAAQC,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,SAAST,EAAuBQ,EAA0B,IAC/D,gBAAa,EAAE,YAAYA,CAAI,CACjC,CAMO,SAAST,EAA8BW,EAAmB,CAC/D,MAAMC,GAASD,GAAA,YAAAA,EAAS,SAAUV,EAC5BY,EAAqB,IAAIN,EAU/B,MARyB,CACvB,MAAOM,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAMD,CACR,CAGF","names":["renderer_exports","__export","createElectronRendererAdaptor","onElectronRendererEmit","__toCommonJS","import_eventemitter3","import_remote","import_messenger","import_constants","RemoteEventManager","EventEmitter","data","fn","options","onEmit","remoteEventManager"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import a from"eventemitter3";import{isRemoteAdaptorData as n}from"../../remote";import{getMessenger as r}from"./messenger";import{MESSENGER_EVENT_NAME as E}from"./constants";class i extends a{EVERY_EVENT_NAME="__remote_every__";constructor(){super(),!(typeof window>"u")&&r().on(E,e=>{n(e)&&(this.emit(e.name,e),this.emit(this.EVERY_EVENT_NAME,e))})}onEvery(e){this.on(this.EVERY_EVENT_NAME,e)}}function m(o){r().postMessage(o)}function v(o){const e=(o==null?void 0:o.onEmit)??m,t=new i;return{every:t.onEvery.bind(t),on:t.on.bind(t),once:t.once.bind(t),off:t.off.bind(t),emit:e}}export{v as createElectronRendererAdaptor,m as onElectronRendererEmit};
|
|
2
|
+
//# sourceMappingURL=renderer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/adaptors/electron/renderer.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\nimport { Adaptor, AdaptorPackageData } from '../../adaptor'\r\nimport { isRemoteAdaptorData } from '../../remote'\r\nimport { getMessenger } from './messenger'\r\nimport { MESSENGER_EVENT_NAME } from './constants'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n constructor() {\r\n super()\r\n if (typeof window === 'undefined') {\r\n return\r\n }\r\n getMessenger().on(MESSENGER_EVENT_NAME, (data) => {\r\n if (isRemoteAdaptorData(data)) {\r\n this.emit(data.name, data)\r\n // 一定要抛出 every 事件,remote 包基于此处理远端的响应\r\n this.emit(this.EVERY_EVENT_NAME, data)\r\n }\r\n })\r\n }\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport function onElectronRendererEmit(data: AdaptorPackageData) {\r\n getMessenger().postMessage(data)\r\n}\r\n\r\ninterface Options {\r\n onEmit?: (data: AdaptorPackageData) => void\r\n}\r\n\r\nexport function createElectronRendererAdaptor(options?: Options) {\r\n const onEmit = options?.onEmit ?? onElectronRendererEmit\r\n const remoteEventManager = new RemoteEventManager()\r\n\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"AAAA,OAAOA,MAAkB,gBAEzB,OAAS,uBAAAC,MAA2B,eACpC,OAAS,gBAAAC,MAAoB,cAC7B,OAAS,wBAAAC,MAA4B,cAErC,MAAMC,UAA2BJ,CAE9B,CACD,iBAAmB,mBAEnB,aAAc,CACZ,MAAM,EACF,SAAO,OAAW,MAGtBE,EAAa,EAAE,GAAGC,EAAuBE,GAAS,CAC5CJ,EAAoBI,CAAI,IAC1B,KAAK,KAAKA,EAAK,KAAMA,CAAI,EAEzB,KAAK,KAAK,KAAK,iBAAkBA,CAAI,EAEzC,CAAC,CACH,CAEA,QAAQC,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,SAASC,EAAuBF,EAA0B,CAC/DH,EAAa,EAAE,YAAYG,CAAI,CACjC,CAMO,SAASG,EAA8BC,EAAmB,CAC/D,MAAMC,GAASD,GAAA,YAAAA,EAAS,SAAUF,EAC5BI,EAAqB,IAAIP,EAU/B,MARyB,CACvB,MAAOO,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAMD,CACR,CAGF","names":["EventEmitter","isRemoteAdaptorData","getMessenger","MESSENGER_EVENT_NAME","RemoteEventManager","data","fn","onElectronRendererEmit","createElectronRendererAdaptor","options","onEmit","remoteEventManager"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import EventEmitter from 'eventemitter3';
|
|
2
|
+
import { AdaptorPackageData, Adaptor } from '../adaptor.mjs';
|
|
3
|
+
|
|
4
|
+
declare class RemoteEventManager extends EventEmitter<{
|
|
5
|
+
[key: string]: [AdaptorPackageData];
|
|
6
|
+
}> {
|
|
7
|
+
EVERY_EVENT_NAME: string;
|
|
8
|
+
onEvery(fn: (data: AdaptorPackageData) => void): void;
|
|
9
|
+
}
|
|
10
|
+
declare const remoteEventManager: RemoteEventManager;
|
|
11
|
+
declare function createHttpAdaptor({ onEmit, }: {
|
|
12
|
+
onEmit: (data: AdaptorPackageData) => void;
|
|
13
|
+
}): Adaptor;
|
|
14
|
+
|
|
15
|
+
export { createHttpAdaptor, remoteEventManager };
|
package/dist/adaptors/http.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import EventEmitter from 'eventemitter3';
|
|
2
|
-
import
|
|
2
|
+
import { AdaptorPackageData, Adaptor } from '../adaptor.js';
|
|
3
|
+
|
|
3
4
|
declare class RemoteEventManager extends EventEmitter<{
|
|
4
5
|
[key: string]: [AdaptorPackageData];
|
|
5
6
|
}> {
|
|
6
7
|
EVERY_EVENT_NAME: string;
|
|
7
8
|
onEvery(fn: (data: AdaptorPackageData) => void): void;
|
|
8
9
|
}
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
declare const remoteEventManager: RemoteEventManager;
|
|
11
|
+
declare function createHttpAdaptor({ onEmit, }: {
|
|
11
12
|
onEmit: (data: AdaptorPackageData) => void;
|
|
12
13
|
}): Adaptor;
|
|
13
|
-
|
|
14
|
+
|
|
15
|
+
export { createHttpAdaptor, remoteEventManager };
|
package/dist/adaptors/http.js
CHANGED
|
@@ -1,27 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
class RemoteEventManager extends EventEmitter {
|
|
3
|
-
constructor() {
|
|
4
|
-
super(...arguments);
|
|
5
|
-
Object.defineProperty(this, "EVERY_EVENT_NAME", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
configurable: true,
|
|
8
|
-
writable: true,
|
|
9
|
-
value: '__remote_every__'
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
onEvery(fn) {
|
|
13
|
-
this.on(this.EVERY_EVENT_NAME, fn);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export const remoteEventManager = new RemoteEventManager();
|
|
17
|
-
export function createHttpAdaptor({ onEmit, }) {
|
|
18
|
-
const adaptor = {
|
|
19
|
-
every: remoteEventManager.onEvery.bind(remoteEventManager),
|
|
20
|
-
on: remoteEventManager.on.bind(remoteEventManager),
|
|
21
|
-
once: remoteEventManager.once.bind(remoteEventManager),
|
|
22
|
-
off: remoteEventManager.off.bind(remoteEventManager),
|
|
23
|
-
emit: onEmit,
|
|
24
|
-
};
|
|
25
|
-
return adaptor;
|
|
26
|
-
}
|
|
1
|
+
"use strict";var i=Object.create;var n=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var v=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var _=(t,a)=>{for(var o in a)n(t,o,{get:a[o],enumerable:!0})},E=(t,a,o,d)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of m(a))!A.call(t,r)&&r!==o&&n(t,r,{get:()=>a[r],enumerable:!(d=c(a,r))||d.enumerable});return t};var s=(t,a,o)=>(o=t!=null?i(v(t)):{},E(a||!t||!t.__esModule?n(o,"default",{value:t,enumerable:!0}):o,t)),f=t=>E(n({},"__esModule",{value:!0}),t);var k={};_(k,{createHttpAdaptor:()=>y,remoteEventManager:()=>e});module.exports=f(k);var p=s(require("eventemitter3"));class g extends p.default{EVERY_EVENT_NAME="__remote_every__";onEvery(a){this.on(this.EVERY_EVENT_NAME,a)}}const e=new g;function y({onEmit:t}){return{every:e.onEvery.bind(e),on:e.on.bind(e),once:e.once.bind(e),off:e.off.bind(e),emit:t}}0&&(module.exports={createHttpAdaptor,remoteEventManager});
|
|
27
2
|
//# sourceMappingURL=http.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/adaptors/http.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\n\r\nimport type { Adaptor, AdaptorPackageData } from '../adaptor'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport const remoteEventManager = new RemoteEventManager()\r\n\r\nexport function createHttpAdaptor({\r\n onEmit,\r\n}: {\r\n onEmit: (data: AdaptorPackageData) => void\r\n}) {\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,EAAA,uBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAyB,4BAIzB,MAAMC,UAA2B,EAAAC,OAE9B,CACD,iBAAmB,mBAEnB,QAAQC,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,MAAML,EAAqB,IAAIG,EAE/B,SAASJ,EAAkB,CAChC,OAAAO,CACF,EAEG,CASD,MARyB,CACvB,MAAON,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAMM,CACR,CAGF","names":["http_exports","__export","createHttpAdaptor","remoteEventManager","__toCommonJS","import_eventemitter3","RemoteEventManager","EventEmitter","fn","onEmit"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import o from"eventemitter3";class r extends o{EVERY_EVENT_NAME="__remote_every__";onEvery(e){this.on(this.EVERY_EVENT_NAME,e)}}const t=new r;function d({onEmit:a}){return{every:t.onEvery.bind(t),on:t.on.bind(t),once:t.once.bind(t),off:t.off.bind(t),emit:a}}export{d as createHttpAdaptor,t as remoteEventManager};
|
|
2
|
+
//# sourceMappingURL=http.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/adaptors/http.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\n\r\nimport type { Adaptor, AdaptorPackageData } from '../adaptor'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport const remoteEventManager = new RemoteEventManager()\r\n\r\nexport function createHttpAdaptor({\r\n onEmit,\r\n}: {\r\n onEmit: (data: AdaptorPackageData) => void\r\n}) {\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"AAAA,OAAOA,MAAkB,gBAIzB,MAAMC,UAA2BD,CAE9B,CACD,iBAAmB,mBAEnB,QAAQE,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,MAAMC,EAAqB,IAAIF,EAE/B,SAASG,EAAkB,CAChC,OAAAC,CACF,EAEG,CASD,MARyB,CACvB,MAAOF,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAME,CACR,CAGF","names":["EventEmitter","RemoteEventManager","fn","remoteEventManager","createHttpAdaptor","onEmit"]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { AdaptorPackageData, Adaptor } from '../adaptor.js';
|
|
2
|
+
|
|
3
|
+
declare function createIframeAdaptor({ onEmit, }: {
|
|
3
4
|
onEmit: (data: AdaptorPackageData) => void;
|
|
4
5
|
}): Adaptor;
|
|
6
|
+
|
|
7
|
+
export { createIframeAdaptor };
|
package/dist/adaptors/iframe.js
CHANGED
|
@@ -1,39 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { isRemoteAdaptorData } from '../remote';
|
|
3
|
-
class RemoteEventManager extends EventEmitter {
|
|
4
|
-
constructor() {
|
|
5
|
-
super();
|
|
6
|
-
Object.defineProperty(this, "EVERY_EVENT_NAME", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
configurable: true,
|
|
9
|
-
writable: true,
|
|
10
|
-
value: '__remote_every__'
|
|
11
|
-
});
|
|
12
|
-
if (typeof window === 'undefined') {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
window.addEventListener('message', (event) => {
|
|
16
|
-
const { data } = event;
|
|
17
|
-
if (isRemoteAdaptorData(data)) {
|
|
18
|
-
this.emit(data.name, data);
|
|
19
|
-
// 一定要抛出 every 事件,remote 包基于此处理远端的响应
|
|
20
|
-
this.emit(this.EVERY_EVENT_NAME, data);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
onEvery(fn) {
|
|
25
|
-
this.on(this.EVERY_EVENT_NAME, fn);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
export function createIframeAdaptor({ onEmit, }) {
|
|
29
|
-
const remoteEventManager = new RemoteEventManager();
|
|
30
|
-
const adaptor = {
|
|
31
|
-
every: remoteEventManager.onEvery.bind(remoteEventManager),
|
|
32
|
-
on: remoteEventManager.on.bind(remoteEventManager),
|
|
33
|
-
once: remoteEventManager.once.bind(remoteEventManager),
|
|
34
|
-
off: remoteEventManager.off.bind(remoteEventManager),
|
|
35
|
-
emit: onEmit,
|
|
36
|
-
};
|
|
37
|
-
return adaptor;
|
|
38
|
-
}
|
|
1
|
+
"use strict";var m=Object.create;var r=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var c=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var A=(e,t)=>{for(var a in t)r(e,a,{get:t[a],enumerable:!0})},i=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of s(t))!f.call(e,o)&&o!==a&&r(e,o,{get:()=>t[o],enumerable:!(n=p(t,o))||n.enumerable});return e};var _=(e,t,a)=>(a=e!=null?m(c(e)):{},i(t||!e||!e.__esModule?r(a,"default",{value:e,enumerable:!0}):a,e)),v=e=>i(r({},"__esModule",{value:!0}),e);var u={};A(u,{createIframeAdaptor:()=>y});module.exports=v(u);var d=_(require("eventemitter3")),E=require("../remote");class g extends d.default{EVERY_EVENT_NAME="__remote_every__";constructor(){super(),!(typeof window>"u")&&window.addEventListener("message",t=>{const{data:a}=t;(0,E.isRemoteAdaptorData)(a)&&(this.emit(a.name,a),this.emit(this.EVERY_EVENT_NAME,a))})}onEvery(t){this.on(this.EVERY_EVENT_NAME,t)}}function y({onEmit:e}){const t=new g;return{every:t.onEvery.bind(t),on:t.on.bind(t),once:t.once.bind(t),off:t.off.bind(t),emit:e}}0&&(module.exports={createIframeAdaptor});
|
|
39
2
|
//# sourceMappingURL=iframe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/adaptors/iframe.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\nimport { isRemoteAdaptorData } from '../remote'\r\n\r\nimport type { Adaptor, AdaptorPackageData } from '../adaptor'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n constructor() {\r\n super()\r\n if (typeof window === 'undefined') {\r\n return\r\n }\r\n window.addEventListener('message', (event) => {\r\n const { data } = event\r\n if (isRemoteAdaptorData(data)) {\r\n this.emit(data.name, data)\r\n // 一定要抛出 every 事件,remote 包基于此处理远端的响应\r\n this.emit(this.EVERY_EVENT_NAME, data)\r\n }\r\n })\r\n }\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport function createIframeAdaptor({\r\n onEmit,\r\n}: {\r\n onEmit: (data: AdaptorPackageData) => void\r\n}) {\r\n const remoteEventManager = new RemoteEventManager()\r\n\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyB,4BACzBC,EAAoC,qBAIpC,MAAMC,UAA2B,EAAAC,OAE9B,CACD,iBAAmB,mBAEnB,aAAc,CACZ,MAAM,EACF,SAAO,OAAW,MAGtB,OAAO,iBAAiB,UAAYC,GAAU,CAC5C,KAAM,CAAE,KAAAC,CAAK,EAAID,KACb,uBAAoBC,CAAI,IAC1B,KAAK,KAAKA,EAAK,KAAMA,CAAI,EAEzB,KAAK,KAAK,KAAK,iBAAkBA,CAAI,EAEzC,CAAC,CACH,CAEA,QAAQC,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,SAASR,EAAoB,CAClC,OAAAS,CACF,EAEG,CACD,MAAMC,EAAqB,IAAIN,EAU/B,MARyB,CACvB,MAAOM,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAMD,CACR,CAGF","names":["iframe_exports","__export","createIframeAdaptor","__toCommonJS","import_eventemitter3","import_remote","RemoteEventManager","EventEmitter","event","data","fn","onEmit","remoteEventManager"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import o from"eventemitter3";import{isRemoteAdaptorData as r}from"../remote";class n extends o{EVERY_EVENT_NAME="__remote_every__";constructor(){super(),!(typeof window>"u")&&window.addEventListener("message",t=>{const{data:e}=t;r(e)&&(this.emit(e.name,e),this.emit(this.EVERY_EVENT_NAME,e))})}onEvery(t){this.on(this.EVERY_EVENT_NAME,t)}}function E({onEmit:a}){const t=new n;return{every:t.onEvery.bind(t),on:t.on.bind(t),once:t.once.bind(t),off:t.off.bind(t),emit:a}}export{E as createIframeAdaptor};
|
|
2
|
+
//# sourceMappingURL=iframe.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/adaptors/iframe.ts"],"sourcesContent":["import EventEmitter from 'eventemitter3'\r\nimport { isRemoteAdaptorData } from '../remote'\r\n\r\nimport type { Adaptor, AdaptorPackageData } from '../adaptor'\r\n\r\nclass RemoteEventManager extends EventEmitter<{\r\n [key: string]: [AdaptorPackageData]\r\n}> {\r\n EVERY_EVENT_NAME = '__remote_every__'\r\n\r\n constructor() {\r\n super()\r\n if (typeof window === 'undefined') {\r\n return\r\n }\r\n window.addEventListener('message', (event) => {\r\n const { data } = event\r\n if (isRemoteAdaptorData(data)) {\r\n this.emit(data.name, data)\r\n // 一定要抛出 every 事件,remote 包基于此处理远端的响应\r\n this.emit(this.EVERY_EVENT_NAME, data)\r\n }\r\n })\r\n }\r\n\r\n onEvery(fn: (data: AdaptorPackageData) => void) {\r\n this.on(this.EVERY_EVENT_NAME, fn)\r\n }\r\n}\r\n\r\nexport function createIframeAdaptor({\r\n onEmit,\r\n}: {\r\n onEmit: (data: AdaptorPackageData) => void\r\n}) {\r\n const remoteEventManager = new RemoteEventManager()\r\n\r\n const adaptor: Adaptor = {\r\n every: remoteEventManager.onEvery.bind(remoteEventManager),\r\n on: remoteEventManager.on.bind(remoteEventManager),\r\n once: remoteEventManager.once.bind(remoteEventManager),\r\n off: remoteEventManager.off.bind(remoteEventManager),\r\n emit: onEmit,\r\n }\r\n\r\n return adaptor\r\n}\r\n"],"mappings":"AAAA,OAAOA,MAAkB,gBACzB,OAAS,uBAAAC,MAA2B,YAIpC,MAAMC,UAA2BF,CAE9B,CACD,iBAAmB,mBAEnB,aAAc,CACZ,MAAM,EACF,SAAO,OAAW,MAGtB,OAAO,iBAAiB,UAAYG,GAAU,CAC5C,KAAM,CAAE,KAAAC,CAAK,EAAID,EACbF,EAAoBG,CAAI,IAC1B,KAAK,KAAKA,EAAK,KAAMA,CAAI,EAEzB,KAAK,KAAK,KAAK,iBAAkBA,CAAI,EAEzC,CAAC,CACH,CAEA,QAAQC,EAAwC,CAC9C,KAAK,GAAG,KAAK,iBAAkBA,CAAE,CACnC,CACF,CAEO,SAASC,EAAoB,CAClC,OAAAC,CACF,EAEG,CACD,MAAMC,EAAqB,IAAIN,EAU/B,MARyB,CACvB,MAAOM,EAAmB,QAAQ,KAAKA,CAAkB,EACzD,GAAIA,EAAmB,GAAG,KAAKA,CAAkB,EACjD,KAAMA,EAAmB,KAAK,KAAKA,CAAkB,EACrD,IAAKA,EAAmB,IAAI,KAAKA,CAAkB,EACnD,KAAMD,CACR,CAGF","names":["EventEmitter","isRemoteAdaptorData","RemoteEventManager","event","data","fn","createIframeAdaptor","onEmit","remoteEventManager"]}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { Remote, isRemoteAdaptorData } from './remote.mjs';
|
|
2
|
+
export { Adaptor, AdaptorCallback, AdaptorPackageData } from './adaptor.mjs';
|
|
3
|
+
export { RemoteError, RemoteNotFoundError, RemoteTimeoutError, response } from './response.mjs';
|
|
4
|
+
export { remoteValue } from './remoteValue/remoteValue.mjs';
|
|
5
|
+
export { exposeToRemote, isRemoteValueEvent } from './remoteValue/exposeToRemote.mjs';
|
|
6
|
+
export { RemoteCallData, ToFunc } from './remoteValue/type.mjs';
|
|
7
|
+
export { createIframeAdaptor } from './adaptors/iframe.mjs';
|
|
8
|
+
export { createHttpAdaptor, remoteEventManager } from './adaptors/http.mjs';
|
|
9
|
+
export { ClientSideRemoteChannelEventManager } from './adaptors/dao3/client.mjs';
|
|
10
|
+
export { ServerSideRemoteChannelEventManager } from './adaptors/dao3/server.mjs';
|
|
11
|
+
export { KEYOF_GET_ID, MESSENGER_EVENT_NAME, MESSENGER_KEY } from './adaptors/electron/constants.mjs';
|
|
12
|
+
export { getMessenger } from './adaptors/electron/messenger.mjs';
|
|
13
|
+
export { createElectronMainAdaptor, initMessengerInMain, onElectronMainEmit } from './adaptors/electron/main.mjs';
|
|
14
|
+
export { initMessengerInPreload } from './adaptors/electron/preload.mjs';
|
|
15
|
+
export { createElectronRendererAdaptor, onElectronRendererEmit } from './adaptors/electron/renderer.mjs';
|
|
16
|
+
import 'eventemitter3';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
1
|
+
export { Remote, isRemoteAdaptorData } from './remote.js';
|
|
2
|
+
export { Adaptor, AdaptorCallback, AdaptorPackageData } from './adaptor.js';
|
|
3
|
+
export { RemoteError, RemoteNotFoundError, RemoteTimeoutError, response } from './response.js';
|
|
4
|
+
export { remoteValue } from './remoteValue/remoteValue.js';
|
|
5
|
+
export { exposeToRemote, isRemoteValueEvent } from './remoteValue/exposeToRemote.js';
|
|
6
|
+
export { RemoteCallData, ToFunc } from './remoteValue/type.js';
|
|
7
|
+
export { createIframeAdaptor } from './adaptors/iframe.js';
|
|
8
|
+
export { createHttpAdaptor, remoteEventManager } from './adaptors/http.js';
|
|
9
|
+
export { ClientSideRemoteChannelEventManager } from './adaptors/dao3/client.js';
|
|
10
|
+
export { ServerSideRemoteChannelEventManager } from './adaptors/dao3/server.js';
|
|
11
|
+
export { KEYOF_GET_ID, MESSENGER_EVENT_NAME, MESSENGER_KEY } from './adaptors/electron/constants.js';
|
|
12
|
+
export { getMessenger } from './adaptors/electron/messenger.js';
|
|
13
|
+
export { createElectronMainAdaptor, initMessengerInMain, onElectronMainEmit } from './adaptors/electron/main.js';
|
|
14
|
+
export { initMessengerInPreload } from './adaptors/electron/preload.js';
|
|
15
|
+
export { createElectronRendererAdaptor, onElectronRendererEmit } from './adaptors/electron/renderer.js';
|
|
16
|
+
import 'eventemitter3';
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export * from './adaptor';
|
|
3
|
-
export * from './response';
|
|
4
|
-
export * from './remoteValue/remoteValue';
|
|
5
|
-
export * from './remoteValue/exposeToRemote';
|
|
6
|
-
export * from './adaptors/iframe';
|
|
7
|
-
export * from './adaptors/http';
|
|
8
|
-
export * from './adaptors/dao3/client';
|
|
9
|
-
export * from './adaptors/dao3/server';
|
|
1
|
+
"use strict";var a=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var f=(t,e,p,x)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of u(e))!y.call(t,m)&&m!==p&&a(t,m,{get:()=>e[m],enumerable:!(x=l(e,m))||x.enumerable});return t},r=(t,e,p)=>(f(t,e,"default"),p&&f(p,e,"default"));var c=t=>f(a({},"__esModule",{value:!0}),t);var o={};module.exports=c(o);r(o,require("./remote"),module.exports);r(o,require("./adaptor"),module.exports);r(o,require("./response"),module.exports);r(o,require("./remoteValue/remoteValue"),module.exports);r(o,require("./remoteValue/exposeToRemote"),module.exports);r(o,require("./adaptors/iframe"),module.exports);r(o,require("./adaptors/http"),module.exports);r(o,require("./adaptors/dao3/client"),module.exports);r(o,require("./adaptors/dao3/server"),module.exports);r(o,require("./adaptors/electron/constants"),module.exports);r(o,require("./adaptors/electron/messenger"),module.exports);r(o,require("./adaptors/electron/main"),module.exports);r(o,require("./adaptors/electron/preload"),module.exports);r(o,require("./adaptors/electron/renderer"),module.exports);0&&(module.exports={...require("./remote"),...require("./adaptor"),...require("./response"),...require("./remoteValue/remoteValue"),...require("./remoteValue/exposeToRemote"),...require("./adaptors/iframe"),...require("./adaptors/http"),...require("./adaptors/dao3/client"),...require("./adaptors/dao3/server"),...require("./adaptors/electron/constants"),...require("./adaptors/electron/messenger"),...require("./adaptors/electron/main"),...require("./adaptors/electron/preload"),...require("./adaptors/electron/renderer")});
|
|
10
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './remote'\r\nexport * from './adaptor'\r\nexport * from './response'\r\n\r\nexport * from './remoteValue/remoteValue'\r\nexport * from './remoteValue/exposeToRemote'\r\nexport type { ToFunc, RemoteCallData } from './remoteValue/type'\r\n\r\nexport * from './adaptors/iframe'\r\nexport * from './adaptors/http'\r\nexport * from './adaptors/dao3/client'\r\nexport * from './adaptors/dao3/server'\r\nexport * from './adaptors/electron/constants'\r\nexport * from './adaptors/electron/messenger'\r\nexport * from './adaptors/electron/main'\r\nexport * from './adaptors/electron/preload'\r\nexport * from './adaptors/electron/renderer'\r\n"],"mappings":"iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAAAE,EAAAF,EAAc,oBAAd,gBACAE,EAAAF,EAAc,qBADd,gBAEAE,EAAAF,EAAc,sBAFd,gBAIAE,EAAAF,EAAc,qCAJd,gBAKAE,EAAAF,EAAc,wCALd,gBAQAE,EAAAF,EAAc,6BARd,gBASAE,EAAAF,EAAc,2BATd,gBAUAE,EAAAF,EAAc,kCAVd,gBAWAE,EAAAF,EAAc,kCAXd,gBAYAE,EAAAF,EAAc,yCAZd,gBAaAE,EAAAF,EAAc,yCAbd,gBAcAE,EAAAF,EAAc,oCAdd,gBAeAE,EAAAF,EAAc,uCAfd,gBAgBAE,EAAAF,EAAc,wCAhBd","names":["index_exports","__toCommonJS","__reExport"]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export*from"./remote";export*from"./adaptor";export*from"./response";export*from"./remoteValue/remoteValue";export*from"./remoteValue/exposeToRemote";export*from"./adaptors/iframe";export*from"./adaptors/http";export*from"./adaptors/dao3/client";export*from"./adaptors/dao3/server";export*from"./adaptors/electron/constants";export*from"./adaptors/electron/messenger";export*from"./adaptors/electron/main";export*from"./adaptors/electron/preload";export*from"./adaptors/electron/renderer";
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './remote'\r\nexport * from './adaptor'\r\nexport * from './response'\r\n\r\nexport * from './remoteValue/remoteValue'\r\nexport * from './remoteValue/exposeToRemote'\r\nexport type { ToFunc, RemoteCallData } from './remoteValue/type'\r\n\r\nexport * from './adaptors/iframe'\r\nexport * from './adaptors/http'\r\nexport * from './adaptors/dao3/client'\r\nexport * from './adaptors/dao3/server'\r\nexport * from './adaptors/electron/constants'\r\nexport * from './adaptors/electron/messenger'\r\nexport * from './adaptors/electron/main'\r\nexport * from './adaptors/electron/preload'\r\nexport * from './adaptors/electron/renderer'\r\n"],"mappings":"AAAA,WAAc,WACd,WAAc,YACd,WAAc,aAEd,WAAc,4BACd,WAAc,+BAGd,WAAc,oBACd,WAAc,kBACd,WAAc,yBACd,WAAc,yBACd,WAAc,gCACd,WAAc,gCACd,WAAc,2BACd,WAAc,8BACd,WAAc","names":[]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Adaptor, AdaptorPackageData } from './adaptor.mjs';
|
|
2
|
+
|
|
3
|
+
type LogFunc = (...data: unknown[]) => void;
|
|
4
|
+
type RemoteCallableFunc = (data: any) => Promise<any>;
|
|
5
|
+
interface RemoteFuncRecords {
|
|
6
|
+
[key: string]: RemoteCallableFunc;
|
|
7
|
+
}
|
|
8
|
+
type FuncMapWithConfig<T extends RemoteFuncRecords> = {
|
|
9
|
+
[K in keyof T]: T[K] extends (data: infer Arg) => Promise<infer Ret> ? (data: Arg, config?: {
|
|
10
|
+
timeoutMs?: number;
|
|
11
|
+
targetDeviceId?: string;
|
|
12
|
+
}) => Promise<Ret> : never;
|
|
13
|
+
};
|
|
14
|
+
type RegisteredFunc<T extends RemoteCallableFunc> = T extends (data: infer Arg) => infer Ret ? (data: Arg, ctx: {
|
|
15
|
+
/**
|
|
16
|
+
* 对方的设备 id
|
|
17
|
+
*/
|
|
18
|
+
deviceId: string;
|
|
19
|
+
}) => Ret : never;
|
|
20
|
+
declare class Remote<
|
|
21
|
+
/**
|
|
22
|
+
* MF means my functions
|
|
23
|
+
*/
|
|
24
|
+
MF extends RemoteFuncRecords,
|
|
25
|
+
/**
|
|
26
|
+
* OF means others functions
|
|
27
|
+
*/
|
|
28
|
+
OF extends RemoteFuncRecords> {
|
|
29
|
+
private adaptor;
|
|
30
|
+
debug: boolean;
|
|
31
|
+
private log;
|
|
32
|
+
/**
|
|
33
|
+
* (调用对方函数时的)默认超时时间,单位 ms
|
|
34
|
+
* @default 30000
|
|
35
|
+
*/
|
|
36
|
+
private defaultTimeoutMs;
|
|
37
|
+
private map;
|
|
38
|
+
private deviceIdValue;
|
|
39
|
+
/**
|
|
40
|
+
* 设备 id 应该唯一,用于区分不同设备。
|
|
41
|
+
* 你可以在任何时候修改(更新)它。
|
|
42
|
+
* @default ''
|
|
43
|
+
*/
|
|
44
|
+
get deviceId(): string;
|
|
45
|
+
set deviceId(deviceId: string);
|
|
46
|
+
constructor(adaptor: Adaptor, config?: {
|
|
47
|
+
/**
|
|
48
|
+
* 设备 id 应该唯一,用于区分不同设备。
|
|
49
|
+
* 你可以在任何时候修改(更新)它。
|
|
50
|
+
* @default ''
|
|
51
|
+
*/
|
|
52
|
+
deviceId?: string;
|
|
53
|
+
/**
|
|
54
|
+
* (调用对方函数时的)默认超时时间,单位 ms
|
|
55
|
+
* @default 30000
|
|
56
|
+
*/
|
|
57
|
+
defaultTimeoutMs?: number;
|
|
58
|
+
debug?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* 格式化 AdaptorPackageData 的函数,
|
|
61
|
+
* 用于调试时输出日志。
|
|
62
|
+
* @default JSON.stringify
|
|
63
|
+
*/
|
|
64
|
+
log?: LogFunc;
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* 调用其他端的方法;会等待对方响应。
|
|
68
|
+
* 不能直接使用该方法,应该使用 proxy。
|
|
69
|
+
* @WARNING 不能用于响应其他端。
|
|
70
|
+
*/
|
|
71
|
+
private callAsync;
|
|
72
|
+
/**
|
|
73
|
+
* 注册方法,供对方调用;
|
|
74
|
+
*/
|
|
75
|
+
register<K extends keyof MF>(name: K, callback: RegisteredFunc<MF[K]>): void;
|
|
76
|
+
_: FuncMapWithConfig<OF>;
|
|
77
|
+
self: MF;
|
|
78
|
+
}
|
|
79
|
+
declare function isRemoteAdaptorData(data: unknown): data is AdaptorPackageData;
|
|
80
|
+
|
|
81
|
+
export { Remote, isRemoteAdaptorData };
|
package/dist/remote.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Adaptor, AdaptorPackageData } from './adaptor.js';
|
|
2
|
+
|
|
2
3
|
type LogFunc = (...data: unknown[]) => void;
|
|
3
4
|
type RemoteCallableFunc = (data: any) => Promise<any>;
|
|
4
5
|
interface RemoteFuncRecords {
|
|
@@ -16,7 +17,7 @@ type RegisteredFunc<T extends RemoteCallableFunc> = T extends (data: infer Arg)
|
|
|
16
17
|
*/
|
|
17
18
|
deviceId: string;
|
|
18
19
|
}) => Ret : never;
|
|
19
|
-
|
|
20
|
+
declare class Remote<
|
|
20
21
|
/**
|
|
21
22
|
* MF means my functions
|
|
22
23
|
*/
|
|
@@ -75,5 +76,6 @@ OF extends RemoteFuncRecords> {
|
|
|
75
76
|
_: FuncMapWithConfig<OF>;
|
|
76
77
|
self: MF;
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
declare function isRemoteAdaptorData(data: unknown): data is AdaptorPackageData;
|
|
80
|
+
|
|
81
|
+
export { Remote, isRemoteAdaptorData };
|
package/dist/remote.js
CHANGED
|
@@ -1,197 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
const RESPONSE_PREFIX = '_response_';
|
|
3
|
-
function defaultLog(...data) {
|
|
4
|
-
if (!this.debug) {
|
|
5
|
-
return;
|
|
6
|
-
}
|
|
7
|
-
console.log(`[remote of ${this.deviceId}]`, ...data);
|
|
8
|
-
}
|
|
9
|
-
export class Remote {
|
|
10
|
-
/**
|
|
11
|
-
* 设备 id 应该唯一,用于区分不同设备。
|
|
12
|
-
* 你可以在任何时候修改(更新)它。
|
|
13
|
-
* @default ''
|
|
14
|
-
*/
|
|
15
|
-
get deviceId() {
|
|
16
|
-
return this.deviceIdValue;
|
|
17
|
-
}
|
|
18
|
-
set deviceId(deviceId) {
|
|
19
|
-
this.log(`deviceId set: from "${this.deviceIdValue}" to "${deviceId}"`);
|
|
20
|
-
this.deviceIdValue = deviceId;
|
|
21
|
-
}
|
|
22
|
-
constructor(adaptor, config) {
|
|
23
|
-
var _a, _b, _c, _d;
|
|
24
|
-
Object.defineProperty(this, "adaptor", {
|
|
25
|
-
enumerable: true,
|
|
26
|
-
configurable: true,
|
|
27
|
-
writable: true,
|
|
28
|
-
value: adaptor
|
|
29
|
-
});
|
|
30
|
-
Object.defineProperty(this, "debug", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
configurable: true,
|
|
33
|
-
writable: true,
|
|
34
|
-
value: false
|
|
35
|
-
});
|
|
36
|
-
Object.defineProperty(this, "log", {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
configurable: true,
|
|
39
|
-
writable: true,
|
|
40
|
-
value: void 0
|
|
41
|
-
});
|
|
42
|
-
/**
|
|
43
|
-
* (调用对方函数时的)默认超时时间,单位 ms
|
|
44
|
-
* @default 30000
|
|
45
|
-
*/
|
|
46
|
-
Object.defineProperty(this, "defaultTimeoutMs", {
|
|
47
|
-
enumerable: true,
|
|
48
|
-
configurable: true,
|
|
49
|
-
writable: true,
|
|
50
|
-
value: 30000
|
|
51
|
-
});
|
|
52
|
-
Object.defineProperty(this, "map", {
|
|
53
|
-
enumerable: true,
|
|
54
|
-
configurable: true,
|
|
55
|
-
writable: true,
|
|
56
|
-
value: {}
|
|
57
|
-
});
|
|
58
|
-
Object.defineProperty(this, "deviceIdValue", {
|
|
59
|
-
enumerable: true,
|
|
60
|
-
configurable: true,
|
|
61
|
-
writable: true,
|
|
62
|
-
value: ''
|
|
63
|
-
});
|
|
64
|
-
Object.defineProperty(this, "_", {
|
|
65
|
-
enumerable: true,
|
|
66
|
-
configurable: true,
|
|
67
|
-
writable: true,
|
|
68
|
-
value: new Proxy({}, {
|
|
69
|
-
get: (_, k) => this.callAsync.bind(this, k),
|
|
70
|
-
})
|
|
71
|
-
});
|
|
72
|
-
Object.defineProperty(this, "self", {
|
|
73
|
-
enumerable: true,
|
|
74
|
-
configurable: true,
|
|
75
|
-
writable: true,
|
|
76
|
-
value: new Proxy({}, {
|
|
77
|
-
get: (_, k) => (data) => {
|
|
78
|
-
var _a;
|
|
79
|
-
return (_a = this.map[k]) === null || _a === void 0 ? void 0 : _a.callback(data, {
|
|
80
|
-
deviceId: this.deviceId,
|
|
81
|
-
});
|
|
82
|
-
},
|
|
83
|
-
})
|
|
84
|
-
});
|
|
85
|
-
this.debug = (_a = config === null || config === void 0 ? void 0 : config.debug) !== null && _a !== void 0 ? _a : this.debug;
|
|
86
|
-
this.defaultTimeoutMs = (_b = config === null || config === void 0 ? void 0 : config.defaultTimeoutMs) !== null && _b !== void 0 ? _b : this.defaultTimeoutMs;
|
|
87
|
-
this.log = (_c = config === null || config === void 0 ? void 0 : config.log) !== null && _c !== void 0 ? _c : defaultLog.bind(this);
|
|
88
|
-
this.deviceId = (_d = config === null || config === void 0 ? void 0 : config.deviceId) !== null && _d !== void 0 ? _d : this.deviceId;
|
|
89
|
-
adaptor.every(async (e) => {
|
|
90
|
-
var _a;
|
|
91
|
-
const { deviceId: selfDeviceId } = this;
|
|
92
|
-
const { name, data, deviceId: targetDeviceId, callbackName } = e;
|
|
93
|
-
const callback = (_a = this.map[name]) === null || _a === void 0 ? void 0 : _a.callback;
|
|
94
|
-
if (!callback) {
|
|
95
|
-
if (name.startsWith(RESPONSE_PREFIX)) {
|
|
96
|
-
// 这是响应,会在 callAsync once 中处理,这儿不用处理
|
|
97
|
-
this.log('[every] response received: ', e);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
this.log('callback not found: ', name);
|
|
101
|
-
if (callbackName) {
|
|
102
|
-
adaptor.emit({
|
|
103
|
-
deviceId: selfDeviceId,
|
|
104
|
-
targetDeviceId,
|
|
105
|
-
name: callbackName,
|
|
106
|
-
data: response.error(new RemoteNotFoundError(`callback not found: ${name}`)),
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
if (!callbackName) {
|
|
112
|
-
this.log('should not respond: ', e);
|
|
113
|
-
void callback(data, { deviceId: targetDeviceId });
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
this.log(`callback: ${name}; respondName: ${callbackName}; data: `, data);
|
|
117
|
-
try {
|
|
118
|
-
const ret = await callback(data, { deviceId: targetDeviceId });
|
|
119
|
-
this.log('callback return: ', ret);
|
|
120
|
-
adaptor.emit({
|
|
121
|
-
deviceId: selfDeviceId,
|
|
122
|
-
targetDeviceId,
|
|
123
|
-
name: callbackName,
|
|
124
|
-
data: response.success(ret),
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
catch (error) {
|
|
128
|
-
this.log('callback error: ', error);
|
|
129
|
-
adaptor.emit({
|
|
130
|
-
deviceId: selfDeviceId,
|
|
131
|
-
targetDeviceId,
|
|
132
|
-
name: callbackName,
|
|
133
|
-
data: response.error(RemoteError.fromError(error)),
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* 调用其他端的方法;会等待对方响应。
|
|
140
|
-
* 不能直接使用该方法,应该使用 proxy。
|
|
141
|
-
* @WARNING 不能用于响应其他端。
|
|
142
|
-
*/
|
|
143
|
-
callAsync(name, data, config) {
|
|
144
|
-
var _a;
|
|
145
|
-
const timeoutMs = (_a = config === null || config === void 0 ? void 0 : config.timeoutMs) !== null && _a !== void 0 ? _a : this.defaultTimeoutMs;
|
|
146
|
-
const { deviceId } = this;
|
|
147
|
-
const randomStr = Math.random().toString(36).slice(2);
|
|
148
|
-
// 本条消息的响应名
|
|
149
|
-
const responseName = `${RESPONSE_PREFIX}-${name}-${deviceId}-${randomStr}`;
|
|
150
|
-
return new Promise((resolve, reject) => {
|
|
151
|
-
var _a;
|
|
152
|
-
let timer;
|
|
153
|
-
this.log(`callAsync ${name}: waiting for response: ${responseName}`);
|
|
154
|
-
const callback = (e) => {
|
|
155
|
-
var _a;
|
|
156
|
-
clearTimeout(timer);
|
|
157
|
-
this.log(`response received: ${responseName}`, e);
|
|
158
|
-
if (RemoteError.isRemoteError(e.data)) {
|
|
159
|
-
reject(RemoteError.fromError(e.data));
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
resolve((_a = e.data) === null || _a === void 0 ? void 0 : _a.data);
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
this.adaptor.once(responseName, callback);
|
|
166
|
-
timer = setTimeout(() => {
|
|
167
|
-
this.log(`timeout: ${responseName}`);
|
|
168
|
-
this.adaptor.off(responseName, callback);
|
|
169
|
-
reject(new RemoteTimeoutError(`timeout: ${name}`));
|
|
170
|
-
}, timeoutMs);
|
|
171
|
-
this.adaptor.emit({
|
|
172
|
-
deviceId,
|
|
173
|
-
targetDeviceId: (_a = config === null || config === void 0 ? void 0 : config.targetDeviceId) !== null && _a !== void 0 ? _a : '',
|
|
174
|
-
name,
|
|
175
|
-
data,
|
|
176
|
-
callbackName: responseName,
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* 注册方法,供对方调用;
|
|
182
|
-
*/
|
|
183
|
-
register(name, callback) {
|
|
184
|
-
this.map[name] = { callback };
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
export function isRemoteAdaptorData(data) {
|
|
188
|
-
return (!!data &&
|
|
189
|
-
typeof data === 'object' &&
|
|
190
|
-
'deviceId' in data &&
|
|
191
|
-
'name' in data &&
|
|
192
|
-
typeof data.deviceId === 'string' &&
|
|
193
|
-
typeof data.name === 'string' &&
|
|
194
|
-
!!data.deviceId &&
|
|
195
|
-
!!data.name);
|
|
196
|
-
}
|
|
1
|
+
"use strict";var v=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var F=(r,e)=>{for(var t in e)v(r,t,{get:e[t],enumerable:!0})},y=(r,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of I(e))!R.call(r,s)&&s!==t&&v(r,s,{get:()=>e[s],enumerable:!(a=b(e,s))||a.enumerable});return r};var k=r=>y(v({},"__esModule",{value:!0}),r);var $={};F($,{Remote:()=>f,isRemoteAdaptorData:()=>T});module.exports=k($);var o=require("./response");const g="_response_";function M(...r){this.debug&&console.log(`[remote of ${this.deviceId}]`,...r)}class f{constructor(e,t){this.adaptor=e;this.debug=(t==null?void 0:t.debug)??this.debug,this.defaultTimeoutMs=(t==null?void 0:t.defaultTimeoutMs)??this.defaultTimeoutMs,this.log=(t==null?void 0:t.log)??M.bind(this),this.deviceId=(t==null?void 0:t.deviceId)??this.deviceId,e.every(async a=>{var m;const{deviceId:s}=this,{name:d,data:u,deviceId:i,callbackName:n}=a,c=(m=this.map[d])==null?void 0:m.callback;if(!c){if(d.startsWith(g)){this.log("[every] response received: ",a);return}this.log("callback not found: ",d),n&&e.emit({deviceId:s,targetDeviceId:i,name:n,data:o.response.error(new o.RemoteNotFoundError(`callback not found: ${d}`))});return}if(!n){this.log("should not respond: ",a),c(u,{deviceId:i});return}this.log(`callback: ${d}; respondName: ${n}; data: `,u);try{const l=await c(u,{deviceId:i});this.log("callback return: ",l),e.emit({deviceId:s,targetDeviceId:i,name:n,data:o.response.success(l)})}catch(l){this.log("callback error: ",l),e.emit({deviceId:s,targetDeviceId:i,name:n,data:o.response.error(o.RemoteError.fromError(l))})}})}debug=!1;log;defaultTimeoutMs=3e4;map={};deviceIdValue="";get deviceId(){return this.deviceIdValue}set deviceId(e){this.log(`deviceId set: from "${this.deviceIdValue}" to "${e}"`),this.deviceIdValue=e}callAsync(e,t,a){const s=(a==null?void 0:a.timeoutMs)??this.defaultTimeoutMs,{deviceId:d}=this,u=Math.random().toString(36).slice(2),i=`${g}-${e}-${d}-${u}`;return new Promise((n,c)=>{let m;this.log(`callAsync ${e}: waiting for response: ${i}`);const l=p=>{var h;clearTimeout(m),this.log(`response received: ${i}`,p),o.RemoteError.isRemoteError(p.data)?c(o.RemoteError.fromError(p.data)):n((h=p.data)==null?void 0:h.data)};this.adaptor.once(i,l),m=setTimeout(()=>{this.log(`timeout: ${i}`),this.adaptor.off(i,l),c(new o.RemoteTimeoutError(`timeout: ${e}`))},s),this.adaptor.emit({deviceId:d,targetDeviceId:(a==null?void 0:a.targetDeviceId)??"",name:e,data:t,callbackName:i})})}register(e,t){this.map[e]={callback:t}}_=new Proxy({},{get:(e,t)=>this.callAsync.bind(this,t)});self=new Proxy({},{get:(e,t)=>a=>{var s;return(s=this.map[t])==null?void 0:s.callback.apply(null,[a,{deviceId:this.deviceId}])}})}function T(r){return!!r&&typeof r=="object"&&"deviceId"in r&&"name"in r&&typeof r.deviceId=="string"&&typeof r.name=="string"&&!!r.deviceId&&!!r.name}0&&(module.exports={Remote,isRemoteAdaptorData});
|
|
197
2
|
//# sourceMappingURL=remote.js.map
|