UNPKG

@node-minify/babel-minify

Version:
1 lines 3.02 kB
{"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":[]}