Skip to content

Version 17.0.0

Latest
Compare
Choose a tag to compare
@jaydenseric jaydenseric released this 08 Oct 04:46

Major

  • Updated Node.js support to ^18.18.0 || ^20.9.0 || >=22.0.0.

  • Updated dev dependencies, some of which require newer Node.js versions than previously supported.

  • Use the TypeScript v5.5+ JSDoc tag @import to import types in modules.

  • Removed JSDoc tag @typedef that were unintentionally re-exporting types; to migrate import TypeScript types from the correct module:

    - import type { GraphQLUpload } from "graphql-upload/Upload.mjs";
    + import type GraphQLUpload from "graphql-upload/GraphQLUpload.mjs";
    - import type { processRequest } from "graphql-upload/Upload.mjs";
    + import type processRequest from "graphql-upload/processRequest.mjs";
    - import type { GraphQLUpload } from "graphql-upload/processRequest.mjs";
    + import type GraphQLUpload from "graphql-upload/GraphQLUpload.mjs";
  • Refactored tests to use the standard AbortController, fetch, File, and FormData APIs available in modern Node.js and removed the dev dependencies node-abort-controller and node-fetch.

  • Replaced the test utility function streamToString with the function text from node:stream/consumers that’s available in modern Node.js.

  • Use the Node.js test runner API and remove the dev dependency test-director.

Minor

  • Support Express v5 by updating the optional peer dependency @types/express to 4.0.29 - 5 and the dev dependency express to v5, via #389.

Patch

  • Tweaked the package description.
  • Updated the package.json field repository to conform to new npm requirements.
  • Updated the package scripts:
    • Reordered the scripts.
    • Replaced npm run with node --run.
  • Updated GitHub Actions CI config:
    • No longer run the workflow on pull request.
    • Enable manual workflow dispatching.
    • Run checks in seperate jobs.
    • Removed custom step names.
    • Replaced npm run with node --run.
    • Updated the tested Node.js versions to v18, v20, v22.
    • Updated actions/checkout to v4.
    • Updated actions/setup-node to v4.
  • Migrated to the ESLint v9 CLI and “flat” config.
  • Integrated a new dev dependency eslint-plugin-jsdoc and revised types.
  • Removed the Node.js CLI option --unhandled-rejections=throw in the package script tests as it’s now the default for all supported Node.js versions.
  • Avoid hardcoding a default value in the type FileUploadCreateReadStreamOptions property highWaterMark description and use the function getDefaultHighWaterMark from node:stream in tests.
  • Replaced the test helper class Deferred with polyfilled Promise.withResolvers.
  • Removed an unnecessary await in tests.
  • Omit unused catch bindings in the function processRequest.
  • Corrected the JSDoc type FileUploadCreateReadStreamOptions in the module processRequest.mjs.
  • Avoid using return in the middleware.
  • Added a new dev dependency async-listen to replace the test utility function listen.
  • Enabled the TypeScript compiler options noUnusedLocals and noUnusedParameters and used the prefix _ for purposefully unused function parameters in tests.
  • Updated the GitHub Markdown syntax for alerts in the readme.
  • Tweaked wording in the readme and JSDoc descriptions.