Fix server lint

This commit is contained in:
Chocobozzz 2022-11-15 15:00:19 +01:00
parent 4638cd713d
commit 99b757488c
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
19 changed files with 28 additions and 22 deletions

View File

@ -4,6 +4,7 @@ import { scheduleRefreshIfNeeded } from '@server/lib/activitypub/playlists'
import { Hooks } from '@server/lib/plugins/hooks'
import { getServerActor } from '@server/models/application/application'
import { MVideoPlaylistFull, MVideoPlaylistThumbnail, MVideoThumbnail } from '@server/types/models'
import { forceNumber } from '@shared/core-utils'
import { uuidToShort } from '@shared/extra-utils'
import { VideoPlaylistCreateResult, VideoPlaylistElementCreateResult } from '@shared/models'
import { HttpStatusCode } from '../../../shared/models/http/http-error-codes'
@ -46,7 +47,6 @@ import {
import { AccountModel } from '../../models/account/account'
import { VideoPlaylistModel } from '../../models/video/video-playlist'
import { VideoPlaylistElementModel } from '../../models/video/video-playlist-element'
import { forceNumber } from '@shared/core-utils'
const reqThumbnailFile = createReqFiles([ 'thumbnailfile' ], MIMETYPES.IMAGE.MIMETYPE_EXT)
@ -425,7 +425,13 @@ async function reorderVideosPlaylist (req: express.Request, res: express.Respons
const endOldPosition = oldPosition + reorderLength - 1
// Insert our reordered elements in their place (update)
await VideoPlaylistElementModel.reassignPositionOf({ videoPlaylistId: videoPlaylist.id, firstPosition: oldPosition, endPosition: endOldPosition, newPosition, transaction: t })
await VideoPlaylistElementModel.reassignPositionOf({
videoPlaylistId: videoPlaylist.id,
firstPosition: oldPosition,
endPosition: endOldPosition,
newPosition,
transaction: t
})
// Decrease positions of elements after the old position of our ordered elements (decrease)
await VideoPlaylistElementModel.increasePositionOf(videoPlaylist.id, oldPosition, -reorderLength, t)

View File

@ -86,7 +86,7 @@ function isFileValid (options: {
// The file exists
const file = fileArray[0]
if (!file || !file.originalname) return false
if (!file?.originalname) return false
// Check size
if ((maxSize !== null) && file.size > maxSize) return false

View File

@ -38,7 +38,7 @@ function getFFmpegVersion () {
return execPromise(`${ffmpegPath} -version`)
.then(stdout => {
const parsed = stdout.match(/ffmpeg version .?(\d+\.\d+(\.\d+)?)/)
if (!parsed || !parsed[1]) return rej(new Error(`Could not find ffmpeg version in ${stdout}`))
if (!parsed?.[1]) return rej(new Error(`Could not find ffmpeg version in ${stdout}`))
// Fix ffmpeg version that does not include patch version (4.4 for example)
let version = parsed[1]

View File

@ -77,7 +77,7 @@ class YoutubeDLWrapper {
const subtitles = files.reduce((acc, filename) => {
const matched = filename.match(/\.([a-z]{2})(-[a-z]+)?\.(vtt|ttml)/i)
if (!matched || !matched[1]) return acc
if (!matched?.[1]) return acc
return [
...acc,

View File

@ -711,7 +711,7 @@ const PREVIEWS_SIZE = {
height: 480,
minWidth: 400
}
const ACTOR_IMAGES_SIZE: { [key in ActorImageType]: { width: number, height: number }[]} = {
const ACTOR_IMAGES_SIZE: { [key in ActorImageType]: { width: number, height: number }[] } = {
[ActorImageType.AVATAR]: [
{
width: 120,

View File

@ -57,7 +57,7 @@ export {
async function addVideoShare (shareUrl: string, video: MVideoId) {
const { body } = await doJSONRequest<any>(shareUrl, { activityPub: true })
if (!body || !body.actor) throw new Error('Body or body actor is invalid')
if (!body?.actor) throw new Error('Body or body actor is invalid')
const actorUrl = getAPId(body.actor)
if (checkUrlsSameHost(shareUrl, actorUrl) !== true) {

View File

@ -88,7 +88,7 @@ async function updateObjectIfNeeded <T> (options: {
const { body } = await doJSONRequest<any>(url, { activityPub: true })
// If not same id, check same host and update
if (!body || !body.id || !bodyValidator(body)) throw new Error(`Body or body id of ${url} is invalid`)
if (!body?.id || !bodyValidator(body)) throw new Error(`Body or body id of ${url} is invalid`)
if (body.type === 'Tombstone') {
return on404OrTombstone()

View File

@ -107,7 +107,7 @@ async function processYoutubeDLImport (job: Job, videoImport: MVideoImportDefaul
async function getVideoImportOrDie (payload: VideoImportPayload) {
const videoImport = await VideoImportModel.loadAndPopulateVideo(payload.videoImportId)
if (!videoImport || !videoImport.Video) {
if (!videoImport?.Video) {
throw new Error(`Cannot import video ${payload.videoImportId}: the video import or video linked to this import does not exist anymore.`)
}

View File

@ -220,7 +220,7 @@ async function createAbuse (options: {
base: FilteredModelAttributes<AbuseModel>
reporterAccount: MAccountDefault
flaggedAccount: MAccountLight
associateFun: (abuseInstance: MAbuseFull) => Promise<{ isOwned: boolean} >
associateFun: (abuseInstance: MAbuseFull) => Promise<{ isOwned: boolean }>
skipNotification: boolean
transaction: Transaction
}) {

View File

@ -33,7 +33,7 @@ export class PluginsCheckScheduler extends AbstractScheduler {
const chunks = chunk(plugins, 10)
for (const chunk of chunks) {
// Find plugins according to their npm name
const pluginIndex: { [npmName: string]: PluginModel} = {}
const pluginIndex: { [npmName: string]: PluginModel } = {}
for (const plugin of chunk) {
pluginIndex[PluginModel.buildNpmName(plugin.name, plugin.type)] = plugin
}

View File

@ -125,7 +125,7 @@ async function checkJsonLDSignature (req: Request, res: Response) {
return wrapWithSpanAndContext('peertube.activitypub.JSONLDSignature', async () => {
const signatureObject: ActivityPubSignature = req.body.signature
if (!signatureObject || !signatureObject.creator) {
if (!signatureObject?.creator) {
res.fail({
status: HttpStatusCode.FORBIDDEN_403,
message: 'Object and creator signature do not match'

View File

@ -1,6 +1,6 @@
import { arrayify } from '@shared/core-utils'
import express from 'express'
import { body, param, query } from 'express-validator'
import { arrayify } from '@shared/core-utils'
import { HttpStatusCode } from '../../../shared/models/http/http-error-codes'
import { areValidActorHandles, isValidActorHandle } from '../../helpers/custom-validators/activitypub/actor'
import { WEBSERVER } from '../../initializers/constants'
@ -60,7 +60,7 @@ const userSubscriptionGetValidator = [
state: 'accepted'
})
if (!subscription || !subscription.ActorFollowing.VideoChannel) {
if (!subscription?.ActorFollowing.VideoChannel) {
return res.fail({
status: HttpStatusCode.NOT_FOUND_404,
message: `Subscription ${req.params.uri} not found.`

View File

@ -436,7 +436,7 @@ export class AbuseModel extends Model<Partial<AttributesOnly<AbuseModel>>> {
buildBaseVideoCommentAbuse (this: MAbuseUserFormattable) {
// Associated video comment could have been destroyed if the video has been deleted
if (!this.VideoCommentAbuse || !this.VideoCommentAbuse.VideoComment) return null
if (!this.VideoCommentAbuse?.VideoComment) return null
const entity = this.VideoCommentAbuse.VideoComment

View File

@ -122,7 +122,7 @@ export class PluginModel extends Model<Partial<AttributesOnly<PluginModel>>> {
return PluginModel.findOne(query)
.then(p => {
if (!p || !p.settings || p.settings === undefined) {
if (!p?.settings || p.settings === undefined) {
const registered = registeredSettings.find(s => s.name === settingName)
if (!registered || registered.default === undefined) return undefined
@ -152,7 +152,7 @@ export class PluginModel extends Model<Partial<AttributesOnly<PluginModel>>> {
const result: SettingEntries = {}
for (const name of settingNames) {
if (!p || !p.settings || p.settings[name] === undefined) {
if (!p?.settings || p.settings[name] === undefined) {
const registered = registeredSettings.find(s => s.name === name)
if (registered?.default !== undefined) {

View File

@ -58,7 +58,7 @@ export type VideoFormattingJSONOptions = {
}
function guessAdditionalAttributesFromQuery (query: VideosCommonQueryAfterSanitize): VideoFormattingJSONOptions {
if (!query || !query.include) return {}
if (!query?.include) return {}
return {
additionalAttributes: {

View File

@ -302,7 +302,7 @@ export class AbstractVideoQueryBuilder extends AbstractRunQuery {
}
protected buildAttributesObject (prefixKey: string, attributeKeys: string[]) {
const result: { [id: string]: string} = {}
const result: { [id: string]: string } = {}
const prefixValue = prefixKey.replace(/->/g, '.')

View File

@ -130,7 +130,7 @@ describe('Fast restream in live', function () {
})
it('Should correctly fast reastream in a permanent live with and without save replay', async function () {
this.timeout(240000)
this.timeout(480000)
// A test can take a long time, so prefer to run them in parallel
await Promise.all([

View File

@ -82,7 +82,7 @@ export function isDefaultLocale (locale: string) {
}
export function peertubeTranslate (str: string, translations?: { [ id: string ]: string }) {
if (!translations || !translations[str]) return str
if (!translations?.[str]) return str
return translations[str]
}

View File

@ -259,7 +259,7 @@ export class PeerTubeServer {
const onPeerTubeExit = () => rej(new Error('Process exited:\n' + aggregatedLogs))
const onParentExit = () => {
if (!this.app || !this.app.pid) return
if (!this.app?.pid) return
try {
process.kill(self.app.pid)