{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/*!\n * node-minify\n * Copyright(c) 2011-2024 Rodolphe Stoclin\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\nimport type { MinifierOptions } from \"@node-minify/types\";\nimport { utils } from \"@node-minify/utils\";\nimport { transform } from \"babel-core\";\nimport minify from \"babel-preset-minify\";\n\ntype BabelOptions = {\n    presets: string[];\n};\n\ntype OptionsBabel = {\n    babelrc?: string;\n};\n\ntype SettingsBabel = {\n    options: OptionsBabel;\n};\n\ntype MinifierOptionsBabel = {\n    settings: SettingsBabel;\n};\n\n/**\n * Run babel-minify.\n * @param settings Babel-minify options\n * @param content Content to minify\n * @param callback Callback\n * @param index Index of current file in array\n * @returns Minified content\n */\nconst minifyBabel = ({\n    settings,\n    content,\n    callback,\n    index,\n}: MinifierOptions & MinifierOptionsBabel) => {\n    let babelOptions: BabelOptions = {\n        presets: [],\n    };\n\n    if (settings?.options?.babelrc) {\n        babelOptions = JSON.parse(utils.readFile(settings.options.babelrc));\n    }\n\n    if (settings?.options?.presets) {\n        const babelrcPresets = babelOptions.presets || [];\n        babelOptions.presets = babelrcPresets.concat(\n            Array.isArray(settings.options.presets)\n                ? settings.options.presets\n                : []\n        );\n    }\n\n    if (babelOptions.presets.indexOf(\"minify\") === -1) {\n        babelOptions.presets = babelOptions.presets.concat([minify]);\n    }\n\n    const contentMinified = transform(content ?? \"\", babelOptions);\n    if (settings && !settings.content && settings.output) {\n        settings.output &&\n            utils.writeFile({\n                file: settings.output,\n                content: contentMinified.code,\n                index,\n            });\n    }\n    if (callback) {\n        return callback(null, contentMinified.code);\n    }\n    return contentMinified.code;\n};\n\n/**\n * Expose `minifyBabel()`.\n */\nminifyBabel.default = minifyBabel;\nexport = minifyBabel;\n"],"mappings":";;;;;;AAUA,SAAS,aAAa;AACtB,SAAS,iBAAiB;AAC1B,OAAO,YAAY;AAZnB;AAAA;AAsCA,QAAM,cAAc,CAAC;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,MAA8C;AAC1C,UAAI,eAA6B;AAAA,QAC7B,SAAS,CAAC;AAAA,MACd;AAEA,UAAI,UAAU,SAAS,SAAS;AAC5B,uBAAe,KAAK,MAAM,MAAM,SAAS,SAAS,QAAQ,OAAO,CAAC;AAAA,MACtE;AAEA,UAAI,UAAU,SAAS,SAAS;AAC5B,cAAM,iBAAiB,aAAa,WAAW,CAAC;AAChD,qBAAa,UAAU,eAAe;AAAA,UAClC,MAAM,QAAQ,SAAS,QAAQ,OAAO,IAChC,SAAS,QAAQ,UACjB,CAAC;AAAA,QACX;AAAA,MACJ;AAEA,UAAI,aAAa,QAAQ,QAAQ,QAAQ,MAAM,IAAI;AAC/C,qBAAa,UAAU,aAAa,QAAQ,OAAO,CAAC,MAAM,CAAC;AAAA,MAC/D;AAEA,YAAM,kBAAkB,UAAU,WAAW,IAAI,YAAY;AAC7D,UAAI,YAAY,CAAC,SAAS,WAAW,SAAS,QAAQ;AAClD,iBAAS,UACL,MAAM,UAAU;AAAA,UACZ,MAAM,SAAS;AAAA,UACf,SAAS,gBAAgB;AAAA,UACzB;AAAA,QACJ,CAAC;AAAA,MACT;AACA,UAAI,UAAU;AACV,eAAO,SAAS,MAAM,gBAAgB,IAAI;AAAA,MAC9C;AACA,aAAO,gBAAgB;AAAA,IAC3B;AAKA,gBAAY,UAAU;AACtB,qBAAS;AAAA;AAAA;","names":[]}