UNPKG

787 BJavaScriptView Raw
1"use strict";
2
3var isValue = require("type/value/is")
4 , ensureString = require("type/string/ensure")
5 , primitiveSet = require("es5-ext/object/primitive-set")
6 , Duration = require("duration");
7
8var possibleModes = primitiveSet("abs", "rel");
9
10var resolveMode = function (mode) {
11 if (!isValue(mode)) return "rel";
12 mode = ensureString(mode);
13 return possibleModes[mode] ? mode : "rel";
14};
15
16var getRelativeResolver = function () {
17 var duration = new Duration(new Date());
18 return function () {
19 duration.to = new Date();
20 return String(duration);
21 };
22};
23
24var absoluteResolver = function () { return new Date().toISOString(); };
25
26module.exports = function (mode) {
27 mode = resolveMode(mode);
28 if (mode === "rel") return getRelativeResolver();
29 return absoluteResolver;
30};