diff --git a/packages/register/__test__/ts-compiler-options-to-swc-config.spec.ts b/packages/register/__test__/ts-compiler-options-to-swc-config.spec.ts index 4bce11e14..cfc06fb1b 100644 --- a/packages/register/__test__/ts-compiler-options-to-swc-config.spec.ts +++ b/packages/register/__test__/ts-compiler-options-to-swc-config.spec.ts @@ -126,3 +126,32 @@ test('should set all values', (t) => { } t.deepEqual(swcConfig, expected) }) + +test('should support ES2023 target', (t) => { + const options: ts.CompilerOptions = { + target: ts.ScriptTarget.ES2023, + } + const filename = 'some-file.ts' + const swcConfig = tsCompilerOptionsToSwcConfig(options, filename) + t.is(swcConfig.target, 'es2023') + t.is(swcConfig.useDefineForClassFields, true) +}) + +test('should support ES2024 target', (t) => { + const options: ts.CompilerOptions = { + target: ts.ScriptTarget.ES2024, + } + const filename = 'some-file.ts' + const swcConfig = tsCompilerOptionsToSwcConfig(options, filename) + t.is(swcConfig.target, 'es2024') + t.is(swcConfig.useDefineForClassFields, true) +}) + +test('should map ESNext to es2024', (t) => { + const options: ts.CompilerOptions = { + target: ts.ScriptTarget.ESNext, + } + const filename = 'some-file.ts' + const swcConfig = tsCompilerOptionsToSwcConfig(options, filename) + t.is(swcConfig.target, 'es2024') +}) diff --git a/packages/register/read-default-tsconfig.ts b/packages/register/read-default-tsconfig.ts index 94016ffe4..241270271 100644 --- a/packages/register/read-default-tsconfig.ts +++ b/packages/register/read-default-tsconfig.ts @@ -82,9 +82,13 @@ function toTsTarget(target: ts.ScriptTarget): Options['target'] { case ts.ScriptTarget.ES2021: return 'es2021' case ts.ScriptTarget.ES2022: + return 'es2022' + case ts.ScriptTarget.ES2023: + return 'es2023' + case ts.ScriptTarget.ES2024: case ts.ScriptTarget.ESNext: case ts.ScriptTarget.Latest: - return 'es2022' + return 'es2024' case ts.ScriptTarget.JSON: return 'es5' }