Addressing issues that came up in eslint

This commit is contained in:
Jocelyn Badgley (Twipped)
2022-06-22 15:45:08 -07:00
parent 9e4868e98f
commit e229e14dca
5 changed files with 50 additions and 60 deletions

View File

@@ -24,7 +24,7 @@ const str2locale = {
'fr': dateFNSLocales.fr,
'hu': dateFNSLocales.hu,
'pl': dateFNSLocales.pl,
'es': dateFNSLocales.es
'es': dateFNSLocales.es,
};
const markdownEngines = {
@@ -294,13 +294,14 @@ class Injectables {
};
}
// Given a list of arguments, returns the firt that isn't undefined
// Given a list of arguments, returns the first that isn't undefined
coalesce () {
return function (...raw_args) {
const { arguments: args } = raw_args.pop();
for (let arg in args) {
if (args[arg] !== undefined) {
return args[arg];
for (const value of Object.values(args)) {
if (value !== undefined) {
return value;
}
}
return undefined;
@@ -308,25 +309,25 @@ class Injectables {
}
// Multi tool for printing dates
//
//
// {{date}} -> prints current date
// {{date datestr}} -> prints date in datestr
// {{date datestr datefmt}} -> prints date in datestr in format datefmt
// {{date datestr datefmt lang}} -> prints date in datestr in format datefmt according to conventions for language lang
//
// {{date datestr datefmt lang}} -> prints date in datestr in format datefmt according to conventions for language lang
//
// Datestr can be the string "now", `undefined`, and anything parsable by `new Date()`.
//
//
// If lang is not specified, it will be extracted from the page metadata. If that is not available, English will be assumed.
// In case of errors, the date will be returned as an ISO string if possible and its raw datestr input otherwise.
// Datefmt format is available at https://date-fns.org/v2.25.0/docs/format
//
//
// Common formats:
// - "h:mm aa - EEE, LLL do, yyyy" = 12 hour clock, e.g. '1:28 PM - Sat, Feb 15th, 2020' (en) or '1:28 PM - sam., 15/févr./2020' (fr)
// - "hh:mm - EEE, LLL do, yyyy" = 24 hour clock, e.g. '13:28 - Sat, Feb 15th, 2020' (en) or '13:28 - sam., 15/févr./2020' (fr)
// - "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" or "iso" = ISO 8601 format, e.g. '2020-02-15T13:28:02.000Z'
date () {
return function (...args) {
let extra = args.pop();
const extra = args.pop();
let datestr, dateobj, datefmt, lang;
const { resolve: rval } = extra;
@@ -335,7 +336,7 @@ class Injectables {
switch (args.length) {
case 0:
datestr = "now";
datestr = 'now';
break;
case 1:
datestr = args[0];
@@ -350,21 +351,21 @@ class Injectables {
lang = args[2];
break;
default:
throw new Exception('wrong number of arguments for {{date}}, got '+args.length+' maximum is 3');
throw new Error('wrong number of arguments for {{date}}, got ' + args.length + ' maximum is 3');
}
if (datestr === "now" || datestr === undefined) {
if (datestr === 'now' || datestr === undefined) {
dateobj = new Date();
} else {
dateobj = new Date(datestr);
}
if (!dateFNS.isValid(dateobj)) {
console.trace('Invalid input for date: ', { datestr, filename, args, extra });
log.error('Invalid input for date: ', { datestr, filename, args, extra });
return datestr.toString();
}
if (datefmt == "iso") {
if (datefmt === 'iso') {
return dateobj.toISOString();
}
@@ -374,7 +375,7 @@ class Injectables {
const locale = str2locale[lang];
if (locale === undefined) {
console.warn('Locale not found: '+lang);
log.warn('Locale not found: ' + lang);
}
if (datefmt === undefined || locale === undefined) {
const options = {
@@ -386,20 +387,20 @@ class Injectables {
timeZoneName: 'short',
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
second: '2-digit',
};
try {
return dateobj.toLocaleString(lang, options);
} catch (error) {
console.trace('Something went horribly wrong while formating dates.', { error, filename, args, extra });
log.error('Something went horribly wrong while formating dates.', { error, filename, args, extra });
return dateobj.toISOString();
}
}
try {
return dateFNS.format(dateobj, datefmt, {locale: locale});
return dateFNS.format(dateobj, datefmt, { locale });
} catch (error) {
console.trace('Something went horribly wrong while formating dates.', { error, filename, args, extra });
log.error('Something went horribly wrong while formating dates.', { error, filename, args, extra });
return dateobj.toISOString();
}
};