]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/helpers/utils.ts
Type models
[github/Chocobozzz/PeerTube.git] / server / helpers / utils.ts
CommitLineData
65fcc311 1import { pseudoRandomBytes } from 'crypto'
e02643f3 2import { join } from 'path'
8c308c2b 3
65fcc311 4import { logger } from './logger'
cbe2f7c3 5
a6fd2b30
C
6function badRequest (req, res, next) {
7 res.type('json').status(400).end()
8}
9
cbe2f7c3 10function generateRandomString (size, callback) {
65fcc311 11 pseudoRandomBytes(size, function (err, raw) {
cbe2f7c3
C
12 if (err) return callback(err)
13
14 callback(null, raw.toString('hex'))
15 })
9f10b292 16}
8c308c2b 17
bc503c2a 18function cleanForExit (webtorrentProcess) {
9f10b292 19 logger.info('Gracefully exiting.')
bc503c2a 20 process.kill(-webtorrentProcess.pid)
9f10b292 21}
0ae2e7f7 22
e4c87ec2
C
23function createEmptyCallback () {
24 return function (err) {
25 if (err) logger.error('Error in empty callback.', { error: err })
26 }
27}
28
441b66f8
C
29function isTestInstance () {
30 return (process.env.NODE_ENV === 'test')
31}
32
55fa55a9
C
33function getFormatedObjects (objects, objectsTotal) {
34 const formatedObjects = []
35
36 objects.forEach(function (object) {
37 formatedObjects.push(object.toFormatedJSON())
38 })
39
40 return {
41 total: objectsTotal,
42 data: formatedObjects
43 }
44}
45
e02643f3
C
46function root () {
47 // We are in /dist/helpers/utils.js
48 return join(__dirname, '..', '..', '..')
49}
50
9f10b292 51// ---------------------------------------------------------------------------
c45f7f84 52
65fcc311
C
53export {
54 badRequest,
55 createEmptyCallback,
56 cleanForExit,
57 generateRandomString,
58 isTestInstance,
e02643f3
C
59 getFormatedObjects,
60 root
65fcc311 61}