convert some service classes to static props, run [depfu discourse docker] (#5540)
* refactor(depfu): convert to static props * refactor(discourse): convert to static props * refactor(docker): convert to static props
This commit is contained in:
@@ -9,33 +9,20 @@ const depfuSchema = Joi.object({
|
||||
}).required()
|
||||
|
||||
module.exports = class Depfu extends BaseJsonService {
|
||||
static get category() {
|
||||
return 'dependencies'
|
||||
}
|
||||
static category = 'dependencies'
|
||||
static route = { base: 'depfu', pattern: ':user/:repo' }
|
||||
static examples = [
|
||||
{
|
||||
title: 'Depfu',
|
||||
namedParams: { user: 'depfu', repo: 'example-ruby' },
|
||||
staticPreview: this.render({
|
||||
text: 'recent',
|
||||
colorscheme: 'brightgreen',
|
||||
}),
|
||||
},
|
||||
]
|
||||
|
||||
static get route() {
|
||||
return {
|
||||
base: 'depfu',
|
||||
pattern: ':user/:repo',
|
||||
}
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'Depfu',
|
||||
namedParams: { user: 'depfu', repo: 'example-ruby' },
|
||||
staticPreview: this.render({
|
||||
text: 'recent',
|
||||
colorscheme: 'brightgreen',
|
||||
}),
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'dependencies' }
|
||||
}
|
||||
static defaultBadgeData = { label: 'dependencies' }
|
||||
|
||||
static render({ text, colorscheme }) {
|
||||
return {
|
||||
|
||||
@@ -18,9 +18,7 @@ const queryParamSchema = Joi.object({
|
||||
}).required()
|
||||
|
||||
class DiscourseBase extends BaseJsonService {
|
||||
static get category() {
|
||||
return 'chat'
|
||||
}
|
||||
static category = 'chat'
|
||||
|
||||
static buildRoute(metric) {
|
||||
return {
|
||||
@@ -30,9 +28,7 @@ class DiscourseBase extends BaseJsonService {
|
||||
}
|
||||
}
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'discourse' }
|
||||
}
|
||||
static defaultBadgeData = { label: 'discourse' }
|
||||
|
||||
async fetch({ server }) {
|
||||
return this._requestJson({
|
||||
@@ -44,28 +40,21 @@ class DiscourseBase extends BaseJsonService {
|
||||
|
||||
function DiscourseMetricIntegrationFactory({ metricName, property }) {
|
||||
return class DiscourseMetric extends DiscourseBase {
|
||||
static get name() {
|
||||
// The space is needed so we get 'DiscourseTopics' rather than
|
||||
// 'Discoursetopics'. `camelcase()` removes it.
|
||||
return camelcase(`Discourse ${metricName}`, { pascalCase: true })
|
||||
}
|
||||
// The space is needed so we get 'DiscourseTopics' rather than
|
||||
// 'Discoursetopics'. `camelcase()` removes it.
|
||||
static name = camelcase(`Discourse ${metricName}`, { pascalCase: true })
|
||||
static route = this.buildRoute(metricName)
|
||||
|
||||
static get route() {
|
||||
return this.buildRoute(metricName)
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: `Discourse ${metricName}`,
|
||||
namedParams: {},
|
||||
queryParams: {
|
||||
server: 'https://meta.discourse.org',
|
||||
},
|
||||
staticPreview: this.render({ stat: 100 }),
|
||||
static examples = [
|
||||
{
|
||||
title: `Discourse ${metricName}`,
|
||||
namedParams: {},
|
||||
queryParams: {
|
||||
server: 'https://meta.discourse.org',
|
||||
},
|
||||
]
|
||||
}
|
||||
staticPreview: this.render({ stat: 100 }),
|
||||
},
|
||||
]
|
||||
|
||||
static render({ stat }) {
|
||||
return {
|
||||
@@ -82,22 +71,17 @@ function DiscourseMetricIntegrationFactory({ metricName, property }) {
|
||||
}
|
||||
|
||||
class DiscourseStatus extends DiscourseBase {
|
||||
static get route() {
|
||||
return this.buildRoute('status')
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: `Discourse status`,
|
||||
namedParams: {},
|
||||
queryParams: {
|
||||
server: 'https://meta.discourse.org',
|
||||
},
|
||||
staticPreview: this.render(),
|
||||
static route = this.buildRoute('status')
|
||||
static examples = [
|
||||
{
|
||||
title: `Discourse status`,
|
||||
namedParams: {},
|
||||
queryParams: {
|
||||
server: 'https://meta.discourse.org',
|
||||
},
|
||||
]
|
||||
}
|
||||
staticPreview: this.render(),
|
||||
},
|
||||
]
|
||||
|
||||
static render() {
|
||||
return {
|
||||
|
||||
@@ -13,30 +13,20 @@ const automatedBuildSchema = Joi.object({
|
||||
}).required()
|
||||
|
||||
module.exports = class DockerAutomatedBuild extends BaseJsonService {
|
||||
static get category() {
|
||||
return 'build'
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return buildDockerUrl('automated')
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'Docker Automated build',
|
||||
namedParams: {
|
||||
user: 'jrottenberg',
|
||||
repo: 'ffmpeg',
|
||||
},
|
||||
staticPreview: this.render({ isAutomated: true }),
|
||||
static category = 'build'
|
||||
static route = buildDockerUrl('automated')
|
||||
static examples = [
|
||||
{
|
||||
title: 'Docker Automated build',
|
||||
namedParams: {
|
||||
user: 'jrottenberg',
|
||||
repo: 'ffmpeg',
|
||||
},
|
||||
]
|
||||
}
|
||||
staticPreview: this.render({ isAutomated: true }),
|
||||
},
|
||||
]
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'docker build' }
|
||||
}
|
||||
static defaultBadgeData = { label: 'docker build' }
|
||||
|
||||
static render({ isAutomated }) {
|
||||
if (isAutomated) {
|
||||
|
||||
@@ -16,30 +16,20 @@ const buildSchema = Joi.object({
|
||||
}).required()
|
||||
|
||||
module.exports = class DockerBuild extends BaseJsonService {
|
||||
static get category() {
|
||||
return 'build'
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return buildDockerUrl('build')
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'Docker Build Status',
|
||||
namedParams: {
|
||||
user: 'jrottenberg',
|
||||
repo: 'ffmpeg',
|
||||
},
|
||||
staticPreview: this.render({ status: 10 }),
|
||||
static category = 'build'
|
||||
static route = buildDockerUrl('build')
|
||||
static examples = [
|
||||
{
|
||||
title: 'Docker Build Status',
|
||||
namedParams: {
|
||||
user: 'jrottenberg',
|
||||
repo: 'ffmpeg',
|
||||
},
|
||||
]
|
||||
}
|
||||
staticPreview: this.render({ status: 10 }),
|
||||
},
|
||||
]
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'docker build' }
|
||||
}
|
||||
static defaultBadgeData = { label: 'docker build' }
|
||||
|
||||
static render({ status }) {
|
||||
if (status === 10) {
|
||||
|
||||
@@ -5,32 +5,21 @@ const { dockerBlue, buildDockerUrl } = require('./docker-helpers')
|
||||
const { fetchBuild } = require('./docker-cloud-common-fetch')
|
||||
|
||||
module.exports = class DockerCloudAutomatedBuild extends BaseJsonService {
|
||||
static get category() {
|
||||
return 'build'
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return buildDockerUrl('cloud/automated')
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'Docker Cloud Automated build',
|
||||
documentation:
|
||||
'<p>For the new Docker Hub (https://cloud.docker.com)</p>',
|
||||
namedParams: {
|
||||
user: 'jrottenberg',
|
||||
repo: 'ffmpeg',
|
||||
},
|
||||
staticPreview: this.render({ buildSettings: ['test'] }),
|
||||
static category = 'build'
|
||||
static route = buildDockerUrl('cloud/automated')
|
||||
static examples = [
|
||||
{
|
||||
title: 'Docker Cloud Automated build',
|
||||
documentation: '<p>For the new Docker Hub (https://cloud.docker.com)</p>',
|
||||
namedParams: {
|
||||
user: 'jrottenberg',
|
||||
repo: 'ffmpeg',
|
||||
},
|
||||
]
|
||||
}
|
||||
staticPreview: this.render({ buildSettings: ['test'] }),
|
||||
},
|
||||
]
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'docker build' }
|
||||
}
|
||||
static defaultBadgeData = { label: 'docker build' }
|
||||
|
||||
static render({ buildSettings }) {
|
||||
if (buildSettings.length >= 1) {
|
||||
|
||||
@@ -5,32 +5,21 @@ const { dockerBlue, buildDockerUrl } = require('./docker-helpers')
|
||||
const { fetchBuild } = require('./docker-cloud-common-fetch')
|
||||
|
||||
module.exports = class DockerCloudBuild extends BaseJsonService {
|
||||
static get category() {
|
||||
return 'build'
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return buildDockerUrl('cloud/build')
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'Docker Cloud Build Status',
|
||||
documentation:
|
||||
'<p>For the new Docker Hub (https://cloud.docker.com)</p>',
|
||||
namedParams: {
|
||||
user: 'jrottenberg',
|
||||
repo: 'ffmpeg',
|
||||
},
|
||||
staticPreview: this.render({ state: 'Success' }),
|
||||
static category = 'build'
|
||||
static route = buildDockerUrl('cloud/build')
|
||||
static examples = [
|
||||
{
|
||||
title: 'Docker Cloud Build Status',
|
||||
documentation: '<p>For the new Docker Hub (https://cloud.docker.com)</p>',
|
||||
namedParams: {
|
||||
user: 'jrottenberg',
|
||||
repo: 'ffmpeg',
|
||||
},
|
||||
]
|
||||
}
|
||||
staticPreview: this.render({ state: 'Success' }),
|
||||
},
|
||||
]
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'docker build' }
|
||||
}
|
||||
static defaultBadgeData = { label: 'docker build' }
|
||||
|
||||
static render({ state }) {
|
||||
if (state === 'Success') {
|
||||
|
||||
@@ -15,30 +15,20 @@ const pullsSchema = Joi.object({
|
||||
}).required()
|
||||
|
||||
module.exports = class DockerPulls extends BaseJsonService {
|
||||
static get category() {
|
||||
return 'downloads'
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return buildDockerUrl('pulls')
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'Docker Pulls',
|
||||
namedParams: {
|
||||
user: '_',
|
||||
repo: 'ubuntu',
|
||||
},
|
||||
staticPreview: this.render({ count: 765400000 }),
|
||||
static category = 'downloads'
|
||||
static route = buildDockerUrl('pulls')
|
||||
static examples = [
|
||||
{
|
||||
title: 'Docker Pulls',
|
||||
namedParams: {
|
||||
user: '_',
|
||||
repo: 'ubuntu',
|
||||
},
|
||||
]
|
||||
}
|
||||
staticPreview: this.render({ count: 765400000 }),
|
||||
},
|
||||
]
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'docker pulls' }
|
||||
}
|
||||
static defaultBadgeData = { label: 'docker pulls' }
|
||||
|
||||
static render({ count }) {
|
||||
return {
|
||||
|
||||
@@ -31,45 +31,32 @@ const queryParamSchema = Joi.object({
|
||||
}).required()
|
||||
|
||||
module.exports = class DockerSize extends BaseJsonService {
|
||||
static get category() {
|
||||
return 'size'
|
||||
}
|
||||
static category = 'size'
|
||||
static route = { ...buildDockerUrl('image-size', true), queryParamSchema }
|
||||
static examples = [
|
||||
{
|
||||
title: 'Docker Image Size (latest by date)',
|
||||
pattern: ':user/:repo',
|
||||
namedParams: { user: 'fedora', repo: 'apache' },
|
||||
queryParams: { sort: 'date' },
|
||||
staticPreview: this.render({ size: 126000000 }),
|
||||
},
|
||||
{
|
||||
title: 'Docker Image Size (latest semver)',
|
||||
pattern: ':user/:repo',
|
||||
namedParams: { user: 'fedora', repo: 'apache' },
|
||||
queryParams: { sort: 'semver' },
|
||||
staticPreview: this.render({ size: 136000000 }),
|
||||
},
|
||||
{
|
||||
title: 'Docker Image Size (tag)',
|
||||
pattern: ':user/:repo/:tag',
|
||||
namedParams: { user: 'fedora', repo: 'apache', tag: 'latest' },
|
||||
staticPreview: this.render({ size: 103000000 }),
|
||||
},
|
||||
]
|
||||
|
||||
static get route() {
|
||||
return { ...buildDockerUrl('image-size', true), queryParamSchema }
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'Docker Image Size (latest by date)',
|
||||
pattern: ':user/:repo',
|
||||
namedParams: { user: 'fedora', repo: 'apache' },
|
||||
queryParams: { sort: 'date' },
|
||||
staticPreview: this.render({ size: 126000000 }),
|
||||
},
|
||||
{
|
||||
title: 'Docker Image Size (latest semver)',
|
||||
pattern: ':user/:repo',
|
||||
namedParams: { user: 'fedora', repo: 'apache' },
|
||||
queryParams: { sort: 'semver' },
|
||||
staticPreview: this.render({ size: 136000000 }),
|
||||
},
|
||||
{
|
||||
title: 'Docker Image Size (tag)',
|
||||
pattern: ':user/:repo/:tag',
|
||||
namedParams: { user: 'fedora', repo: 'apache', tag: 'latest' },
|
||||
staticPreview: this.render({ size: 103000000 }),
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return {
|
||||
label: 'image size',
|
||||
color: 'blue',
|
||||
}
|
||||
}
|
||||
static defaultBadgeData = { label: 'image size', color: 'blue' }
|
||||
|
||||
static render({ size }) {
|
||||
return { message: prettyBytes(size) }
|
||||
|
||||
@@ -10,30 +10,20 @@ const {
|
||||
} = require('./docker-helpers')
|
||||
|
||||
module.exports = class DockerStars extends BaseService {
|
||||
static get category() {
|
||||
return 'rating'
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return buildDockerUrl('stars')
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'Docker Stars',
|
||||
namedParams: {
|
||||
user: '_',
|
||||
repo: 'ubuntu',
|
||||
},
|
||||
staticPreview: this.render({ stars: 9000 }),
|
||||
static category = 'rating'
|
||||
static route = buildDockerUrl('stars')
|
||||
static examples = [
|
||||
{
|
||||
title: 'Docker Stars',
|
||||
namedParams: {
|
||||
user: '_',
|
||||
repo: 'ubuntu',
|
||||
},
|
||||
]
|
||||
}
|
||||
staticPreview: this.render({ stars: 9000 }),
|
||||
},
|
||||
]
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'docker stars' }
|
||||
}
|
||||
static defaultBadgeData = { label: 'docker stars' }
|
||||
|
||||
static render({ stars }) {
|
||||
return {
|
||||
|
||||
@@ -31,45 +31,32 @@ const queryParamSchema = Joi.object({
|
||||
}).required()
|
||||
|
||||
module.exports = class DockerVersion extends BaseJsonService {
|
||||
static get category() {
|
||||
return 'version'
|
||||
}
|
||||
static category = 'version'
|
||||
static route = { ...buildDockerUrl('v', true), queryParamSchema }
|
||||
static examples = [
|
||||
{
|
||||
title: 'Docker Image Version (latest by date)',
|
||||
pattern: ':user/:repo',
|
||||
namedParams: { user: '_', repo: 'alpine' },
|
||||
queryParams: { sort: 'date' },
|
||||
staticPreview: this.render({ version: '3.9.5' }),
|
||||
},
|
||||
{
|
||||
title: 'Docker Image Version (latest semver)',
|
||||
pattern: ':user/:repo',
|
||||
namedParams: { user: '_', repo: 'alpine' },
|
||||
queryParams: { sort: 'semver' },
|
||||
staticPreview: this.render({ version: '3.11.3' }),
|
||||
},
|
||||
{
|
||||
title: 'Docker Image Version (tag latest semver)',
|
||||
pattern: ':user/:repo/:tag',
|
||||
namedParams: { user: '_', repo: 'alpine', tag: '3.6' },
|
||||
staticPreview: this.render({ version: '3.6.5' }),
|
||||
},
|
||||
]
|
||||
|
||||
static get route() {
|
||||
return { ...buildDockerUrl('v', true), queryParamSchema }
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'Docker Image Version (latest by date)',
|
||||
pattern: ':user/:repo',
|
||||
namedParams: { user: '_', repo: 'alpine' },
|
||||
queryParams: { sort: 'date' },
|
||||
staticPreview: this.render({ version: '3.9.5' }),
|
||||
},
|
||||
{
|
||||
title: 'Docker Image Version (latest semver)',
|
||||
pattern: ':user/:repo',
|
||||
namedParams: { user: '_', repo: 'alpine' },
|
||||
queryParams: { sort: 'semver' },
|
||||
staticPreview: this.render({ version: '3.11.3' }),
|
||||
},
|
||||
{
|
||||
title: 'Docker Image Version (tag latest semver)',
|
||||
pattern: ':user/:repo/:tag',
|
||||
namedParams: { user: '_', repo: 'alpine', tag: '3.6' },
|
||||
staticPreview: this.render({ version: '3.6.5' }),
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return {
|
||||
label: 'version',
|
||||
color: 'blue',
|
||||
}
|
||||
}
|
||||
static defaultBadgeData = { label: 'version', color: 'blue' }
|
||||
|
||||
static render({ version }) {
|
||||
return renderVersionBadge({ version })
|
||||
|
||||
Reference in New Issue
Block a user