X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Flib%2Fplugins%2Fplugin-index.ts;h=119cee8e0647e9fef5a0d941a791d4974dcadddf;hb=5a05c14573ca3c0d16b77bef78d845f96c8c6497;hp=dcdfba28c53092a077d10a59a575c73f27eca5ae;hpb=134cf2bce96a8c5aefd55154e884964975d8cf23;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/lib/plugins/plugin-index.ts b/server/lib/plugins/plugin-index.ts index dcdfba28c..119cee8e0 100644 --- a/server/lib/plugins/plugin-index.ts +++ b/server/lib/plugins/plugin-index.ts @@ -1,21 +1,22 @@ -import { doRequest } from '../../helpers/requests' -import { CONFIG } from '../../initializers/config' +import { sanitizeUrl } from '@server/helpers/core-utils' +import { logger } from '@server/helpers/logger' +import { doJSONRequest } from '@server/helpers/requests' +import { CONFIG } from '@server/initializers/config' +import { PEERTUBE_VERSION } from '@server/initializers/constants' +import { PluginModel } from '@server/models/server/plugin' import { + PeerTubePluginIndex, + PeertubePluginIndexList, PeertubePluginLatestVersionRequest, - PeertubePluginLatestVersionResponse -} from '../../../shared/models/plugins/peertube-plugin-latest-version.model' -import { PeertubePluginIndexList } from '../../../shared/models/plugins/peertube-plugin-index-list.model' -import { ResultList } from '../../../shared/models' -import { PeerTubePluginIndex } from '../../../shared/models/plugins/peertube-plugin-index.model' -import { PluginModel } from '../../models/server/plugin' + PeertubePluginLatestVersionResponse, + ResultList +} from '@shared/models' import { PluginManager } from './plugin-manager' -import { logger } from '../../helpers/logger' -import { PEERTUBE_VERSION } from '../../initializers/constants' async function listAvailablePluginsFromIndex (options: PeertubePluginIndexList) { const { start = 0, count = 20, search, sort = 'npmName', pluginType } = options - const qs: PeertubePluginIndexList = { + const searchParams: PeertubePluginIndexList & Record = { start, count, sort, @@ -27,7 +28,7 @@ async function listAvailablePluginsFromIndex (options: PeertubePluginIndexList) const uri = CONFIG.PLUGINS.INDEX.URL + '/api/v1/plugins' try { - const { body } = await doRequest({ uri, qs, json: true }) + const { body } = await doJSONRequest(uri, { searchParams }) logger.debug('Got result from PeerTube index.', { body }) @@ -55,14 +56,30 @@ async function getLatestPluginsVersion (npmNames: string[]): Promise(uri, options) return body } +async function getLatestPluginVersion (npmName: string) { + const results = await getLatestPluginsVersion([ npmName ]) + + if (Array.isArray(results) === false || results.length !== 1) { + logger.warn('Cannot get latest supported plugin version of %s.', npmName) + return undefined + } + + return results[0].latestVersion +} + export { listAvailablePluginsFromIndex, + getLatestPluginVersion, getLatestPluginsVersion }