@restorecommerce/chassis-srv 1.6.4 → 1.6.5

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 (30) hide show
  1. package/eslint.config.mjs +22 -0
  2. package/lib/cache/index.js +15 -25
  3. package/lib/cache/index.js.map +1 -1
  4. package/lib/command-interface/index.js +42 -36
  5. package/lib/command-interface/index.js.map +1 -1
  6. package/lib/database/index.d.ts +3 -3
  7. package/lib/database/index.js +4 -2
  8. package/lib/database/index.js.map +1 -1
  9. package/lib/database/provider/arango/base.js +38 -38
  10. package/lib/database/provider/arango/base.js.map +1 -1
  11. package/lib/database/provider/arango/common.d.ts +4 -4
  12. package/lib/database/provider/arango/common.js +12 -12
  13. package/lib/database/provider/arango/common.js.map +1 -1
  14. package/lib/database/provider/arango/graph.d.ts +7 -7
  15. package/lib/database/provider/arango/graph.js +10 -11
  16. package/lib/database/provider/arango/graph.js.map +1 -1
  17. package/lib/database/provider/arango/index.js +1 -1
  18. package/lib/database/provider/arango/index.js.map +1 -1
  19. package/lib/database/provider/arango/utils.d.ts +1 -1
  20. package/lib/database/provider/arango/utils.js +11 -11
  21. package/lib/database/provider/arango/utils.js.map +1 -1
  22. package/lib/database/provider/nedb/index.d.ts +1 -1
  23. package/lib/database/provider/nedb/index.js +9 -9
  24. package/lib/database/provider/nedb/index.js.map +1 -1
  25. package/lib/microservice/server.js +2 -2
  26. package/lib/microservice/server.js.map +1 -1
  27. package/lib/microservice/transport/provider/grpc/index.d.ts +1 -0
  28. package/lib/microservice/transport/provider/grpc/index.js +3 -5
  29. package/lib/microservice/transport/provider/grpc/index.js.map +1 -1
  30. package/package.json +28 -29
@@ -0,0 +1,22 @@
1
+ // @ts-check
2
+
3
+ import eslint from '@eslint/js';
4
+ import { RuleTester } from 'eslint';
5
+ import tseslint from 'typescript-eslint';
6
+
7
+ const rules = tseslint.config(
8
+ eslint.configs.recommended,
9
+ ...tseslint.configs.recommended,
10
+ );
11
+
12
+ rules.push(
13
+ {
14
+ "rules": {
15
+ "@typescript-eslint/no-explicit-any": "off",
16
+ "@typescript-eslint/no-unused-vars": "off",
17
+ "prefer-rest-params": "off",
18
+ }
19
+ }
20
+ );
21
+
22
+ export default rules;
@@ -25,7 +25,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.get = exports.register = void 0;
27
27
  const _ = __importStar(require("lodash"));
