@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.
- package/dist/main/abstract-registry.d.ts +3 -1
- package/dist/main/abstract-registry.js +29 -16
- package/dist/main/key-registry/key-registry.module.js +3 -1
- package/dist/main/validator-registry/validator-registry.module.js +3 -1
- package/dist/storage/key.repository.d.ts +1 -1
- package/dist/storage/key.repository.js +2 -2
- package/dist/storage/meta.repository.d.ts +1 -1
- package/dist/storage/meta.repository.js +2 -2
- package/dist/storage/operator.repository.d.ts +1 -1
- package/dist/storage/operator.repository.js +2 -2
- package/package.json +3 -1
|
@@ -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/
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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);
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var knex = require('@mikro-orm/knex');
|
|
6
6
|
|
|
7
|
-
class RegistryKeyRepository extends
|
|
7
|
+
class RegistryKeyRepository extends knex.EntityRepository {
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
exports.RegistryKeyRepository = RegistryKeyRepository;
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var knex = require('@mikro-orm/knex');
|
|
6
6
|
|
|
7
|
-
class RegistryMetaRepository extends
|
|
7
|
+
class RegistryMetaRepository extends knex.EntityRepository {
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
exports.RegistryMetaRepository = RegistryMetaRepository;
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var knex = require('@mikro-orm/knex');
|
|
6
6
|
|
|
7
|
-
class RegistryOperatorRepository extends
|
|
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.
|
|
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",
|