085d099040
Edited code to be ES6, added eslint and some basic linting configuration,(also includes husky for auto eslint before push)
63 lines
1.9 KiB
JavaScript
63 lines
1.9 KiB
JavaScript
const isFreePublicClaim = require('./isFreePublicClaim.js')
|
|
const lbryApi = require('../libraries/lbryApi.js')
|
|
|
|
function filterForFreePublicClaims (claimsListArray) {
|
|
// console.log("claims list:", claimsListArray)
|
|
if (!claimsListArray) {
|
|
return null
|
|
}
|
|
const freePublicClaims = claimsListArray.filter(claim => {
|
|
if (!claim.value) {
|
|
return false
|
|
}
|
|
return isFreePublicClaim(claim)
|
|
})
|
|
return freePublicClaims
|
|
}
|
|
|
|
function orderTopClaims (claimsListArray) {
|
|
console.log('>> orderTopClaims')
|
|
claimsListArray.sort(({ amountA, heightA }, { amountB, heightB }) => {
|
|
if (amountA === amountB) {
|
|
return heightA > heightB
|
|
} else {
|
|
return amountA < amountB
|
|
}
|
|
})
|
|
return claimsListArray
|
|
}
|
|
|
|
module.exports = claimName => {
|
|
const deferred = new Promise((resolve, reject) => {
|
|
// make a call to the daemon to get the claims list
|
|
lbryApi
|
|
.getClaimsList(claimName)
|
|
.then(({ claims }) => {
|
|
const claimsList = claims
|
|
console.log('>> Number of claims:', claimsList.length)
|
|
// return early if no claims were found
|
|
if (claimsList.length === 0) {
|
|
reject('NO_CLAIMS')
|
|
console.log('exiting due to lack of claims')
|
|
return
|
|
}
|
|
// filter the claims to return only free, public claims
|
|
const freePublicClaims = filterForFreePublicClaims(claimsList)
|
|
// return early if no free, public claims were found
|
|
if (!freePublicClaims || freePublicClaims.length === 0) {
|
|
reject('NO_FREE_PUBLIC_CLAIMS')
|
|
console.log('exiting due to lack of free or public claims')
|
|
return
|
|
}
|
|
// order the claims
|
|
const orderedPublicClaims = orderTopClaims(freePublicClaims)
|
|
// resolve the promise
|
|
resolve(orderedPublicClaims)
|
|
})
|
|
.catch(error => {
|
|
console.log(">> 'claim_list' error")
|
|
reject(error)
|
|
})
|
|
})
|
|
return deferred
|
|
}
|