Download datalab/web/node_modules/moment/src/lib/duration/humanize.js from arshjaved/indiaai-hackathon: direct link, hf CLI and curl.
- Browser
- Download file 2.86 kB
-
https://huggingface.co/arshjaved/indiaai-hackathon/resolve/main/datalab/web/node_modules/moment/src/lib/duration/humanize.js
- Command line
-
hf download hf://arshjaved/indiaai-hackathon/datalab/web/node_modules/moment/src/lib/duration/humanize.js
-
curl -L -o humanize.js https://huggingface.co/arshjaved/indiaai-hackathon/resolve/main/datalab/web/node_modules/moment/src/lib/duration/humanize.js
2.86 kB
| import { createDuration } from './create'; | |
| var round = Math.round; | |
| var thresholds = { | |
| ss: 44, // a few seconds to seconds | |
| s : 45, // seconds to minute | |
| m : 45, // minutes to hour | |
| h : 22, // hours to day | |
| d : 26, // days to month | |
| M : 11 // months to year | |
| }; | |
| // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize | |
| function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { | |
| return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); | |
| } | |
| function relativeTime (posNegDuration, withoutSuffix, locale) { | |
| var duration = createDuration(posNegDuration).abs(); | |
| var seconds = round(duration.as('s')); | |
| var minutes = round(duration.as('m')); | |
| var hours = round(duration.as('h')); | |
| var days = round(duration.as('d')); | |
| var months = round(duration.as('M')); | |
| var years = round(duration.as('y')); | |
| var a = seconds <= thresholds.ss && ['s', seconds] || | |
| seconds < thresholds.s && ['ss', seconds] || | |
| minutes <= 1 && ['m'] || | |
| minutes < thresholds.m && ['mm', minutes] || | |
| hours <= 1 && ['h'] || | |
| hours < thresholds.h && ['hh', hours] || | |
| days <= 1 && ['d'] || | |
| days < thresholds.d && ['dd', days] || | |
| months <= 1 && ['M'] || | |
| months < thresholds.M && ['MM', months] || | |
| years <= 1 && ['y'] || ['yy', years]; | |
| a[2] = withoutSuffix; | |
| a[3] = +posNegDuration > 0; | |
| a[4] = locale; | |
| return substituteTimeAgo.apply(null, a); | |
| } | |
| // This function allows you to set the rounding function for relative time strings | |
| export function getSetRelativeTimeRounding (roundingFunction) { | |
| if (roundingFunction === undefined) { | |
| return round; | |
| } | |
| if (typeof(roundingFunction) === 'function') { | |
| round = roundingFunction; | |
| return true; | |
| } | |
| return false; | |
| } | |
| // This function allows you to set a threshold for relative time strings | |
| export function getSetRelativeTimeThreshold (threshold, limit) { | |
| if (thresholds[threshold] === undefined) { | |
| return false; | |
| } | |
| if (limit === undefined) { | |
| return thresholds[threshold]; | |
| } | |
| thresholds[threshold] = limit; | |
| if (threshold === 's') { | |
| thresholds.ss = limit - 1; | |
| } | |
| return true; | |
| } | |
| export function humanize (withSuffix) { | |
| if (!this.isValid()) { | |
| return this.localeData().invalidDate(); | |
| } | |
| var locale = this.localeData(); | |
| var output = relativeTime(this, !withSuffix, locale); | |
| if (withSuffix) { | |
| output = locale.pastFuture(+this, output); | |
| } | |
| return locale.postformat(output); | |
| } | |