+import decache from 'decache'
import * as express from 'express'
import { createReadStream, createWriteStream } from 'fs'
import { outputFile, readJSON } from 'fs-extra'
import { RegisterHelpers } from './register-helpers'
import { installNpmPlugin, installNpmPluginFromDisk, removeNpmPlugin } from './yarn'
-const decache = require('decache')
-
export interface RegisteredPlugin {
npmName: string
name: string
return plugin
}
- async update (toUpdate: string, version?: string, fromDisk = false) {
+ async update (toUpdate: string, fromDisk = false) {
const npmName = fromDisk ? basename(toUpdate) : toUpdate
logger.info('Updating plugin %s.', npmName)
+ // Use the latest version from DB, to not upgrade to a version that does not support our PeerTube version
+ let version: string
+ if (!fromDisk) {
+ const plugin = await PluginModel.loadByNpmName(toUpdate)
+ version = plugin.latestVersion
+ }
+
// Unregister old hooks
await this.unregister(npmName)