Files
shields/services/librariesio/librariesio-dependencies.service.js
dependabot-preview[bot] 294aa1e1df Build(deps-dev): bump eslint-plugin-import from 2.17.3 to 2.18.0; autofixes (#3671)
* Build(deps-dev): bump eslint-plugin-import from 2.17.3 to 2.18.0

Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.17.3 to 2.18.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.17.3...v2.18.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Autofixes
2019-07-08 12:13:46 -04:00

125 lines
3.0 KiB
JavaScript

'use strict'
const Joi = require('@hapi/joi')
const {
transform,
renderDependenciesBadge,
} = require('./librariesio-dependencies-helpers')
const { BaseJsonService } = require('..')
const schema = Joi.object({
dependencies: Joi.array()
.items(
Joi.object({
deprecated: Joi.boolean()
.allow(null)
.required(),
outdated: Joi.boolean()
.allow(null)
.required(),
})
)
.default([]),
}).required()
class LibrariesIoProjectDependencies extends BaseJsonService {
static get category() {
return 'dependencies'
}
static get route() {
return {
base: 'librariesio/release',
pattern: ':platform/:packageName/:version?',
}
}
static get examples() {
return [
{
title: 'Libraries.io dependency status for latest release',
pattern: ':platform/:packageName',
namedParams: {
platform: 'hex',
packageName: 'phoenix',
},
staticPreview: renderDependenciesBadge({
deprecatedCount: 0,
outdatedCount: 1,
}),
},
{
title: 'Libraries.io dependency status for specific release',
pattern: ':platform/:packageName/:version',
namedParams: {
platform: 'hex',
packageName: 'phoenix',
version: '1.0.3',
},
staticPreview: renderDependenciesBadge({
deprecatedCount: 0,
outdatedCount: 3,
}),
},
]
}
async handle({ platform, packageName, version = 'latest' }) {
const url = `https://libraries.io/api/${encodeURIComponent(
platform
)}/${encodeURIComponent(packageName)}/${encodeURIComponent(
version
)}/dependencies`
const json = await this._requestJson({
url,
schema,
errorMessages: { 404: 'package or version not found' },
})
const { deprecatedCount, outdatedCount } = transform(json)
return renderDependenciesBadge({ deprecatedCount, outdatedCount })
}
}
class LibrariesIoRepoDependencies extends BaseJsonService {
static get category() {
return 'dependencies'
}
static get route() {
return {
base: 'librariesio/github',
pattern: ':user/:repo',
}
}
static get examples() {
return [
{
title: 'Libraries.io dependency status for GitHub repo',
namedParams: {
user: 'phoenixframework',
repo: 'phoenix',
},
staticPreview: renderDependenciesBadge({ outdatedCount: 325 }),
},
]
}
async handle({ user, repo }) {
const url = `https://libraries.io/api/github/${encodeURIComponent(
user
)}/${encodeURIComponent(repo)}/dependencies`
const json = await this._requestJson({
url,
schema,
errorMessages: {
404: 'repo not found',
},
})
const { deprecatedCount, outdatedCount } = transform(json)
return renderDependenciesBadge({ deprecatedCount, outdatedCount })
}
}
module.exports = [LibrariesIoProjectDependencies, LibrariesIoRepoDependencies]