You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm likely doing something wrong when importing solid-auth-fetcher, but I'm not sure what. I have included a relevant code snipper below:
Describe the bug
Trying to run example code from server.ts results in node crashing with the error: Must use import to load ES Module: /home/jesse/.../node_modules/node-fetch/src/index.js
To Reproduce
Put the following code snippet in a typescript file, and then run it with node:
import{getAuthFetcher,getNodeSolidServerCookie}from"solid-auth-fetcher";asynchandleRequest(request: Request){letserverRoot=this.configMgr.getRootConfig().serverRoot;letuserPrefs=request.userPreferences;letappOrigin=request.from;constcookie=awaitgetNodeSolidServerCookie(serverRoot,userPrefs.username,userPrefs.password);if(!cookie){thrownewAuthenticationError(`Could not sign in with given credentials for user ${userPrefs.username}`);}constfetcher=awaitgetAuthFetcher(serverRoot,cookie,appOrigin);constresult=awaitfetcher.fetch(request.resource);}
Expected behavior
The code to run without throwing a fatal error
Screenshots
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: /home/jesse/Documents/Thesis/master-thesis-jesse-geens/node_modules/node-fetch/src/index.js
require() of ES modules is not supported.
require() of /home/jesse/Documents/Thesis/master-thesis-jesse-geens/node_modules/node-fetch/src/index.js from /home/jesse/Documents/Thesis/master-thesis-jesse-geens/node_modules/solid-auth-fetcher/dist/obtainAuthHeaders.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 /home/jesse/Documents/Thesis/master-thesis-jesse-geens/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:93:18)
at Object.<anonymous> (/home/jesse/Documents/Thesis/master-thesis-jesse-geens/node_modules/solid-auth-fetcher/dist/obtainAuthHeaders.js:8:38)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32) {
code: 'ERR_REQUIRE_ESM'
}
Desktop (please complete the following information):
OS:
$ uname -a
Linux jesse-thinkpad 5.13.19-2-MANJARO #1 SMP PREEMPT Sun Sep 19 21:31:53 UTC 2021 x86_64 GNU/Linux
Changing const node_fetch_1 = __importDefault(require("node-fetch"));
to const node_fetch_1 = __importDefault(import("node-fetch"));
seems to solve the issue
I'm likely doing something wrong when importing solid-auth-fetcher, but I'm not sure what. I have included a relevant code snipper below:
Describe the bug
Trying to run example code from
server.ts
results in node crashing with the error:Must use import to load ES Module: /home/jesse/.../node_modules/node-fetch/src/index.js
To Reproduce
Put the following code snippet in a typescript file, and then run it with node:
Expected behavior
The code to run without throwing a fatal error
Screenshots
Desktop (please complete the following information):
Additional context
Package.json:
The text was updated successfully, but these errors were encountered: