@lido-nestjs/registry 1.1.0 → 1.1.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.
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { LoggerService } from '@nestjs/common';
3
3
  import { Registry } from '@lido-nestjs/contracts';
4
- import { EntityManager } from '@mikro-orm/core';
4
+ import { EntityManager } from '@mikro-orm/knex';
5
5
  import EventEmitter from 'events';
6
6
  import { CronJob } from 'cron';
7
7
  import { RegistryMetaFetchService } from '../fetch/meta.fetch';
@@ -47,6 +47,8 @@ export declare abstract class AbstractRegistryService {
47
47
  getMetaDataFromStorage(): Promise<RegistryMeta | null>;
48
48
  /** returns the latest operators data from the db */
49
49
  getOperatorsFromStorage(): Promise<RegistryOperator[]>;
50
+ getOperatorsKeysFromStorage(): Promise<RegistryKey[]>;
51
+ save(updatedKeys: RegistryKey[], currentOperators: RegistryOperator[], currMeta: RegistryMeta): Promise<void>;
50
52
  /** clears the db */
51
53
  clear(): Promise<void>;
52
54
  }
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var tslib = require('tslib');
6
6
  var common = require('@nestjs/common');
7
7
  var contracts = require('@lido-nestjs/contracts');
8
- var core = require('@mikro-orm/core');
8
+ var knex = require('@mikro-orm/knex');
9
9
  var logger = require('@lido-nestjs/logger');
10
10
  var decorators = require('@lido-nestjs/decorators');
11
11
  var EventEmitter = require('events');
@@ -85,7 +85,10 @@ exports.AbstractRegistryService = class AbstractRegistryService {
85
85
  }
86
86
  if (isSameContractState) {
87
87
  (_c = (_b = this.logger).debug) === null || _c === void 0 ? void 0 : _c.call(_b, 'Same state, no data update required', { currMeta });
88
- await this.metaStorage.save(currMeta);
88
+ await this.entityManager.transactional(async (entityManager) => {
89
+ await entityManager.nativeDelete(meta_entity.RegistryMeta, {});
90
+ await entityManager.persist(new meta_entity.RegistryMeta(currMeta));
91
+ });
89
92
  (_e = (_d = this.logger).debug) === null || _e === void 0 ? void 0 : _e.call(_d, 'Updated metadata in the DB', { currMeta });
90
93
  return;
91
94
  }
@@ -100,19 +103,7 @@ exports.AbstractRegistryService = class AbstractRegistryService {
100
103
  this.logger.log('Fetched updated keys', {
101
104
  updatedKeys: updatedKeys.length,
102
105
  });
103
- // save all data in a transaction
104
- await this.entityManager.transactional(async (entityManager) => {
105
- updatedKeys.forEach(async (operatorKey) => {
106
- const instance = new key_entity.RegistryKey(operatorKey);
107
- entityManager.persist(instance);
108
- });
109
- currentOperators.forEach(async (operator) => {
110
- const instance = new operator_entity.RegistryOperator(operator);
111
- entityManager.persist(instance);
112
- });
113
- const meta = new meta_entity.RegistryMeta(currMeta);
114
- entityManager.persist(meta);
115
- });
106
+ await this.save(updatedKeys, currentOperators, currMeta);
116
107
  this.logger.log('Saved data to the DB', {
117
108
  operators: currentOperators.length,
118
109
  updatedKeys: updatedKeys.length,
@@ -180,6 +171,28 @@ exports.AbstractRegistryService = class AbstractRegistryService {
180
171
  async getOperatorsFromStorage() {
181
172
  return await this.operatorStorage.findAll();
182
173
  }
174
+ async getOperatorsKeysFromStorage() {
175
+ return await this.keyStorage.findAll();
176
+ }
177
+ async save(updatedKeys, currentOperators, currMeta) {
178
+ // save all data in a transaction
179
+ await this.entityManager.transactional(async (entityManager) => {
180
+ await entityManager
181
+ .createQueryBuilder(key_entity.RegistryKey)
182
+ .insert(updatedKeys)
183
+ .onConflict(['index', 'operator_index'])
184
+ .merge()
185
+ .execute();
186
+ await entityManager
187
+ .createQueryBuilder(operator_entity.RegistryOperator)
188
+ .insert(currentOperators)
189
+ .onConflict('index')
190
+ .merge()
191
+ .execute();
192
+ await entityManager.nativeDelete(meta_entity.RegistryMeta, {});
193
+ await entityManager.persist(new meta_entity.RegistryMeta(currMeta));
194
+ });
195
+ }
183
196
  /** clears the db */
184
197
  async clear() {
185
198
  await this.entityManager.transactional(async (entityManager) => {
@@ -207,5 +220,5 @@ exports.AbstractRegistryService = tslib.__decorate([
207
220
  key_storage.RegistryKeyStorageService,
208
221
  operator_fetch.RegistryOperatorFetchService,
209
222
  operator_storage.RegistryOperatorStorageService,
210
- core.EntityManager, Object])
223
+ knex.EntityManager, Object])
211
224
  ], exports.AbstractRegistryService);
@@ -30,6 +30,7 @@ exports.KeyRegistryModule = KeyRegistryModule_1 = class KeyRegistryModule {
30
30
  useValue: options,
31
31
  },
32
32
  ],
33
+ exports: [registryFetch_module.RegistryFetchModule],
33
34
  };
34
35
  }