28
- const cacheManager = __importStar(require("cache-manager"));
28
+ const cache_manager_1 = require("cache-manager");
29
+ const keyv_1 = require("keyv");
30
+ const lru_cache_1 = require("lru-cache");
29
31
  /**
30
32
  * A key, value map containing cache providers.
31
33
  * Cache providers are registered with the register function.
@@ -46,15 +48,15 @@ exports.register = register;
46
48
  // add memory provider by default, since it is included with the cache-manager.
47
49
  (0, exports.register)('memory', (config, logger) => {
48
50
  const options = {
49
- store: 'memory',
50
- max: config.max,
51
- maxAge: config.maxAge,
52
- dispose: config.dispose,
53
- length: config.length,
54
- stale: config.stale,
55
- ttl: config.ttl,
51
+ max: config?.max || 500,
52
+ dispose: config?.dispose,
53
+ allowStale: config?.allowStale,
54
+ ttl: config?.ttl || 5000,
56
55
  };
57
- return cacheManager.caching(options);
56
+ const lruCache = new lru_cache_1.LRUCache(options);
57
+ const keyv = new keyv_1.Keyv({ store: lruCache });
58
+ const cache = (0, cache_manager_1.createCache)({ stores: [keyv] });
59
+ return cache;
58
60
  });
59
61
  /**
60
62
  * Get a new cache instance.
@@ -66,22 +68,10 @@ const get = (config, logger) => {
66
68
  if (_.isNil(config)) {
67
69
  throw new Error('missing argument config');
68
70
  }
69
- const stores = _.map(config, (cacheConfig, i) => {
70
- const providerName = cacheConfig.provider;
71
- if (_.isNil(providerName)) {
72
- throw new Error(`provider ${providerName} is not registered`);
73
- }
74
- const provider = providers[providerName];
75
- if (_.isNil(provider)) {
76
- throw new Error(`unknown ${providerName} cache store provider,
77
- use function register to registrate the provider`);
78
- }
79
- return provider(cacheConfig, logger);
80
- });
81
- if (stores.length === 1) {
82
- return stores[0];
83
- }
84
- return cacheManager.multiCaching(stores);
71
+ const providerName = config[0].provider;
72
+ const provider = providers[providerName];
73
+ const cache = provider(config, logger);
74
+ return cache;
85
75
  };
86
76
  exports.get = get;
87
77
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA4B;AAC5B,4DAA8C;AAG9C;;;GAGG;AACH,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;;;GAMG;AACI,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,QAAa,EAAQ,EAAE;IAC5D,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AAC7B,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEF,oBAAoB;AACpB,+EAA+E;AAC/E,IAAA,gBAAQ,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IACpC,MAAM,OAAO,GAA6B;QACxC,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,EAAE,MAAM,CAAC,GAAG;KAChB,CAAC;IACF,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACI,MAAM,GAAG,GAAG,CAAC,MAAW,EAAE,MAAc,EAAO,EAAE;IACtD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC;QAC1C,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,oBAAoB,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,WAAW,YAAY;uDACU,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC,CAAC;AApBW,QAAA,GAAG,OAoBd"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAA4B;AAC5B,iDAA4C;AAC5C,+BAA4B;AAC5B,yCAAqC;AAIrC;;;GAGG;AACH,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;;;GAMG;AACI,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,QAAa,EAAQ,EAAE;IAC5D,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AAC7B,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEF,oBAAoB;AACpB,+EAA+E;AAC/E,IAAA,gBAAQ,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;IACpC,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG;QACvB,OAAO,EAAE,MAAM,EAAE,OAAO;QACxB,UAAU,EAAE,MAAM,EAAE,UAAU;QAC9B,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,IAAI;KACzB,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,oBAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAA,2BAAW,EAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACI,MAAM,GAAG,GAAG,CAAC,MAAW,EAAE,MAAc,EAAO,EAAE;IACtD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AATW,QAAA,GAAG,OASd"}
@@ -31,7 +31,7 @@ const async = __importStar(require("async"));
31
31
  const commandinterface_1 = require("@restorecommerce/rc-grpc-clients/dist/generated-server/io/restorecommerce/commandinterface");
32
32
  const health_1 = require("@restorecommerce/rc-grpc-clients/dist/generated-server/grpc/health/v1/health");
33
33
  // For some reason this is required
34
- const crypto = require('crypto');
34
+ const crypto_1 = require("crypto");
35
35
  (0, kafka_client_1.registerProtoMeta)(commandinterface_1.protoMetadata);
36
36
  /**
37
37
  * Base implementation.
@@ -227,7 +227,7 @@ class CommandInterface {
227
227
  let intersection = _.intersection(restoreCollections, collections);
228
228
  if (intersection.length > 0) {
229
229
  intersection = _.intersection(intersection, topicLabels);
230
- for (let resource of intersection) {
230
+ for (const resource of intersection) {
231
231
  const topicName = kafkaCfg[`${resource}.resource`].topic;
232
232
  restoreEventSetup[topicName] = {
233
233
  topic: await this.kafkaEvents.topic(topicName),
@@ -242,10 +242,16 @@ class CommandInterface {
242
242
  this.logger.warn('No data was setup for the restore process.');
243
243
  }
244
244
  else {
245
- const that = this;
245
+ const logger = this.logger;
246
+ const kafkaEvents = this.kafkaEvents;
247
+ const config = this.config;
248
+ const service = this.service;
249
+ const encodeMsg = this.encodeMsg;
250
+ const commandTopic = this.commandTopic;
251
+ const startToReceiveRestoreMessages = this.startToReceiveRestoreMessages;
246
252
  // Start the restore process
247
253
  this.logger.warn('restoring data');
248
- for (let topicName in restoreEventSetup) {
254
+ for (const topicName in restoreEventSetup) {
249
255
  const topicSetup = restoreEventSetup[topicName];
250
256
  const restoreTopic = topicSetup.topic;
251
257
  const topicEvents = topicSetup.events;
@@ -253,7 +259,7 @@ class CommandInterface {
253
259
  // so they don't get called during the restore process
254
260
  const previousEvents = _.cloneDeep(restoreTopic.subscribed);
255
261
  const listenersBackup = new Map();
256
- for (let event of previousEvents) {
262
+ for (const event of previousEvents) {
257
263
  listenersBackup.set(event, restoreTopic.emitter.listeners(event));
258
264
  await restoreTopic.removeAllListeners(event);
259
265
  }
@@ -263,7 +269,7 @@ class CommandInterface {
263
269
  const ignoreOffsets = topicSetup.ignoreOffset;
264
270
  const eventNames = _.keys(topicEvents);
265
271
  this.logger.debug(`topic ${topicName} has current offset ${targetOffset}`);
266
- const restoreGroupId = kafkaEventsCfg.groupId + '-restore-' + crypto.randomBytes(32).toString('hex');
272
+ const restoreGroupId = kafkaEventsCfg.groupId + '-restore-' + (0, crypto_1.randomBytes)(32).toString('hex');
267
273
  const consumer = this.kafkaEvents.provider.client.consumer({
268
274
  groupId: restoreGroupId
269
275
  });
@@ -273,55 +279,55 @@ class CommandInterface {
273
279
  const context = _.pick(message, ['offset', 'partition', 'topic']);
274
280
  const eventListener = topicEvents[message.key];
275
281
  // decode protobuf
276
- let decodedMsg = that.kafkaEvents.provider.decodeObject(kafkaEventsCfg, eventName, msg);
282
+ let decodedMsg = kafkaEvents.provider.decodeObject(kafkaEventsCfg, eventName, msg);
277
283
  decodedMsg = _.pick(decodedMsg, _.keys(decodedMsg)); // preventing protobuf.js special fields
278
- eventListener(decodedMsg, context, that.config.get(), eventName).then(() => {
284
+ eventListener(decodedMsg, context, config.get(), eventName).then(() => {
279
285
  done();
280
286
  }).catch((err) => {
281
- that.logger.error(`Exception caught invoking restore listener for event ${eventName}`, { code: err.code, message: err.message, stack: err.stack });
287
+ logger.error(`Exception caught invoking restore listener for event ${eventName}`, { code: err.code, message: err.message, stack: err.stack });
282
288
  done(err);
283
289
  });
284
290
  if (message.offset >= targetOffset) {
285
- for (let event of eventNames) {
291
+ for (const event of eventNames) {
286
292
  restoreTopic.removeAllListeners(event).then(() => { }).catch((err) => {
287
- that.logger.error('Error removing listeners after restore', { code: err.code, message: err.message, stack: err.stack });
293
+ logger.error('Error removing listeners after restore', { code: err.code, message: err.message, stack: err.stack });
288
294
  });
289
295
  }
290
- for (let event of previousEvents) {
296
+ for (const event of previousEvents) {
291
297
  const listeners = listenersBackup.get(event);
292
- for (let listener of listeners) {
298
+ for (const listener of listeners) {
293
299
  restoreTopic.on(event, listener).then(() => { }).catch((err) => {
294
- that.logger.error('Error subscribing to listeners after restore', { code: err.code, message: err.message, stack: err.stack });
300
+ logger.error('Error subscribing to listeners after restore', { code: err.code, message: err.message, stack: err.stack });
295
301
  });
296
302
  }
297
303
  }
298
304
  consumer.stop().then(() => consumer.disconnect()).then(() => {
299
305
  this.kafkaEvents.provider.admin.deleteGroups([restoreGroupId]).then(() => {
300
- that.logger.debug('restore kafka group deleted');
306
+ logger.debug('restore kafka group deleted');
301
307
  const msg = {
302
308
  topic: topicName,
303
309
  offset: message.offset
304
310
  };
305
- that.commandTopic.emit('restoreResponse', {
306
- services: _.keys(that.service),
307
- payload: that.encodeMsg(msg)
311
+ commandTopic.emit('restoreResponse', {
312
+ services: _.keys(service),
313
+ payload: encodeMsg(msg)
308
314
  }).then(() => {
309
- that.logger.info('Restore response emitted');
315
+ logger.info('Restore response emitted');
310
316
  }).catch((err) => {
311
- that.logger.error('Error emitting command response', { code: err.code, message: err.message, stack: err.stack });
317
+ logger.error('Error emitting command response', { code: err.code, message: err.message, stack: err.stack });
312
318
  });
313
- that.logger.info('restore process done');
319
+ logger.info('restore process done');
314
320
  }).catch(err => {
315
- that.logger.error('Error deleting restore kafka group', { code: err.code, message: err.message, stack: err.stack });
321
+ logger.error('Error deleting restore kafka group', { code: err.code, message: err.message, stack: err.stack });
316
322
  });
317
323
  }).catch(err => {
318
- that.logger.error('Error stopping consumer', { code: err.code, message: err.message, stack: err.stack });
324
+ logger.error('Error stopping consumer', { code: err.code, message: err.message, stack: err.stack });
319
325
  });
320
326
  }
321
327
  };
322
- const asyncQueue = that.startToReceiveRestoreMessages(restoreTopic, drainEvent);
328
+ const asyncQueue = startToReceiveRestoreMessages(restoreTopic, drainEvent);
323
329
  await consumer.connect().catch(err => {
324
- that.logger.error('error connecting consumer', { code: err.code, message: err.message, stack: err.stack });
330
+ logger.error('error connecting consumer', { code: err.code, message: err.message, stack: err.stack });
325
331
  throw err;
326
332
  });
327
333
  await consumer.subscribe({
@@ -331,7 +337,7 @@ class CommandInterface {
331
337
  eachMessage: async (payload) => {
332
338
  if (payload.message.key.toString() in topicEvents && !_.includes(ignoreOffsets, parseInt(payload.message.offset))) {
333
339
  asyncQueue.push(payload.message);
334
- that.logger.debug(`received message ${payload.message.offset}/${targetOffset}`);
340
+ logger.debug(`received message ${payload.message.offset}/${targetOffset}`);
335
341
  }
336
342
  }
337
343
  });
@@ -492,8 +498,8 @@ class CommandInterface {
492
498
  }
493
499
  let response;
494
500
  try {
495
- let configProperties = Object.keys(payload);
496
- for (let key of configProperties) {
501
+ const configProperties = Object.keys(payload);
502
+ for (const key of configProperties) {
497
503
  this.config.set(key, payload[key]);
498
504
  }
499
505
  response = {
@@ -525,8 +531,8 @@ class CommandInterface {
525
531
  }
526
532
  let response;
527
533
  try {
528
- let configProperties = Object.keys(payload);
529
- for (let key of configProperties) {
534
+ const configProperties = Object.keys(payload);
535
+ for (const key of configProperties) {
530
536
  this.config.set(key, payload[key]);
531
537
  }
532
538
  response = {
@@ -566,7 +572,7 @@ class CommandInterface {
566
572
  await this.redisClient.select(dbIndex);
567
573
  try {
568
574
  if (pattern != undefined) {
569
- let flushPattern = '*' + pattern + '*';
575
+ const flushPattern = '*' + pattern + '*';
570
576
  this.logger.debug('Flushing cache wiht pattern', { dbIndex, flushPattern });
571
577
  let scanIterator;
572
578
  try {
@@ -621,15 +627,15 @@ class CommandInterface {
621
627
  * @param resource
622
628
  */
