chronokinesis 3.1.1 → 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.
@@ -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
- if (enumerableOnly) {
11
- symbols = symbols.filter(function (sym) {
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] != null ? arguments[i] : {};
25
-
26
- if (i % 2) {
27
- ownKeys(Object(source), true).forEach(function (key) {
28
- _defineProperty(target, key, source[key]);
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
- didErr = false,
107
- err;
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,39 +127,33 @@ 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
-
157
- dt.getTimezoneOffset = function getTimezoneOffset() {
158
- var curr = nativeGetTimezoneOffset.call(this);
159
- if (!iana) return curr;
160
- var tz = timezone(iana).getTime(this);
161
- return Math.round((tz - this.getTime()) / 60000) + curr;
162
- };
163
-
139
+ Object.defineProperty(dt, 'getTimezoneOffset', {
140
+ enumerable: false,
141
+ value: function getTimezoneOffset() {
142
+ var curr = nativeGetTimezoneOffset.call(this);
143
+ if (!iana) return curr;
144
+ var tz = timezone(iana).getTime(this);
145
+ return Math.round((tz - this.getTime()) / 60000) + curr;
146
+ }
147
+ });
164
148
  return dt;
165
149
  }
166
-
167
150
  FakeDate.UTC = NativeDate.UTC;
168
151
  FakeDate.parse = NativeDate.parse;
169
152
  FakeDate.prototype = NativeDate.prototype;
170
-
171
153
  FakeDate.now = function () {
172
154
  if (freezedAt) return freezedAt.getTime();
173
155
  return time();
174
156
  };
175
-
176
157
  var chronokinesis = {
177
158
  freeze: freeze,
178
159
  defrost: defrost,
@@ -181,40 +162,30 @@ var chronokinesis = (function (exports) {
181
162
  isKeepingTime: isKeepingTime,
182
163
  timezone: timezone
183
164
  };
184
-
185
165
  function freeze() {
186
166
  useFakeDate();
187
-
188
167
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
189
168
  args[_key2] = arguments[_key2];
190
169
  }
191
-
192
170
  freezedAt = instantiate(Date, args);
193
171
  return freezedAt;
194
172
  }
195
-
196
173
  function defrost() {
197
174
  freezedAt = null;
198
175
  }
199
-
200
176
  function travel() {
201
177
  useFakeDate();
202
-
203
178
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
204
179
  args[_key3] = arguments[_key3];
205
180
  }
206
-
207
181
  var travelToDate = instantiate(Date, args);
208
182
  traveledTo = travelToDate.getTime();
209
183
  started = NativeDate.now();
210
-
211
184
  if (freezedAt) {
212
185
  freezedAt = travelToDate;
213
186
  }
214
-
215
187
  return travelToDate;
216
188
  }
217
-
218
189
  function reset() {
219
190
  useNativeDate();
220
191
  freezedAt = null;
@@ -222,11 +193,9 @@ var chronokinesis = (function (exports) {
222
193
  traveledTo = null;
223
194
  iana = null;
224
195
  }
225
-
226
196
  function isKeepingTime() {
227
197
  return Date === FakeDate;
228
198
  }
229
-
230
199
  function timezone(timeZone) {
231
200
  var options = {
232
201
  year: 'numeric',
@@ -250,24 +219,20 @@ var chronokinesis = (function (exports) {
250
219
  freeze: freezeInTimezone,
251
220
  travel: travelInTimezone
252
221
  };
253
-
254
222
  function freezeInTimezone() {
255
223
  if (!arguments.length && iana === timeZone) return freeze();
256
224
  iana = timeZone;
257
225
  return freeze(getTime.apply(void 0, arguments));
258
226
  }
259
-
260
227
  function travelInTimezone() {
261
228
  if (!arguments.length && iana === timeZone) return travel();
262
229
  iana = timeZone;
263
230
  return travel(getTime.apply(void 0, arguments));
264
231
  }
265
-
266
232
  function getTime() {
267
233
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
268
234
  args[_key4] = arguments[_key4];
269
235
  }
270
-
271
236
  var realDate = instantiate(Date, args);
272
237
  var tz = new NativeDate(toUTC(formatter, realDate));
273
238
  if (!args.length) return tz.getTime();
@@ -275,7 +240,6 @@ var chronokinesis = (function (exports) {
275
240
  return realDate.getTime() + currentTz.getTime() - tz.getTime();
276
241
  }
277
242
  }
278
-
279
243
  function useFakeDate() {
280
244
  Date = FakeDate; // eslint-disable-line no-global-assign
281
245
  }
@@ -287,46 +251,36 @@ var chronokinesis = (function (exports) {
287
251
  function time() {
288
252
  return traveledTo + (NativeDate.now() - started);
289
253
  }
290
-
291
254
  function instantiate(type, args) {
292
255
  var ctorArgs = args.slice();
293
256
  ctorArgs.unshift(null);
294
257
  return new (Function.prototype.bind.apply(type, ctorArgs))();
295
258
  }
296
-
297
259
  function toUTC(formatter, dt) {
298
260
  var year, month, day, hour, minute, second;
299
-
300
261
  var _iterator = _createForOfIteratorHelper(formatter.formatToParts(dt)),
301
- _step;
302
-
262
+ _step;
303
263
  try {
304
264
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
305
265
  var _step$value = _step.value,
306
- type = _step$value.type,
307
- value = _step$value.value;
308
-
266
+ type = _step$value.type,
267
+ value = _step$value.value;
309
268
  switch (type) {
310
269
  case 'year':
311
270
  year = parseInt(value);
312
271
  break;
313
-
314
272
  case 'month':
315
273
  month = parseInt(value) - 1;
316
274
  break;
317
-
318
275
  case 'day':
319
276
  day = parseInt(value);
320
277
  break;
321
-
322
278
  case 'hour':
323
279
  hour = parseInt(value) % 24;
324
280
  break;
325
-
326
281
  case 'minute':
327
282
  minute = parseInt(value);
328
283
  break;
329
-
330
284
  case 'second':
331
285
  second = parseInt(value);
332
286
  break;
@@ -337,7 +291,6 @@ var chronokinesis = (function (exports) {
337
291
  } finally {
338
292
  _iterator.f();
339
293
  }
340
-
341
294
  return NativeDate.UTC(year, month, day, hour, minute, second, dt.getMilliseconds());
342
295
  }
343
296
  var chronokinesis_1 = chronokinesis.freeze;
@@ -347,7 +300,7 @@ var chronokinesis = (function (exports) {
347
300
  var chronokinesis_5 = chronokinesis.isKeepingTime;
348
301
  var chronokinesis_6 = chronokinesis.timezone;
349
302
 
350
- exports['default'] = chronokinesis;
303
+ exports["default"] = chronokinesis;
351
304
  exports.defrost = chronokinesis_2;
352
305
  exports.freeze = chronokinesis_1;
353
306
  exports.isKeepingTime = chronokinesis_5;
@@ -359,4 +312,4 @@ var chronokinesis = (function (exports) {
359
312
 
360
313
  return exports;
361
314
 
362
- }({}));
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
- if (enumerableOnly) {
8
- symbols = symbols.filter(function (sym) {
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] != null ? arguments[i] : {};
22
-
23
- if (i % 2) {
24
- ownKeys(Object(source), true).forEach(function (key) {
25
- _defineProperty(target, key, source[key]);
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
- didErr = false,
104
- err;
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,39 +124,33 @@ 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
-
154
- dt.getTimezoneOffset = function getTimezoneOffset() {
155
- var curr = nativeGetTimezoneOffset.call(this);
156
- if (!iana) return curr;
157
- var tz = timezone(iana).getTime(this);
158
- return Math.round((tz - this.getTime()) / 60000) + curr;
159
- };
160
-
136
+ Object.defineProperty(dt, 'getTimezoneOffset', {
137
+ enumerable: false,
138
+ value: function getTimezoneOffset() {
139
+ var curr = nativeGetTimezoneOffset.call(this);
140
+ if (!iana) return curr;
141
+ var tz = timezone(iana).getTime(this);
142
+ return Math.round((tz - this.getTime()) / 60000) + curr;
143
+ }
144
+ });
161
145
  return dt;
162
146
  }
163
-
164
147
  FakeDate.UTC = NativeDate.UTC;
165
148
  FakeDate.parse = NativeDate.parse;
166
149
  FakeDate.prototype = NativeDate.prototype;
167
-
168
150
  FakeDate.now = function () {
169
151
  if (freezedAt) return freezedAt.getTime();
170
152
  return time();
171
153
  };
172
-
173
154
  var chronokinesis = {
174
155
  freeze: freeze,
175
156
  defrost: defrost,
@@ -178,40 +159,30 @@ var chronokinesis = {
178
159
  isKeepingTime: isKeepingTime,
179
160
  timezone: timezone
180
161
  };
181
-
182
162
  function freeze() {
183
163
  useFakeDate();
184
-
185
164
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
186
165
  args[_key2] = arguments[_key2];
187
166
  }
188
-
189
167
  freezedAt = instantiate(Date, args);
190
168
  return freezedAt;
191
169
  }
192
-
193
170
  function defrost() {
194
171
  freezedAt = null;
195
172
  }
196
-
197
173
  function travel() {
198
174
  useFakeDate();
199
-
200
175
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
201
176
  args[_key3] = arguments[_key3];
202
177
  }
203
-
204
178
  var travelToDate = instantiate(Date, args);
205
179
  traveledTo = travelToDate.getTime();
206
180
  started = NativeDate.now();
207
-
208
181
  if (freezedAt) {
209
182
  freezedAt = travelToDate;
210
183
  }
211
-
212
184
  return travelToDate;
213
185
  }
214
-
215
186
  function reset() {
216
187
  useNativeDate();
217
188
  freezedAt = null;
@@ -219,11 +190,9 @@ function reset() {
219
190
  traveledTo = null;
220
191
  iana = null;
221
192
  }
222
-
223
193
  function isKeepingTime() {
224
194
  return Date === FakeDate;
225
195
  }
226
-
227
196
  function timezone(timeZone) {
228
197
  var options = {
229
198
  year: 'numeric',
@@ -247,24 +216,20 @@ function timezone(timeZone) {
247
216
  freeze: freezeInTimezone,
248
217
  travel: travelInTimezone
249
218
  };
250
-
251
219
  function freezeInTimezone() {
252
220
  if (!arguments.length && iana === timeZone) return freeze();
253
221
  iana = timeZone;
254
222
  return freeze(getTime.apply(void 0, arguments));
255
223
  }
256
-
257
224
  function travelInTimezone() {
258
225
  if (!arguments.length && iana === timeZone) return travel();
259
226
  iana = timeZone;
260
227
  return travel(getTime.apply(void 0, arguments));
261
228
  }
262
-
263
229
  function getTime() {
264
230
  for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
265
231
  args[_key4] = arguments[_key4];
266
232
  }
267
-
268
233
  var realDate = instantiate(Date, args);
269
234
  var tz = new NativeDate(toUTC(formatter, realDate));
270
235
  if (!args.length) return tz.getTime();
@@ -272,7 +237,6 @@ function timezone(timeZone) {
272
237
  return realDate.getTime() + currentTz.getTime() - tz.getTime();
273
238
  }
274
239
  }
275
-
276
240
  function useFakeDate() {
277
241
  Date = FakeDate; // eslint-disable-line no-global-assign
278
242
  }
@@ -284,46 +248,36 @@ function useNativeDate() {
284
248
  function time() {
285
249
  return traveledTo + (NativeDate.now() - started);
286
250
  }
287
-
288
251
  function instantiate(type, args) {
289
252
  var ctorArgs = args.slice();
290
253
  ctorArgs.unshift(null);
291
254
  return new (Function.prototype.bind.apply(type, ctorArgs))();
292
255
  }
293
-
294
256
  function toUTC(formatter, dt) {
295
257
  var year, month, day, hour, minute, second;
296
-
297
258
  var _iterator = _createForOfIteratorHelper(formatter.formatToParts(dt)),
298
- _step;
299
-
259
+ _step;
300
260
  try {
301
261
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
302
262
  var _step$value = _step.value,
303
- type = _step$value.type,
304
- value = _step$value.value;
305
-
263
+ type = _step$value.type,
264
+ value = _step$value.value;
306
265
  switch (type) {
307
266
  case 'year':
308
267
  year = parseInt(value);
309
268
  break;
310
-
311
269
  case 'month':
312
270
  month = parseInt(value) - 1;
313
271
  break;
314
-
315
272
  case 'day':
316
273
  day = parseInt(value);
317
274
  break;
318
-
319
275
  case 'hour':
320
276
  hour = parseInt(value) % 24;
321
277
  break;
322
-
323
278
  case 'minute':
324
279
  minute = parseInt(value);
325
280
  break;
326
-
327
281
  case 'second':
328
282
  second = parseInt(value);
329
283
  break;
@@ -334,7 +288,6 @@ function toUTC(formatter, dt) {
334
288
  } finally {
335
289
  _iterator.f();
336
290
  }
337
-
338
291
  return NativeDate.UTC(year, month, day, hour, minute, second, dt.getMilliseconds());
339
292
  }
340
293
  var chronokinesis_1 = chronokinesis.freeze;
package/index.js CHANGED
@@ -23,13 +23,16 @@ function FakeDate(...args) {
23
23
 
24
24
  const dt = instantiate(NativeDate, args);
25
25
 
26
- dt.getTimezoneOffset = function getTimezoneOffset() {
27
- const curr = nativeGetTimezoneOffset.call(this);
28
- if (!iana) return curr;
29
-
30
- const tz = timezone(iana).getTime(this);
31
- return Math.round((tz - this.getTime()) / 60000) + curr;
32
- };
26
+ Object.defineProperty(dt, 'getTimezoneOffset', {
27
+ enumerable: false,
28
+ value: function getTimezoneOffset() {
29
+ const curr = nativeGetTimezoneOffset.call(this);
30
+ if (!iana) return curr;
31
+
32
+ const tz = timezone(iana).getTime(this);
33
+ return Math.round((tz - this.getTime()) / 60000) + curr;
34
+ },
35
+ });
33
36
 
34
37
  return dt;
35
38
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chronokinesis",
3
- "version": "3.1.1",
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": ">=10"
18
+ "node": ">=12"
19
19
  },
20
20
  "scripts": {
21
21
  "toc": "node generate-api-toc.js",
22
- "test": "lab -vcL",
23
- "posttest": "npm run prepare",
24
- "test:lcov": "npm t -- -r lcov -o coverage.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
- "@hapi/code": "^8.0.2",
53
- "@hapi/lab": "^24.1.0",
52
+ "c8": "^7.12.0",
53
+ "chai": "^4.3.7",
54
54
  "coveralls": "^3.1.0",
55
- "eslint": "^7.13.0",
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",