Chore: Improve typings (#88282)
* remove some type assertions * some more type assertion fixes * nicer * shortcircuit while loop when hitting something that isn't an HTMLElement
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
/* eslint-disable id-blacklist, no-restricted-imports, @typescript-eslint/ban-types */
|
||||
import { lowerCase } from 'lodash';
|
||||
import moment, { MomentInput } from 'moment-timezone';
|
||||
import moment from 'moment-timezone';
|
||||
|
||||
import { DateTimeOptions, getTimeZone } from './common';
|
||||
import { parse, isValid } from './datemath';
|
||||
import { systemDateFormats } from './formats';
|
||||
import { DateTimeInput, DateTime, isDateTime } from './moment_wrapper';
|
||||
import { DateTimeInput, DateTime, isDateTime, dateTime, toUtc, dateTimeForTimeZone } from './moment_wrapper';
|
||||
|
||||
/**
|
||||
* The type that describes options that can be passed when parsing a date and time value.
|
||||
@@ -55,11 +55,11 @@ export const dateTimeParse: DateTimeParser<DateTimeOptionsWhenParsing> = (value,
|
||||
const parseString = (value: string, options?: DateTimeOptionsWhenParsing): DateTime => {
|
||||
if (value.indexOf('now') !== -1) {
|
||||
if (!isValid(value)) {
|
||||
return moment() as DateTime;
|
||||
return dateTime();
|
||||
}
|
||||
|
||||
const parsed = parse(value, options?.roundUp, options?.timeZone, options?.fiscalYearStartMonth);
|
||||
return parsed || (moment() as DateTime);
|
||||
return parsed || dateTime();
|
||||
}
|
||||
|
||||
const timeZone = getTimeZone(options);
|
||||
@@ -67,30 +67,30 @@ const parseString = (value: string, options?: DateTimeOptionsWhenParsing): DateT
|
||||
const format = options?.format ?? systemDateFormats.fullDate;
|
||||
|
||||
if (zone && zone.name) {
|
||||
return moment.tz(value, format, zone.name) as DateTime;
|
||||
return dateTimeForTimeZone(zone.name, value, format);
|
||||
}
|
||||
|
||||
switch (lowerCase(timeZone)) {
|
||||
case 'utc':
|
||||
return moment.utc(value, format) as DateTime;
|
||||
return toUtc(value, format);
|
||||
default:
|
||||
return moment(value, format) as DateTime;
|
||||
return dateTime(value, format);
|
||||
}
|
||||
};
|
||||
|
||||
const parseOthers = (value: DateTimeInput, options?: DateTimeOptionsWhenParsing): DateTime => {
|
||||
const date = value as MomentInput;
|
||||
const date = value;
|
||||
const timeZone = getTimeZone(options);
|
||||
const zone = moment.tz.zone(timeZone);
|
||||
|
||||
if (zone && zone.name) {
|
||||
return moment.tz(date, zone.name) as DateTime;
|
||||
return dateTimeForTimeZone(zone.name, date);
|
||||
}
|
||||
|
||||
switch (lowerCase(timeZone)) {
|
||||
case 'utc':
|
||||
return moment.utc(date) as DateTime;
|
||||
return toUtc(date);
|
||||
default:
|
||||
return moment(date) as DateTime;
|
||||
return dateTime(date);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user