@zelgadis87/utils-core 5.2.9 → 5.2.11

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.
@@ -9,14 +9,24 @@ type TRelativeSignum = '+' | '-';
9
9
  type TRelativeNumber = `${TRelativeSignum}${TUpToTwoDigits}`;
10
10
  const isRelativeNumber = ( x: string ): x is TRelativeNumber => x !== undefined && x.length > 0 && ( x[ 0 ] === '+' || x[ 0 ] === '-' );
11
11
 
12
+ export type TTimeInstantParameters = {
13
+ year: number;
14
+ month: TMonth;
15
+ date: TDayOfMonth;
16
+ hours: THourOfDay;
17
+ minutes: TMinuteOfHour
18
+ seconds: TSecondOfMinute;
19
+ milliseconds: TMillisecondOfSecond;
20
+ }
21
+
12
22
  export type TTimeInstantCreationParameters = {
13
- year: number | { absolute: number } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
14
- month: TMonth | { absolute: TMonth } | TMonthName | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
15
- date: TDayOfMonth | { absolute: TDayOfMonth } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
16
- hours: THourOfDay | { absolute: THourOfDay } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
17
- minutes: TMinuteOfHour | { absolute: TMinuteOfHour } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
18
- seconds: TSecondOfMinute | { absolute: TSecondOfMinute } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
19
- milliseconds: TMillisecondOfSecond | { absolute: TMillisecondOfSecond } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
23
+ year: TTimeInstantParameters[ "year" ] | { absolute: TTimeInstantParameters[ "year" ] } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
24
+ month: TTimeInstantParameters[ "month" ] | { absolute: TTimeInstantParameters[ "month" ] } | TMonthName | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
25
+ date: TTimeInstantParameters[ "date" ] | { absolute: TTimeInstantParameters[ "date" ] } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
26
+ hours: TTimeInstantParameters[ "hours" ] | { absolute: TTimeInstantParameters[ "hours" ] } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
27
+ minutes: TTimeInstantParameters[ "minutes" ] | { absolute: TTimeInstantParameters[ "minutes" ] } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
28
+ seconds: TTimeInstantParameters[ "seconds" ] | { absolute: TTimeInstantParameters[ "seconds" ] } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
29
+ milliseconds: TTimeInstantParameters[ "milliseconds" ] | { absolute: TTimeInstantParameters[ "milliseconds" ] } | TRelativeNumber | { relative: number, relativeTo: 'now' | TimeInstant } | 'next' | 'last' | 'current' | undefined;
20
30
  }
21
31
 
22
32
  const defaultTimeInstantCreationParameters: TTimeInstantCreationParameters = {
@@ -66,7 +76,7 @@ const timeInstantResolveValue = ( getFromDate: TFunction<Date, number>, referenc
66
76
  };
67
77
  const getFromDate = {
68
78
  year: d => d.getFullYear(),
69
- month: d => d.getMonth(),
79
+ month: d => d.getMonth() + 1,
70
80
  date: d => d.getDate(),
71
81
  hours: d => d.getHours(),
72
82
  minutes: d => d.getMinutes(),
@@ -84,7 +94,7 @@ export function createTimeInstantFromParameters( aParameters: Partial<TTimeInsta
84
94
  const referenceDate = toReferenceDate( aReferenceDate );
85
95
  const timestamp = Date.UTC(
86
96
  timeInstantResolveValue( getFromDate.year, referenceDate, year ),
87
- timeInstantResolveValue( getFromDate.month, referenceDate, month ),
97
+ timeInstantResolveValue( getFromDate.month, referenceDate, month ) - 1, // Convert from 1-based to 0-based for Date.UTC()
88
98
  timeInstantResolveValue( getFromDate.date, referenceDate, date ),
89
99
  timeInstantResolveValue( getFromDate.hours, referenceDate, hours ),
90
100
  timeInstantResolveValue( getFromDate.minutes, referenceDate, minutes ),
@@ -17,3 +17,5 @@ export type TIsEmptyObject<T> = keyof T extends never ? true : false;
17
17
  * ```
18
18
  */
19
19
  export type TConditionalOptionalType<T> = TIsEmptyObject<T> extends true ? [] : [ T ];
20
+
21
+ export type TEmptyObject = Record<string, never>;