CasperSecurity

Current Path : /usr/local/lib/node_modules/npm/node_modules/tiny-relative-date/src/
Upload File :
Current File : //usr/local/lib/node_modules/npm/node_modules/tiny-relative-date/src/factory.js

const calculateDelta = (now, date) => Math.round(Math.abs(now - date) / 1000)

export default function relativeDateFactory (translations) {
  return function relativeDate (date, now = new Date()) {
    if (!(date instanceof Date)) {
      date = new Date(date)
    }

    let delta = null

    const minute = 60
    const hour = minute * 60
    const day = hour * 24
    const week = day * 7
    const month = day * 30
    const year = day * 365

    delta = calculateDelta(now, date)

    if (delta > day && delta < week) {
      date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0)
      delta = calculateDelta(now, date)
    }

    const translate = (translatePhrase, timeValue) => {
      let key

      if (translatePhrase === 'justNow') {
        key = translatePhrase
      } else if (now >= date) {
        key = `${translatePhrase}Ago`
      } else {
        key = `${translatePhrase}FromNow`
      }

      const translation = translations[key]

      if (typeof translation === 'function') {
        return translation(timeValue)
      }

      return translation.replace('{{time}}', timeValue)
    }

    switch (false) {
      case !(delta < 30):
        return translate('justNow')

      case !(delta < minute):
        return translate('seconds', delta)

      case !(delta < 2 * minute):
        return translate('aMinute')

      case !(delta < hour):
        return translate('minutes', Math.floor(delta / minute))

      case Math.floor(delta / hour) !== 1:
        return translate('anHour')

      case !(delta < day):
        return translate('hours', Math.floor(delta / hour))

      case !(delta < day * 2):
        return translate('aDay')

      case !(delta < week):
        return translate('days', Math.floor(delta / day))

      case Math.floor(delta / week) !== 1:
        return translate('aWeek')

      case !(delta < month):
        return translate('weeks', Math.floor(delta / week))

      case Math.floor(delta / month) !== 1:
        return translate('aMonth')

      case !(delta < year):
        return translate('months', Math.floor(delta / month))

      case Math.floor(delta / year) !== 1:
        return translate('aYear')

      default:
        return translate('overAYear')
    }
  }
}
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY