diff options
Diffstat (limited to 'src/duration.js')
-rw-r--r-- | src/duration.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/duration.js b/src/duration.js new file mode 100644 index 0000000..53de0ad --- /dev/null +++ b/src/duration.js @@ -0,0 +1,21 @@ +import moment from 'moment'; + +export class Duration { + constructor(value, unit) { + this.value = value + this.unit = unit + } + + toMoment() { + let m = moment.duration(this.value, this.unit); + if (m.isValid()) return m; + return null; + } + + static days(n) { return new Duration(n, 'days'); } + static weeks(n) { return new Duration(n, 'weeks'); } + static months(n) { return new Duration(n, 'months'); } + + deflate() { return { value: this.value, unit: this.unit }; } + static inflate = obj => new Duration(obj.value, obj.unit); +} |