@rh-support/utils
Advanced tools
Comparing version 2.1.41 to 2.1.42
@@ -12,3 +12,3 @@ export interface ICSVHeader { | ||
export declare const isJsons: (array: any) => boolean; | ||
export declare const isArrays: (array: any) => boolean; | ||
export declare const isArrays: (array: any) => array is any[][]; | ||
export declare const jsonsHeaders: (array: any) => unknown[]; | ||
@@ -15,0 +15,0 @@ export declare const jsons2arrays: (jsons: any, headers: any) => any[]; |
@@ -1,14 +0,13 @@ | ||
import moment from 'moment-timezone'; | ||
type Granularity = 'day' | 'week' | 'month' | 'year'; | ||
export declare const formatDate: (date: any, locale?: string, format?: Intl.DateTimeFormatOptions) => string; | ||
export declare const formatDateTime: (date: any, locale?: string, format?: Intl.DateTimeFormatOptions) => string; | ||
export declare const isoDate: (date: string) => string; | ||
export declare const isCurrentDateAfterDate: (date: string, granularity?: Granularity) => boolean; | ||
export declare const getTimezoneOffsetFromTZName: (tzName: string) => string; | ||
export declare const getPastUTCDateFromNow: (pastDays: number) => string; | ||
export declare const isCurrentDateSameAsOrBeforeDate: (date: string, granularity?: moment.unitOfTime.StartOf) => boolean; | ||
export declare const isFutureDate: (date: string, granularity?: moment.unitOfTime.StartOf) => boolean; | ||
type AddToDate = { | ||
export declare const isFutureDate: (date: string, granularity?: Granularity) => boolean; | ||
export interface AddToDate { | ||
days: number; | ||
date?: string; | ||
}; | ||
export declare const addDaysToDate: (params: AddToDate) => moment.Moment; | ||
date?: Date | string | number; | ||
} | ||
export declare const addDaysToDate: (params: AddToDate) => Date; | ||
export declare const isValidDate: (dateString: string) => boolean; | ||
@@ -15,0 +14,0 @@ export declare const trafficSplit: (testVariationWeight: number, dateString: string) => "A" | "B"; |
@@ -1,3 +0,3 @@ | ||
import { isValid, parseISO } from 'date-fns'; | ||
import moment from 'moment-timezone'; | ||
import { addDays, isAfter, isValid, parseISO, startOfDay, startOfMonth, startOfWeek, startOfYear, subDays, } from 'date-fns'; | ||
import { format, formatInTimeZone, fromZonedTime } from 'date-fns-tz'; | ||
export const formatDate = (date, locale = 'en-us', format = { month: 'short', day: 'numeric', year: 'numeric' }) => { | ||
@@ -27,18 +27,68 @@ if (!date) { | ||
}; | ||
export const isoDate = (date) => new Date(date).toString(); | ||
export const isCurrentDateAfterDate = (date, granularity = 'day') => { | ||
const parsedDate = parseISO(date); | ||
const now = new Date(); | ||
let comparisonDate; | ||
let comparisonNow; | ||
switch (granularity) { | ||
case 'day': | ||
comparisonDate = startOfDay(parsedDate); | ||
comparisonNow = startOfDay(now); | ||
break; | ||
case 'week': | ||
comparisonDate = startOfWeek(parsedDate); | ||
comparisonNow = startOfWeek(now); | ||
break; | ||
case 'month': | ||
comparisonDate = startOfMonth(parsedDate); | ||
comparisonNow = startOfMonth(now); | ||
break; | ||
case 'year': | ||
comparisonDate = startOfYear(parsedDate); | ||
comparisonNow = startOfYear(now); | ||
break; | ||
default: | ||
throw new Error('Invalid granularity'); | ||
} | ||
return isAfter(comparisonNow, comparisonDate); | ||
}; | ||
export const getTimezoneOffsetFromTZName = (tzName) => { | ||
return moment().tz(tzName).format('Z'); | ||
const date = new Date(); | ||
const zonedDate = fromZonedTime(date, tzName); | ||
return format(zonedDate, 'xxx', { timeZone: tzName }); | ||
}; | ||
export const getPastUTCDateFromNow = (pastDays) => { | ||
return moment().subtract(pastDays, 'days').utc().format(); | ||
const date = subDays(new Date(), pastDays); | ||
return formatInTimeZone(date, 'UTC', "yyyy-MM-dd'T'HH:mm:ss'Z'"); | ||
}; | ||
export const isCurrentDateSameAsOrBeforeDate = (date, granularity = 'day') => { | ||
return moment(moment.now()).isSameOrBefore(date, granularity); | ||
}; | ||
export const isFutureDate = (date, granularity = 'day') => { | ||
return moment(date).isAfter(moment(), granularity); | ||
const parsedDate = parseISO(date); | ||
const now = new Date(); | ||
let comparisonDate; | ||
let comparisonNow; | ||
switch (granularity) { | ||
case 'day': | ||
comparisonDate = startOfDay(parsedDate); | ||
comparisonNow = startOfDay(now); | ||
break; | ||
case 'week': | ||
comparisonDate = startOfWeek(parsedDate); | ||
comparisonNow = startOfWeek(now); | ||
break; | ||
case 'month': | ||
comparisonDate = startOfMonth(parsedDate); | ||
comparisonNow = startOfMonth(now); | ||
break; | ||
case 'year': | ||
comparisonDate = startOfYear(parsedDate); | ||
comparisonNow = startOfYear(now); | ||
break; | ||
default: | ||
throw new Error('Invalid granularity'); | ||
} | ||
return isAfter(comparisonDate, comparisonNow); | ||
}; | ||
export const addDaysToDate = (params) => { | ||
const { days, date = new Date() } = params; | ||
return moment(date).add(days, 'days'); | ||
return addDays(new Date(date), days); | ||
}; | ||
@@ -45,0 +95,0 @@ export const isValidDate = (dateString) => { |
{ | ||
"name": "@rh-support/utils", | ||
"version": "2.1.41", | ||
"version": "2.1.42", | ||
"description": "> TODO: description", | ||
@@ -54,2 +54,3 @@ "author": "Vikas Rathee <vrathee@redhat.com>", | ||
"date-fns": "3.6.0", | ||
"date-fns-tz": "^3.1.3", | ||
"dompurify": "^2.2.6", | ||
@@ -59,3 +60,2 @@ "localforage": "^1.10.0", | ||
"lucene": "^2.1.1", | ||
"marked": "^1.2.4", | ||
"qs": "^6.7.0", | ||
@@ -73,4 +73,3 @@ "solr-query-builder": "1.0.1" | ||
"jest": "^29.7.0", | ||
"jest-environment-jsdom": "^29.7.0", | ||
"moment-timezone": "^0.5.45" | ||
"jest-environment-jsdom": "^29.7.0" | ||
}, | ||
@@ -81,3 +80,3 @@ "browserslist": [ | ||
], | ||
"gitHead": "ad90558bba194b3dbb01ce3d6bd3cbb797621c8c" | ||
"gitHead": "bb681f529a71f7b3de7f9cfb3a579b1a42eefd3e" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
121919
9
2365
+ Addeddate-fns-tz@^3.1.3
+ Addeddate-fns-tz@3.2.0(transitive)
- Removedmarked@^1.2.4
- Removedmarked@1.2.9(transitive)