@iobroker/db-objects-file 7.2.2 → 7.2.3-alpha.1-20260621-61726ea22

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.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Object DB in memory - Server
3
3
  *
4
- * Copyright 2013-2024 bluefox <dogafox@gmail.com>
4
+ * Copyright 2013-2026 bluefox <dogafox@gmail.com>
5
5
  *
6
6
  * MIT License
7
7
  *
@@ -17,9 +17,12 @@ import deepClone from 'deep-clone';
17
17
  * including the available methods for use by js-controller directly
18
18
  */
19
19
  export class ObjectsInMemoryFileDB extends InMemoryFileDB {
20
+ /**
21
+ * @param settings Settings for the objects database
22
+ */
20
23
  constructor(settings) {
21
- settings = settings || {};
22
- settings.fileDB = settings.fileDB || {
24
+ settings ||= {};
25
+ settings.fileDB ||= {
23
26
  fileName: 'objects.json',
24
27
  backupDirName: 'backup-objects',
25
28
  };
@@ -60,12 +63,21 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
60
63
  this.defaultNewAcl = deepClone(configObj.common.defaultNewAcl);
61
64
  }
62
65
  }
63
- // internal functionality
66
+ /**
67
+ * Normalize a file name by collapsing slashes and backslashes into a single forward slash
68
+ *
69
+ * @param name The file name to normalize
70
+ */
64
71
  _normalizeFilename(name) {
65
72
  return name ? name.replace(/[/\\]+/g, '/') : name;
66
73
  }
67
74
  // -------------- FILE FUNCTIONS -------------------------------------------
68
- // internal functionality
75
+ /**
76
+ * Schedule writing the file settings (_data.json) to disk
77
+ *
78
+ * @param id The object ID whose file settings should be saved, or a boolean used as the force flag
79
+ * @param force If true, write the settings immediately instead of debounced
80
+ */
69
81
  _saveFileSettings(id, force) {
70
82
  if (typeof id === 'boolean') {
71
83
  force = id;
@@ -106,7 +118,11 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
106
118
  }, 1_000);
107
119
  }
108
120
  }
109
- // internal functionality
121
+ /**
122
+ * Load the file settings (_data.json) for the given object ID into memory
123
+ *
124
+ * @param id The object ID whose file settings should be loaded
125
+ */
110
126
  _loadFileSettings(id) {
111
127
  if (!this.fileOptions[id]) {
112
128
  const location = path.join(this.objectsDir, id, '_data.json');
@@ -142,7 +158,11 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
142
158
  }
143
159
  }
144
160
  }
145
- // server only functionality
161
+ /**
162
+ * Synchronize the in-memory file metadata with the files actually present on disk (server only)
163
+ *
164
+ * @param limitId Optional object ID to limit the synchronization to
165
+ */
146
166
  syncFileDirectory(limitId) {
147
167
  const resNotifies = [];
148
168
  let resSynced = 0;
@@ -230,7 +250,14 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
230
250
  notifications: resNotifies,
231
251
  };
232
252
  }
233
- // needed by server
253
+ /**
254
+ * Write a file into an object's file storage (used by the server)
255
+ *
256
+ * @param id The object ID owning the file
257
+ * @param name The file name
258
+ * @param data The file content
259
+ * @param options Optional write options, or the mime type as a string
260
+ */
234
261
  _writeFile(id, name, data, options) {
235
262
  if (typeof options === 'string') {
236
263
  options = { mimeType: options };
@@ -306,7 +333,13 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
306
333
  this.publishAll('files', `${id}$%$${name}`, size);
307
334
  }, name, data.byteLength);
308
335
  }
309
- // needed by server
336
+ /**
337
+ * Read a file from an object's file storage (used by the server)
338
+ *
339
+ * @param id The object ID owning the file
340
+ * @param name The file name
341
+ * @param options Optional read options
342
+ */
310
343
  _readFile(id, name, options) {
311
344
  if (options && options.acl) {
312
345
  options.acl = null;
@@ -421,7 +454,7 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
421
454
  *
422
455
  * @param id id of the namespace
423
456
  * @param [name] name of the file
424
- * @returns
457
+ * @returns true if the file exists
425
458
  */
426
459
  // needed by server
427
460
  _fileExists(id, name) {
@@ -446,7 +479,7 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
446
479
  *
447
480
  * @param id id of the namespace
448
481
  * @param [name] name of the directory
449
- * @returns
482
+ * @returns true if the directory exists
450
483
  */
451
484
  // special functionality only for Server (used together with SyncFileDirectory)
452
485
  dirExists(id, name) {
@@ -466,7 +499,12 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
466
499
  return false;
467
500
  }
468
501
  }
469
- // needed by server
502
+ /**
503
+ * Delete a file or directory from an object's file storage (used by the server)
504
+ *
505
+ * @param id The object ID owning the file
506
+ * @param name The file or directory name to delete
507
+ */
470
508
  _unlink(id, name) {
471
509
  const _path = utils.sanitizePath(id, name);
472
510
  id = _path.id;
@@ -518,7 +556,13 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
518
556
  }, id, name);
519
557
  }
