25 lines
652 B
JavaScript
25 lines
652 B
JavaScript
'use strict'
|
|
|
|
const Joi = require('@hapi/joi')
|
|
const { nonNegativeInteger, anyInteger } = require('../validators')
|
|
|
|
// API doc: https://libraries.io/api#project
|
|
const projectSchema = Joi.object({
|
|
platform: Joi.string().required(),
|
|
dependents_count: nonNegativeInteger,
|
|
dependent_repos_count: nonNegativeInteger,
|
|
rank: anyInteger,
|
|
}).required()
|
|
|
|
async function fetchProject(serviceInstance, { platform, packageName }) {
|
|
return serviceInstance._requestJson({
|
|
schema: projectSchema,
|
|
url: `https://libraries.io/api/${platform}/${packageName}`,
|
|
errorMessages: { 404: 'package not found' },
|
|
})
|
|
}
|
|
|
|
module.exports = {
|
|
fetchProject,
|
|
}
|