jest-extended icon indicating copy to clipboard operation
jest-extended copied to clipboard

TypeScript issue: File '/home/nmurgor/git/bitgesell-node-monitor/node_modules/jest-extended/types/index.d.ts' is not a module.

Open naftalimurgor opened this issue 1 year ago • 2 comments

Bug

  • package version: 3.2.4
  • node version: 10.0.0
  • npm (or yarn) version: yarn 1.22.19
  • TypeScript: 4.0.2 Relevant code or config:
  • tsconfing.json file looks like this: `
{
  "compilerOptions": {
    "incremental": true,
    "target": "es2017",
    "outDir": "build/main",
    "rootDir": "src",
    "moduleResolution": "node",
    "module": "commonjs",
    "declaration": true,
    "inlineSourceMap": true,
    "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
    "resolveJsonModule": true /* Include modules imported with .json extension. */,

    // "strict": true /* Enable all strict type-checking options. */,

    /* Strict Type-Checking Options */
    // "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */,
    // "strictNullChecks": true /* Enable strict null checks. */,
    // "strictFunctionTypes": true /* Enable strict checking of function types. */,
    // "strictPropertyInitialization": true /* Enable strict checking of property initialization in classes. */,
    // "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */,
    // "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */,

    /* Additional Checks */
    "noUnusedLocals": true /* Report errors on unused locals. */,
    "noUnusedParameters": true /* Report errors on unused parameters. */,
    "noImplicitReturns": true /* Report error when not all code paths in function return a value. */,
    "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */,

    /* Debugging Options */
    "traceResolution": false /* Report module resolution log messages. */,
    "listEmittedFiles": false /* Print names of generated files part of the compilation. */,
    "listFiles": false /* Print names of files part of the compilation. */,
    "pretty": true /* Stylize errors and messages using color and context. */,

    /* Experimental Options */
    // "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */,
    // "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */,

    "lib": ["es2017"],
    "types": ["node", "jest", "jest-extended"],
    "typeRoots": ["node_modules/@types", "src/types"]
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules/**"],
  "compileOnSave": false
}

I get this warning when I use this package in a TypeScript project I am working on:

File '/home/nmurgor/git/jest-playground/node_modules/jest-extended/types/index.d.ts' is not a module.

What you did:

  • Installed and setup jest
  • Installed jest-extended
  • added jest-extended to my test as follows:
import * as matchers from 'jest-extended';

expect.extend(matchers);

What happened (please provide anything you think will help):

Description:

Possible solution: The possible solution would be looking into types/index.d.ts and fixing the "non-module" warning by adding the appropriate exports

naftalimurgor avatar May 10 '23 15:05 naftalimurgor

Seeing this as well with a simpler TS config.

File '/Users/erunion/code/node_modules/jest-extended/types/index.d.ts' is not a module.ts(2306)

import { toContainKey } from 'jest-extended';

expect.extend({ toContainKey });

__tests__/tsconfig.json:

{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "baseUrl": ".",
    "composite": true,
    "outDir": "./dist",
    "strict": true,
  },
  "include": ["**/*.ts", "**/*.js", "**/*.json", "../../global.d.ts"],
  "exclude": ["__tests__", "dist", "node_modules"]
}

tsconfig.base.json:

{
  "extends": "ts-node/node14/tsconfig.json",
  "ts-node": {
    "swc": true
  },
  "compilerOptions": {
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "downlevelIteration": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "forceConsistentCasingInFileNames": true,
    "lib": ["ES2021"],
    "moduleResolution": "node",
    "noErrorTruncation": true,
    "noImplicitAny": false, // @todo Remove this when we enable strict mode.
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "strict": false, // Not running in strict mode until we have better type safety .
    "target": "ES2021"
  }
}

erunion avatar Aug 17 '23 16:08 erunion

You can post a repo,I think I managed to fix this but can't recall how. You may add a repository to reproduce then I can update with appropriate fix. Hint: fix probably in thetsconfig.json

naftalimurgor avatar Aug 17 '23 16:08 naftalimurgor