@zeppos/zml
Version:
A Mini Library of ZeppOS MiniApp
2 lines (1 loc) • 2.5 kB
JavaScript
const t=Object.prototype.hasOwnProperty;function e(e,n){return Object.getOwnPropertyNames(n).forEach((function(i){if(!t.call(e,i)){var s=Object.getOwnPropertyDescriptor(n,i);Object.defineProperty(e,i,s)}})),e}const n={init(){this.plugins=[],this.settings={},this.mixins=[]},set(t,e){if(1===arguments.length)return this.settings[t];this.settings[t]=e},use(t,...e){return"function"==typeof t?this.plugins.push({handler:t,args:e}):"object"==typeof t&&this.mixins.push({handler:t,args:[]}),this},handle(t){this.plugins.forEach((e=>{if(e&&"function"==typeof e.handler)try{const n=e.handler.call(this,t,...e.args);"object"==typeof n&&this.mixins.push({handler:n,args:[]})}catch(t){}})),this.mixins.forEach((({handler:{onInit:e,onPause:n,build:i,onResume:s,onDestroy:o,onCreate:r,...l},args:h})=>{Object.assign(t,l)}))}};function i(){return"undefined"!=typeof hmApp}function s(){return"undefined"!=typeof __$$R$$__}function o(){return i()||s()}let r=null;r="undefined"!=typeof __$$R$$__?__$$R$$__:()=>({});let l=null;function h({state:t={},onInit:e,onResume:n,onPause:i,build:s,onDestroy:o,...r}={}){const l={state:t,...r,globalData:getApp()._options.globalData,onInit(...t){for(let e=0;e<=h.mixins.length-1;e++){const n=h.mixins[e];n&&n.handler.onInit?.apply(this,t)}e?.apply(this,t)},onResume(...t){for(let e=0;e<=h.mixins.length-1;e++){const n=h.mixins[e];n&&n.handler.onResume?.apply(this,t)}n?.apply(this,t)},onPause(...t){i?.apply(this,t);for(let e=h.mixins.length-1;e>=0;e--){const n=h.mixins[e];n&&n.handler.onPause?.apply(this,t)}},build(...t){for(let e=0;e<=h.mixins.length-1;e++){const n=h.mixins[e];n&&n.handler.build?.apply(this,t)}s?.apply(this,t)},onDestroy(...t){o?.apply(this,t);for(let e=h.mixins.length-1;e>=0;e--){const n=h.mixins[e];n&&n.handler.onDestroy?.apply(this,t)}}};return h.handle(l),l}o()&&i()?l=DeviceRuntimeCore.HmLogger:o()&&s()?l=r("@zos/utils").log:"undefined"!=typeof messaging&&"undefined"!=typeof Logger&&(l=Logger),e(h,n),h.init(),h.use((function(){return{onInit(){this.logger=l.getLogger(this.name||"Page"),this.log=(...t)=>{this.logger.log(...t)},this.error=(...t)=>{t[0]instanceof Error?this.logger.error(...t):this.logger.error({},...t)},this.debug=(...t)=>{this.logger.debug(...t)}},onCreate(){this.logger=l.getLogger(this.name||"app.js"),this.log=(...t)=>{this.logger.log(...t)},this.error=(...t)=>{t[0]instanceof Error?this.logger.error(...t):this.logger.error({},...t)},this.debug=(...t)=>{this.logger.debug(...t)}}}}));export{h as BasePage,e as merge};