node-jest/babel.config.js

56 lines
1.5 KiB
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const semver = require('semver');
const pkg = require('./package.json');
const supportedNodeVersion = semver.minVersion(pkg.engines.node).version;
module.exports = {
babelrcRoots: ['examples/*'],
// we don't wanna run the transforms in this file over react native
exclude: /react-native/,
overrides: [
{
plugins: [
'babel-plugin-replace-ts-export-assignment',
require.resolve(
'./scripts/babel-plugin-jest-replace-ts-require-assignment.js',
),
],
presets: [
[
'@babel/preset-typescript',
{
// will be the default in Babel 8, so let's just turn it on now
allowDeclareFields: true,
// will be default in the future, but we don't want to use it
allowNamespaces: false,
},
],
],
test: /\.tsx?$/,
},
],
plugins: [
['@babel/plugin-transform-modules-commonjs', {allowTopLevelThis: true}],
require.resolve('./scripts/babel-plugin-jest-require-outside-vm'),
],
presets: [
[
'@babel/preset-env',
{
bugfixes: true,
// we manually include the CJS plugin above, so let's make preset-env do less work
modules: false,
shippedProposals: true,
targets: {node: supportedNodeVersion},
},
],
],
};