Skip to content

feat: typescript 6 update + eslint upgrade + flaky cypress test fix#158

Open
Alessandro100 wants to merge 8 commits into
mainfrom
feat/89-typescript-6-update
Open

feat: typescript 6 update + eslint upgrade + flaky cypress test fix#158
Alessandro100 wants to merge 8 commits into
mainfrom
feat/89-typescript-6-update

Conversation

@Alessandro100

@Alessandro100 Alessandro100 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Summary:

closes #89 and #132

This PR upgrades the project to Typescript version 6. This version is the bridge for Typescript 7 which will be a massive performance upgrade due to it being ported to a GO compiler. In the process, this PR also updated the package.json to use eslint 9 and cleaned up unused / redundant packages. Some good rules to implement were turned off to be implemented in #153

Also updated the target of js compilation to ES2022 from es5
removed browserlist to rely on nextjs defaults

Expected behavior:

The application should behave exactly the same, and the linting should work as before. There are a few new warnings that come from the next eslint rules

Testing tips:

try next build:prod yarn lint yarn start:dev yarn start:prod all these commands should work

Please make sure these boxes are checked before submitting your pull request - thanks!

  • Run the unit tests with yarn test to make sure you didn't break anything
  • Add or update any needed documentation to the repo
  • Format the title like "feat: [new feature short description]". Title must follow the Conventional Commit Specification(https://www.conventionalcommits.org/en/v1.0.0/).
  • Linked all relevant issues
  • Include screenshot(s) showing how this pull request works and fixes the issue(s)

@Alessandro100 Alessandro100 self-assigned this Jul 9, 2026
@vercel

vercel Bot commented Jul 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mobilitydatabase-web Ready Ready Preview, Comment Jul 10, 2026 2:50pm

Request Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

(custom) This PR updates the project’s TypeScript and linting toolchain to align with newer Next.js-era defaults: TypeScript 6.x, ESLint 9 (flat config), and a modern JS compilation target (ES2022), aiming to keep runtime behavior unchanged while modernizing developer tooling.

Changes:

  • Upgraded TypeScript to 6.0.3 and updated TypeScript compiler settings (ES2022 target, moduleResolution: bundler).
  • Migrated ESLint configuration to ESLint 9 flat config (eslint.config.mjs), updated lint scripts, and removed legacy .eslintrc.json + redundant ESLint packages.
  • Added a global *.css module declaration to allow side-effect CSS imports (e.g., MapLibre CSS).

Reviewed changes

Copilot reviewed 4 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
yarn.lock Locks updated dependency graph for TypeScript 6 / ESLint 9 ecosystem upgrades.
tsconfig.json Moves compile target to ES2022 and switches module resolution to bundler.
src/global.d.ts Adds TypeScript declaration for importing .css files.
src/app/Theme.ts Reorders/adjusts MUI module augmentations to remain compatible with updated tooling.
package.json Updates devDependencies (TS 6, ESLint 9, typescript-eslint) and simplifies lint scripts.
eslint.config.mjs Introduces ESLint 9 flat config with Next core-web-vitals + TypeScript ESLint integration.
.eslintrc.json Removes legacy ESLint config in favor of flat config.

@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown

*Lighthouse ran on https://mobilitydatabase-ebdl87er9-mobility-data.vercel.app/ * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟠 57 🟢 94 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-ebdl87er9-mobility-data.vercel.app/feeds * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟠 77 🟠 87 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-ebdl87er9-mobility-data.vercel.app/feeds/gtfs/mdb-2126 * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🔴 38 🟢 94 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-ebdl87er9-mobility-data.vercel.app/feeds/gtfs_rt/mdb-2585 * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟢 100 🟠 84 🟢 96 🟢 100

*Lighthouse ran on https://mobilitydatabase-ebdl87er9-mobility-data.vercel.app/feeds/gbfs/gbfs-flamingo_porirua * (Desktop)
⚡️ HTML Report Lighthouse report for the changes in this PR:

Performance Accessibility Best Practices SEO
🟢 99 🟢 94 🟢 96 🟢 100

@Alessandro100 Alessandro100 changed the title feat: typescript 6 update + eslint upgrade feat: typescript 6 update + eslint upgrade + flaky cypress test fix Jul 10, 2026
@Alessandro100 Alessandro100 requested a review from Copilot July 10, 2026 15:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 23 out of 26 changed files in this pull request and generated 4 comments.

Comment on lines 89 to 93
Cypress.Commands.add(
'createNewUserAndSignIn',
(email: string, password: string) => {
const auth = app.auth();
cy.then(async () => {
Comment thread cypress/support/index.ts
Comment on lines 26 to 30
/**
* Wipes the firebase auth state, creates a user and signs in. Injects the user into the store
* @param email email of the new user
* @param password password of the new user
*/
});

it('should change password', () => {
it.only('should change password', () => {
Comment on lines 45 to 49
await new Promise<void>(
// eslint-disable-next-line @typescript-eslint/no-misused-promises,no-async-promise-executor
// eslint-disable-next-line no-async-promise-executor
async (resolve) =>
await map.once(ev, () => {
resolve();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update to Typescript 6.0 + typescript configs

2 participants