const url = require('url'), path = require('path'), _ = require('lodash'); let _private = {}; _private.removeDoubleCharacters = function removeDoubleCharacters(character, string) { let stringArray = string.split(''); return stringArray.reduce(function (newString, currentCharacter, index) { if ( currentCharacter === character && stringArray[index + 1] === character ) { return newString; } return newString + currentCharacter; }, ''); }; module.exports.removeOpenRedirectFromUrl = function removeOpenRedirectFromUrl(urlString) { let parsedUrl = url.parse(urlString); return ( // http:// (parsedUrl.protocol ? parsedUrl.protocol + '//' : '') + (parsedUrl.auth || '') + (parsedUrl.host || '') + _private.removeDoubleCharacters('/', parsedUrl.path) + (parsedUrl.hash || '') ); }; module.exports.checkFileExists = function checkFileExists(fileData) { return !!(fileData.mimetype && fileData.path); }; module.exports.checkFileIsValid = function checkFileIsValid(fileData, types, extensions) { var type = fileData.mimetype, ext = path.extname(fileData.name).toLowerCase(); if (_.includes(types, type) && _.includes(extensions, ext)) { return true; } return false; };