UNPKG

@plugin-web-update-notification/umijs

Version:
2 lines 2.82 kB
"use strict";var u=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var w=(i,n)=>{for(var o in n)u(i,o,{get:n[o],enumerable:!0})},T=(i,n,o,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of F(n))!C.call(i,r)&&r!==o&&u(i,r,{get:()=>n[r],enumerable:!(a=N(n,r))||a.enumerable});return i};var j=i=>T(u({},"__esModule",{value:!0}),i);var E={};w(E,{default:()=>_});module.exports=j(E);var d=require("path"),s=require("fs"),t=require("@plugin-web-update-notification/core");var p="@plugin-web-update-notification/umijs";var _=i=>{i.describe({key:"webUpdateNotification",config:{schema(e){return e.object({versionType:e.string(),customVersion:e.string(),checkInterval:e.number(),logVersion:e.boolean(),checkOnWindowFocus:e.boolean(),checkImmediately:e.boolean(),checkOnLoadFileError:e.boolean(),injectFileBase:e.string(),customNotificationHTML:e.string(),notificationProps:{title:e.string(),description:e.string(),buttonText:e.string(),dismissButtonText:e.string()},notificationConfig:{primaryColor:e.string(),secondaryColor:e.string(),placement:e.string()},silence:e.boolean(),locale:e.string(),localeData:e.object(),hiddenDefaultNotification:e.boolean(),hiddenDismissButton:e.boolean()})}},enableBy(){return i.env==="production"&&i?.userConfig.webUpdateNotification}});let n=i.userConfig?.webUpdateNotification||{};n.injectFileBase===void 0&&(n.injectFileBase=i.userConfig.publicPath||"/");let{versionType:o,customNotificationHTML:a,hiddenDefaultNotification:r,injectFileBase:l="/",customVersion:h,silence:y}=n,c="";if(o==="custom"?c=(0,t.getVersion)(o,h):c=(0,t.getVersion)(o),!c||i.env!=="production")return;let $=(0,d.resolve)("node_modules",p,"dist",`${t.INJECT_SCRIPT_FILE_NAME}.js`),f=(0,t.generateJsFileContent)((0,s.readFileSync)($,"utf8").toString(),c,n),m=(0,t.getFileHash)(f),g=(0,d.resolve)("node_modules",p,"dist",`${t.INJECT_STYLE_FILE_NAME}.css`),b=(0,t.getFileHash)((0,s.readFileSync)(g,"utf8").toString());i.addHTMLLinks(()=>a||r?[]:[{rel:"stylesheet",href:`${l}${t.DIRECTORY_NAME}/${t.INJECT_STYLE_FILE_NAME}.${b}.css`}]),i.onBuildComplete(()=>{let e=(0,d.resolve)(i.userConfig.outputPath||"dist");(0,s.mkdirSync)(`${e}/${t.DIRECTORY_NAME}`),(0,s.copyFileSync)(g,`${e}/${t.DIRECTORY_NAME}/${t.INJECT_STYLE_FILE_NAME}.${b}.css`),(0,s.writeFileSync)(`${e}/${t.DIRECTORY_NAME}/${t.INJECT_SCRIPT_FILE_NAME}.${m}.js`,f),(0,s.writeFileSync)(`${e}/${t.DIRECTORY_NAME}/${t.JSON_FILE_NAME}.json`,(0,t.generateJSONFileContent)(c,y))}),i.modifyHTML(e=>(r||e("body").append(`<div class="${t.NOTIFICATION_ANCHOR_CLASS_NAME}"></div>`),e("head").prepend(`<script data-id="${t.INJECT_SCRIPT_TAG_ID}" data-v="${c}" src="${l}${t.DIRECTORY_NAME}/${t.INJECT_SCRIPT_FILE_NAME}.${m}.js"></script>`),e))}; //# sourceMappingURL=index.js.map