"use strict"; var _babelCore = require("babel-core"); var _babelPresetMinify = _interopRequireDefault(require("babel-preset-minify")); var _utils = require("@node-minify/utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /*! * node-minify * Copyright(c) 2011-2019 Rodolphe Stoclin * MIT Licensed */ /** * Module dependencies. */ /** * Run babel-minify. * * @param {Object} settings * @param {String} content * @param {Function} callback */ const minifyBabel = ({ settings, content, callback, index }) => { let babelOptions = { presets: [] }; if (settings.options.babelrc) { babelOptions = JSON.parse(_utils.utils.readFile(settings.options.babelrc)); } if (settings.options.presets) { const babelrcPresets = babelOptions.presets || []; babelOptions.presets = babelrcPresets.concat(settings.options.presets); } if (babelOptions.presets.indexOf('minify') === -1) { babelOptions.presets = babelOptions.presets.concat([_babelPresetMinify.default]); } const contentMinified = (0, _babelCore.transform)(content, babelOptions); _utils.utils.writeFile({ file: settings.output, content: contentMinified.code, index }); if (callback) { return callback(null, contentMinified.code); } return contentMinified.code; }; /** * Expose `minifyBabel()`. */ module.exports = minifyBabel;