]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/core-utils.ts
Add ability to remove a video on watch page
[github/Chocobozzz/PeerTube.git] / server / helpers / core-utils.ts
index 3dae781447d300a2d665f252ae467d3e399aa629..443115336946150ae9363508fa3ed5ac3def52af 100644 (file)
@@ -3,24 +3,14 @@
   Useful to avoid circular dependencies.
 */
 
-import { join } from 'path'
-import { pseudoRandomBytes } from 'crypto'
-import {
-  readdir,
-  readFile,
-  rename,
-  unlink,
-  writeFile,
-  access,
-  stat,
-  Stats
-} from 'fs'
-import * as mkdirp from 'mkdirp'
 import * as bcrypt from 'bcrypt'
 import * as createTorrent from 'create-torrent'
+import { pseudoRandomBytes } from 'crypto'
+import { readdir, readFile, rename, stat, Stats, unlink, writeFile } from 'fs'
+import * as mkdirp from 'mkdirp'
+import { join } from 'path'
+import * as pem from 'pem'
 import * as rimraf from 'rimraf'
-import * as openssl from 'openssl-wrapper'
-import * as Promise from 'bluebird'
 
 function isTestInstance () {
   return process.env.NODE_ENV === 'test'
@@ -54,6 +44,12 @@ function escapeHTML (stringParam) {
   return String(stringParam).replace(/[&<>"'`=\/]/g, s => entityMap[s])
 }
 
+function pageToStartAndCount (page: number, itemsPerPage: number) {
+  const start = (page - 1) * itemsPerPage
+
+  return { start, count: itemsPerPage }
+}
+
 function promisify0<A> (func: (cb: (err: any, result: A) => void) => void): () => Promise<A> {
   return function promisified (): Promise<A> {
     return new Promise<A>((resolve: (arg: A) => void, reject: (err: any) => void) => {
@@ -95,7 +91,6 @@ function promisify2WithVoid<T, U> (func: (arg1: T, arg2: U, cb: (err: any) => vo
   }
 }
 
-const readFilePromise = promisify2<string, string, string>(readFile)
 const readFileBufferPromise = promisify1<string, Buffer>(readFile)
 const unlinkPromise = promisify1WithVoid<string>(unlink)
 const renamePromise = promisify2WithVoid<string, string>(rename)
@@ -103,8 +98,8 @@ const writeFilePromise = promisify2WithVoid<string, any>(writeFile)
 const readdirPromise = promisify1<string, string[]>(readdir)
 const mkdirpPromise = promisify1<string, string>(mkdirp)
 const pseudoRandomBytesPromise = promisify1<number, Buffer>(pseudoRandomBytes)
-const accessPromise = promisify1WithVoid<string | Buffer>(access)
-const opensslExecPromise = promisify2WithVoid<string, any>(openssl.exec)
+const createPrivateKey = promisify1<number, { key: string }>(pem.createPrivateKey)
+const getPublicKey = promisify1<string, { publicKey: string }>(pem.getPublicKey)
 const bcryptComparePromise = promisify2<any, string, boolean>(bcrypt.compare)
 const bcryptGenSaltPromise = promisify1<number, string>(bcrypt.genSalt)
 const bcryptHashPromise = promisify2<any, string | number, string>(bcrypt.hash)
@@ -118,19 +113,20 @@ export {
   isTestInstance,
   root,
   escapeHTML,
+  pageToStartAndCount,
 
   promisify0,
   promisify1,
+
   readdirPromise,
-  readFilePromise,
   readFileBufferPromise,
   unlinkPromise,
   renamePromise,
   writeFilePromise,
   mkdirpPromise,
   pseudoRandomBytesPromise,
-  accessPromise,
-  opensslExecPromise,
+  createPrivateKey,
+  getPublicKey,
   bcryptComparePromise,
   bcryptGenSaltPromise,
   bcryptHashPromise,