feat(SW-2863): Move contentstack router to trpc package * Add exports to packages and lint rule to prevent relative imports * Add env to trpc package * Add eslint to trpc package * Apply lint rules * Use direct imports from trpc package * Add lint-staged config to trpc * Move lang enum to common * Restructure trpc package folder structure * WIP first step * update internal imports in trpc * Fix most errors in scandic-web Just 100 left... * Move Props type out of trpc * Fix CategorizedFilters types * Move more schemas in hotel router * Fix deps * fix getNonContentstackUrls * Fix import error * Fix entry error handling * Fix generateMetadata metrics * Fix alertType enum * Fix duplicated types * lint:fix * Merge branch 'master' into feat/sw-2863-move-contentstack-router-to-trpc-package * Fix broken imports * Merge branch 'master' into feat/sw-2863-move-contentstack-router-to-trpc-package Approved-by: Linus Flood
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import { dt } from "@scandic-hotels/common/dt"
|
|
|
|
import type { Dayjs } from "dayjs"
|
|
|
|
/**
|
|
* Get valid dates from stringFromDate and stringToDate making sure that they are not in the past and chronologically correct
|
|
* @example const { fromDate, toDate} = getValidDates("2021-01-01", "2021-01-02")
|
|
*/
|
|
export function getValidDates(
|
|
stringFromDate: string | undefined,
|
|
stringToDate: string | undefined
|
|
): { fromDate: Dayjs; toDate: Dayjs } {
|
|
const fromDate = getValidFromDate(stringFromDate)
|
|
const toDate = getValidToDate(stringToDate, fromDate)
|
|
|
|
return { fromDate, toDate }
|
|
}
|
|
|
|
/**
|
|
* Get valid fromDate from stringFromDate making sure that it is not in the past
|
|
*/
|
|
export function getValidFromDate(stringFromDate: string | undefined): Dayjs {
|
|
const now = dt().utc()
|
|
if (!stringFromDate) {
|
|
return now
|
|
}
|
|
const toDate = dt(stringFromDate)
|
|
|
|
const yesterday = now.subtract(1, "day")
|
|
if (!toDate.isAfter(yesterday)) {
|
|
return now
|
|
}
|
|
|
|
return toDate
|
|
}
|
|
|
|
/**
|
|
* Get valid toDate from stringToDate making sure that it is after fromDate
|
|
*/
|
|
export function getValidToDate(
|
|
stringToDate: string | undefined,
|
|
fromDate: Dayjs | Date
|
|
): Dayjs {
|
|
const tomorrow = dt().utc().add(1, "day")
|
|
if (!stringToDate) {
|
|
return tomorrow
|
|
}
|
|
|
|
const toDate = dt(stringToDate)
|
|
if (toDate.isAfter(fromDate)) {
|
|
return toDate
|
|
}
|
|
|
|
return tomorrow
|
|
}
|