From 24628349e7e3e48e62885689dbafc5678bb074e7 Mon Sep 17 00:00:00 2001 From: Fabian Meyer <3982806+meyfa@users.noreply.github.com> Date: Sun, 13 Oct 2024 12:55:42 +0200 Subject: [PATCH] fix: Improve code style for upcoming ESLint config update (#286) Updating to `@meyfa/eslint-config` v8 with ESLint v9 requires some code changes, which this commit addresses. The update itself will be done in a separate commit. --- src/cookies/request-session-cookie.ts | 2 +- src/data/match-line-by-name.ts | 2 +- src/jsonapi/build-canteen-lookup.ts | 4 ++-- src/jsonapi/index.ts | 4 ++-- src/jsonapi/jsonapi-parse-plans.ts | 6 +++--- src/simplesite/index.ts | 2 +- src/simplesite/parse-classifiers.ts | 2 +- src/simplesite/parse-datestamp.ts | 2 +- src/simplesite/parse-name-and-additives.ts | 2 +- src/simplesite/simplesite-date-util.ts | 2 +- src/simplesite/simplesite-request.ts | 2 +- test/cookies/request-session-cookie.test.ts | 4 ++-- test/data/canteens.test.ts | 10 +++++----- test/data/legend.test.ts | 2 +- test/data/match-canteen-by-name.test.ts | 4 ++-- test/data/match-line-by-name.test.ts | 8 ++++---- test/jsonapi/jsonapi-parse-plans.test.ts | 1 - test/jsonapi/jsonapi-request.test.ts | 4 ++-- test/simplesite/parse-classifiers.test.ts | 4 ++-- test/simplesite/parse-datestamp.test.ts | 14 +++++++------- test/simplesite/simplesite-request.test.ts | 4 ++-- 21 files changed, 42 insertions(+), 43 deletions(-) diff --git a/src/cookies/request-session-cookie.ts b/src/cookies/request-session-cookie.ts index bf3cbb1..a14fbd1 100644 --- a/src/cookies/request-session-cookie.ts +++ b/src/cookies/request-session-cookie.ts @@ -40,7 +40,7 @@ function findCookie (headers?: AxiosResponseHeaders | RawAxiosResponseHeaders): const setCookieArray = Array.isArray(setCookie) ? setCookie : [setCookie] for (const item of setCookieArray) { - const match = item.toString().match(COOKIE_REGEXP) + const match = COOKIE_REGEXP.exec(item.toString()) if (match != null) { return match[1] } diff --git a/src/data/match-line-by-name.ts b/src/data/match-line-by-name.ts index 5dc1574..90884f8 100644 --- a/src/data/match-line-by-name.ts +++ b/src/data/match-line-by-name.ts @@ -12,7 +12,7 @@ const LINE_IDS_MAPPING: Map> = (() => { const lineMapping = new Map() for (const line of canteen.lines) { const allNames = [line.name, ...(line.alternativeNames ?? [])] - allNames.forEach(name => lineMapping.set(normalizeNameForMatching(name), line.id)) + allNames.forEach((name) => lineMapping.set(normalizeNameForMatching(name), line.id)) } mapping.set(canteen.id, lineMapping) } diff --git a/src/jsonapi/build-canteen-lookup.ts b/src/jsonapi/build-canteen-lookup.ts index b7a4975..9f07ed4 100644 --- a/src/jsonapi/build-canteen-lookup.ts +++ b/src/jsonapi/build-canteen-lookup.ts @@ -16,8 +16,8 @@ export interface MappedCanteen { * @returns The generated Map. */ function toCanteenMap (array: Canteen[]): Map { - return new Map(array.map(canteen => { - const lineMap = new Map(canteen.lines.map(line => [line.id, line])) + return new Map(array.map((canteen) => { + const lineMap = new Map(canteen.lines.map((line) => [line.id, line])) return [canteen.id, { ...canteen, lines: lineMap diff --git a/src/jsonapi/index.ts b/src/jsonapi/index.ts index 631be62..5e1bbc5 100644 --- a/src/jsonapi/index.ts +++ b/src/jsonapi/index.ts @@ -15,11 +15,11 @@ import { CanteenPlan } from '../types/canteen-plan.js' * @returns Parsed results. */ export async function fetch (options: JsonApiOptions): Promise { - const auth = options?.auth + const auth = options.auth if (auth == null) { throw new Error('auth option is required') } - const parallel = options?.parallel ?? false + const parallel = options.parallel ?? false const metadataPromise = request(auth, METADATA_ENDPOINT) if (!parallel) await metadataPromise // synchronize diff --git a/src/jsonapi/jsonapi-parse-plans.ts b/src/jsonapi/jsonapi-parse-plans.ts index cb059a5..d2ac6c7 100644 --- a/src/jsonapi/jsonapi-parse-plans.ts +++ b/src/jsonapi/jsonapi-parse-plans.ts @@ -105,8 +105,8 @@ function getFormattedPrice (mealData: { price_1?: number, info?: string }): stri * @returns An array of classifiers for the given meal. */ function getClassifiers (mealData: Record): string[] { - return Object.keys(CLASSIFIER_MAPPING).filter(classifier => mealData[classifier]) - .map(classifier => CLASSIFIER_MAPPING[classifier]) + return Object.keys(CLASSIFIER_MAPPING).filter((classifier) => mealData[classifier]) + .map((classifier) => CLASSIFIER_MAPPING[classifier]) } /** @@ -115,7 +115,7 @@ function getClassifiers (mealData: Record): string[] { * @returns An array of additives for the given meal. */ function getAdditives (mealData: { add: string[] }): string[] { - return mealData.add.filter(str => str != null && str !== '') + return mealData.add.filter((str) => str != null && str !== '') } /** diff --git a/src/simplesite/index.ts b/src/simplesite/index.ts index 34e8a62..b0759ca 100644 --- a/src/simplesite/index.ts +++ b/src/simplesite/index.ts @@ -8,7 +8,7 @@ import { SimpleSiteOptions } from '../types/options.js' /** * Array of known canteen ids. */ -const CANTEEN_IDS = Object.freeze(canteens.map(c => c.id)) +const CANTEEN_IDS = Object.freeze(canteens.map((c) => c.id)) /** * Fetch a single instance of the plan and parse it. diff --git a/src/simplesite/parse-classifiers.ts b/src/simplesite/parse-classifiers.ts index fcfef7a..3791f0e 100644 --- a/src/simplesite/parse-classifiers.ts +++ b/src/simplesite/parse-classifiers.ts @@ -12,7 +12,7 @@ const CLASSIFIERS_REGEXP = /^\s*\[([\w,]+)\]\s*$/ * @returns The classifiers array. */ export function parseClassifiers (str: string): string[] { - const match = str.match(CLASSIFIERS_REGEXP) + const match = CLASSIFIERS_REGEXP.exec(str) if (match != null) { return match[1].split(/\s*,\s*/) } diff --git a/src/simplesite/parse-datestamp.ts b/src/simplesite/parse-datestamp.ts index e87bcde..5e3bb5b 100644 --- a/src/simplesite/parse-datestamp.ts +++ b/src/simplesite/parse-datestamp.ts @@ -44,7 +44,7 @@ function guessYear (refYear: number, refMonth: number, month: number): number { * @returns An object containing integers: day, month, year. */ export function parseDatestamp (str: string, reference: Date): DateSpec | undefined { - const match = str.match(DATE_REGEXP) + const match = DATE_REGEXP.exec(str) if (match == null) { return undefined } diff --git a/src/simplesite/parse-name-and-additives.ts b/src/simplesite/parse-name-and-additives.ts index 5538148..68054ff 100644 --- a/src/simplesite/parse-name-and-additives.ts +++ b/src/simplesite/parse-name-and-additives.ts @@ -19,7 +19,7 @@ const NAME_ADDITIVES_REGEXP = /^\s*([\s\S]+\S)\s+\(\s*(\w{1,3}(?:\s*,\s*\w{1,3}) * @returns The resulting name,additives object. */ export function parseNameAndAdditives (str: string): { name: string, additives: string[] } { - const match = str.match(NAME_ADDITIVES_REGEXP) + const match = NAME_ADDITIVES_REGEXP.exec(str) if (match != null) { return { name: mergeWhitespace(match[1]), diff --git a/src/simplesite/simplesite-date-util.ts b/src/simplesite/simplesite-date-util.ts index 46c68e3..29aae34 100644 --- a/src/simplesite/simplesite-date-util.ts +++ b/src/simplesite/simplesite-date-util.ts @@ -32,5 +32,5 @@ export function isDateSupported (date: datelike): boolean { * @returns Week numbers for the given dates. */ export function convertToWeeks (dates: datelike[]): Set { - return new Set(dates.map(d => moment(d).isoWeek())) + return new Set(dates.map((d) => moment(d).isoWeek())) } diff --git a/src/simplesite/simplesite-request.ts b/src/simplesite/simplesite-request.ts index 5321850..b837d1b 100644 --- a/src/simplesite/simplesite-request.ts +++ b/src/simplesite/simplesite-request.ts @@ -53,7 +53,7 @@ export async function request (canteenId: string, weekId: string | number, sessi headers, responseType: 'text', // to avoid JSON parsing, which, unfortunately, is not done automatically based on responseType - transformResponse: res => res, + transformResponse: (res) => res, timeout: REQUEST_TIMEOUT, maxContentLength: REQUEST_MAX_LENGTH }) diff --git a/test/cookies/request-session-cookie.test.ts b/test/cookies/request-session-cookie.test.ts index 3a9cdb3..760cc7c 100644 --- a/test/cookies/request-session-cookie.test.ts +++ b/test/cookies/request-session-cookie.test.ts @@ -7,7 +7,7 @@ describe('cookies/request-session-cookie', function () { afterEach(() => lazyMock.restore()) it('sends request to https://www.sw-ka.de/*', async function () { - lazyMock.get().onAny().replyOnce(config => { + lazyMock.get().onAny().replyOnce((config) => { assert.ok(config.url?.startsWith('https://www.sw-ka.de/') === true) return [200, 'test-response'] }) @@ -53,7 +53,7 @@ describe('cookies/request-session-cookie', function () { it('sends a Firefox user agent', async function () { // this is required because sw-ka does not reliably set cookies in other browsers - lazyMock.get().onAny().replyOnce(config => { + lazyMock.get().onAny().replyOnce((config) => { assert.ok(config.headers != null) assert.ok(typeof config.headers['User-Agent'] === 'string') assert.match(config.headers['User-Agent'], /Mozilla/) diff --git a/test/data/canteens.test.ts b/test/data/canteens.test.ts index 571a702..096e56b 100644 --- a/test/data/canteens.test.ts +++ b/test/data/canteens.test.ts @@ -47,16 +47,16 @@ describe('data/canteens', function () { }) it('does not have duplicate canteen ids', function () { - checkDuplicates(canteens, canteen => canteen.id) + checkDuplicates(canteens, (canteen) => canteen.id) }) it('does not have duplicate canteen names', function () { - checkDuplicates(canteens, canteen => canteen.name) + checkDuplicates(canteens, (canteen) => canteen.name) }) it('does not have duplicate line ids in canteens', function () { for (const entry of canteens) { - checkDuplicates(entry.lines, line => line.id) + checkDuplicates(entry.lines, (line) => line.id) } }) @@ -66,10 +66,10 @@ describe('data/canteens', function () { for (const line of entry.lines) { allNames.push(line.name.toLocaleLowerCase(['de-DE', 'en-US'])) if (line.alternativeNames != null) { - allNames.push(...line.alternativeNames.map(name => name.toLocaleLowerCase(['de-DE', 'en-US']))) + allNames.push(...line.alternativeNames.map((name) => name.toLocaleLowerCase(['de-DE', 'en-US']))) } } - checkDuplicates(allNames, name => name) + checkDuplicates(allNames, (name) => name) } }) }) diff --git a/test/data/legend.test.ts b/test/data/legend.test.ts index 8db1105..3ae5ac3 100644 --- a/test/data/legend.test.ts +++ b/test/data/legend.test.ts @@ -22,6 +22,6 @@ describe('data/legend', function () { }) it('does not have duplicate short values', function () { - checkDuplicates(legend, entry => entry.short) + checkDuplicates(legend, (entry) => entry.short) }) }) diff --git a/test/data/match-canteen-by-name.test.ts b/test/data/match-canteen-by-name.test.ts index 245296d..643006f 100644 --- a/test/data/match-canteen-by-name.test.ts +++ b/test/data/match-canteen-by-name.test.ts @@ -6,11 +6,11 @@ describe('data/match-canteen-by-name', function () { assert.strictEqual(matchCanteenByName('Unbekannte Mensa'), undefined) }) - it("matches 'Mensa Am Adenauerring", function () { + it('matches \'Mensa Am Adenauerring', function () { assert.strictEqual(matchCanteenByName('Mensa Am Adenauerring'), 'adenauerring') }) - it("matches 'Menseria Moltkestraße 30'", function () { + it('matches \'Menseria Moltkestraße 30\'', function () { assert.strictEqual(matchCanteenByName('Menseria Moltkestraße 30'), 'x1moltkestrasse') }) diff --git a/test/data/match-line-by-name.test.ts b/test/data/match-line-by-name.test.ts index 12d3fe4..a7e6579 100644 --- a/test/data/match-line-by-name.test.ts +++ b/test/data/match-line-by-name.test.ts @@ -10,19 +10,19 @@ describe('data/match-line-by-name', function () { assert.strictEqual(matchLineByName('adenauerring', 'Unbekannte Linie'), undefined) }) - it("matches 'Linie 1' (adenauerring)", function () { + it('matches \'Linie 1\' (adenauerring)', function () { assert.strictEqual(matchLineByName('adenauerring', 'Linie 1'), 'l1') }) - it("matches '[pizza]werk Salate / Vorspeisen' (adenauerring)", function () { + it('matches \'[pizza]werk Salate / Vorspeisen\' (adenauerring)', function () { assert.strictEqual(matchLineByName('adenauerring', '[pizza]werk Salate / Vorspeisen'), 'salat_dessert') }) - it("matches '[kœri]werk' (adenauerring)", function () { + it('matches \'[kœri]werk\' (adenauerring)', function () { assert.strictEqual(matchLineByName('adenauerring', '[kœri]werk'), 'aktion') }) - it("matches 'Gut & Günstig' (x1moltkestrasse)", function () { + it('matches \'Gut & Günstig\' (x1moltkestrasse)', function () { assert.strictEqual(matchLineByName('x1moltkestrasse', 'Gut & Günstig'), 'gut') }) diff --git a/test/jsonapi/jsonapi-parse-plans.test.ts b/test/jsonapi/jsonapi-parse-plans.test.ts index d88eca2..fe55b7f 100644 --- a/test/jsonapi/jsonapi-parse-plans.test.ts +++ b/test/jsonapi/jsonapi-parse-plans.test.ts @@ -194,7 +194,6 @@ describe('jsonapi/jsonapi-parse-plans', function () { }) it('uses empty string for price of 0', function () { - // eslint-disable-next-line camelcase const data = { adenauerring: { 1597096800: { diff --git a/test/jsonapi/jsonapi-request.test.ts b/test/jsonapi/jsonapi-request.test.ts index 32d27a0..2016b5e 100644 --- a/test/jsonapi/jsonapi-request.test.ts +++ b/test/jsonapi/jsonapi-request.test.ts @@ -18,7 +18,7 @@ describe('jsonapi/jsonapi-request', function () { describe('with #METADATA_ENDPOINT', function () { it('sends request as expected', async function () { - lazyMock.get().onAny().replyOnce(config => { + lazyMock.get().onAny().replyOnce((config) => { assert.strictEqual(config.url, 'https://www.sw-ka.de/en/json_interface/general/') assert.strictEqual(config.method, 'get') assert.deepStrictEqual(config.auth, { @@ -45,7 +45,7 @@ describe('jsonapi/jsonapi-request', function () { describe('with #PLANS_ENDPOINT', function () { it('sends request as expected', async function () { - lazyMock.get().onAny().replyOnce(config => { + lazyMock.get().onAny().replyOnce((config) => { assert.strictEqual(config.url, 'https://www.sw-ka.de/en/json_interface/canteen/') assert.strictEqual(config.method, 'get') assert.deepStrictEqual(config.auth, { diff --git a/test/simplesite/parse-classifiers.test.ts b/test/simplesite/parse-classifiers.test.ts index d4a2f51..ba8ed16 100644 --- a/test/simplesite/parse-classifiers.test.ts +++ b/test/simplesite/parse-classifiers.test.ts @@ -2,11 +2,11 @@ import assert from 'node:assert' import { parseClassifiers } from '../../src/simplesite/parse-classifiers.js' describe('simplesite/parse-classifiers', function () { - it("returns [] for empty input ('')", function () { + it('returns [] for empty input (\'\')', function () { assert.deepStrictEqual(parseClassifiers(''), []) }) - it("returns [] for empty brackets ('[]')", function () { + it('returns [] for empty brackets (\'[]\')', function () { assert.deepStrictEqual(parseClassifiers('[]'), []) }) diff --git a/test/simplesite/parse-datestamp.test.ts b/test/simplesite/parse-datestamp.test.ts index 0b9a480..6b04a5e 100644 --- a/test/simplesite/parse-datestamp.test.ts +++ b/test/simplesite/parse-datestamp.test.ts @@ -2,17 +2,17 @@ import assert from 'node:assert' import { parseDatestamp } from '../../src/simplesite/parse-datestamp.js' describe('simplesite/parse-datestamp', function () { - it("returns undefined for invalid input ('')", function () { + it('returns undefined for invalid input (\'\')', function () { const ref = new Date(2019, 10, 30) assert.strictEqual(parseDatestamp('', ref), undefined) }) - it("returns undefined for implausible input ('Mo 40.05.')", function () { + it('returns undefined for implausible input (\'Mo 40.05.\')', function () { const ref = new Date(2019, 10, 30) assert.strictEqual(parseDatestamp('Mo 40.05.', ref), undefined) }) - it("parses 'Mo 02.12.' with reference 2019-10-30", function () { + it('parses \'Mo 02.12.\' with reference 2019-10-30', function () { const ref = new Date(2019, 10, 30) assert.deepStrictEqual(parseDatestamp('Mo 02.12.', ref), { day: 2, @@ -21,7 +21,7 @@ describe('simplesite/parse-datestamp', function () { }) }) - it("parses 'Mi 01.01.' with reference 2020-01-01", function () { + it('parses \'Mi 01.01.\' with reference 2020-01-01', function () { const ref = new Date(2020, 0, 1) assert.deepStrictEqual(parseDatestamp('Mi 01.01.', ref), { day: 1, @@ -30,7 +30,7 @@ describe('simplesite/parse-datestamp', function () { }) }) - it("parses 'Mo 02.12.' with reference 2020-01-05", function () { + it('parses \'Mo 02.12.\' with reference 2020-01-05', function () { const ref = new Date(2020, 0, 5) assert.deepStrictEqual(parseDatestamp('Mo 02.12.', ref), { day: 2, @@ -39,7 +39,7 @@ describe('simplesite/parse-datestamp', function () { }) }) - it("parses 'Mi 01.01.' with reference 2019-12-15", function () { + it('parses \'Mi 01.01.\' with reference 2019-12-15', function () { const ref = new Date(2019, 11, 15) assert.deepStrictEqual(parseDatestamp('Mi 01.01.', ref), { day: 1, @@ -48,7 +48,7 @@ describe('simplesite/parse-datestamp', function () { }) }) - it("parses 'Mi 01.07.' with reference 2020-06-30", function () { + it('parses \'Mi 01.07.\' with reference 2020-06-30', function () { // test for chunk overlap const ref = new Date(2020, 5, 30) assert.deepStrictEqual(parseDatestamp('Mi 01.07.', ref), { diff --git a/test/simplesite/simplesite-request.test.ts b/test/simplesite/simplesite-request.test.ts index b569292..5f9e4b3 100644 --- a/test/simplesite/simplesite-request.test.ts +++ b/test/simplesite/simplesite-request.test.ts @@ -7,7 +7,7 @@ describe('simplesite/simplesite-request', function () { afterEach(() => lazyMock.restore()) it('sends request as expected', async function () { - lazyMock.get().onAny().replyOnce(config => { + lazyMock.get().onAny().replyOnce((config) => { assert.strictEqual(config.url, 'https://www.sw-ka.de/de/hochschulgastronomie/speiseplan/mensa_test-canteen/') assert.strictEqual(config.method, 'get') assert.deepStrictEqual(config.params, { @@ -30,7 +30,7 @@ describe('simplesite/simplesite-request', function () { }) it('includes session cookie if provided', async function () { - lazyMock.get().onAny().replyOnce(config => { + lazyMock.get().onAny().replyOnce((config) => { assert.ok(config.headers != null) assert.strictEqual(config.headers.Cookie, 'platoCMS=qux42baz') return [200, 'page content']