{
  "presets": [
    [
      "@babel/preset-env",
      {
        "useBuiltIns": "entry",
        "corejs": "2",
        "targets": {
          "browsers": [
            "last 2 Chrome versions",
            "last 2 ChromeAndroid versions",
            "last 2 Safari versions",
            "last 2 Firefox versions",
            "last 2 Edge versions",
            "last 2 iOS versions",
            "last 2 Opera versions"
          ]
        }
      }
    ],
    // TODO: Can TypeScript just do this for us?
    [
      "@babel/preset-react",
      {
        "runtime": "automatic"
      }
    ],
    "@babel/preset-typescript"
  ],
  "plugins": [
    "@babel/plugin-proposal-nullish-coalescing-operator",
    "@babel/plugin-proposal-optional-chaining",
    "@babel/plugin-proposal-object-rest-spread",
    "@babel/plugin-proposal-class-properties"
  ],
  "env": {
    "test": {
      "plugins": [
        "@babel/plugin-transform-modules-commonjs",
        "@babel/plugin-syntax-dynamic-import"
      ]
    },
    "library": {
      "plugins": ["@babel/plugin-transform-runtime"]
    },
    "production": {
      "plugins": ["@babel/plugin-syntax-dynamic-import"]
    }
  }
}
