UNPKG

@morjs/runtime-base

Version:
39 lines 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSharedProperty = void 0; var env_1 = require("../env"); var event_1 = require("../event"); var hooks_1 = require("../hooks"); // 默认的共享对象 var SHARED = { $morHooks: hooks_1.hooks, $event: event_1.event }; /** * 获取全局共享属性,用于作为原子化的兜底实现 * 1. 首先查找上下文中对应的属性 * 2. 如果不存在,则查找 getApp 中的 * 3. 如果不存在,则查找 小程序环境的 globalObject, 如 my 中是否存在 * 4. 如果不存在,则使用 SHARED 作为兜底 * @param propName - 共享属性名称 * @param context - 当前执行环境的上下文 * @returns propValue */ function getSharedProperty(propName, context) { // 先从当前上下文张获取,如果上下文存在的话 if (context && context[propName] != null) return context[propName]; // 尝试从 getApp 中获取 if (typeof getApp === 'function') { var app = getApp(); if (app && app[propName] != null) return app[propName]; } // 从全局对象中获取 var globalObj = (0, env_1.getGlobalObject)(); if (globalObj && globalObj[propName] != null) return globalObj[propName]; return SHARED[propName]; } exports.getSharedProperty = getSharedProperty; //# sourceMappingURL=getSharedProperty.js.map