]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/helpers/custom-validators/follows.ts
Fix peertube subtitles import
[github/Chocobozzz/PeerTube.git] / server / helpers / custom-validators / follows.ts
1 import { exists, isArray } from './misc'
2 import { FollowState } from '@shared/models'
3
4 function isFollowStateValid (value: FollowState) {
5 if (!exists(value)) return false
6
7 return value === 'pending' || value === 'accepted' || value === 'rejected'
8 }
9
10 function isRemoteHandleValid (value: string) {
11 if (!exists(value)) return false
12 if (typeof value !== 'string') return false
13
14 return value.includes('@')
15 }
16
17 function isEachUniqueHandleValid (handles: string[]) {
18 return isArray(handles) &&
19 handles.every(handle => {
20 return isRemoteHandleValid(handle) && handles.indexOf(handle) === handles.lastIndexOf(handle)
21 })
22 }
23
24 // ---------------------------------------------------------------------------
25
26 export {
27 isFollowStateValid,
28 isRemoteHandleValid,
29 isEachUniqueHandleValid
30 }