1
- import { writeFile } from 'node:fs/promises' ;
2
- import { sep , join , relative , resolve } from 'node:path' ;
1
+ import { writeFile } from 'node:fs/promises' ;
2
+ import { join , resolve , sep } from 'node:path' ;
3
3
import importFrom from 'import-from' ;
4
- import { logger , optimizeTracing } from "./utils/logger.mjs" ;
5
- import { convertPathToImport } from "./utils/resolve-module.mjs" ;
6
- import { isBuiltinReporter } from "./utils/is-builtin-reporter.mjs" ;
7
- import { mapSourceToOutputFiles } from "./utils/map-inputs-outputs.mjs" ;
8
- import { moveJsFile } from "./utils/move-js-file.mjs" ;
9
- import { pruneDirectory } from "./utils/prune-directory.mjs" ;
10
- import { JEST_DEPENDENCIES } from "./utils/jest-dependencies.mjs" ;
4
+ import { logger , optimizeTracing } from "./utils/logger.mjs" ;
5
+ import { convertPathToImport } from "./utils/resolve-module.mjs" ;
6
+ import { isBuiltinReporter } from "./utils/is-builtin-reporter.mjs" ;
7
+ import { mapSourceToOutputFiles , relativizeEntries } from "./utils/map-inputs-outputs.mjs" ;
8
+ import { moveJsFile } from "./utils/move-js-file.mjs" ;
9
+ import { pruneDirectory } from "./utils/prune-directory.mjs" ;
10
+ import { JEST_DEPENDENCIES } from "./utils/jest-dependencies.mjs" ;
11
11
12
12
const noop = ( ) => { } ;
13
13
@@ -24,11 +24,13 @@ const __JEST_CONFIG = (log, config) => __CONTENT(log, config, 'create jest confi
24
24
const __PACKAGE_JSON = ( log , packageJson ) => __CONTENT ( log , packageJson , 'create package.json' ) ;
25
25
26
26
export default ( {
27
+ jestConfig : jestConfigMiddleware ,
27
28
package : packageMiddleware ,
28
29
globalConfig,
29
30
projectConfig,
30
31
tests,
31
32
useTransformer = noop ,
33
+ writeMetafile = false ,
32
34
} ) => {
33
35
return {
34
36
name : 'jest' ,
@@ -55,7 +57,46 @@ export default ({
55
57
56
58
__FILE_MAPPING_CREATING ( logger , mappingInput ) ;
57
59
const mapping = mapSourceToOutputFiles ( mappingInput ) ;
60
+ await moveExternalEntryPointsBackToRoot ( mapping ) ;
61
+ await pruneDirectory ( join ( outdir , 'node_modules' ) ) ;
58
62
__FILE_MAPPING_CREATED ( logger , mapping ) ;
63
+ const flattenedConfig = jestConfigMiddleware ( {
64
+ maxWorkers : globalConfig . maxWorkers ,
65
+ testTimeout : globalConfig . testTimeout ,
66
+ reporters : globalConfig . reporters . map ( mapReporter ) ,
67
+
68
+ ...projectConfig ,
69
+ cacheDirectory : undefined ,
70
+ cwd : undefined ,
71
+ coverageDirectory : mapFile ( projectConfig . coverageDirectory ) ,
72
+ globalSetup : mapFile ( projectConfig . globalSetup ) ,
73
+ globalTeardown : mapFile ( projectConfig . globalTeardown ) ,
74
+ id : undefined ,
75
+ moduleNameMapper : undefined ,
76
+ rootDir : undefined ,
77
+ roots : undefined ,
78
+ runner : undefined ,
79
+ setupFiles : projectConfig . setupFiles . map ( mapFile ) ,
80
+ setupFilesAfterEnv : projectConfig . setupFilesAfterEnv . map ( mapFile ) ,
81
+ testEnvironment : mapFile ( projectConfig . testEnvironment ) ,
82
+ testMatch : tests . map ( mapFile ) ,
83
+ testRunner : mapTestRunner ( mapFile ( projectConfig . testRunner ) ) ,
84
+ transform : {
85
+ '^(?!node_modules/).+\\.js$' : '@swc/jest' ,
86
+ '^.+\\.jsx$' : '@swc/jest' ,
87
+ '^.+\\.tsx?$' : '@swc/jest' ,
88
+ } ,
89
+ transformIgnorePatterns : [ ] ,
90
+ } ) ;
91
+ __JEST_CONFIG ( logger , flattenedConfig ) ;
92
+ await writeFile ( join ( outdir , 'jest.config.json' ) , JSON . stringify ( flattenedConfig , null , 2 ) ) ;
93
+
94
+ if ( writeMetafile ) {
95
+ await writeFile ( join ( outdir , 'metafile.json' ) , JSON . stringify ( {
96
+ ...result . metafile ,
97
+ mapping : relativizeEntries ( [ rootDir , outdir ] , mapping ) ,
98
+ } , null , 2 ) + '\n' ) ;
99
+ }
59
100
60
101
/**
61
102
* @param {string } file
@@ -125,37 +166,6 @@ export default ({
125
166
const segments = modulePath . split ( sep ) ;
126
167
return segments . map ( x => x === 'node_modules' && replacements ++ === 0 ? 'bundled_modules' : x ) . join ( sep ) ;
127
168
}
128
-
129
- await moveExternalEntryPointsBackToRoot ( ) ;
130
- await pruneDirectory ( join ( outdir , 'node_modules' ) ) ;
131
-
132
- const flattenedConfig = {
133
- maxWorkers : globalConfig . maxWorkers ,
134
- testTimeout : globalConfig . testTimeout ,
135
- reporters : globalConfig . reporters . map ( mapReporter ) ,
136
-
137
- ...projectConfig ,
138
- cacheDirectory : undefined ,
139
- cwd : undefined ,
140
- coverageDirectory : mapFile ( projectConfig . coverageDirectory ) ,
141
- globalSetup : mapFile ( projectConfig . globalSetup ) ,
142
- globalTeardown : mapFile ( projectConfig . globalTeardown ) ,
143
- id : undefined ,
144
- moduleNameMapper : undefined ,
145
- rootDir : undefined ,
146
- roots : undefined ,
147
- runner : undefined ,
148
- setupFiles : projectConfig . setupFiles . map ( mapFile ) ,
149
- setupFilesAfterEnv : projectConfig . setupFilesAfterEnv . map ( mapFile ) ,
150
- testEnvironment : mapFile ( projectConfig . testEnvironment ) ,
151
- testMatch : tests . map ( mapFile ) ,
152
- testRunner : mapTestRunner ( mapFile ( projectConfig . testRunner ) ) ,
153
- transform : undefined ,
154
- transformIgnorePatterns : undefined ,
155
- } ;
156
-
157
- __JEST_CONFIG ( logger , flattenedConfig ) ;
158
- await writeFile ( join ( outdir , 'jest.config.json' ) , JSON . stringify ( flattenedConfig , null , 2 ) ) ;
159
169
} ) ;
160
170
161
171
build . onEnd ( async ( result ) => {
@@ -175,12 +185,12 @@ export default ({
175
185
version : '0.0.0' ,
176
186
private : true ,
177
187
scripts : {
178
- test : "NODE_OPTIONS='-r @babel /register' jest"
188
+ test : "NODE_OPTIONS='-r @swc-node /register' jest"
179
189
} ,
180
190
dependencies : {
181
- "@babel /core" : "^7.24.6 " ,
182
- "@babel/plugin-transform-modules-commonjs " : "^7.24.6 " ,
183
- "@babel /register" : "^7.24.6 " ,
191
+ "@swc /core" : "^1.10.1 " ,
192
+ "@swc/jest " : "^0.2.37 " ,
193
+ "@swc-node /register" : "^1.10.9 " ,
184
194
185
195
...externalDependencies ,
186
196
} ,
0 commit comments