aboutsummaryrefslogtreecommitdiff
path: root/src/duration.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/duration.js')
-rw-r--r--src/duration.js21
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);
+}