623
629
  makeResourcesRestoreSetup(db, resource) {
624
- const that = this;
630
+ const decodeBufferField = this.decodeBufferField;
625
631
  return {
626
632
  [`${resource}Created`]: async function restoreCreated(message, ctx, config, eventName) {
627
- that.decodeBufferField(message, resource);
633
+ decodeBufferField(message, resource);
628
634
  await db.insert(`${resource}s`, message);
629
635
  return {};
630
636
  },
631
637
  [`${resource}Modified`]: async function restoreModified(message, ctx, config, eventName) {
632
- that.decodeBufferField(message, resource);
638
+ decodeBufferField(message, resource);
633
639
  await db.update(`${resource}s`, { id: message.id }, _.omitBy(message, _.isNil));
634
640
  return {};
635
641
  },
@@ -660,7 +666,7 @@ class CommandInterface {
660
666
  * @returns Arbitrary JSON
661
667
  */
662
668
  decodeMsg(msg) {
663
- return JSON.parse(Buffer.from(msg.value, 'base64').toString());
669
+ return JSON.parse(Buffer.from(msg.value).toString());
664
670
  }
665
671
  /**
666
672
  *
@@ -671,7 +677,7 @@ class CommandInterface {
671
677
  if (msg) {
672
678
  return {
673
679
  type_url: 'payload',
674
- value: Buffer.from(JSON.stringify(msg)).toString('base64')
680
+ value: Buffer.from(JSON.stringify(msg))
675
681
  };
676
682
  }
677
683
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/command-interface/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/command-interface/index.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export interface DatabaseProvider {
31
31
  dropView(viewName: string[]): Promise<any>;
32
32
  }
33
33
  export interface GraphDatabaseProvider extends DatabaseProvider {
34
- createGraphDB(graphName: string): any;
34
+ createGraphDB(graphName: string, edgeDefinitions: any, options: object): any;
35
35
  createVertex(collectionName: string, data: any): any;
36
36
  getVertex(collectionName: string, documentHandle: string): any;
37
37
  removeVertex(collectionName: string, documentHandles: string | string[]): any;
@@ -41,13 +41,13 @@ export interface GraphDatabaseProvider extends DatabaseProvider {
41
41
  addVertexCollection(collectionName: string): any;
42
42
  removeVertexCollection(collectionName: string, dropCollection?: boolean): any;
43
43
  getGraphDB(): any;
44
- createEdge(collectionName: string, data: Object, fromId?: string, toId?: string): any;
44
+ createEdge(collectionName: string, data: object, fromId?: string, toId?: string): any;
45
45
  getEdge(collectionName: string, documentHandle: string): any;
46
46
  getAllEdgesForVertice(collectionName: string, documentHandle: string): any;
47
47
  getInEdges(collectionName: string, documentHandle: string): any;
48
48
  getOutEdges(collectionName: string, documentHandle: string): any;
49
49
  traversal(startVertex: Vertices, collectionName: Collection, opts: TraversalOptions, filters?: GraphFilters[]): Promise<TraversalResponse>;
50
- addEdgeDefinition(collectionName: string, fromVertice: Object | [Object], toVertice: Object | [Object]): any;
50
+ addEdgeDefinition(collectionName: string, fromVertice: object | [object], toVertice: object | [object]): any;
51
51
  removeEdgeDefinition(definitionName: string, dropCollection?: boolean): any;
52
52
  listGraphs(): any;
53
53
  removeEdge(collectionName: string, documentHandle: string): any;
@@ -16,9 +16,11 @@ const register = (name, provider) => {
16
16
  databases[name] = provider;
17
17
  };
18
18
  exports.register = register;
19
+ const arango_1 = require("./provider/arango");
20
+ const nedb_1 = require("./provider/nedb");
19
21
  // Add default providers
20
- (0, exports.register)('arango', require('./provider/arango').create);
21
- (0, exports.register)('nedb', require('./provider/nedb').create);
22
+ (0, exports.register)('arango', arango_1.create);
23
+ (0, exports.register)('nedb', nedb_1.create);
22
24
  /**
23
25
  * Get a new database connection.
24
26
  * @param {Object} config Database configuration.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":";;;AASA;;;GAGG;AACH,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;;GAKG;AACI,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,QAAa,EAAO,EAAE;IAC3D,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AAC7B,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAGF,wBAAwB;AACxB,IAAA,gBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AACxD,IAAA,gBAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD;;;;;GAKG;AACI,MAAM,GAAG,GAAG,KAAK,EAAE,MAAW,EAAE,MAAe,EAAE,SAAkB,EAAE,UAAgB,EAA6B,EAAE;IACzH,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,iBAAiB,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC,CAAC;AANW,QAAA,GAAG,OAMd"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/database/index.ts"],"names":[],"mappings":";;;AASA;;;GAGG;AACH,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB;;;;;GAKG;AACI,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,QAAa,EAAO,EAAE;IAC3D,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;AAC7B,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEF,8CAAuD;AACvD,0CAAiD;AAEjD,wBAAwB;AACxB,IAAA,gBAAQ,EAAC,QAAQ,EAAE,eAAQ,CAAC,CAAC;AAC7B,IAAA,gBAAQ,EAAC,MAAM,EAAE,aAAI,CAAC,CAAC;AAEvB;;;;;GAKG;AACI,MAAM,GAAG,GAAG,KAAK,EAAE,MAAW,EAAE,MAAe,EAAE,SAAkB,EAAE,UAAgB,EAA6B,EAAE;IACzH,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,QAAQ,iBAAiB,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC,CAAC;AANW,QAAA,GAAG,OAMd"}