markbind icon indicating copy to clipboard operation
markbind copied to clipboard

Upgrade typescript v4 to v5

Open gerteck opened this issue 4 months ago • 0 comments

What is the purpose of this pull request?

  • [ ] Documentation update
  • [ ] Bug fix
  • [ ] Feature addition or enhancement
  • [x] Code maintenance
  • [ ] DevOps
  • [ ] Improve developer experience
  • [ ] Others, please explain:

Overview of changes:

Upgrading typescript version is to support native ESM module compilation, improving compatibility and moving away from legacy CommonJS. This allows improved Node.js module compatibility.

  • Upgrade Jest from 27 to 29 as it was capping typescript version:
    • https://jest-archive-august-2023.netlify.app/docs/28.x/upgrading-to-jest28/
    • https://jestjs.io/docs/upgrading-to-jest29
  • Upgraded @types/node as it was blocking typescript upgrade: *https://stackoverflow.com/questions/78790943/in-typescript-5-6-buffer-is-not-assignable-to-arraybufferview-or-uint8arr
  • Upgrade typescript version v4 to v5
  • Upgrade @typescript-eslint/parser
  • updated eslint@7 to eslint@^8.57.0 || 9 Old airbnb eslint configs no longer being maintained - we should shift to using something else.

Anything you'd like to highlight/discuss:

We would need to upgrade eslint as well at some point of time in the future

============= WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree. You may find that it works just fine, or you may not. SUPPORTED TYPESCRIPT VERSIONS: >=4.7.4 <5.6.0 YOUR TYPESCRIPT VERSION: 5.9.2 Please only submit bug reports when using the officially supported version. =============

Upgrading ESlint to v9 and also migrating from previous airbnb-eslint configurations (which seem to no longer be maintained) is going to be an issue in the future

base last updated 4 years ago - https://www.npmjs.com/package/eslint-config-airbnb-base airbnb-typescript-adaption repo has been archived, will not support eslint@9 going forward https://github.com/iamturns/eslint-config-airbnb-typescript

Testing instructions:

Sanity check that nothing major breaks

Proposed commit message: (wrap lines at 72 characters)

Upgrade typescript v4 to v5

Upgrade to support native ESM module compilation, to later move away from legacy CommonJS. Allows improved Node.js module compatibility.


Checklist: :ballot_box_with_check:

  • [ ] Updated the documentation for feature additions and enhancements
  • [ ] Added tests for bug fixes or features
  • [ ] Linked all related issues
  • [ ] No unrelated changes

Reviewer checklist:

Indicate the SEMVER impact of the PR:

  • [ ] Major (when you make incompatible API changes)
  • [ ] Minor (when you add functionality in a backward compatible manner)
  • [ ] Patch (when you make backward compatible bug fixes)

At the end of the review, please label the PR with the appropriate label: r.Major, r.Minor, r.Patch.

Breaking change release note preparation (if applicable):

  • To be included in the release note for any feature that is made obsolete/breaking

Give a brief explanation note about:

  • what was the old feature that was made obsolete
  • any replacement feature (if any), and
  • how the author should modify his website to migrate from the old feature to the replacement feature (if possible).

gerteck avatar Aug 16 '25 13:08 gerteck