Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade ESLint #332

Merged
merged 4 commits into from
Dec 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 0 additions & 54 deletions .eslintrc.json

This file was deleted.

18 changes: 17 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,21 @@ env:
npm_config_cache: /tmp/npm-cache

jobs:
lint:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: "Checkout code"
uses: actions/checkout@v4
- name: "Use Node.js"
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: "Install dependencies"
run: |
npm install
- name: "Run linter"
run: npm run lint
unit-tests:
runs-on: ubuntu-latest
strategy:
Expand All @@ -15,6 +30,7 @@ jobs:
- 18.x
- 20.x
- 22.x
- 23.x
steps:
- name: checkout
uses: actions/checkout@v4
Expand All @@ -31,7 +47,6 @@ jobs:
path: ${{ env.npm_config_cache }}
- run: npm install

- run: npm run lint
- run: npm run test-unit

integration-tests:
Expand All @@ -43,6 +58,7 @@ jobs:
- 18.x
- 20.x
- 22.x
- 23.x
steps:
- name: checkout
uses: actions/checkout@v4
Expand Down
61 changes: 61 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import eslintPluginJs from '@eslint/js';
import eslintPluginStylistic from '@stylistic/eslint-plugin';
import globals from 'globals';


const config = [
eslintPluginJs.configs.recommended,
eslintPluginStylistic.configs['all-flat'],
{
files: ['**/*.js'],
languageOptions: {
ecmaVersion: 'latest',
globals: {
...globals.node,
},
sourceType: 'module',
},
rules: {
'@stylistic/array-bracket-newline': ['error', 'consistent'],
'@stylistic/array-element-newline': ['error', 'consistent'],
'@stylistic/arrow-parens': 'off',
'@stylistic/comma-dangle': ['error', 'always-multiline'],
'@stylistic/dot-location': ['error', 'property'],
'@stylistic/function-call-argument-newline': ['error', 'consistent'],
'@stylistic/function-paren-newline': 'off',
'@stylistic/indent': ['error', 'tab'],
'@stylistic/indent-binary-ops': ['error', 'tab'],
'@stylistic/max-len': 'off',
'@stylistic/multiline-comment-style': 'off',
'@stylistic/multiline-ternary': ['error', 'always-multiline'],
'@stylistic/newline-per-chained-call': ['error', {ignoreChainWithDepth: 1}],
'@stylistic/no-mixed-operators': 'off',
'@stylistic/no-tabs': 'off',
'@stylistic/object-property-newline': 'off',
'@stylistic/one-var-declaration-per-line': 'off',
'@stylistic/operator-linebreak': ['error', 'before'],
'@stylistic/padded-blocks': 'off',
'@stylistic/quote-props': ['error', 'consistent-as-needed'],
'@stylistic/quotes': ['error', 'single'],
'curly': 'error',
'no-implicit-coercion': 'error',
'no-unused-vars': [
'error',
{
vars: 'all',
args: 'none',
ignoreRestSiblings: false,
},
],
},
},
{
files: ['test/**', '**/example.js'],
rules: {
'no-unused-vars': 'off',
'@stylistic/semi': 'off',
},
},
];