520
558
  }
521
- // needed by server
559
+ /**
560
+ * List the contents of a directory in an object's file storage (used by the server)
561
+ *
562
+ * @param id The object ID owning the files
563
+ * @param name The directory name to list
564
+ * @param options Optional read options
565
+ */
522
566
  _readDir(id, name, options) {
523
567
  if (options && options.acl) {
524
568
  options.acl = null;
@@ -660,7 +704,13 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
660
704
  }
661
705
  return res;
662
706
  }
663
- // needed by server
707
+ /**
708
+ * Rename a file or directory in an object's file storage (used by the server)
709
+ *
710
+ * @param id The object ID owning the file
711
+ * @param oldName The current file or directory name
712
+ * @param newName The new file or directory name
713
+ */
664
714
  _rename(id, oldName, newName) {
665
715
  const _path = utils.sanitizePath(id, oldName);
666
716
  id = _path.id;
@@ -691,7 +741,11 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
691
741
  });
692
742
  this._saveFileSettings(id, true);
693
743
  }
694
- // internal functionality
744
+ /**
745
+ * Create a deep clone of the given object
746
+ *
747
+ * @param obj The object to clone
748
+ */
695
749
  _clone(obj) {
696
750
  if (obj === null || obj === undefined || !tools.isObject(obj)) {
697
751
  return obj;
@@ -702,18 +756,40 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
702
756
  }
703
757
  return temp;
704
758
  }
759
+ /**
760
+ * Subscribe a client to meta changes
761
+ *
762
+ * @param client The client to subscribe
763
+ * @param pattern The pattern of meta IDs to subscribe to
764
+ */
705
765
  _subscribeMeta(client, pattern) {
706
766
  this.handleSubscribe(client, 'meta', pattern);
707
767
  }
708
- // needed by server
768
+ /**
769
+ * Subscribe a client to object changes (used by the server)
770
+ *
771
+ * @param client The client to subscribe
772
+ * @param pattern The pattern of object IDs to subscribe to
773
+ */
709
774
  _subscribeConfigForClient(client, pattern) {
710
775
  this.handleSubscribe(client, 'objects', pattern);
711
776
  }
712
- // needed by server
777
+ /**
778
+ * Unsubscribe a client from object changes (used by the server)
779
+ *
780
+ * @param client The client to unsubscribe
781
+ * @param pattern The pattern of object IDs to unsubscribe from
782
+ */
713
783
  _unsubscribeConfigForClient(client, pattern) {
714
784
  this.handleUnsubscribe(client, 'objects', pattern); // ignore options => unsubscribe may everyone
715
785
  }
716
- // needed by server
786
+ /**
787
+ * Subscribe a client to file changes of an object (used by the server)
788
+ *
789
+ * @param client The client to subscribe
790
+ * @param id The object ID owning the files
791
+ * @param pattern One or more file name patterns to subscribe to
792
+ */
717
793
  _subscribeFileForClient(client, id, pattern) {
718
794
  if (Array.isArray(pattern)) {
719
795
  pattern.forEach(pattern => this.handleSubscribe(client, 'files', `${id}$%$${pattern}`));
@@ -722,7 +798,13 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
722
798
  this.handleSubscribe(client, 'files', `${id}$%$${pattern}`);
723
799
  }
724
800
  }
725
- // needed by server
801
+ /**
802
+ * Unsubscribe a client from file changes of an object (used by the server)
803
+ *
804
+ * @param client The client to unsubscribe
805
+ * @param id The object ID owning the files
806
+ * @param pattern One or more file name patterns to unsubscribe from
807
+ */
726
808
  _unsubscribeFileForClient(client, id, pattern) {
727
809
  if (Array.isArray(pattern)) {
728
810
  pattern.forEach(pattern => this.handleUnsubscribe(client, 'files', `${id}$%$${pattern}`));
@@ -731,24 +813,39 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
731
813
  this.handleUnsubscribe(client, 'files', `${id}$%$${pattern}`);
732
814
  }
733
815
  }
