Hi all,
I’m trying to use node-fetch in a serverless app. I want to use this since our Freshdesk account has a very long response time ( > 15 seconds some times) and the request method times out after 6 seconds.
However when using node-fetch (and same for axios) I get an error when running the App. The error is:
thomas.haitsma@escalate-ticket-to-new % fdk run
Installing dependencies...
+ base-64@0.1.0
+ uuid@8.3.2
+ node-fetch@3.3.0
updated 3 packages and audited 10 packages in 0.48s
3 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Starting local testing server at http://*:10001/
Append 'dev=true' to your Freshdesk account URL to start testing
e.g. https://domain.freshdesk.com/a/tickets/1?dev=true
Quit the server with Control-C.
To simulate product, app setup, and external events, visit - http://localhost:10001/web/test
Populating test data with events found in the app
To test the installation page, visit - http://localhost:10001/custom_configs
internal/modules/cjs/loader.js:1102
throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
^
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /Users/thomas.haitsma/Documents/Workspace/fdapps/apps/escalate-ticket-to-new/server/node_modules/node-fetch/src/index.js
require() of ES modules is not supported.
require() of /Users/thomas.haitsma/Documents/Workspace/fdapps/apps/escalate-ticket-to-new/server/node_modules/node-fetch/src/index.js from /usr/local/lib/node_modules/fdk/lib/event_handler/framework.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /Users/thomas.haitsma/Documents/Workspace/fdapps/apps/escalate-ticket-to-new/server/node_modules/node-fetch/package.json.
at new NodeError (internal/errors.js:322:7)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1102:13)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:101:18)
at loadDependency (/usr/local/lib/node_modules/fdk/lib/event_handler/framework.js:37:10)
at require (/usr/local/lib/node_modules/fdk/lib/event_handler/framework.js:119:16)
at server.js:4825:39
at server.js:5844:7
at Script.runInContext (vm.js:144:12)
at Request.sandboxExecutor (/usr/local/lib/node_modules/fdk/lib/event_handler/framework.js:226:25)
at handler (/usr/local/lib/node_modules/fdk/lib/event_handler/framework.js:362:31)
at Object.invoke (/usr/local/lib/node_modules/fdk/lib/api/smi.js:66:5)
at dpRouterExec (/usr/local/lib/node_modules/fdk/lib/routes/data-pipe.js:39:32)
at asyncify (/usr/local/lib/node_modules/fdk/lib/utils/helper-util.js:133:28)
at Layer.handle [as handle_request] (/usr/local/lib/node_modules/fdk/node_modules/express/lib/router/layer.js:95:5)
at next (/usr/local/lib/node_modules/fdk/node_modules/express/lib/router/route.js:144:13)
at Route.dispatch (/usr/local/lib/node_modules/fdk/node_modules/express/lib/router/route.js:114:3)
at Layer.handle [as handle_request] (/usr/local/lib/node_modules/fdk/node_modules/express/lib/router/layer.js:95:5)
at /usr/local/lib/node_modules/fdk/node_modules/express/lib/router/index.js:284:15
at Function.process_params (/usr/local/lib/node_modules/fdk/node_modules/express/lib/router/index.js:346:12)
This error is thrown as soon as the first function in server.js is called.
I’m declaring the module like this:
const fetch = require('node-fetch')
And in manifest.json it looks like this:
"base-64": "0.1.0",
"uuid": "8.3.2",
"node-fetch": "3.3.0"
},
I’ve reached out to our technical account manager and he advised me to raise the issue here.
Some extra info:
- node version: 14.19.3
- fdk version: 8.6.7
We use yarn to run FDK
any help here would be very much appreciated!