-
Notifications
You must be signed in to change notification settings - Fork 168
Description
The nano library is currently incompatible with axios@1.x because it uses the CommonJS require('axios') syntax in lib/nano.js. Since axios@1.x has transitioned to ES Modules (ESM), this usage results in runtime errors when attempting to use the library with axios@1.x.
Affected Code
In lib/nano.js:
const axios = require('axios');
This usage causes the following error when running the code with axios@1.x:
Error [ERR_REQUIRE_ESM]: require() of ES Module is not supported
Steps to Reproduce
Install nano and axios@1.x in a Node.js project:
npm install nano axios@1.6.3
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 axios@1.x 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
axios@1.x 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 axios@1.x if they depend on nano.
Request
Please update the nano codebase to support axios@1.x. 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]