Upgrade server dep'
[oweals/peertube.git] / server / tests / utils / miscs.ts
1 import * as WebTorrent from 'webtorrent'
2 import { readFile, readdir } from 'fs'
3
4 let webtorrent = new WebTorrent()
5
6 function readFilePromise (path: string) {
7   return new Promise<Buffer>((res, rej) => {
8     readFile(path, (err, data) => {
9       if (err) return rej(err)
10
11       return res(data)
12     })
13   })
14 }
15
16 function readdirPromise (path: string) {
17   return new Promise<string[]>((res, rej) => {
18     readdir(path, (err, files) => {
19       if (err) return rej(err)
20
21       return res(files)
22     })
23   })
24 }
25
26   // Default interval -> 2 minutes
27 function dateIsValid (dateString: string, interval = 120000) {
28   const dateToCheck = new Date(dateString)
29   const now = new Date()
30
31   return Math.abs(now.getTime() - dateToCheck.getTime()) <= interval
32 }
33
34 function wait (milliseconds: number) {
35   return new Promise(resolve => setTimeout(resolve, milliseconds))
36 }
37
38 function webtorrentAdd (torrent: string, refreshWebTorrent = false) {
39   if (refreshWebTorrent === true) webtorrent = new WebTorrent()
40
41   return new Promise<WebTorrent.Torrent>(res => webtorrent.add(torrent, res))
42 }
43
44 // ---------------------------------------------------------------------------
45
46 export {
47   readFilePromise,
48   readdirPromise,
49   dateIsValid,
50   wait,
51   webtorrentAdd
52 }