@nu-art/ts-common 0.202.0 → 0.202.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nu-art/ts-common",
3
- "version": "0.202.0",
3
+ "version": "0.202.2",
4
4
  "description": "js and ts infra",
5
5
  "keywords": [
6
6
  "TacB0sS",
@@ -113,7 +113,7 @@ function filterDuplicates(source, mapper = defaultMapper) {
113
113
  if (defaultMapper === mapper)
114
114
  return Array.from(new Set(source));
115
115
  const uniqueKeys = new Set(source.map(mapper));
116
- return source.filter(item => (0, tools_1.exists)(uniqueKeys.delete(mapper(item))));
116
+ return source.filter(item => uniqueKeys.delete(mapper(item)));
117
117
  }
118
118
  exports.filterDuplicates = filterDuplicates;
119
119
  /**
@@ -35,3 +35,5 @@ export declare const DateTimeFormat: (format: string) => {
35
35
  parse: (timestampAsString: string) => number;
36
36
  format: (timestamp?: number) => string;
37
37
  };
38
+ export declare function isSameDay(date1: Date, date2: Date): boolean;
39
+ export declare function deltaDays(d1: Date | number, d2: Date | number): number;
@@ -26,8 +26,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
26
26
  });
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.DateTimeFormat = exports.normalizeTimestamp = exports.parseTimeString = exports.formatTimestamp = exports.createReadableTimestampObject = exports.currentTimeMillisWithTimeZone = exports.currentLocalTimeMillis = exports.specificTimeTodayMillis = exports.currentTimeMillis = exports.auditBy = exports._clearInterval = exports._setInterval = exports._clearTimeout = exports._setTimeout = exports.sleep = exports.timeout = exports.Weekdays = exports.Format_YYYYMMDD_HHmmss = exports.Format_HHmmss_DDMMYYYY = exports.Year = exports.Week = exports.Day = exports.Hour = exports.Minute = exports.Second = void 0;
29
+ exports.deltaDays = exports.isSameDay = exports.DateTimeFormat = exports.normalizeTimestamp = exports.parseTimeString = exports.formatTimestamp = exports.createReadableTimestampObject = exports.currentTimeMillisWithTimeZone = exports.currentLocalTimeMillis = exports.specificTimeTodayMillis = exports.currentTimeMillis = exports.auditBy = exports._clearInterval = exports._setInterval = exports._clearTimeout = exports._setTimeout = exports.sleep = exports.timeout = exports.Weekdays = exports.Format_YYYYMMDD_HHmmss = exports.Format_HHmmss_DDMMYYYY = exports.Year = exports.Week = exports.Day = exports.Hour = exports.Minute = exports.Second = void 0;
30
30
  const moment_1 = require("moment");
31
+ const moment = require("moment");
31
32
  exports.Second = 1000;
32
33
  exports.Minute = exports.Second * 60;
33
34
  exports.Hour = exports.Minute * 60;
@@ -133,3 +134,22 @@ const DateTimeFormat = (format) => {
133
134
  };
134
135
  };
135
136
  exports.DateTimeFormat = DateTimeFormat;
137
+ function isSameDay(date1, date2) {
138
+ return moment(date1).isSame(date2, 'day');
139
+ }
140
+ exports.isSameDay = isSameDay;
141
+ function deltaDays(d1, d2) {
142
+ const date1 = typeof d1 === 'number' ? new Date(d1) : d1;
143
+ const date2 = typeof d2 === 'number' ? new Date(d2) : d2;
144
+ //If both dates are the same day, return 0
145
+ if (isSameDay(date1, date2))
146
+ return 0;
147
+ const millis1 = typeof d1 === 'number' ? d1 : d1.getTime();
148
+ const millis2 = typeof d2 === 'number' ? d2 : d2.getTime();
149
+ const days = Math.floor((millis1 - millis2) / exports.Day);
150
+ //If date2 + the amount of days calculated actually lands on the same day as date1, return days
151
+ //Else, an extra day needs to be given
152
+ const date2Offset = new Date(date2.getTime() + (days * exports.Day));
153
+ return isSameDay(date1, date2Offset) ? days : days + 1;
154
+ }
155
+ exports.deltaDays = deltaDays;