X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcore-utils.ts;h=33bbdca8b6b44f1a95516fe93359d53da7a5f47e;hb=49347a0a8b64559192d8f29f1237308025a48fd4;hp=1e92049f1b8e64dd40fb7e2a065842ce9adecba2;hpb=6fcd19ba737f1f5614a56c6925adb882dea43b8d;p=github%2FChocobozzz%2FPeerTube.git
diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts
index 1e92049f1..33bbdca8b 100644
--- a/server/helpers/core-utils.ts
+++ b/server/helpers/core-utils.ts
@@ -11,11 +11,14 @@ import {
rename,
unlink,
writeFile,
- access
+ access,
+ stat,
+ Stats
} from 'fs'
import * as mkdirp from 'mkdirp'
import * as bcrypt from 'bcrypt'
import * as createTorrent from 'create-torrent'
+import * as rimraf from 'rimraf'
import * as openssl from 'openssl-wrapper'
import * as Promise from 'bluebird'
@@ -24,8 +27,31 @@ function isTestInstance () {
}
function root () {
- // We are in /dist/helpers/utils.js
- return join(__dirname, '..', '..', '..')
+ // We are in /helpers/utils.js
+ const paths = [ __dirname, '..', '..' ]
+
+ // We are under /dist directory
+ if (process.mainModule.filename.endsWith('.ts') === false) {
+ paths.push('..')
+ }
+
+ return join.apply(null, paths)
+}
+
+// Thanks: https://stackoverflow.com/a/12034334
+function escapeHTML (stringParam) {
+ const entityMap = {
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ '"': '"',
+ "'": ''',
+ '/': '/',
+ '`': '`',
+ '=': '='
+ }
+
+ return String(stringParam).replace(/[&<>"'`=\/]/g, s => entityMap[s])
}
function promisify0 (func: (cb: (err: any, result: A) => void) => void): () => Promise {
@@ -73,7 +99,7 @@ const readFilePromise = promisify2(readFile)
const readFileBufferPromise = promisify1(readFile)
const unlinkPromise = promisify1WithVoid(unlink)
const renamePromise = promisify2WithVoid(rename)
-const writeFilePromise = promisify2(writeFile)
+const writeFilePromise = promisify2WithVoid(writeFile)
const readdirPromise = promisify1(readdir)
const mkdirpPromise = promisify1(mkdirp)
const pseudoRandomBytesPromise = promisify1(pseudoRandomBytes)
@@ -83,12 +109,15 @@ const bcryptComparePromise = promisify2(bcrypt.compare)
const bcryptGenSaltPromise = promisify1(bcrypt.genSalt)
const bcryptHashPromise = promisify2(bcrypt.hash)
const createTorrentPromise = promisify2(createTorrent)
+const rimrafPromise = promisify1WithVoid(rimraf)
+const statPromise = promisify1(stat)
// ---------------------------------------------------------------------------
export {
isTestInstance,
root,
+ escapeHTML,
promisify0,
promisify1,
@@ -105,5 +134,7 @@ export {
bcryptComparePromise,
bcryptGenSaltPromise,
bcryptHashPromise,
- createTorrentPromise
+ createTorrentPromise,
+ rimrafPromise,
+ statPromise
}