chronokinesis 3.1.2 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chronokinesis.js +31 -79
- package/dist/index.es.js +29 -77
- package/package.json +9 -8
package/dist/chronokinesis.js
CHANGED
|
@@ -3,43 +3,27 @@ var chronokinesis = (function (exports) {
|
|
|
3
3
|
|
|
4
4
|
function ownKeys(object, enumerableOnly) {
|
|
5
5
|
var keys = Object.keys(object);
|
|
6
|
-
|
|
7
6
|
if (Object.getOwnPropertySymbols) {
|
|
8
7
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
keys.push.apply(keys, symbols);
|
|
8
|
+
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
9
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
10
|
+
})), keys.push.apply(keys, symbols);
|
|
17
11
|
}
|
|
18
|
-
|
|
19
12
|
return keys;
|
|
20
13
|
}
|
|
21
|
-
|
|
22
14
|
function _objectSpread2(target) {
|
|
23
15
|
for (var i = 1; i < arguments.length; i++) {
|
|
24
|
-
var source = arguments[i]
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
} else if (Object.getOwnPropertyDescriptors) {
|
|
31
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
32
|
-
} else {
|
|
33
|
-
ownKeys(Object(source)).forEach(function (key) {
|
|
34
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
35
|
-
});
|
|
36
|
-
}
|
|
16
|
+
var source = null != arguments[i] ? arguments[i] : {};
|
|
17
|
+
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
18
|
+
_defineProperty(target, key, source[key]);
|
|
19
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
|
|
20
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
21
|
+
});
|
|
37
22
|
}
|
|
38
|
-
|
|
39
23
|
return target;
|
|
40
24
|
}
|
|
41
|
-
|
|
42
25
|
function _defineProperty(obj, key, value) {
|
|
26
|
+
key = _toPropertyKey(key);
|
|
43
27
|
if (key in obj) {
|
|
44
28
|
Object.defineProperty(obj, key, {
|
|
45
29
|
value: value,
|
|
@@ -50,10 +34,8 @@ var chronokinesis = (function (exports) {
|
|
|
50
34
|
} else {
|
|
51
35
|
obj[key] = value;
|
|
52
36
|
}
|
|
53
|
-
|
|
54
37
|
return obj;
|
|
55
38
|
}
|
|
56
|
-
|
|
57
39
|
function _unsupportedIterableToArray(o, minLen) {
|
|
58
40
|
if (!o) return;
|
|
59
41
|
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
@@ -62,25 +44,18 @@ var chronokinesis = (function (exports) {
|
|
|
62
44
|
if (n === "Map" || n === "Set") return Array.from(o);
|
|
63
45
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
64
46
|
}
|
|
65
|
-
|
|
66
47
|
function _arrayLikeToArray(arr, len) {
|
|
67
48
|
if (len == null || len > arr.length) len = arr.length;
|
|
68
|
-
|
|
69
49
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
70
|
-
|
|
71
50
|
return arr2;
|
|
72
51
|
}
|
|
73
|
-
|
|
74
52
|
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
75
53
|
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
76
|
-
|
|
77
54
|
if (!it) {
|
|
78
55
|
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
79
56
|
if (it) o = it;
|
|
80
57
|
var i = 0;
|
|
81
|
-
|
|
82
58
|
var F = function () {};
|
|
83
|
-
|
|
84
59
|
return {
|
|
85
60
|
s: F,
|
|
86
61
|
n: function () {
|
|
@@ -98,13 +73,11 @@ var chronokinesis = (function (exports) {
|
|
|
98
73
|
f: F
|
|
99
74
|
};
|
|
100
75
|
}
|
|
101
|
-
|
|
102
76
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
103
77
|
}
|
|
104
|
-
|
|
105
78
|
var normalCompletion = true,
|
|
106
|
-
|
|
107
|
-
|
|
79
|
+
didErr = false,
|
|
80
|
+
err;
|
|
108
81
|
return {
|
|
109
82
|
s: function () {
|
|
110
83
|
it = it.call(o);
|
|
@@ -127,6 +100,20 @@ var chronokinesis = (function (exports) {
|
|
|
127
100
|
}
|
|
128
101
|
};
|
|
129
102
|
}
|
|
103
|
+
function _toPrimitive(input, hint) {
|
|
104
|
+
if (typeof input !== "object" || input === null) return input;
|
|
105
|
+
var prim = input[Symbol.toPrimitive];
|
|
106
|
+
if (prim !== undefined) {
|
|
107
|
+
var res = prim.call(input, hint || "default");
|
|
108
|
+
if (typeof res !== "object") return res;
|
|
109
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
110
|
+
}
|
|
111
|
+
return (hint === "string" ? String : Number)(input);
|
|
112
|
+
}
|
|
113
|
+
function _toPropertyKey(arg) {
|
|
114
|
+
var key = _toPrimitive(arg, "string");
|
|
115
|
+
return typeof key === "symbol" ? key : String(key);
|
|
116
|
+
}
|
|
130
117
|
|
|
131
118
|
/**
|
|
132
119
|
* Inspired by Time keeper - EEasy testing of time-dependent code.
|
|
@@ -140,18 +127,14 @@ var chronokinesis = (function (exports) {
|
|
|
140
127
|
var traveledTo = null;
|
|
141
128
|
var started = null;
|
|
142
129
|
var iana = null;
|
|
143
|
-
|
|
144
130
|
function FakeDate() {
|
|
145
131
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
146
132
|
args[_key] = arguments[_key];
|
|
147
133
|
}
|
|
148
|
-
|
|
149
134
|
var length = args.length;
|
|
150
|
-
|
|
151
135
|
if (!length) {
|
|
152
136
|
if (freezedAt) args = [freezedAt];else if (traveledTo) args = [time()];
|
|
153
137
|
}
|
|
154
|
-
|
|
155
138
|
var dt = instantiate(NativeDate, args);
|
|
156
139
|
Object.defineProperty(dt, 'getTimezoneOffset', {
|
|
157
140
|
enumerable: false,
|
|
@@ -164,16 +147,13 @@ var chronokinesis = (function (exports) {
|
|
|
164
147
|
});
|
|
165
148
|
return dt;
|
|
166
149
|
}
|
|
167
|
-
|
|
168
150
|
FakeDate.UTC = NativeDate.UTC;
|
|
169
151
|
FakeDate.parse = NativeDate.parse;
|
|
170
152
|
FakeDate.prototype = NativeDate.prototype;
|
|
171
|
-
|
|
172
153
|
FakeDate.now = function () {
|
|
173
154
|
if (freezedAt) return freezedAt.getTime();
|
|
174
155
|
return time();
|
|
175
156
|
};
|
|
176
|
-
|
|
177
157
|
var chronokinesis = {
|
|
178
158
|
freeze: freeze,
|
|
179
159
|
defrost: defrost,
|
|
@@ -182,40 +162,30 @@ var chronokinesis = (function (exports) {
|
|
|
182
162
|
isKeepingTime: isKeepingTime,
|
|
183
163
|
timezone: timezone
|
|
184
164
|
};
|
|
185
|
-
|
|
186
165
|
function freeze() {
|
|
187
166
|
useFakeDate();
|
|
188
|
-
|
|
189
167
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
190
168
|
args[_key2] = arguments[_key2];
|
|
191
169
|
}
|
|
192
|
-
|
|
193
170
|
freezedAt = instantiate(Date, args);
|
|
194
171
|
return freezedAt;
|
|
195
172
|
}
|
|
196
|
-
|
|
197
173
|
function defrost() {
|
|
198
174
|
freezedAt = null;
|
|
199
175
|
}
|
|
200
|
-
|
|
201
176
|
function travel() {
|
|
202
177
|
useFakeDate();
|
|
203
|
-
|
|
204
178
|
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
205
179
|
args[_key3] = arguments[_key3];
|
|
206
180
|
}
|
|
207
|
-
|
|
208
181
|
var travelToDate = instantiate(Date, args);
|
|
209
182
|
traveledTo = travelToDate.getTime();
|
|
210
183
|
started = NativeDate.now();
|
|
211
|
-
|
|
212
184
|
if (freezedAt) {
|
|
213
185
|
freezedAt = travelToDate;
|
|
214
186
|
}
|
|
215
|
-
|
|
216
187
|
return travelToDate;
|
|
217
188
|
}
|
|
218
|
-
|
|
219
189
|
function reset() {
|
|
220
190
|
useNativeDate();
|
|
221
191
|
freezedAt = null;
|
|
@@ -223,11 +193,9 @@ var chronokinesis = (function (exports) {
|
|
|
223
193
|
traveledTo = null;
|
|
224
194
|
iana = null;
|
|
225
195
|
}
|
|
226
|
-
|
|
227
196
|
function isKeepingTime() {
|
|
228
197
|
return Date === FakeDate;
|
|
229
198
|
}
|
|
230
|
-
|
|
231
199
|
function timezone(timeZone) {
|
|
232
200
|
var options = {
|
|
233
201
|
year: 'numeric',
|
|
@@ -251,24 +219,20 @@ var chronokinesis = (function (exports) {
|
|
|
251
219
|
freeze: freezeInTimezone,
|
|
252
220
|
travel: travelInTimezone
|
|
253
221
|
};
|
|
254
|
-
|
|
255
222
|
function freezeInTimezone() {
|
|
256
223
|
if (!arguments.length && iana === timeZone) return freeze();
|
|
257
224
|
iana = timeZone;
|
|
258
225
|
return freeze(getTime.apply(void 0, arguments));
|
|
259
226
|
}
|
|
260
|
-
|
|
261
227
|
function travelInTimezone() {
|
|
262
228
|
if (!arguments.length && iana === timeZone) return travel();
|
|
263
229
|
iana = timeZone;
|
|
264
230
|
return travel(getTime.apply(void 0, arguments));
|
|
265
231
|
}
|
|
266
|
-
|
|
267
232
|
function getTime() {
|
|
268
233
|
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
269
234
|
args[_key4] = arguments[_key4];
|
|
270
235
|
}
|
|
271
|
-
|
|
272
236
|
var realDate = instantiate(Date, args);
|
|
273
237
|
var tz = new NativeDate(toUTC(formatter, realDate));
|
|
274
238
|
if (!args.length) return tz.getTime();
|
|
@@ -276,7 +240,6 @@ var chronokinesis = (function (exports) {
|
|
|
276
240
|
return realDate.getTime() + currentTz.getTime() - tz.getTime();
|
|
277
241
|
}
|
|
278
242
|
}
|
|
279
|
-
|
|
280
243
|
function useFakeDate() {
|
|
281
244
|
Date = FakeDate; // eslint-disable-line no-global-assign
|
|
282
245
|
}
|
|
@@ -288,46 +251,36 @@ var chronokinesis = (function (exports) {
|
|
|
288
251
|
function time() {
|
|
289
252
|
return traveledTo + (NativeDate.now() - started);
|
|
290
253
|
}
|
|
291
|
-
|
|
292
254
|
function instantiate(type, args) {
|
|
293
255
|
var ctorArgs = args.slice();
|
|
294
256
|
ctorArgs.unshift(null);
|
|
295
257
|
return new (Function.prototype.bind.apply(type, ctorArgs))();
|
|
296
258
|
}
|
|
297
|
-
|
|
298
259
|
function toUTC(formatter, dt) {
|
|
299
260
|
var year, month, day, hour, minute, second;
|
|
300
|
-
|
|
301
261
|
var _iterator = _createForOfIteratorHelper(formatter.formatToParts(dt)),
|
|
302
|
-
|
|
303
|
-
|
|
262
|
+
_step;
|
|
304
263
|
try {
|
|
305
264
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
306
265
|
var _step$value = _step.value,
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
266
|
+
type = _step$value.type,
|
|
267
|
+
value = _step$value.value;
|
|
310
268
|
switch (type) {
|
|
311
269
|
case 'year':
|
|
312
270
|
year = parseInt(value);
|
|
313
271
|
break;
|
|
314
|
-
|
|
315
272
|
case 'month':
|
|
316
273
|
month = parseInt(value) - 1;
|
|
317
274
|
break;
|
|
318
|
-
|
|
319
275
|
case 'day':
|
|
320
276
|
day = parseInt(value);
|
|
321
277
|
break;
|
|
322
|
-
|
|
323
278
|
case 'hour':
|
|
324
279
|
hour = parseInt(value) % 24;
|
|
325
280
|
break;
|
|
326
|
-
|
|
327
281
|
case 'minute':
|
|
328
282
|
minute = parseInt(value);
|
|
329
283
|
break;
|
|
330
|
-
|
|
331
284
|
case 'second':
|
|
332
285
|
second = parseInt(value);
|
|
333
286
|
break;
|
|
@@ -338,7 +291,6 @@ var chronokinesis = (function (exports) {
|
|
|
338
291
|
} finally {
|
|
339
292
|
_iterator.f();
|
|
340
293
|
}
|
|
341
|
-
|
|
342
294
|
return NativeDate.UTC(year, month, day, hour, minute, second, dt.getMilliseconds());
|
|
343
295
|
}
|
|
344
296
|
var chronokinesis_1 = chronokinesis.freeze;
|
|
@@ -348,7 +300,7 @@ var chronokinesis = (function (exports) {
|
|
|
348
300
|
var chronokinesis_5 = chronokinesis.isKeepingTime;
|
|
349
301
|
var chronokinesis_6 = chronokinesis.timezone;
|
|
350
302
|
|
|
351
|
-
exports[
|
|
303
|
+
exports["default"] = chronokinesis;
|
|
352
304
|
exports.defrost = chronokinesis_2;
|
|
353
305
|
exports.freeze = chronokinesis_1;
|
|
354
306
|
exports.isKeepingTime = chronokinesis_5;
|
|
@@ -360,4 +312,4 @@ var chronokinesis = (function (exports) {
|
|
|
360
312
|
|
|
361
313
|
return exports;
|
|
362
314
|
|
|
363
|
-
}({})
|
|
315
|
+
})({});
|
package/dist/index.es.js
CHANGED
|
@@ -1,42 +1,26 @@
|
|
|
1
1
|
function ownKeys(object, enumerableOnly) {
|
|
2
2
|
var keys = Object.keys(object);
|
|
3
|
-
|
|
4
3
|
if (Object.getOwnPropertySymbols) {
|
|
5
4
|
var symbols = Object.getOwnPropertySymbols(object);
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
keys.push.apply(keys, symbols);
|
|
5
|
+
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
6
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
7
|
+
})), keys.push.apply(keys, symbols);
|
|
14
8
|
}
|
|
15
|
-
|
|
16
9
|
return keys;
|
|
17
10
|
}
|
|
18
|
-
|
|
19
11
|
function _objectSpread2(target) {
|
|
20
12
|
for (var i = 1; i < arguments.length; i++) {
|
|
21
|
-
var source = arguments[i]
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
} else if (Object.getOwnPropertyDescriptors) {
|
|
28
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
29
|
-
} else {
|
|
30
|
-
ownKeys(Object(source)).forEach(function (key) {
|
|
31
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
32
|
-
});
|
|
33
|
-
}
|
|
13
|
+
var source = null != arguments[i] ? arguments[i] : {};
|
|
14
|
+
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
15
|
+
_defineProperty(target, key, source[key]);
|
|
16
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
|
|
17
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
18
|
+
});
|
|
34
19
|
}
|
|
35
|
-
|
|
36
20
|
return target;
|
|
37
21
|
}
|
|
38
|
-
|
|
39
22
|
function _defineProperty(obj, key, value) {
|
|
23
|
+
key = _toPropertyKey(key);
|
|
40
24
|
if (key in obj) {
|
|
41
25
|
Object.defineProperty(obj, key, {
|
|
42
26
|
value: value,
|
|
@@ -47,10 +31,8 @@ function _defineProperty(obj, key, value) {
|
|
|
47
31
|
} else {
|
|
48
32
|
obj[key] = value;
|
|
49
33
|
}
|
|
50
|
-
|
|
51
34
|
return obj;
|
|
52
35
|
}
|
|
53
|
-
|
|
54
36
|
function _unsupportedIterableToArray(o, minLen) {
|
|
55
37
|
if (!o) return;
|
|
56
38
|
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
@@ -59,25 +41,18 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
59
41
|
if (n === "Map" || n === "Set") return Array.from(o);
|
|
60
42
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
61
43
|
}
|
|
62
|
-
|
|
63
44
|
function _arrayLikeToArray(arr, len) {
|
|
64
45
|
if (len == null || len > arr.length) len = arr.length;
|
|
65
|
-
|
|
66
46
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
67
|
-
|
|
68
47
|
return arr2;
|
|
69
48
|
}
|
|
70
|
-
|
|
71
49
|
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
72
50
|
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
73
|
-
|
|
74
51
|
if (!it) {
|
|
75
52
|
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
76
53
|
if (it) o = it;
|
|
77
54
|
var i = 0;
|
|
78
|
-
|
|
79
55
|
var F = function () {};
|
|
80
|
-
|
|
81
56
|
return {
|
|
82
57
|
s: F,
|
|
83
58
|
n: function () {
|
|
@@ -95,13 +70,11 @@ function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
|
95
70
|
f: F
|
|
96
71
|
};
|
|
97
72
|
}
|
|
98
|
-
|
|
99
73
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
100
74
|
}
|
|
101
|
-
|
|
102
75
|
var normalCompletion = true,
|
|
103
|
-
|
|
104
|
-
|
|
76
|
+
didErr = false,
|
|
77
|
+
err;
|
|
105
78
|
return {
|
|
106
79
|
s: function () {
|
|
107
80
|
it = it.call(o);
|
|
@@ -124,6 +97,20 @@ function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
|
124
97
|
}
|
|
125
98
|
};
|
|
126
99
|
}
|
|
100
|
+
function _toPrimitive(input, hint) {
|
|
101
|
+
if (typeof input !== "object" || input === null) return input;
|
|
102
|
+
var prim = input[Symbol.toPrimitive];
|
|
103
|
+
if (prim !== undefined) {
|
|
104
|
+
var res = prim.call(input, hint || "default");
|
|
105
|
+
if (typeof res !== "object") return res;
|
|
106
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
107
|
+
}
|
|
108
|
+
return (hint === "string" ? String : Number)(input);
|
|
109
|
+
}
|
|
110
|
+
function _toPropertyKey(arg) {
|
|
111
|
+
var key = _toPrimitive(arg, "string");
|
|
112
|
+
return typeof key === "symbol" ? key : String(key);
|
|
113
|
+
}
|
|
127
114
|
|
|
128
115
|
/**
|
|
129
116
|
* Inspired by Time keeper - EEasy testing of time-dependent code.
|
|
@@ -137,18 +124,14 @@ var freezedAt = null;
|
|
|
137
124
|
var traveledTo = null;
|
|
138
125
|
var started = null;
|
|
139
126
|
var iana = null;
|
|
140
|
-
|
|
141
127
|
function FakeDate() {
|
|
142
128
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
143
129
|
args[_key] = arguments[_key];
|
|
144
130
|
}
|
|
145
|
-
|
|
146
131
|
var length = args.length;
|
|
147
|
-
|
|
148
132
|
if (!length) {
|
|
149
133
|
if (freezedAt) args = [freezedAt];else if (traveledTo) args = [time()];
|
|
150
134
|
}
|
|
151
|
-
|
|
152
135
|
var dt = instantiate(NativeDate, args);
|
|
153
136
|
Object.defineProperty(dt, 'getTimezoneOffset', {
|
|
154
137
|
enumerable: false,
|
|
@@ -161,16 +144,13 @@ function FakeDate() {
|
|
|
161
144
|
});
|
|
162
145
|
return dt;
|
|
163
146
|
}
|
|
164
|
-
|
|
165
147
|
FakeDate.UTC = NativeDate.UTC;
|
|
166
148
|
FakeDate.parse = NativeDate.parse;
|
|
167
149
|
FakeDate.prototype = NativeDate.prototype;
|
|
168
|
-
|
|
169
150
|
FakeDate.now = function () {
|
|
170
151
|
if (freezedAt) return freezedAt.getTime();
|
|
171
152
|
return time();
|
|
172
153
|
};
|
|
173
|
-
|
|
174
154
|
var chronokinesis = {
|
|
175
155
|
freeze: freeze,
|
|
176
156
|
defrost: defrost,
|
|
@@ -179,40 +159,30 @@ var chronokinesis = {
|
|
|
179
159
|
isKeepingTime: isKeepingTime,
|
|
180
160
|
timezone: timezone
|
|
181
161
|
};
|
|
182
|
-
|
|
183
162
|
function freeze() {
|
|
184
163
|
useFakeDate();
|
|
185
|
-
|
|
186
164
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
187
165
|
args[_key2] = arguments[_key2];
|
|
188
166
|
}
|
|
189
|
-
|
|
190
167
|
freezedAt = instantiate(Date, args);
|
|
191
168
|
return freezedAt;
|
|
192
169
|
}
|
|
193
|
-
|
|
194
170
|
function defrost() {
|
|
195
171
|
freezedAt = null;
|
|
196
172
|
}
|
|
197
|
-
|
|
198
173
|
function travel() {
|
|
199
174
|
useFakeDate();
|
|
200
|
-
|
|
201
175
|
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
202
176
|
args[_key3] = arguments[_key3];
|
|
203
177
|
}
|
|
204
|
-
|
|
205
178
|
var travelToDate = instantiate(Date, args);
|
|
206
179
|
traveledTo = travelToDate.getTime();
|
|
207
180
|
started = NativeDate.now();
|
|
208
|
-
|
|
209
181
|
if (freezedAt) {
|
|
210
182
|
freezedAt = travelToDate;
|
|
211
183
|
}
|
|
212
|
-
|
|
213
184
|
return travelToDate;
|
|
214
185
|
}
|
|
215
|
-
|
|
216
186
|
function reset() {
|
|
217
187
|
useNativeDate();
|
|
218
188
|
freezedAt = null;
|
|
@@ -220,11 +190,9 @@ function reset() {
|
|
|
220
190
|
traveledTo = null;
|
|
221
191
|
iana = null;
|
|
222
192
|
}
|
|
223
|
-
|
|
224
193
|
function isKeepingTime() {
|
|
225
194
|
return Date === FakeDate;
|
|
226
195
|
}
|
|
227
|
-
|
|
228
196
|
function timezone(timeZone) {
|
|
229
197
|
var options = {
|
|
230
198
|
year: 'numeric',
|
|
@@ -248,24 +216,20 @@ function timezone(timeZone) {
|
|
|
248
216
|
freeze: freezeInTimezone,
|
|
249
217
|
travel: travelInTimezone
|
|
250
218
|
};
|
|
251
|
-
|
|
252
219
|
function freezeInTimezone() {
|
|
253
220
|
if (!arguments.length && iana === timeZone) return freeze();
|
|
254
221
|
iana = timeZone;
|
|
255
222
|
return freeze(getTime.apply(void 0, arguments));
|
|
256
223
|
}
|
|
257
|
-
|
|
258
224
|
function travelInTimezone() {
|
|
259
225
|
if (!arguments.length && iana === timeZone) return travel();
|
|
260
226
|
iana = timeZone;
|
|
261
227
|
return travel(getTime.apply(void 0, arguments));
|
|
262
228
|
}
|
|
263
|
-
|
|
264
229
|
function getTime() {
|
|
265
230
|
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
266
231
|
args[_key4] = arguments[_key4];
|
|
267
232
|
}
|
|
268
|
-
|
|
269
233
|
var realDate = instantiate(Date, args);
|
|
270
234
|
var tz = new NativeDate(toUTC(formatter, realDate));
|
|
271
235
|
if (!args.length) return tz.getTime();
|
|
@@ -273,7 +237,6 @@ function timezone(timeZone) {
|
|
|
273
237
|
return realDate.getTime() + currentTz.getTime() - tz.getTime();
|
|
274
238
|
}
|
|
275
239
|
}
|
|
276
|
-
|
|
277
240
|
function useFakeDate() {
|
|
278
241
|
Date = FakeDate; // eslint-disable-line no-global-assign
|
|
279
242
|
}
|
|
@@ -285,46 +248,36 @@ function useNativeDate() {
|
|
|
285
248
|
function time() {
|
|
286
249
|
return traveledTo + (NativeDate.now() - started);
|
|
287
250
|
}
|
|
288
|
-
|
|
289
251
|
function instantiate(type, args) {
|
|
290
252
|
var ctorArgs = args.slice();
|
|
291
253
|
ctorArgs.unshift(null);
|
|
292
254
|
return new (Function.prototype.bind.apply(type, ctorArgs))();
|
|
293
255
|
}
|
|
294
|
-
|
|
295
256
|
function toUTC(formatter, dt) {
|
|
296
257
|
var year, month, day, hour, minute, second;
|
|
297
|
-
|
|
298
258
|
var _iterator = _createForOfIteratorHelper(formatter.formatToParts(dt)),
|
|
299
|
-
|
|
300
|
-
|
|
259
|
+
_step;
|
|
301
260
|
try {
|
|
302
261
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
303
262
|
var _step$value = _step.value,
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
263
|
+
type = _step$value.type,
|
|
264
|
+
value = _step$value.value;
|
|
307
265
|
switch (type) {
|
|
308
266
|
case 'year':
|
|
309
267
|
year = parseInt(value);
|
|
310
268
|
break;
|
|
311
|
-
|
|
312
269
|
case 'month':
|
|
313
270
|
month = parseInt(value) - 1;
|
|
314
271
|
break;
|
|
315
|
-
|
|
316
272
|
case 'day':
|
|
317
273
|
day = parseInt(value);
|
|
318
274
|
break;
|
|
319
|
-
|
|
320
275
|
case 'hour':
|
|
321
276
|
hour = parseInt(value) % 24;
|
|
322
277
|
break;
|
|
323
|
-
|
|
324
278
|
case 'minute':
|
|
325
279
|
minute = parseInt(value);
|
|
326
280
|
break;
|
|
327
|
-
|
|
328
281
|
case 'second':
|
|
329
282
|
second = parseInt(value);
|
|
330
283
|
break;
|
|
@@ -335,7 +288,6 @@ function toUTC(formatter, dt) {
|
|
|
335
288
|
} finally {
|
|
336
289
|
_iterator.f();
|
|
337
290
|
}
|
|
338
|
-
|
|
339
291
|
return NativeDate.UTC(year, month, day, hour, minute, second, dt.getMilliseconds());
|
|
340
292
|
}
|
|
341
293
|
var chronokinesis_1 = chronokinesis.freeze;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chronokinesis",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Module for testing time-dependent code",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Pål Edman",
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
"url": "git://github.com/paed01/chronokinesis"
|
|
16
16
|
},
|
|
17
17
|
"engines": {
|
|
18
|
-
"node": ">=
|
|
18
|
+
"node": ">=12"
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
21
|
"toc": "node generate-api-toc.js",
|
|
22
|
-
"test": "
|
|
23
|
-
"posttest": "npm run prepare",
|
|
24
|
-
"test:lcov": "
|
|
22
|
+
"test": "mocha",
|
|
23
|
+
"posttest": "eslint . --cache && npm run prepare",
|
|
24
|
+
"test:lcov": "c8 -r lcov npm t",
|
|
25
25
|
"prepare": "npm run toc && rollup -c"
|
|
26
26
|
},
|
|
27
27
|
"files": [
|
|
@@ -49,12 +49,13 @@
|
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@babel/core": "^7.12.3",
|
|
51
51
|
"@babel/preset-env": "^7.12.1",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
52
|
+
"c8": "^7.12.0",
|
|
53
|
+
"chai": "^4.3.7",
|
|
54
54
|
"coveralls": "^3.1.0",
|
|
55
|
-
"eslint": "^
|
|
55
|
+
"eslint": "^8.29.0",
|
|
56
56
|
"lodash.clonedeep": "^4.5.0",
|
|
57
57
|
"markdown-toc": "^1.2.0",
|
|
58
|
+
"mocha": "^10.1.0",
|
|
58
59
|
"moment": "^2.29.1",
|
|
59
60
|
"rollup": "^2.56.3",
|
|
60
61
|
"rollup-plugin-babel": "^4.4.0",
|