rollup-plugin-bundle-inject
Version:
Inject JS or CSS bundle into a template where necessary
1 lines • 2.22 kB
JavaScript
;var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){e[n=void 0===n?r:n]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t};Object.defineProperty(exports,"__esModule",{value:!0});var fs=__importStar(require("fs")),path=__importStar(require("path")),html_minifier_1=require("html-minifier"),utils_1=require("./utils"),constants_1=require("./constants"),replace=function(e,t,r){return e.replace(t,r)},bundleInject=function(c){var a=c.target;if(!a)throw new Error("options.target cannot be empty");var l=c.rename||path.basename(a);return{name:"rollup-plugin-bundle-inject",generateBundle:function(e,t){var r,n,i,s,u,o;void 0===e&&(e={}),void 0===t&&(t={}),fs.statSync(a)&&(u=fs.readFileSync(a,{encoding:"utf-8"}),s=(n=(0,utils_1.getListFromBundle)(t)).cssList,r=n.jsList,i=(0,utils_1.isExist)("inject:css",u),e=(0,utils_1.isExist)("inject:js",u),n=t=void 0,i&&(t=constants_1.InjectTag.CSS,n=s.reduce(function(e,t){return e+"<style>"+t+"</style>"},""),u=replace(u,t,n)),e&&(t=constants_1.InjectTag.JS,n=r.reduce(function(e,t){return e+"<script>"+t+"<\/script>"},""),u=replace(u,t,n)),i||e||(i=constants_1.InjectTag.HEAD_TAG,e=s.reduce(function(e,t){return e+"<style>"+t+"</style>"},"")+"</head>",s=constants_1.InjectTag.BODY_TAG,o=r.reduce(function(e,t){return e+"<script>"+t+"<\/script>"},"")+"</body>",u=replace(u,i,e),u=replace(u,s,o)),!1!==c.minify&&(o={removeComments:!0,collapseWhitespace:!0,collapseBooleanAttributes:!0,removeAttributeQuotes:!0,removeRedundantAttributes:!0,useShortDoctype:!0,removeEmptyAttributes:!0,removeEmptyElements:!0},c.minifierOptions&&Object.assign(o,c.minifierOptions),u=(0,html_minifier_1.minify)(u,o)),this.emitFile({type:"asset",fileName:l,source:u}))}}};module.exports=bundleInject;