X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcore-utils.ts;h=33bbdca8b6b44f1a95516fe93359d53da7a5f47e;hb=49347a0a8b64559192d8f29f1237308025a48fd4;hp=2ec7e6515fc82982e573d29e08438436b709e7e1;hpb=fdbda9e3d6564ec908733c7019305f6a3c363a9f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts index 2ec7e6515..33bbdca8b 100644 --- a/server/helpers/core-utils.ts +++ b/server/helpers/core-utils.ts @@ -11,7 +11,9 @@ import { rename, unlink, writeFile, - access + access, + stat, + Stats } from 'fs' import * as mkdirp from 'mkdirp' import * as bcrypt from 'bcrypt' @@ -36,6 +38,22 @@ function root () { 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 { return function promisified (): Promise { return new Promise((resolve: (arg: A) => void, reject: (err: any) => void) => { @@ -92,12 +110,14 @@ 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, @@ -115,5 +135,6 @@ export { bcryptGenSaltPromise, bcryptHashPromise, createTorrentPromise, - rimrafPromise + rimrafPromise, + statPromise }