/**
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 *
 * @format
 */
"use strict";

const _require = require("@babel/core"),
  transformSync = _require.transformSync;

function transform(_ref) {
  let filename = _ref.filename,
    options = _ref.options,
    plugins = _ref.plugins,
    src = _ref.src;
  const OLD_BABEL_ENV = process.env.BABEL_ENV;
  process.env.BABEL_ENV = options.dev ? "development" : "production";

  try {
    const _transformSync = transformSync(src, {
        caller: {
          name: "metro",
          platform: options.platform
        },
        ast: true,
        babelrc: options.enableBabelRCLookup,
        code: false,
        highlightCode: true,
        filename,
        plugins,
        sourceType: "module"
      }),
      ast = _transformSync.ast;

    return {
      ast
    };
  } finally {
    process.env.BABEL_ENV = OLD_BABEL_ENV;
  }
}

module.exports = {
  transform
};