javascript - Fel: fetchPools(): odefinierad i TypeScript


Jag har ett problem med ett projekt jag håller på med.

När jag försöker med ts-node-esm fick jag följande fel:

Error: fetchPools(): (0 , isomorphic_fetch_1.default) is not a function
Error Getting Token Price. Defaulting to 0.
TypeError: (0 , node_fetch_1.default) is not a function
    at /Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:66:70
    at step (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:33:23)
    at Object.next (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:14:53)
    at /Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:8:71
    at new Promise (<anonymous>)
    at __awaiter (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:4:12)
    at fetchSubgraphLatestTokenPrice (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:60:12)
    at /Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:46:46
    at step (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:33:23)
    at Object.next (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:14:53)

Efter att ha gjort några ändringar (kan inte komma ihåg eftersom jag gjorde många saker), hade jag följande:

/usr/local/lib/node_modules/ts-node/dist/index.js:851
            return old(m, filename);
                   ^
Error [ERR_REQUIRE_ESM]: require() of ES Module /Users/synn/Documents/BAL/balancer-sor/node_modules/node-fetch/src/index.js from /Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js not supported.
Instead change the require of index.js in /Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js to a dynamic import() which is available in all CommonJS modules.
    at Object.require.extensions.<computed> [as .js] (/usr/local/lib/node_modules/ts-node/dist/index.js:851:20)
    at Object.<anonymous> (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/subgraph.js:40:20)
    at Object.require.extensions.<computed> [as .js] (/usr/local/lib/node_modules/ts-node/dist/index.js:851:20)
    at Object.<anonymous> (/Users/synn/Documents/BAL/balancer-sor/src/swapCost/index.js:45:18)
    at Object.require.extensions.<computed> [as .js] (/usr/local/lib/node_modules/ts-node/dist/index.js:851:20)
    at Object.<anonymous> (/Users/synn/Documents/BAL/balancer-sor/src/wrapper.ts:25:20)
    at Module.m._compile (/usr/local/lib/node_modules/ts-node/dist/index.js:857:29)
    at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/dist/index.js:859:16)
    at Object.<anonymous> (/Users/synn/Documents/BAL/balancer-sor/src/index.ts:18:17)
    at Module.m._compile (/usr/local/lib/node_modules/ts-node/dist/index.js:857:29)
    at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/dist/index.js:859:16)
    at Object.<anonymous> (/Users/synn/Documents/BAL/balancer-sor/test/testScripts/swapExample.ts:23:15)
    at Module.m._compile (/usr/local/lib/node_modules/ts-node/dist/index.js:857:29)
    at Object.require.extensions.<computed> [as .ts] (/usr/local/lib/node_modules/ts-node/dist/index.js:859:16)
    at async Promise.all (index 0) {
  code: 'ERR_REQUIRE_ESM'

Och nu har jag följande:

synn@macbook balancer-sor % ts-node ./test/testScripts/swapExample.ts
Error: fetchPools(): undefined

Jag vet att det finns ett problem med fetch men kan inte lista ut...

tsconfig.json
{
    "compilerOptions": {
        "module": "ESNext",
        "target": "es6",
        "declaration": true,
        "lib": ["es2019", "es2018.promise"],
        "outDir": "./dist/",
        "baseUrl": "src",
        "esModuleInterop": true,
        "moduleResolution": "node",
        "resolveJsonModule": true,
        "experimentalDecorators": true,
        // "strict": true,
        "strictNullChecks": true,
        "strictFunctionTypes": false
    },
        "ts-node": {
            "compilerOptions": {
              "module": "CommonJS" 

package.json
{
    "name": "@balancer-labs/sor",
    "version": "2.0.0-beta.4",
    "license": "GPL-3.0-only",
    "main": "dist/index.js",
    "module": "dist/index.esm.js",
    "types": "dist/index.d.ts",
    "scripts": {
        "build": "rollup -c",
        "prepack": "yarn build",
        "test": "TS_NODE_PROJECT='tsconfig.testing.json' nyc mocha -r ts-node/register test/*.spec.ts",
        "coverage": "nyc report --reporter=text-lcov | coveralls",
        "lint": "eslint ./src ./test --ext .ts --max-warnings 0"
    },
    "husky": {
        "hooks": {
            "pre-commit": "pretty-quick --staged"
        }
    },
    "publishConfig": {
        "registry": "https://registry.npmjs.org/",
        "access": "public"
    },
    "files": [
        "dist"

Hur kan jag lösa detta?