• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

cmaurer / relative.time.parser / 20627421829

31 Dec 2025 09:22PM UTC coverage: 80.0% (-3.3%) from 83.333%
20627421829

Pull #31

github

cmaurer
fix: updating
Pull Request #31: fix: add semantic-release for automated versioning and publishing

11 of 18 branches covered (61.11%)

Branch coverage included in aggregate %.

3 of 3 new or added lines in 2 files covered. (100.0%)

4 existing lines in 1 file now uncovered.

33 of 37 relevant lines covered (89.19%)

51.08 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.56
/src/relative.time.parser.js
1
/* global define */
2
/* eslint-env node, mocha */
3
(function() {
3✔
4

5
  var relativeTimeRe = /([-+])(\d*)\s*(milliseconds|millisecond|Milliseconds|Millisecond|ms|minutes|minute|min|Min|Minute|Minutes|seconds|second|Seconds|Second|sec|hours|hour|Hours|Hour|hr|Hr|days|day|Days|Day|weeks|week|Weeks|Week|wk|Wk|months|month|Months|Month|mon|years|year|Years|Year|yrs|yr|Yr|Quarters|Quarter|quarters|quarter|qtr|Qr|qr|s|m|h|d|D|w|W|M|y|Y|q|Q)/,
3✔
6
    initialize,
7
    convertCase;
8

9
  convertCase = ({
3✔
10
    'ms': 'milliseconds',
11
    'millisecond': 'milliseconds',
12
    'milliseconds': 'milliseconds',
13
    'Millisecond': 'milliseconds',
14
    'Milliseconds': 'milliseconds',
15
    's': 'seconds',
16
    'sec': 'seconds',
17
    'second': 'seconds',
18
    'seconds': 'seconds',
19
    'Second': 'seconds',
20
    'Seconds': 'seconds',
21
    'm': 'minutes',
22
    'min': 'minutes',
23
    'minute': 'minutes',
24
    'minutes': 'minutes',
25
    'Min': 'minutes',
26
    'Minute': 'minutes',
27
    'Minutes': 'minutes',
28
    'h': 'hours',
29
    'hr': 'hours',
30
    'Hr': 'hours',
31
    'hour': 'hours',
32
    'hours': 'hours',
33
    'Hour': 'hours',
34
    'Hours': 'hours',
35
    'd': 'days',
36
    'D': 'days',
37
    'day': 'days',
38
    'days': 'days',
39
    'Day': 'days',
40
    'Days': 'days',
41
    'w': 'weeks',
42
    'W': 'weeks',
43
    'wk': 'weeks',
44
    'Wk': 'weeks',
45
    'week': 'weeks',
46
    'weeks': 'weeks',
47
    'Week': 'weeks',
48
    'Weeks': 'weeks',
49
    'M': 'months',
50
    'mon': 'months',
51
    'month': 'months',
52
    'months': 'months',
53
    'Month': 'months',
54
    'Months': 'months',
55
    'y': 'years',
56
    'Y': 'years',
57
    'yr': 'years',
58
    'Yr': 'years',
59
    'yrs': 'years',
60
    'year': 'years',
61
    'years': 'years',
62
    'Year': 'years',
63
    'Years': 'years',
64
    'q': 'quarters',
65
    'qr': 'quarters',
66
    'Q': 'quarters',
67
    'Qr': 'quarters',
68
    'qtr': 'quarters',
69
    'quarter': 'quarters',
70
    'quarters': 'quarters',
71
    'Quarter': 'quarters',
72
    'Quarters': 'quarters'
73
  });
74

75
  initialize = function(moment) {
3✔
76
    moment.fn.relativeTime = function(relativeTimeString) {
3✔
77
      relativeTimeString = relativeTimeString.trim();
312✔
78
      if (relativeTimeString === 'now') {
312✔
79
        return moment(this);
39✔
80
      }
81
      if (relativeTimeRe.test(relativeTimeString)) {
273✔
82
          var result = relativeTimeRe.exec(relativeTimeString);
270✔
83
          if (relativeTimeString.charAt(0) === '-') {
270✔
84
            return moment(this).subtract(+result[2], convertCase[result[3]]);
138✔
85
          }
86
          return moment(this).add(+result[2], convertCase[result[3]]);
132✔
87
      }
88
      return moment(this);
3✔
89
    };
90

91
    moment.fn.isRelativeTimeFormat = function(relativeTimeString) {
3✔
92
      relativeTimeString = relativeTimeString.trim();
27✔
93
      if (relativeTimeString === 'now') {
27✔
94
        return true;
12✔
95
      }
96
      return relativeTimeRe.test(relativeTimeString);
15✔
97
    };
98

99
    return moment;
3✔
100
  };
101

102
  if (typeof define === 'function' && define.amd) {
3!
UNCOV
103
    define('moment-relative-time', ['moment'], function(moment) {
×
UNCOV
104
      return initialize(moment);
×
105
    });
106
  } else if (typeof module !== 'undefined') {
3!
107
    module.exports = initialize(require('moment'));
3✔
UNCOV
108
  } else if (typeof window !== 'undefined' && window.moment) {
×
UNCOV
109
    this.moment = initialize(this.moment);
×
110
  }
111

112
}).call(this);
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc