X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcore-utils.ts;h=7e8252aa40f3db496d367303335ad9ab39b94f63;hb=fef213cae10cbbf760b5ec81a1ed154038b59a61;hp=64818d036ef095a185c8efb8ab52dc74630cbcb3;hpb=8d2be0ed7bb87283a1ec98609df6b82d83db706a;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts index 64818d036..7e8252aa4 100644 --- a/server/helpers/core-utils.ts +++ b/server/helpers/core-utils.ts @@ -3,9 +3,8 @@ Useful to avoid circular dependencies. */ -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' @@ -137,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 @@ -180,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) } @@ -257,7 +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 createTorrentPromise = promisify2(createTorrent) const execPromise2 = promisify2(exec) const execPromise = promisify1(exec) @@ -288,7 +283,6 @@ export { pseudoRandomBytesPromise, createPrivateKey, getPublicKey, - createTorrentPromise, execPromise2, execPromise }