tsc-esm-fix
ts-jest
tsc-esm-fix | ts-jest | |
---|---|---|
2 | 20 | |
75 | 7,016 | |
- | 0.2% | |
7.4 | 9.6 | |
11 days ago | 3 days ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tsc-esm-fix
-
TypeScript is now officially 10 years old
Probably because it compiles them to a pre-standard ES5-compatible implementation based on good ol' `Foo.prototype`. And since they've already handled them one way, they can't become spec-compliant without breaking backwards compatibility.
The other place where this shines through particularly egregiously is the support of ESM static import/export. Everybody's build tools been compiling that back down to CJS so hard that Node.js 16+ introduced intentional incompatibilities between CJS and ESM modes just to get people to finally switch to the standards-compliant module system. So you end up in a situation where the library is written in TypeScript with ESM syntax but the only available browser build is a CJS blob which completely defeats the main touted benefit of static imports/exports, namely dead code elimination...
So you decide what the hell, let's switch TSC to ESM and moduleResolution node16, and end up having to use something like https://github.com/antongolub/tsc-esm-fix because the only allowed fix for TSC doing the wrong thing is at the completely wrong level - https://www.typescriptlang.org/docs/handbook/esm-node.html - if you don't see what's wrong with that, you're one of today's lucky 10000...
- TS and ts-jest meet “type”: “module”
ts-jest
-
Managing Software Project Complexity with Development Containers and Continuous Integration
Argument of type X is not assignable to parameter of type 'never' #2610
-
Effortless API Testing: Node.js Techniques for Next.js Route handlers
First, you can't use jest right out of the box, becuase Jest does not support ECMA script nor Typescript. For that, you need to use another dependency like ts-jest, which is a wrapper of jest itself. And maybe even a Babel preset if I need it to work with Babel.. Let's see what we have to do to get this to work.
-
In-Depth guide for TypeScript Library
use ts-jest and set up Paths Re-Map
-
Having issues with passing a Typed object to a func... TS isn't warning when properties of said arg are the wrong type
Jest's out of the box config for TS doesn't do any type checking. You can integrate https://kulshekhar.github.io/ts-jest/ or you can call ‘tsc’ yourself separately
-
Is using Jest for anything other than React a bad idea?
ts-jest has had some strange performance issues and workarounds in the past, though I haven’t used it very recently so it might have fixed those by now.
-
Test-Driven Infrastructure Development with Pulumi and Jest
Since we're working with TypeScript, we can use ts-jest, which conveniently brings Jest along for the ride:
-
Improve your Testing with Custom Matchers in Jest
I want to save you from manually copying the snippets one by one, so here is a Gist with the complete test file. This can be easily executed with Jest (or ts-jest for TypeScript).
- Testing Mongoose with Ts-Jest
-
A complete guide to full-stack live reload
See the Jest configuration docs to learn more about Jest configuration. ts-jest also has good documentation.
-
Setup Jest to React Typescript Vite project, also SWC (part 1)
Using @swc/jest to compile code to CommonJS is much faster than babel-jest, ts-jest which have long cold starts when executing tests in a large project.
What are some alternatives?
tsx - ⚡️ TypeScript Execute | The easiest way to run TypeScript in Node.js
jest - Super-fast alternative for babel-jest or ts-jest without type checking. Please use main repository for issues
ts2esm - Transforms CommonJS projects into ESM.
tsup - The simplest and fastest way to bundle your TypeScript libraries.
node-win32-api - win32 api
esbuild - An extremely fast bundler for the web