35
36
  static forFeatureAsync(options) {
@@ -45,6 +46,7 @@ exports.KeyRegistryModule = KeyRegistryModule_1 = class KeyRegistryModule {
45
46
  useFactory: options.useFactory,
46
47
  },
47
48
  ],
49
+ exports: [registryFetch_module.RegistryFetchModule],
48
50
  };
49
51
  }
50
52
  };
@@ -52,6 +54,6 @@ exports.KeyRegistryModule = KeyRegistryModule_1 = tslib.__decorate([
52
54
  common.Module({
53
55
  imports: [registryStorage_module.RegistryStorageModule],
54
56
  providers: [keyRegistry_service.KeyRegistryService],
55
- exports: [keyRegistry_service.KeyRegistryService],
57
+ exports: [keyRegistry_service.KeyRegistryService, registryStorage_module.RegistryStorageModule],
56
58
  })
57
59
  ], exports.KeyRegistryModule);
@@ -30,6 +30,7 @@ exports.ValidatorRegistryModule = ValidatorRegistryModule_1 = class ValidatorReg
30
30
  useValue: options,
31
31
  },
32
32
  ],
33
+ exports: [registryFetch_module.RegistryFetchModule],
33
34
  };
34
35
  }
35
36
  static forFeatureAsync(options) {
@@ -45,6 +46,7 @@ exports.ValidatorRegistryModule = ValidatorRegistryModule_1 = class ValidatorReg
45
46
  useFactory: options.useFactory,
46
47
  },
47
48
  ],
49
+ exports: [registryFetch_module.RegistryFetchModule],
48
50
  };
49
51
  }
50
52
  };
@@ -52,6 +54,6 @@ exports.ValidatorRegistryModule = ValidatorRegistryModule_1 = tslib.__decorate([
52
54
  common.Module({
53
55
  imports: [registryStorage_module.RegistryStorageModule],
54
56
  providers: [validatorRegistry_service.ValidatorRegistryService],
55
- exports: [validatorRegistry_service.ValidatorRegistryService],
57
+ exports: [validatorRegistry_service.ValidatorRegistryService, registryStorage_module.RegistryStorageModule],
56
58
  })
57
59
  ], exports.ValidatorRegistryModule);
@@ -1,4 +1,4 @@
1
- import { EntityRepository } from '@mikro-orm/core';
1
+ import { EntityRepository } from '@mikro-orm/knex';
2
2
  import { RegistryKey } from './key.entity';
3
3
  export declare class RegistryKeyRepository extends EntityRepository<RegistryKey> {
4
4
  }
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var core = require('@mikro-orm/core');
5
+ var knex = require('@mikro-orm/knex');
6
6
 
7
- class RegistryKeyRepository extends core.EntityRepository {
7
+ class RegistryKeyRepository extends knex.EntityRepository {
8
8
  }
9
9
 
10
10
  exports.RegistryKeyRepository = RegistryKeyRepository;
@@ -1,4 +1,4 @@
1
- import { EntityRepository } from '@mikro-orm/core';
1
+ import { EntityRepository } from '@mikro-orm/knex';
2
2
  import { RegistryMeta } from './meta.entity';
3
3
  export declare class RegistryMetaRepository extends EntityRepository<RegistryMeta> {
4
4
  }
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var core = require('@mikro-orm/core');
5
+ var knex = require('@mikro-orm/knex');
6
6
 
7
- class RegistryMetaRepository extends core.EntityRepository {
7
+ class RegistryMetaRepository extends knex.EntityRepository {
8
8
  }
9
9
 
10
10
  exports.RegistryMetaRepository = RegistryMetaRepository;
@@ -1,4 +1,4 @@
1
- import { EntityRepository } from '@mikro-orm/core';
1
+ import { EntityRepository } from '@mikro-orm/knex';
2
2
  import { RegistryOperator } from './operator.entity';
3
3
  export declare class RegistryOperatorRepository extends EntityRepository<RegistryOperator> {
4
4
  }
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var core = require('@mikro-orm/core');
5
+ var knex = require('@mikro-orm/knex');
6
6
 
7
- class RegistryOperatorRepository extends core.EntityRepository {
7
+ class RegistryOperatorRepository extends knex.EntityRepository {
8
8
  }
9
9
 
10
10
  exports.RegistryOperatorRepository = RegistryOperatorRepository;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lido-nestjs/registry",
3
- "version": "1.1.0",
3
+ "version": "1.1.3",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
@@ -36,6 +36,7 @@
36
36
  },
37
37
  "peerDependencies": {
38
38
  "@mikro-orm/core": "^5.2.0",
39
+ "@mikro-orm/knex": "^5.2.0",
39
40
  "@mikro-orm/nestjs": "^5.0.2",
40
41
  "@nestjs/common": "^8.2.5",
41
42
  "@nestjs/core": "^8.2.5",
@@ -46,6 +47,7 @@
46
47
  "devDependencies": {
47
48
  "@lido-nestjs/execution": "1.7.0",
48
49
  "@mikro-orm/core": "^5.2.0",
50
+ "@mikro-orm/knex": "^5.2.0",
49
51
  "@mikro-orm/nestjs": "^5.0.2",
50
52
  "@mikro-orm/sqlite": "^5.2.0",
51
53
  "@nestjs/common": "^8.2.5",