var utils = { generateUUID: function() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); return v.toString(16); }); }, relativeTime: function(timestamp) { var now = +new Date(), difference = now - Math.floor(parseFloat(timestamp)); difference = Math.floor(difference / 1000); if (difference < 60) return difference + ' second' + (difference !== 1 ? 's' : ''); difference = Math.floor(difference / 60); if (difference < 60) return difference + ' minute' + (difference !== 1 ? 's' : ''); difference = Math.floor(difference / 60); if (difference < 24) return difference + ' hour' + (difference !== 1 ? 's' : ''); difference = Math.floor(difference / 24); if (difference < 30) return difference + ' day' + (difference !== 1 ? 's' : ''); difference = Math.floor(difference / 30); if (difference < 12) return difference + ' month' + (difference !== 1 ? 's' : ''); difference = Math.floor(difference / 12); return difference + ' year' + (difference !== 1 ? 's' : ''); }, //http://dense13.com/blog/2009/05/03/converting-string-to-slug-javascript/ slugify: function(str) { str = str.replace(/^\s+|\s+$/g, ''); // trim str = str.toLowerCase(); // remove accents, swap ñ for n, etc var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;"; var to = "aaaaeeeeiiiioooouuuunc------"; for (var i=0, l=from.length ; i/g) || []).join(''); // making sure the allowed arg is a string containing only tags in lowercase () var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi, commentsAndPhpTags = /|<\?(?:php)?[\s\S]*?\?>/gi; return input.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) { return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : ''; }); } } module.exports = utils;