ts-jest-resolver
v2.0.1
Published
A resolver for `jest` that uses same strategy as TS when resolving files with JavaScript extension (".js").
Downloads
131,549
Maintainers
Readme
ts-jest-resolver
A resolver for jest
that uses the same strategy as TS when resolving files with JavaScript extensions (".js", ".jsx", ".cjs" and ".mjs"). It works pretty well with ts-jest
or babel
with @babel/preset-typescript
.
- 📦 Distributions in ESM and CommonJS.
- Supports both Node.js ESM (import/export) and CommonJS (require/module.exports).
- ⚡ Lightweight:
- It's bundled using rollup.js.
- 🔋 Bateries included:
- It just depends on
jest-resolver
types.
- It just depends on
- ✅ Safe:
- Made with ESLint, TypeScript as strict as possible.
- Unit tests with Jest.
- Like
ts-jest
,ts-jest-resolver
uses itself as jest's resolver.
Usage
This library is published in the NPM registry and can be installed using any compatible package manager.
npm install ts-jest-resolver --save
# For Yarn, use the command below.
yarn add ts-jest-resolver
After installation, you can set "ts-jest-resolver"
as jest's resolver.
// jest.config.js
module.exports = {
preset: "ts-jest",
resolver: "ts-jest-resolver",
};
How it works
It changes module's extension to resolve in the same way as TypeScript.
How it works with ".js" and ".jsx" extensions
When importing from path with JavaScript extension (".js" or ".jsx"):
import EventEmitter from './EventEmitter.js';
It tries to resolve to a path with ".tsx";
import EventEmitter from './EventEmitter.tsx';
If no file was found, it tries to resolve to a path with ".ts";
import EventEmitter from './EventEmitter.ts';
If no file was found, it resolves to original path (with ".js" or ".jsx").
import EventEmitter from './EventEmitter.js';
How it works with ".mjs" and ".cjs" extensions
When importing from path with ES or CommonJS modules (".mjs" and ".cjs" respectively):
Ex.
import parse, { Tokenizer } from './parser.mjs'
import { discoverPath } from './getFiles.cjs';
It tries to resolve to paths with ".mts" and ".cts".
Ex.
import parse, { Tokenizer } from './parser.mts' import { discoverPath } from './getFiles.cts';
If no files were found, it resolves to original paths (with ".mjs" and ".cjs").
Ex.
import parse, { Tokenizer } from './parser.mjs' import { discoverPath } from './getFiles.cjs';
License
Released under MIT License.