X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcore-utils.ts;h=7e8252aa40f3db496d367303335ad9ab39b94f63;hb=c7f36e4f485d92191b9d04c6a880724b02fa220b;hp=c5b139378a426783b960f280f301094dd0da0ccb;hpb=f023a19c3eeeea2b014b47fae522a62eab320048;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts index c5b139378..7e8252aa4 100644 --- a/server/helpers/core-utils.ts +++ b/server/helpers/core-utils.ts @@ -3,10 +3,8 @@ Useful to avoid circular dependencies. */ -import * as bcrypt from 'bcrypt' -import * as createTorrent from 'create-torrent' import { createHash, HexBase64Latin1Encoding, pseudoRandomBytes } from 'crypto' -import { isAbsolute, join } from 'path' +import { basename, isAbsolute, join, resolve } from 'path' import * as pem from 'pem' import { URL } from 'url' import { truncate } from 'lodash' @@ -138,16 +136,16 @@ function getAppNumber () { return process.env.NODE_APP_INSTANCE } +let rootPath: string function root () { + if (rootPath) return rootPath + // We are in /helpers/utils.js - const paths = [ __dirname, '..', '..' ] + rootPath = join(__dirname, '..', '..') - // We are under /dist directory - if (process.mainModule && process.mainModule.filename.endsWith('.ts') === false) { - paths.push('..') - } + if (basename(rootPath) === 'dist') rootPath = resolve(rootPath, '..') - return join.apply(null, paths) + return rootPath } // Thanks: https://stackoverflow.com/a/12034334 @@ -181,18 +179,15 @@ function buildPath (path: string) { } // Consistent with .length, lodash truncate function is not -function peertubeTruncate (str: string, maxLength: number) { - const options = { - length: maxLength - } +function peertubeTruncate (str: string, options: { length: number, separator?: RegExp, omission?: string }) { const truncatedStr = truncate(str, options) // The truncated string is okay, we can return it - if (truncatedStr.length <= maxLength) return truncatedStr + if (truncatedStr.length <= options.length) return truncatedStr // Lodash takes into account all UTF characters, whereas String.prototype.length does not: some characters have a length of 2 // We always use the .length so we need to truncate more if needed - options.length -= truncatedStr.length - maxLength + options.length -= truncatedStr.length - options.length return truncate(str, options) } @@ -258,10 +253,6 @@ function promisify2WithVoid (func: (arg1: T, arg2: U, cb: (err: any) => vo const pseudoRandomBytesPromise = promisify1(pseudoRandomBytes) const createPrivateKey = promisify1(pem.createPrivateKey) const getPublicKey = promisify1(pem.getPublicKey) -const bcryptComparePromise = promisify2(bcrypt.compare) -const bcryptGenSaltPromise = promisify1(bcrypt.genSalt) -const bcryptHashPromise = promisify2(bcrypt.hash) -const createTorrentPromise = promisify2(createTorrent) const execPromise2 = promisify2(exec) const execPromise = promisify1(exec) @@ -287,14 +278,11 @@ export { promisify0, promisify1, + promisify2, pseudoRandomBytesPromise, createPrivateKey, getPublicKey, - bcryptComparePromise, - bcryptGenSaltPromise, - bcryptHashPromise, - createTorrentPromise, execPromise2, execPromise }