@ocap/indexdb-memory 1.18.92 → 1.18.94
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/db/base.js +51 -1
- package/package.json +5 -5
package/lib/db/base.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/* eslint-disable newline-per-chained-call */
|
2
2
|
const { BN } = require('@ocap/util');
|
3
3
|
const { BaseIndexDB } = require('@ocap/indexdb');
|
4
|
-
const { formatPagination, formatNextPagination } = require('@ocap/indexdb/lib/util');
|
4
|
+
const { formatPagination, formatNextPagination, formatDelegationAfterRead } = require('@ocap/indexdb/lib/util');
|
5
5
|
const { parseDateTime } = require('@ocap/indexdb/lib/util');
|
6
6
|
const { DEFAULT_TOKEN_DECIMAL } = require('@ocap/util/lib/constant');
|
7
7
|
const { toChecksumAddress } = require('@arcblock/did/lib/type');
|
@@ -499,6 +499,56 @@ class LocalBaseIndexDB extends BaseIndexDB {
|
|
499
499
|
|
500
500
|
return { validators, paging: nextPaging };
|
501
501
|
}
|
502
|
+
|
503
|
+
listDelegations({ from, to, paging = {}, timeFilter = {} } = {}) {
|
504
|
+
if (!from && !to) {
|
505
|
+
return { delegations: [], paging: { cursor: 0, next: false, total: 0 } };
|
506
|
+
}
|
507
|
+
|
508
|
+
const query = this.delegation.collection.chain();
|
509
|
+
|
510
|
+
let { startDateTime, endDateTime, field } = timeFilter;
|
511
|
+
startDateTime = parseDateTime(startDateTime);
|
512
|
+
endDateTime = parseDateTime(endDateTime);
|
513
|
+
field = ['genesisTime', 'renaissanceTime'].includes(field) ? field : 'renaissanceTime';
|
514
|
+
|
515
|
+
const pagination = formatPagination({
|
516
|
+
paging,
|
517
|
+
defaultSortField: 'renaissanceTime',
|
518
|
+
supportedSortFields: ['genesisTime', 'renaissanceTime'],
|
519
|
+
});
|
520
|
+
|
521
|
+
if (from && to) {
|
522
|
+
query.where((x) => x.from === from && x.to === to);
|
523
|
+
} else if (from) {
|
524
|
+
query.where((x) => x.from === from);
|
525
|
+
} else if (to) {
|
526
|
+
query.where((x) => x.to === to);
|
527
|
+
}
|
528
|
+
|
529
|
+
if (startDateTime && endDateTime) {
|
530
|
+
query.where((x) => x[field] > startDateTime && x[field] <= endDateTime);
|
531
|
+
} else if (startDateTime) {
|
532
|
+
query.where((x) => x[field] > startDateTime);
|
533
|
+
} else if (endDateTime) {
|
534
|
+
query.where((x) => x[field] <= endDateTime);
|
535
|
+
}
|
536
|
+
|
537
|
+
const delegations = query
|
538
|
+
.simplesort(pagination.order.field, paging.order.type === 'desc')
|
539
|
+
.offset(pagination.cursor)
|
540
|
+
.limit(pagination.size)
|
541
|
+
.data();
|
542
|
+
|
543
|
+
const total = query.count();
|
544
|
+
const nextPaging = {
|
545
|
+
cursor: pagination.cursor + delegations.length,
|
546
|
+
next: delegations.length >= pagination.size,
|
547
|
+
total,
|
548
|
+
};
|
549
|
+
|
550
|
+
return { delegations: delegations.map(formatDelegationAfterRead), paging: nextPaging };
|
551
|
+
}
|
502
552
|
}
|
503
553
|
|
504
554
|
module.exports = LocalBaseIndexDB;
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ocap/indexdb-memory",
|
3
3
|
"description": "OCAP indexdb adapter that uses memory as backend, just for test purpose",
|
4
|
-
"version": "1.18.
|
4
|
+
"version": "1.18.94",
|
5
5
|
"author": "wangshijun <shijun@arcblock.io> (https://www.arcblock.io)",
|
6
6
|
"bugs": {
|
7
7
|
"url": "https://github.com/ArcBlock/asset-chain/issues",
|
@@ -37,11 +37,11 @@
|
|
37
37
|
"test": "jest --forceExit --detectOpenHandles",
|
38
38
|
"coverage": "npm run test -- --coverage"
|
39
39
|
},
|
40
|
-
"gitHead": "
|
40
|
+
"gitHead": "6e23a66fb0adcd1359e21b4fde180860b4c305b3",
|
41
41
|
"dependencies": {
|
42
|
-
"@arcblock/did": "1.18.
|
43
|
-
"@ocap/indexdb": "1.18.
|
44
|
-
"@ocap/util": "1.18.
|
42
|
+
"@arcblock/did": "1.18.94",
|
43
|
+
"@ocap/indexdb": "1.18.94",
|
44
|
+
"@ocap/util": "1.18.94",
|
45
45
|
"debug": "^4.3.4",
|
46
46
|
"empty-value": "^1.0.1",
|
47
47
|
"lodash": "^4.17.21",
|