-
Notifications
You must be signed in to change notification settings - Fork 167
Description
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]