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

Request for ETA on New Release Supporting Axios 1.x Version #349

Open
Rupanshy opened this issue Nov 15, 2024 · 1 comment
Open

Request for ETA on New Release Supporting Axios 1.x Version #349

Rupanshy opened this issue Nov 15, 2024 · 1 comment

Comments

@Rupanshy
Copy link

The nano library is currently incompatible with [email protected] because it uses the CommonJS require('axios') syntax in lib/nano.js. Since [email protected] has transitioned to ES Modules (ESM), this usage results in runtime errors when attempting to use the library with [email protected].

Affected Code

In lib/nano.js:

const axios = require('axios');
This usage causes the following error when running the code with [email protected]:

Error [ERR_REQUIRE_ESM]: require() of ES Module is not supported

Steps to Reproduce
Install nano and [email protected] in a Node.js project:
npm install nano [email protected]
Import or require nano in your code:
const nano = require('nano');
Attempt to use nano to make an HTTP request.
Observe the runtime error indicating incompatibility with ES Modules.

Expected Behavior
nano should support [email protected] by replacing the require('axios') syntax with the ES Modules import syntax:

import axios from 'axios';

Proposed Solution
Update all instances of require('axios') in the codebase to use import:
import axios from 'axios';
Update the package.json file to specify a peer dependency on axios@^1.0.0 to ensure compatibility:
"peerDependencies": {
"axios": "^1.0.0"
}

Additional Context
[email protected] includes critical security updates and new features, making its adoption essential for projects aiming to maintain secure and modern applications.
The current incompatibility blocks projects from upgrading to [email protected] if they depend on nano.

Request
Please update the nano codebase to support [email protected]. If needed, I am happy to assist with additional details or contribute a pull request to resolve the issue.

Environment
Node.js Version: [e.g., 16.x or 18.x]
Axios Version: 1.6.3
nano Version: [e.g., 9.x]
Operating System: [e.g., macOS, Windows, or Linux]

@Rupanshy
Copy link
Author

Dear Maintainers,
I hope this message finds you well. I wanted to follow up on the issue I raised regarding the nano package's compatibility with [email protected] due to the use of CommonJS syntax (require('axios')) in lib/nano.js.
As highlighted earlier, projects relying on nano face runtime errors when attempting to upgrade to [email protected], which has transitioned to ES Modules (ESM). This has become a critical blocker, particularly for teams needing to address vulnerabilities in earlier versions of Axios (e.g., 0.28.x).
Recap of the Issue
Problem: require('axios') is incompatible with Axios 1.x, leading to runtime errors.
Expected Behavior: nano should support Axios 1.x by transitioning to ESM syntax: import axios from 'axios'.
Proposed Solution: Update the nano codebase to use import instead of require and declare axios@^1.0.0 as a peer dependency.
Why This is Critical
Security: Many organizations, including mine, are required to address vulnerabilities in earlier Axios versions.
Ecosystem Alignment: Upgrading to Axios 1.x ensures compatibility with other modern libraries and benefits from performance improvements and security patches.
Request for Update
I understand that maintaining open-source projects requires significant time and effort, and I deeply appreciate the work you’ve done on nano. However, I’d like to inquire:
Is there a timeline for addressing this compatibility issue?
If assistance is needed, I’d be happy to contribute a pull request to help update the codebase for Axios 1.x compatibility.

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

1 participant