index.js 729 B

1234567891011121314151617181920212223242526272829
  1. const URL = require('url');
  2. const ms = require('ms');
  3. const config = require('../config');
  4. exports.addProtocol = url => {
  5. const hasProtocol = /^https?/.test(URL.parse(url).protocol);
  6. return hasProtocol ? url : `http://${url}`;
  7. };
  8. exports.generateShortUrl = (id, domain) =>
  9. `http${!domain ? 's' : ''}://${domain || config.DEFAULT_DOMAIN}/${id}`;
  10. exports.isAdmin = email => config.ADMIN_EMAILS.includes(email);
  11. exports.getStatsCacheTime = total => {
  12. switch (true) {
  13. case total > 5000 && total < 20000:
  14. return ms('1 hour') / 1000;
  15. case total < 40000:
  16. return ms('3 hours') / 1000;
  17. case total > 40000:
  18. return ms('6 hours') / 1000;
  19. default:
  20. return ms('15 minutes') / 1000;
  21. }
  22. };