/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

'use strict';

const babel = require('@babel/core');
const createCacheKeyFunction = require('./createCacheKeyFunction');
const path = require('path');

module.exports = {
  process(src, filename) {
    const options = {
      presets: [
        require('babel-preset-fbjs'),
      ],
      filename: filename,
      retainLines: true,
    };
    return babel.transform(src, options).code;
  },

  // Generate a cache key that is based on the contents of this file and the
  // fbjs preset package.json (used as a proxy for determining if the preset has
  // changed configuration at all).
  getCacheKey: createCacheKeyFunction([
    __filename,
    path.join(path.dirname(require.resolve('babel-preset-fbjs')), 'package.json')
  ]),
};