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

Error when migrating to ESM version #2350

Open
2 tasks done
Stanzilla opened this issue May 15, 2024 · 13 comments
Open
2 tasks done

Error when migrating to ESM version #2350

Stanzilla opened this issue May 15, 2024 · 13 comments

Comments

@Stanzilla
Copy link

Describe the bug

I'm upgrading from v12 to v14 and getting an error that sounds ESM related

  • Node.js version: 22.1.0
  • OS & version: macOS 14.5

Actual behavior

Uncaught TypeError: Class extends value #<Object> is not a constructor or null
    at node_modules/keyv/src/index.js (index.js:37:1)
    at __require2 (chunk-ZDU32GKS.js?v=ae90ae8d:19:50)
    at index.ts:10:18

Looking at the stack trace suggests that it might come from cachable-request which got uses version 10.2.14 of. There is v12 these days and v11 mentions updates for modern node versions, so maybe that's already it? https://github.com/jaredwray/cacheable/releases/tag/v11.0.0

Electron-2024-05-15-03 05 17

Expected behavior

No error
...

Code to reproduce

...

Checklist

  • I have read the documentation.
  • I have tried my code with the latest version of Node.js and Got.
@sindresorhus
Copy link
Owner

I have updated the dependency: https://github.com/sindresorhus/got/releases/tag/v14.3.0

@Stanzilla
Copy link
Author

Hrm still getting the error so probably wasn't that :/

@Stanzilla
Copy link
Author

It might need this? jaredwray/keyv@bc130da

@jaredwray
Copy link

@Stanzilla - it could need that as it is on kevy@next as it is part of version 5.0.0 that is not out of release candidate until end of June.

@Stanzilla
Copy link
Author

@Stanzilla - it could need that as it is on kevy@next as it is part of version 5.0.0 that is not out of release candidate until end of June.

Ah thank you! Do you have a rough ETA?

@jaredwray
Copy link

@Stanzilla you can try it now. It will be fully released in the next couple weeks

@Stanzilla
Copy link
Author

Just for tracking, keyv 5 is out now, we just need https://github.com/jaredwray/cacheable/blob/main/packages/cacheable-request/package.json to update to it as well now, then update it in got

@jaredwray
Copy link

@Stanzilla - it is released and we are working on updating all of our systems. This is a breaking change so might take a bit to get it updated and live in cacheable-request

@jaredwray
Copy link

@Stanzilla - we are planning that this will be released this month. Just FYI. @sindresorhus this could be a bit breaking as we no longer support the uri being passed.

@jaredwray
Copy link

@Stanzilla - https://www.npmjs.com/package/cacheable-request has been released with Keyv v5. 🎉 The major change is that you can no longer pass the uri as a string.

@isaac-martin
Copy link

@sindresorhus any issues with updating the dependency on cacheable-request to 13? https://github.com/sindresorhus/got/blob/main/package.json#L54

@sindresorhus
Copy link
Owner

@jaredwray The release notes for cacheable-request are unfortunately not very usable. There is no way to know which release corresponds to v13, and breaking changes are not clearly listed. An automated list of commits is usually not a very user-friendly way to do release notes.

@jaredwray
Copy link

@sindresorhus - agreed and I am working on a way to do this better from a mono repo. I did post before what the change was but happy to reiterate these changes:

Cacheable Request v13

Keyv has been updated to version 5. With this update, you can no longer pass in a connection string directly to the CacheableRequest constructor. Instead, you should pass in a Keyv or Keyv storage adapter instance.

import KeyvRedis from '@keyv/redis';
import CacheableRequest from 'cacheable-request';

const keyvRedis = new KeyvRedis('redis://localhost:6379');
const cacheableRequest = new CacheableRequest(http.request, KeyvRedis).createCacheableRequest();

Sorry for the hassle and yes we will start doing better release notes this year.

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

No branches or pull requests

4 participants