734
- // needed by server
816
+ /**
817
+ * Get a single object by its ID (used by the server)
818
+ *
819
+ * @param id The object ID to read
820
+ */
735
821
  _getObject(id) {
736
822
  return this.dataset[id];
737
823
  }
738
- // needed by server
824
+ /**
825
+ * Get all object IDs matching the given pattern, sorted (used by the server)
826
+ *
827
+ * @param pattern The pattern to match object IDs against
828
+ */
739
829
  _getKeys(pattern) {
740
830
  const r = new RegExp(tools.pattern2RegEx(pattern));
741
831
  const result = Object.keys(this.dataset).filter(id => r.test(id) && id !== this.META_ID);
742
832
  result.sort();
743
833
  return result;
744
834
  }
745
- // needed by server
835
+ /**
836
+ * Get the values of the given object IDs (used by the server)
837
+ *
838
+ * @param keys The object IDs to read
839
+ */
746
840
  _getObjects(keys) {
747
841
  if (!keys) {
748
842
  throw new Error('no keys');
749
843
  }
750
844
  return keys.map(id => this.dataset[id]);
751
845
  }
846
+ /**
847
+ * Get the meta dictionary, creating it if it does not exist yet
848
+ */
752
849
  _ensureMetaDict() {
753
850
  let meta = this.dataset[this.META_ID];
754
851
  if (!meta) {
@@ -760,8 +857,8 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
760
857
  /**
761
858
  * Get value of given meta id
762
859
  *
763
- * @param id
764
- * @returns
860
+ * @param id The meta ID to read
861
+ * @returns the stored meta value
765
862
  */
766
863
  getMeta(id) {
767
864
  const meta = this._ensureMetaDict();
@@ -770,8 +867,8 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
770
867
  /**
771
868
  * Sets given value to id in metaNamespace
772
869
  *
773
- * @param id
774
- * @param value
870
+ * @param id The meta ID to write
871
+ * @param value The value to store
775
872
  */
776
873
  setMeta(id, value) {
777
874
  const meta = this._ensureMetaDict();
@@ -787,7 +884,12 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
787
884
  this.stateTimer = setTimeout(() => this.saveState(), this.writeFileInterval);
788
885
  }
789
886
  }
790
- // needed by server
887
+ /**
888
+ * Directly set an object value and publish the change (used by the server)
889
+ *
890
+ * @param id The object ID to set
891
+ * @param obj The object to store
892
+ */
791
893
  _setObjectDirect(id, obj) {
792
894
  this.dataset[id] = obj;
793
895
  // object updated -> if type changed to meta -> cache
@@ -821,7 +923,12 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
821
923
  this.stateTimer = setTimeout(() => this.saveState(), this.writeFileInterval);
822
924
  }
823
925
  }
824
- // internal functionality
926
+ /**
927
+ * Apply a view's map function over all objects and collect the matching rows
928
+ *
929
+ * @param func The view definition containing the map function
930
+ * @param params Query parameters such as startkey and endkey
931
+ */
825
932
  _applyView(func, params) {
826
933
  const result = {
827
934
  rows: [],
@@ -866,7 +973,13 @@ export class ObjectsInMemoryFileDB extends InMemoryFileDB {
866
973
  }
867
974
  return result;
868
975
  }
869
- // needed by server
976
+ /**
977
+ * Run a predefined object view (design document) and return the matching rows (used by the server)
978
+ *
979
+ * @param design The design document name
980
+ * @param search The view name within the design document
981
+ * @param params Query parameters such as startkey and endkey
982
+ */
870
983
  _getObjectView(design, search, params) {
871
984
  const designObj = this.dataset[`_design/${design}`];
872
985
  if (!designObj) {
@@ -1 +1 @@
1
- {"version":3,"file":"objectsInMemFileDB.js","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemFileDB.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objectsInMemFileDB.js","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemFileDB.js"],"names":[],"mappings":"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"}
@@ -1,10 +1,27 @@
1
+ /**
2
+ * Objects database client that also starts an in-memory server speaking the Redis protocol
3
+ */
1
4
  export class ObjectsInMemoryServerClass extends ObjectsInRedisClient {
5
+ /**
6
+ * @param settings Settings for the objects client and the in-memory server
7
+ */
2
8
  constructor(settings: any);
3
9
  objectsServer: ObjectsInMemoryServer;
10
+ /**
11
+ * Synchronize the file directory of the in-memory server
12
+ *
13
+ * @param limitId Optional object ID to limit the synchronization to
14
+ */
4
15
  syncFileDirectory(limitId: any): {
5
16
  numberSuccess: number;
6
17
  notifications: any[];
7
18
  };
19
+ /**
20
+ * Check whether a directory exists in the in-memory server's file storage
21
+ *
22
+ * @param id The object ID owning the files
23
+ * @param name The directory path to check
24
+ */
8
25
  dirExists(id: any, name: any): boolean;
9
26
  }
10
27
  import { Client as ObjectsInRedisClient } from '@iobroker/db-objects-redis';
@@ -1 +1 @@
1
- {"version":3,"file":"objectsInMemServerClass.d.ts","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemServerClass.js"],"names":[],"mappings":"AAYA;IACI,2BAcC;IADG,qCAA8D;IAYlE;;;MAEC;IAED,uCAEC;CACJ;+CApC8C,4BAA4B;sCACrC,8BAA8B"}
1
+ {"version":3,"file":"objectsInMemServerClass.d.ts","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemServerClass.js"],"names":[],"mappings":"AAYA;;GAEG;AACH;IACI;;OAEG;IACH,2BAcC;IADG,qCAA8D;IAkBlE;;;;OAIG;IACH;;;MAEC;IAED;;;;;OAKG;IACH,uCAEC;CACJ;+CA3D8C,4BAA4B;sCACrC,8BAA8B"}
@@ -8,7 +8,13 @@
8
8
  */
9
9
  import { Client as ObjectsInRedisClient } from '@iobroker/db-objects-redis';
10
10
  import { ObjectsInMemoryServer } from './objectsInMemServerRedis.js';
11
+ /**
12
+ * Objects database client that also starts an in-memory server speaking the Redis protocol
13
+ */
11
14
  export class ObjectsInMemoryServerClass extends ObjectsInRedisClient {
15
+ /**
16
+ * @param settings Settings for the objects client and the in-memory server
17
+ */
12
18
  constructor(settings) {
13
19
  settings.autoConnect = false; // delay Client connection to when we need it
14
20
  super(settings);
@@ -23,16 +29,33 @@ export class ObjectsInMemoryServerClass extends ObjectsInRedisClient {
23
29
  };
24
30
  this.objectsServer = new ObjectsInMemoryServer(serverSettings);
25
31
  }
32
+ /**
33
+ * Destroy the client first and the in-memory server afterwards
34
+ */
26
35
  async destroy() {
27
36
  await super.destroy(); // destroy client first
28
37
  await this.objectsServer.destroy(); // server afterwards too
29
38
  }
39
+ /**
40
+ * Get the status as reported by the in-memory server
41
+ */
30
42
  getStatus() {
31
43
  return this.objectsServer.getStatus(); // return Status as Server
32
44
  }
45
+ /**
46
+ * Synchronize the file directory of the in-memory server
47
+ *
48
+ * @param limitId Optional object ID to limit the synchronization to
49
+ */
33
50
  syncFileDirectory(limitId) {
34
51
  return this.objectsServer.syncFileDirectory(limitId);
35
52
  }
53
+ /**
54
+ * Check whether a directory exists in the in-memory server's file storage
55
+ *
56
+ * @param id The object ID owning the files
57
+ * @param name The directory path to check
58
+ */
36
59
  dirExists(id, name) {
37
60
  return this.objectsServer.dirExists(id, name);
38
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"objectsInMemServerClass.js","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemServerClass.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,MAAM,OAAO,0BAA2B,SAAQ,oBAAoB;IAChE,YAAY,QAAQ;QAChB,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,6CAA6C;QAC3E,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhB,MAAM,cAAc,GAAG;YACnB,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,QAAQ;YACzE,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,mDAAmD;YACzE,CAAC;SACJ,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,OAAO;QACT,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,uBAAuB;QAC9C,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,wBAAwB;IAChE,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,0BAA0B;IACrE,CAAC;IAED,iBAAiB,CAAC,OAAO;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,SAAS,CAAC,EAAE,EAAE,IAAI;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;CACJ"}
1
+ {"version":3,"file":"objectsInMemServerClass.js","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemServerClass.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,oBAAoB;IAChE;;OAEG;IACH,YAAY,QAAQ;QAChB,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,6CAA6C;QAC3E,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhB,MAAM,cAAc,GAAG;YACnB,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,QAAQ;YACzE,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,mDAAmD;YACzE,CAAC;SACJ,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACT,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,uBAAuB;QAC9C,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,wBAAwB;IAChE,CAAC;IAED;;OAEG;IACH,SAAS;QACL,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,0BAA0B;IACrE,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,OAAO;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,EAAE,EAAE,IAAI;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;CACJ"}
@@ -3,12 +3,6 @@
3
3
  * to access the methods via redis protocol
4
4
  */
5
5
  export class ObjectsInMemoryServer extends ObjectsInMemoryFileDB {
6
- /**
7
- * Constructor
8
- *
9
- * @param settings State and InMem-DB settings
10
- */
11
- constructor(settings: any);
12
6
  serverConnections: {};
13
7
  namespaceObjects: string;
14
8
  namespaceFile: string;
@@ -63,7 +57,7 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryFileDB {
63
57
  /**
64
58
  * Return connected RedisHandlers/Connections
65
59
  *
66
- * @returns
60
+ * @returns the currently connected RedisHandlers/Connections
67
61
  */
68
62
  getClients(): {};
69
63
  /**
@@ -85,7 +79,7 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryFileDB {
85
79
  * Initialize Redis Server
86
80
  *
87
81
  * @param settings Settings object
88
- * @returns
82
+ * @returns a promise that resolves once the Redis server is listening
89
83
  */
90
84
  _initRedisServer(settings: any): Promise<any>;
91
85
  server: net.Server | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"objectsInMemServerRedis.d.ts","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemServerRedis.js"],"names":[],"mappings":"AA0CA;;;GAGG;AACH;IACI;;;;OAIG;IACH,2BA4CC;IAzCG,sBAA2B;IAC3B,yBAEG;IACH,sBAAiD;IACjD,qBAAgD;IAChD,qBAAgD;IAChD,wBAA+C;IAG/C,yBAAiD;IACjD,wBAA+C;IAC/C,sBAAgE;IAChE,yBAAiD;IAEjD,iBAAsB;IAEtB,4BAA4E;IAC5E,4BAAiE;IAyBrE;;;;;;OAMG;IACH;;;;;MAwDC;IAED;;;;;;;;OAQG;IACH,mEA8BC;IAED;;;;;;;OAOG;IACH,mDAYC;IAED;;;;OAIG;IACH,kCAymBC;IAED;;;;OAIG;IACH,iBAEC;IA4BD;;;;;;;OAOG;IACH,4FAuEC;IAED;;;;OAIG;IACH,+BAmBC;IAED;;;;;OAKG;IACH,8CAyBC;IAnBW,+BAAgC;CAoB/C;sCA7+BqC,yBAAyB;gBAV/C,UAAU"}
1
+ {"version":3,"file":"objectsInMemServerRedis.d.ts","sourceRoot":"","sources":["../../../../src/lib/objects/objectsInMemServerRedis.js"],"names":[],"mappings":"AA0CA;;;GAGG;AACH;IASQ,sBAA2B;IAC3B,yBAEG;IACH,sBAAiD;IACjD,qBAAgD;IAChD,qBAAgD;IAChD,wBAA+C;IAG/C,yBAAiD;IACjD,wBAA+C;IAC/C,sBAAgE;IAChE,yBAAiD;IAEjD,iBAAsB;IAEtB,4BAA4E;IAC5E,4BAAiE;IAyBrE;;;;;;OAMG;IACH;;;;;MAwDC;IAED;;;;;;;;OAQG;IACH,mEA8BC;IAED;;;;;;;OAOG;IACH,mDAYC;IAED;;;;OAIG;IACH,kCAymBC;IAED;;;;OAIG;IACH,iBAEC;IA4BD;;;;;;;OAOG;IACH,4FAuEC;IAED;;;;OAIG;IACH,+BAmBC;IAED;;;;;OAKG;IACH,8CAyBC;IAnBW,+BAAgC;CAoB/C;sCA7+BqC,yBAAyB;gBAV/C,UAAU"}
@@ -778,7 +778,7 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryFileDB {
778
778
  /**
779
779
  * Return connected RedisHandlers/Connections
780
780
  *
781
- * @returns
781
+ * @returns the currently connected RedisHandlers/Connections
782
782
  */
783
783
  getClients() {
784
784
  return this.serverConnections;
@@ -916,7 +916,7 @@ export class ObjectsInMemoryServer extends ObjectsInMemoryFileDB {
916
916
  * Initialize Redis Server
917
917
  *
918
918
  * @param settings Settings object
919
- * @returns
919
+ * @returns a promise that resolves once the Redis server is listening
920
920
  */
921
921
  _initRedisServer(settings) {
922
922
  return new Promise((resolve, reject) => {