| 164 | SyncTransformer<TransformerConfig>, |
| 165 | TransformerConfig |
| 166 | > = transformerConfig => { |
| 167 | const {excludeJestPreset, ...inputOptions} = transformerConfig ?? {}; |
| 168 | |
| 169 | const options = { |
| 170 | ...inputOptions, |
| 171 | caller: { |
| 172 | name: 'babel-jest', |
| 173 | supportsDynamicImport: false, |
| 174 | supportsExportNamespaceFrom: false, |
| 175 | supportsStaticESM: false, |
| 176 | supportsTopLevelAwait: false, |
| 177 | ...inputOptions.caller, |
| 178 | }, |
| 179 | compact: false, |
| 180 | plugins: inputOptions.plugins ?? [], |
| 181 | presets: [ |
| 182 | ...(inputOptions.presets ?? []), |
| 183 | ...(excludeJestPreset === true ? [] : [jestPresetPath]), |
| 184 | ], |
| 185 | sourceMaps: 'both', |
| 186 | } satisfies BabelTransformOptions; |
| 187 | |
| 188 | function mergeBabelTransformOptions( |
| 189 | filename: string, |
| 190 | transformOptions: JestTransformOptions, |
| 191 | ): BabelTransformOptions { |
| 192 | const {cwd, rootDir} = transformOptions.config; |
| 193 | // `cwd` and `root` first to allow incoming options to override it |
| 194 | return { |
| 195 | cwd, |
| 196 | root: rootDir, |
| 197 | ...options, |
| 198 | caller: { |
| 199 | ...options.caller, |
| 200 | supportsDynamicImport: |
| 201 | transformOptions.supportsDynamicImport ?? |
| 202 | options.caller.supportsDynamicImport, |
| 203 | supportsExportNamespaceFrom: |
| 204 | transformOptions.supportsExportNamespaceFrom ?? |
| 205 | options.caller.supportsExportNamespaceFrom, |
| 206 | supportsStaticESM: |
| 207 | transformOptions.supportsStaticESM ?? |
| 208 | options.caller.supportsStaticESM, |
| 209 | supportsTopLevelAwait: |
| 210 | transformOptions.supportsTopLevelAwait ?? |
| 211 | options.caller.supportsTopLevelAwait, |
| 212 | }, |
| 213 | filename, |
| 214 | }; |
| 215 | } |
| 216 | |
| 217 | return { |
| 218 | canInstrument: true, |
| 219 | getCacheKey(sourceText, sourcePath, transformOptions) { |
| 220 | const babelOptions = loadBabelConfig( |
| 221 | transformOptions.config.cwd, |
| 222 | sourcePath, |
| 223 | mergeBabelTransformOptions(sourcePath, transformOptions), |
no outgoing calls