folke / esbuild-runner

⚡️ Super-fast on-the-fly transpilation of modern JS, TypeScript and JSX using esbuild

Home Page:https://www.npmjs.com/package/esbuild-runner

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`import.meta` not available in Jest

timkinnane opened this issue · comments

Thanks for the package, it performs well and is simple to set up. ❤️

I'm using it as a Jest transformer and trying to test a function written in Typescript to read a package JSON file:

import { createRequire } from 'module'
import { resolve } from 'path'

export const requirePackage = (path: string) =>
  createRequire(import.meta.url)(resolve(path, 'package.json'))

I get an error from import.meta.url being undefined.

Possibly related issue in TS-Jest? kulshekhar/ts-jest#1174

My configs...

tsconfig.json

{
  "compilerOptions": {
    "baseUrl": "src",
    "module": "esnext",
    "moduleResolution": "Node",
    "lib": ["ESNext"],
    "allowJs": true,
    "checkJs": true,
    "allowSyntheticDefaultImports": true,
    "forceConsistentCasingInFileNames": true,
    "isolatedModules": true,
    "skipLibCheck": true,
    "strict": true
  }
}

jest.config.mjs

export default {
  testEnvironment: 'node',
  extensionsToTreatAsEsm: ['.ts'],
  moduleFileExtensions: [ 'ts', 'tsx', 'mjs', 'js', 'jsx', 'json', 'node' ],
  transformIgnorePatterns: ['/node_modules/.*\\.js$'],
  transform: {
    '\\.(ts|tsx)?$': 'esbuild-runner/jest',
  }
}

any updates?