perf(all): minify better by using arrow functions (#18730)

This commit is contained in:
Manu MA
2019-07-10 16:33:33 +02:00
committed by Brandy Carney
parent 8beeff2c52
commit 03c1d19e07
99 changed files with 653 additions and 679 deletions

View File

@ -3,16 +3,16 @@
* Defaults to the current date if
* no date given
*/
export function getDateValue(date: DatetimeData, format: string): number {
export const getDateValue = (date: DatetimeData, format: string): number => {
const getValue = getValueFromFormat(date, format);
if (getValue !== undefined) { return getValue; }
const defaultDate = parseDate(new Date().toISOString());
return getValueFromFormat((defaultDate as DatetimeData), format);
}
};
export function renderDatetime(template: string, value: DatetimeData | undefined, locale: LocaleData): string | undefined {
export const renderDatetime = (template: string, value: DatetimeData | undefined, locale: LocaleData): string | undefined => {
if (value === undefined) {
return undefined;
}
@ -43,9 +43,9 @@ export function renderDatetime(template: string, value: DatetimeData | undefined
}
return template;
}
};
export function renderTextFormat(format: string, value: any, date: DatetimeData | undefined, locale: LocaleData): string | undefined {
export const renderTextFormat = (format: string, value: any, date: DatetimeData | undefined, locale: LocaleData): string | undefined => {
if ((format === FORMAT_DDDD || format === FORMAT_DDD)) {
try {
value = (new Date(date!.year!, date!.month! - 1, date!.day)).getDay();
@ -80,8 +80,8 @@ export function renderTextFormat(format: string, value: any, date: DatetimeData
}
if (format === FORMAT_YY || format === FORMAT_MM ||
format === FORMAT_DD || format === FORMAT_HH ||
format === FORMAT_mm || format === FORMAT_ss) {
format === FORMAT_DD || format === FORMAT_HH ||
format === FORMAT_mm || format === FORMAT_ss) {
return twoDigit(value);
}
@ -110,9 +110,9 @@ export function renderTextFormat(format: string, value: any, date: DatetimeData
}
return value.toString();
}
};
export function dateValueRange(format: string, min: DatetimeData, max: DatetimeData): any[] {
export const dateValueRange = (format: string, min: DatetimeData, max: DatetimeData): any[] => {
const opts: any[] = [];
if (format === FORMAT_YYYY || format === FORMAT_YY) {
@ -126,8 +126,8 @@ export function dateValueRange(format: string, min: DatetimeData, max: DatetimeD
}
} else if (format === FORMAT_MMMM || format === FORMAT_MMM ||
format === FORMAT_MM || format === FORMAT_M ||
format === FORMAT_hh || format === FORMAT_h) {
format === FORMAT_MM || format === FORMAT_M ||
format === FORMAT_hh || format === FORMAT_h) {
// month or 12-hour
for (let i = 1; i < 13; i++) {
@ -135,7 +135,7 @@ export function dateValueRange(format: string, min: DatetimeData, max: DatetimeD
}
} else if (format === FORMAT_DDDD || format === FORMAT_DDD ||
format === FORMAT_DD || format === FORMAT_D) {
format === FORMAT_DD || format === FORMAT_D) {
// day
for (let i = 1; i < 32; i++) {
opts.push(i);
@ -165,28 +165,28 @@ export function dateValueRange(format: string, min: DatetimeData, max: DatetimeD
}
return opts;
}
};
export function dateSortValue(year: number | undefined, month: number | undefined, day: number | undefined, hour = 0, minute = 0): number {
export const dateSortValue = (year: number | undefined, month: number | undefined, day: number | undefined, hour = 0, minute = 0): number => {
return parseInt(`1${fourDigit(year)}${twoDigit(month)}${twoDigit(day)}${twoDigit(hour)}${twoDigit(minute)}`, 10);
}
};
export function dateDataSortValue(data: DatetimeData): number {
export const dateDataSortValue = (data: DatetimeData): number => {
return dateSortValue(data.year, data.month, data.day, data.hour, data.minute);
}
};
export function daysInMonth(month: number, year: number): number {
export const daysInMonth = (month: number, year: number): number => {
return (month === 4 || month === 6 || month === 9 || month === 11) ? 30 : (month === 2) ? isLeapYear(year) ? 29 : 28 : 31;
}
};
export function isLeapYear(year: number): boolean {
export const isLeapYear = (year: number): boolean => {
return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
}
};
const ISO_8601_REGEXP = /^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/;
const TIME_REGEXP = /^((\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/;
export function parseDate(val: string | undefined | null): DatetimeData | undefined {
export const parseDate = (val: string | undefined | null): DatetimeData | undefined => {
// manually parse IS0 cuz Date.parse cannot be trusted
// ISO 8601 format: 1994-12-15T13:47:20Z
let parse: any[] | null = null;
@ -239,7 +239,7 @@ export function parseDate(val: string | undefined | null): DatetimeData | undefi
millisecond: parse[7],
tzOffset,
};
}
};
/**
* Converts a valid UTC datetime string
@ -286,7 +286,7 @@ export const getLocalDateTime = (dateString: any = ''): Date => {
);
};
export function updateDate(existingData: DatetimeData, newData: any): boolean {
export const updateDate = (existingData: DatetimeData, newData: any): boolean => {
if (!newData || typeof newData === 'string') {
const localDateTime = getLocalDateTime(newData);
@ -338,9 +338,9 @@ export function updateDate(existingData: DatetimeData, newData: any): boolean {
}
}
return false;
}
};
export function parseTemplate(template: string): string[] {
export const parseTemplate = (template: string): string[] => {
const formats: string[] = [];
template = template.replace(/[^\w\s]/gi, ' ');
@ -358,7 +358,7 @@ export function parseTemplate(template: string): string[] {
if (word === FORMAT_A || word === FORMAT_a) {
// this format is an am/pm format, so it's an "a" or "A"
if ((formats.indexOf(FORMAT_h) < 0 && formats.indexOf(FORMAT_hh) < 0) ||
VALID_AMPM_PREFIX.indexOf(words[i - 1]) === -1) {
VALID_AMPM_PREFIX.indexOf(words[i - 1]) === -1) {
// template does not already have a 12-hour format
// or this am/pm format doesn't have a hour, minute, or second format immediately before it
// so do not treat this word "a" or "A" as the am/pm format
@ -371,9 +371,9 @@ export function parseTemplate(template: string): string[] {
});
return formats;
}
};
export function getValueFromFormat(date: DatetimeData, format: string) {
export const getValueFromFormat = (date: DatetimeData, format: string) => {
if (format === FORMAT_A || format === FORMAT_a) {
return (date.hour! < 12 ? 'am' : 'pm');
}
@ -381,18 +381,18 @@ export function getValueFromFormat(date: DatetimeData, format: string) {
return (date.hour! > 12 ? date.hour! - 12 : date.hour);
}
return (date as any)[convertFormatToKey(format)!];
}
};
export function convertFormatToKey(format: string): string | undefined {
export const convertFormatToKey = (format: string): string | undefined => {
for (const k in FORMAT_KEYS) {
if (FORMAT_KEYS[k].f === format) {
return FORMAT_KEYS[k].k;
}
}
return undefined;
}
};
export function convertDataToISO(data: DatetimeData): string {
export const convertDataToISO = (data: DatetimeData): string => {
// https://www.w3.org/TR/NOTE-datetime
let rtn = '';
if (data.year !== undefined) {
@ -445,13 +445,13 @@ export function convertDataToISO(data: DatetimeData): string {
}
return rtn;
}
};
/**
* Use to convert a string of comma separated strings or
* an array of strings, and clean up any user input
*/
export function convertToArrayOfStrings(input: string | string[] | undefined | null, type: string): string[] | undefined {
export const convertToArrayOfStrings = (input: string | string[] | undefined | null, type: string): string[] | undefined => {
if (input == null) {
return undefined;
}
@ -473,13 +473,13 @@ export function convertToArrayOfStrings(input: string | string[] | undefined | n
}
return values;
}
};
/**
* Use to convert a string of comma separated numbers or
* an array of numbers, and clean up any user input
*/
export function convertToArrayOfNumbers(input: any[] | string | number, type: string): number[] {
export const convertToArrayOfNumbers = (input: any[] | string | number, type: string): number[] => {
if (typeof input === 'string') {
// convert the string to an array of strings
// auto remove any whitespace and [] characters
@ -501,19 +501,19 @@ export function convertToArrayOfNumbers(input: any[] | string | number, type: st
}
return values;
}
};
function twoDigit(val: number | undefined): string {
const twoDigit = (val: number | undefined): string => {
return ('0' + (val !== undefined ? Math.abs(val) : '0')).slice(-2);
}
};
function threeDigit(val: number | undefined): string {
const threeDigit = (val: number | undefined): string => {
return ('00' + (val !== undefined ? Math.abs(val) : '0')).slice(-3);
}
};
function fourDigit(val: number | undefined): string {
const fourDigit = (val: number | undefined): string => {
return ('000' + (val !== undefined ? Math.abs(val) : '0')).slice(-4);
}
};
export interface DatetimeData {
year?: number;