export default config;
8 changes: 4 additions & 4 deletions p/db/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ const parseGrid = (g) => {
return {
title: g.title,
rows: slices(g.nCols, g.itemL.map(item => Array.isArray(item.hints) && item.hints[0]
|| Array.isArray(item.remarkRefs) && item.remarkRefs[0] && item.remarkRefs[0].hint
|| {},
|| Array.isArray(item.remarkRefs) && item.remarkRefs[0] && item.remarkRefs[0].hint
|| {},
)),
};
};
Expand Down Expand Up @@ -250,7 +250,7 @@ const formatRefreshJourneyReq = (ctx, refreshToken) => {
const parseShpCtx = (addDataTicketInfo) => {
try {
return JSON.parse(atob(addDataTicketInfo)).shpCtx;
} catch (e) {
} catch {
// in case addDataTicketInfo is not a valid base64 string
return null;
}
Expand Down Expand Up @@ -349,7 +349,7 @@ const isFirstClassTicket = (addData, opt) => {
try {
const addDataJson = JSON.parse(atob(addData));
return Boolean(addDataJson.Upsell === 'S1' || opt.firstClass);
} catch (err) {
} catch {
return false;
}
};
Expand Down
2 changes: 1 addition & 1 deletion p/insa/example.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const hellestr1 = {
type: 'location',
id: '980801263',
address: 'Magdeburg - Leipziger Straße, Hellestraße 1',
latitude: 52.116706, longitude: 11.621821
latitude: 52.116706, longitude: 11.621821,
}

let data = await client.locations('Magdeburg Hbf', {results: 2})
Expand Down
2 changes: 1 addition & 1 deletion p/rmv/example.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const offenbachLiebigstr = {
type: 'location',
id: '990148095',
address: 'Offenbach am Main, Liebigstraße 22',
latitude: 50.096326, longitude: 8.759979
latitude: 50.096326, longitude: 8.759979,
}

let data = await client.locations('wiesbaden igstadt', {results: 2})
Expand Down
2 changes: 1 addition & 1 deletion p/rsag/example.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const albertEinsteinStr = {
type: 'location',
id: '990004201',
address: 'Rostock - Südstadt, Albert-Einstein-Straße 23',
latitude: 54.077208, longitude: 12.108299
latitude: 54.077208, longitude: 12.108299,
derhuerst marked this conversation as resolved.
Show resolved Hide resolved
}

let data = await client.locations('güstrow', {results: 2})
Expand Down
2 changes: 1 addition & 1 deletion p/vbn/example.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const bremenRutenstr = {
type: 'location',
id: '990025693',
address: 'Bremen Rutenstraße 1',
latitude: 53.074165, longitude: 8.8184
latitude: 53.074165, longitude: 8.8184,
}

let data = await client.locations('oldenburg', {results: 2})
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,9 @@
"@pollyjs/adapter-node-http": "^6.0.5",
"@pollyjs/core": "^6.0.5",
"@pollyjs/persister-fs": "^6.0.5",
"@stylistic/eslint-plugin": "^1.5.1",
"eslint": "^8.56.0",
"@stylistic/eslint-plugin": "^2.11.0",
"eslint": "^9.16.0",
"globals": "^15.13.0",
"is-coordinates": "^2.0.2",
"is-roughly-equal": "^0.1.0",
"tap": "^19.2.5",
Expand Down
2 changes: 1 addition & 1 deletion parse/location.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ const parseLocation = (ctx, l) => {
const locHints = (l.remarkRefs || [])
.filter(ref => Boolean(ref.hint) && Array.isArray(ref.tagL))
.filter(({tagL}) => tagL.includes('RES_LOC')
|| tagL.find(t => t.slice(0, 8) === 'RES_LOC_'), // e.g. `RES_LOC_H3`
|| tagL.find(t => t.slice(0, 8) === 'RES_LOC_'), // e.g. `RES_LOC_H3`
)
.map(ref => ref.hint);
const hints = [
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/lib/departures-in-direction.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ const testDeparturesInDirection = async (cfg) => {
when, stopovers: true,
});
t.ok(trip.stopovers.some(st => st.stop.station && directionIds.includes(st.stop.station.id)
|| directionIds.includes(st.stop.id),
|| directionIds.includes(st.stop.id),
), `trip ${dep.tripId} of ${name} has no stopover at ${directionIds.join('/')}`);
}
};
Expand Down
10 changes: 5 additions & 5 deletions test/fixtures/bvg-arrivals.js
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ const achtungFalscheFahrplanauskünfte = {
type: 'warning',
summary: 'Achtung! Falsche Fahrplanauskünfte für S41, S42 für Do (28.10.)',
text: 'Informationen zum Fahrplan finden Sie hier:\n'
+ '<a href="https://sbahn.berlin/fahren/fahrplanaenderungen" target="_blank" rel="noopener">sbahn.berlin</a>',
+ '<a href="https://sbahn.berlin/fahren/fahrplanaenderungen" target="_blank" rel="noopener">sbahn.berlin</a>',
icon: {type: 'HIM2', title: null},
priority: 100,
products: {
Expand All @@ -176,7 +176,7 @@ const gemeinsamSicherUnterwegs = {
type: 'warning',
summary: 'Gemeinsam sicher unterwegs - mit Abstand und medizinischer Maske (in Berlin: FFP2)!',
text: 'An Haltestellen und Bahnhöfen sowie in Fahrzeugen. Maskenmuffel riskieren mindestens 50 Euro.\n'
+ '<a href="https://www.vbb.de/corona" target="_blank" rel="noopener">Weitere Informationen</a>',
+ '<a href="https://www.vbb.de/corona" target="_blank" rel="noopener">Weitere Informationen</a>',
icon: {type: 'HIM0', title: null},
priority: 100,
products: {
Expand All @@ -200,7 +200,7 @@ const ausfallS8 = {
type: 'warning',
summary: 'Ausfall S8 zwischen Frankfurter Allee und Greifswalder Straße.',
text: 'Bauzeitverlängerung: Weiterhin durchgehend bis zum 29.10.(Do), ca. 1:30 Uhr kein Zugverkehr zwischen Greifswalder Str. und Frankfurter Allee. Zwischen Greifswalder Straße und Ostkreuz ist Ersatzverkehr mit Bussen eingerichtet. Bitte steigen Sie zwischen der S-Bahn und dem Ersatzverkehr am Bahnhof Ostkreuz um, am Bahnhof Frankfurter Allee beträgt der Fußweg zwischen S-Bahnhof und der Haltestelle des Ersatzverkehrs in der Gürtelstraße ca. 300 Meter. Achtung eingeschränkte Fahrradmitnahme! Bitte informieren Sie sich frühzeitig über Ihre Fahrmöglichkeiten. Wir bitten um Entschuldigung.\n'
+ '<a href="https://sbahn.berlin/fahren/fahrplanaenderungen/detail/16829-sanierung-einer-stuetzmauer-an-der-bruecke-eldenaer-strasse-gleiserneuerung-aufbringen-einer-ge/" target="_blank" rel="noopener">S-Bahn Berlin</a>',
+ '<a href="https://sbahn.berlin/fahren/fahrplanaenderungen/detail/16829-sanierung-einer-stuetzmauer-an-der-bruecke-eldenaer-strasse-gleiserneuerung-aufbringen-einer-ge/" target="_blank" rel="noopener">S-Bahn Berlin</a>',
icon: {type: 'HIM1', title: null},
priority: 100,
products: {
Expand Down Expand Up @@ -270,7 +270,7 @@ const bauzeitverlängerung = {
type: 'warning',
summary: 'Bauarbeiten.',
text: 'Bauzeitverlängerung: Weiterhin durchgehend bis zum 29.10.(Fr), ca. 1:30 Uhr kein Zugverkehr zwischen Greifswalder Str. und Frankfurter Allee. Zwischen Greifswalder Straße und Ostkreuz ist Ersatzverkehr mit Bussen eingerichtet. Bitte steigen Sie zwischen der S-Bahn und dem Ersatzverkehr am Bahnhof Ostkreuz um, am Bahnhof Frankfurter Allee beträgt der Fußweg zwischen S-Bahnhof und der Haltestelle des Ersatzverkehrs in der Gürtelstraße ca. 300 Meter. Achtung eingeschränkte Fahrradmitnahme! Bitte informieren Sie sich frühzeitig über Ihre Fahrmöglichkeiten. Wir bitten um Entschuldigung.\n'
+ '<a href="https://sbahn.berlin/fahren/fahrplanaenderungen/detail/16829-sanierung-einer-stuetzmauer-an-der-bruecke-eldenaer-strasse-gleiserneuerung-aufbringen-einer-ge/" target="_blank" rel="noopener">Infos Bauzeitverlängerung</a>',
+ '<a href="https://sbahn.berlin/fahren/fahrplanaenderungen/detail/16829-sanierung-einer-stuetzmauer-an-der-bruecke-eldenaer-strasse-gleiserneuerung-aufbringen-einer-ge/" target="_blank" rel="noopener">Infos Bauzeitverlängerung</a>',
icon: {type: 'HIM1', title: null},
priority: 1,
products: {
Expand Down Expand Up @@ -978,7 +978,7 @@ const bvgArrivals = [
type: 'warning',
summary: 'Bauarbeiten.',
text: 'Diese Fahrt fällt heute leider aus, bitte auf die Linie S8 ausweichen. Wegen Bauzeitverlängerung fahren keine Züge zwischen Frankfurter Allee und Greifswalder Straße, hier fahren Busse. Wir bitten um Entschuldigung\n'
+ '<a href="https://sbahn.berlin/fahren/fahrplanaenderungen/detail/16829-sanierung-einer-stuetzmauer-an-der-bruecke-eldenaer-strasse-gleiserneuerung-aufbringen-einer-ge/#con-22772" target="_blank" rel="noopener">Infos Bauzeitverlängerung</a>',
+ '<a href="https://sbahn.berlin/fahren/fahrplanaenderungen/detail/16829-sanierung-einer-stuetzmauer-an-der-bruecke-eldenaer-strasse-gleiserneuerung-aufbringen-einer-ge/#con-22772" target="_blank" rel="noopener">Infos Bauzeitverlängerung</a>',
icon: {type: 'HIM1', title: null},
priority: 50,
products: {
Expand Down
8 changes: 4 additions & 4 deletions test/fixtures/oebb-trip.js
Original file line number Diff line number Diff line change
Expand Up @@ -643,10 +643,10 @@ const oebbTrip = {
type: 'warning',
summary: 'Aktuelle Lage',
text: 'Wegen der aktuellen Corona-Situation wurde <b>der Fahrplan österreichweit angepasst</b>.\n'
+ 'Der Fernverkehr fährt innerhalb Österreichs wieder verstärkt. Der Regelbetrieb für S-Bahnen und Regionalzüge ist wieder aufgenommen.\n'
+ 'Einschränkungen im grenzüberschreitenden Verkehr bleiben bis auf Weiteres bestehen.\n'
+ 'Informationen dazu erhalten Sie auf SCOTTY mobil, im Internet auf <a href="https://www.oebb.at">www.oebb.at</a> und beim <a href="https://www.oebb.at/de/reiseplanung-services/kundenservice">ÖBB-Kundenservice</a> unter +43-5-1717.\n'
+ ' Wir bitten Sie in allen <b>öffentlichen Verkehrsmitteln und im gesamten Bahnhofsbereich</b> ein <b>Mund-Nasenschutz</b> zu tragen. Bitte halten Sie auch einen <b> Sicherheitsabstand </b> zu anderen Personen ein. Nähere Informationen des Bundesministeriums finden Sie <a href="https://kundeninformation-pv.oebb.at/dam/verkehrsauskunft/extern/2020/2020_04/Fahrgast-Charta_April_2020/Fahrgast-Charta_April_2020.pdf">hier</a>.\n',
+ 'Der Fernverkehr fährt innerhalb Österreichs wieder verstärkt. Der Regelbetrieb für S-Bahnen und Regionalzüge ist wieder aufgenommen.\n'
+ 'Einschränkungen im grenzüberschreitenden Verkehr bleiben bis auf Weiteres bestehen.\n'
+ 'Informationen dazu erhalten Sie auf SCOTTY mobil, im Internet auf <a href="https://www.oebb.at">www.oebb.at</a> und beim <a href="https://www.oebb.at/de/reiseplanung-services/kundenservice">ÖBB-Kundenservice</a> unter +43-5-1717.\n'
+ ' Wir bitten Sie in allen <b>öffentlichen Verkehrsmitteln und im gesamten Bahnhofsbereich</b> ein <b>Mund-Nasenschutz</b> zu tragen. Bitte halten Sie auch einen <b> Sicherheitsabstand </b> zu anderen Personen ein. Nähere Informationen des Bundesministeriums finden Sie <a href="https://kundeninformation-pv.oebb.at/dam/verkehrsauskunft/extern/2020/2020_04/Fahrgast-Charta_April_2020/Fahrgast-Charta_April_2020.pdf">hier</a>.\n',
icon: {type: 'HIM5', title: null},
priority: 100,
category: 5,
Expand Down
Loading
Loading