UNPKG

rollup-plugin-babel-minify

Version:

Simple rollup plugin for minifying code using babel-minify.

4 lines (3 loc) 2 kB
/*! rollup-plugin-babel-minify v7.0.0 | (c) 2019 Comandeer | MIT license (see LICENSE) */ "use strict";function _interopDefault(a){return a&&"object"==typeof a&&"default"in a?a["default"]:a}var sourcemapCodec=require("sourcemap-codec"),minifyPreset=_interopDefault(require("babel-preset-minify")),bannerPlugin=require("@comandeer/babel-plugin-banner"),bannerPlugin__default=_interopDefault(bannerPlugin),importPlugin=_interopDefault(require("@babel/plugin-syntax-dynamic-import")),core=require("@babel/core");function addNewLine(a,b,c){b=Object.assign({},b),a=a.replace(c,`${c}\n`);const d=sourcemapCodec.decode(b.mappings);let e=c.match(/\n/g);e=e?e.length+1:1;let f=a.replace(`${c}\n`,"").match(/^(\s)+/g);if(f=f?f.length:0,d.unshift([]),Array.isArray(d[e])&&d[e].length){const a=d[e][0][0]-f;d[e].forEach(b=>{b[0]-=a})}return b.mappings=sourcemapCodec.encode(d),{code:a,map:b}}function filterMinifyOptions(a){const b=["banner","bannerNewLine","sourceMap","comments","plugins"];return Object.keys(a).reduce((c,d)=>(-1===b.indexOf(d)&&(c[d]=a[d]),c),{})}function isString(a){return"string"==typeof a}function isFn(a){return"function"==typeof a}function isFnOrString(a){return isString(a)||isFn(a)}function minify(a={}){return{name:"babel-minify",renderChunk(b,c,{banner:d}){const e=filterMinifyOptions(a),f={presets:[[minifyPreset,e]],sourceMaps:!("undefined"!=typeof a.sourceMap)||!!a.sourceMap,comments:!("undefined"!=typeof a.comments)||!!a.comments,plugins:Array.isArray(a.plugins)?a.plugins.concat([importPlugin]):[importPlugin]};let g;if(isFnOrString(a.banner)||isFnOrString(d)){g=a.banner||d,g=isFn(g)?g():g;const b=bannerPlugin.getCommentContent(g);let c=!1;f.plugins=f.plugins.concat([[bannerPlugin__default,{banner:g}]]),f.comments||(f.shouldPrintComment=a=>!(c||a!==b)&&(c=!0,!0))}let h=core.transform(b,f),i=h.code,j=h.map;if(a.bannerNewLine){var k=addNewLine(i,j,g);i=k.code,j=k.map}return{code:i,map:j}}}}module.exports=minify; //# sourceMappingURL=rollup-plugin-babel-minify.js.map