Merge branch 'master' into chore/linter
# Conflicts: # lib/contracts/contribution.js # lib/contracts/contributor.js # lib/contracts/proposal.js # lib/kredits.js # lib/serializers/contributor.js # yarn.lock
This commit is contained in:
10
lib/utils/format-kredits.js
Normal file
10
lib/utils/format-kredits.js
Normal file
@@ -0,0 +1,10 @@
|
||||
const ethersUtils = require('ethers').utils;
|
||||
|
||||
module.exports = function (value, options = {}) {
|
||||
let etherValue = ethersUtils.formatEther(value);
|
||||
if (options.asFloat) {
|
||||
return parseFloat(etherValue);
|
||||
} else {
|
||||
return parseInt(etherValue);
|
||||
}
|
||||
}
|
||||
46
lib/utils/pagination.js
Normal file
46
lib/utils/pagination.js
Normal file
@@ -0,0 +1,46 @@
|
||||
function pageNumber(number, size, recordCount) {
|
||||
let numberOfPages = Math.ceil(recordCount / size);
|
||||
|
||||
number = parseInt(number) || 1;
|
||||
|
||||
// Ensure page number is in range
|
||||
number = number < 1 ? 1 : number;
|
||||
number = number > numberOfPages ? numberOfPages : number;
|
||||
|
||||
return number;
|
||||
}
|
||||
|
||||
function buildIds(order, number, size, recordCount) {
|
||||
let offset = size * (number - 1);
|
||||
|
||||
let start;
|
||||
let mapFunction;
|
||||
|
||||
if (order === 'asc') {
|
||||
start = 1 + offset;
|
||||
mapFunction = (_, i) => start + i;
|
||||
} else {
|
||||
start = recordCount - offset;
|
||||
mapFunction = (_, i) => start - i;
|
||||
}
|
||||
|
||||
// Ensure size is in range
|
||||
let end = offset + size;
|
||||
if (end > recordCount) {
|
||||
let diff = end - recordCount;
|
||||
size = size - diff;
|
||||
}
|
||||
|
||||
return Array.from({ length: size }, mapFunction);
|
||||
}
|
||||
|
||||
module.exports = function paged(recordCount, options = {}) {
|
||||
let { order, page } = options;
|
||||
order = order || 'desc';
|
||||
page = page || {};
|
||||
|
||||
let size = parseInt(page.size) || 25;
|
||||
let number = pageNumber(page.number, size, recordCount);
|
||||
|
||||
return buildIds(order, number, size, recordCount);
|
||||
};
|
||||
Reference in New Issue
Block a user