TypeStrong/ts-node

Setting emitAssertForImportAttributes no longer works in Node.js 22 with latest swc

KidkArolis opened this issue · 1 comments

Expected Behavior

Running this with ts-node should work when swc: true is set:

import pkg from './package.json' with { type: 'json' }
console.log(pkg)

Actual Behavior

import pkg from './package.json' assert {
                                 ^^^^^^

SyntaxError: Unexpected identifier 'assert'

Specifications

  • ts-node version: 10.9.2
  • node version: 22.1.0
  • TypeScript version: 5.3.3
  • @swc/core 1.4.17

Note

Node.js 22 removed import asserts and now only has import attributes. Setting emitAssertForImportAttributes to false in dist/transpilers/swc.js fixes the issue, but ofc, this would break the existing users, so not sure how to approach this!? A config option..? A breaking change?