core-3nweb-client-lib 0.31.5 → 0.31.6

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.
@@ -105,7 +105,7 @@ function makeFileCaller(caller, fileMsg) {
105
105
  }
106
106
  }
107
107
  }
108
- caller.registerClientDrop(file, fileMsg.impl);
108
+ caller.registerClientDrop(file, fileMsg.impl, fileMsg);
109
109
  return file;
110
110
  }
111
111
  function exposeFileService(file, expServices) {
@@ -116,7 +116,7 @@ function makeFSCaller(caller, fsMsg) {
116
116
  }
117
117
  }
118
118
  }
119
- caller.registerClientDrop(fs, fsMsg.impl);
119
+ caller.registerClientDrop(fs, fsMsg.impl, fsMsg);
120
120
  return fs;
121
121
  }
122
122
  function exposeFSService(fs, expServices) {
@@ -25,11 +25,14 @@ export declare class ClientsSideImpl implements ClientsSide {
25
25
  private setupFnCall;
26
26
  startPromiseCall(path: string[], req: EnvelopeBody): Promise<EnvelopeBody>;
27
27
  startObservableCall(path: string[], req: EnvelopeBody, obs: Subject<EnvelopeBody>): () => void;
28
- registerClientDrop(o: any, srvRef: ObjectReference<any>): void;
28
+ registerClientDrop(o: any, srvRef: ObjectReference<any>, reconstructData?: any): void;
29
29
  private doOnClientObjDrop;
30
30
  private sendObjDropMsg;
31
31
  srvRefOf(clientObj: any): ObjectReference<any>;
32
- findCallingObjByRef<T>(ref: ObjectReference<any>): T | undefined;
32
+ findCallingObjByRef<T, R>(ref: ObjectReference<any>): {
33
+ obj?: T;
34
+ reconstructData?: R;
35
+ } | undefined;
33
36
  listObj(path: string[]): string[];
34
37
  listObjAsync(path: string[]): Promise<string[]>;
35
38
  }
@@ -211,10 +211,12 @@ class ClientsSideImpl {
211
211
  throw err;
212
212
  }
213
213
  }
214
- registerClientDrop(o, srvRef) {
214
+ registerClientDrop(o, srvRef, reconstructData) {
215
215
  o._isObjectFromCore = true;
216
216
  this.srvFinalRegistry.register(o, srvRef);
217
- this.weakSrvByRefs.set(srvRef.path[0], new WeakRef(o));
217
+ this.weakSrvByRefs.set(srvRef.path[0], {
218
+ weakRef: new WeakRef(o), reconstructData
219
+ });
218
220
  this.srvRefs.set(o, srvRef);
219
221
  }
220
222
  doOnClientObjDrop(srvRef) {
@@ -237,13 +239,16 @@ class ClientsSideImpl {
237
239
  }
238
240
  }
239
241
  findCallingObjByRef(ref) {
240
- const weakRef = this.weakSrvByRefs.get(ref.path[0]);
241
- if (!weakRef) {
242
+ const found = this.weakSrvByRefs.get(ref.path[0]);
243
+ if (!found) {
242
244
  return;
243
245
  }
244
- const o = weakRef.deref();
245
- if (o) {
246
- return o;
246
+ const obj = found.weakRef.deref();
247
+ if (obj) {
248
+ return { obj };
249
+ }
250
+ else if (found.reconstructData) {
251
+ return { reconstructData: found.reconstructData };
247
252
  }
248
253
  else {
249
254
  this.weakSrvByRefs.delete(ref.path[0]);
@@ -24,11 +24,14 @@ export interface ServicesSide {
24
24
  export interface Caller {
25
25
  startPromiseCall(path: string[], req: EnvelopeBody): Promise<EnvelopeBody>;
26
26
  startObservableCall(path: string[], req: EnvelopeBody, obs: SubjectLike<EnvelopeBody>): () => void;
27
- registerClientDrop(o: any, srvRef: ObjectReference<any>): void;
27
+ registerClientDrop(o: any, srvRef: ObjectReference<any>, reconstructData?: any): void;
28
28
  srvRefOf(clientObj: any): ObjectReference<any>;
29
29
  listObj?: (path: string[]) => string[];
30
30
  listObjAsync?: (path: string[]) => Promise<string[]>;
31
- findCallingObjByRef<T>(ref: ObjectReference<any>): T | undefined;
31
+ findCallingObjByRef<T, R>(ref: ObjectReference<any>): {
32
+ obj?: T;
33
+ reconstructData?: R;
34
+ } | undefined;
32
35
  }
33
36
  export interface ObjectFromCore {
34
37
  _isObjectFromCore: true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-3nweb-client-lib",
3
- "version": "0.31.5",
3
+ "version": "0.31.6",
4
4
  "description": "3NWeb client core library, embeddable into different environments",
5
5
  "main": "build/lib-index.js",
6
6
  "types": "build/lib-index.d.ts",