forked from inrupt/solid-client-authn-js
-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
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";
async handleRequest(request: Request) {
let serverRoot = this.configMgr.getRootConfig().serverRoot;
let userPrefs = request.userPreferences;
let appOrigin = request.from;
const cookie = await getNodeSolidServerCookie(
serverRoot,
userPrefs.username,
userPrefs.password
);
if (!cookie) {
throw new AuthenticationError(
`Could not sign in with given credentials for user ${userPrefs.username}`
);
}
const fetcher = await getAuthFetcher(serverRoot, cookie, appOrigin);
const result = await fetcher.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
- Browser [e.g. chrome, safari]: N/A
- Version:
$ nvm current
v16.13.1
Additional context
Package.json:
"dependencies": {
"express": "^4.17.2",
"express-pino-logger": "^7.0.0",
"jsonschema": "^1.4.0",
"node-fetch": "^3.1.0",
"pino": "^7.6.2",
"solid-auth-fetcher": "^1.5.3"
}
Metadata
Metadata
Assignees
Labels
No labels