@tarojs/shared 4.1.4-beta.2 → 4.1.4-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components.js.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/event-channel.js.map +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/is.js.map +1 -1
- package/dist/native-apis.js.map +1 -1
- package/dist/runtime-hooks.js.map +1 -1
- package/dist/shared.esm.js.map +1 -1
- package/dist/shortcuts.js.map +1 -1
- package/dist/template.js.map +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/dist/native-apis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-apis.js","sources":["../src/native-apis.ts"],"sourcesContent":["import { isFunction, isString } from './is'\nimport { nonsupport, setUniqueKeyToRoute } from './utils'\n\ndeclare const getCurrentPages: () => any\ndeclare const getApp: () => any\ndeclare const requirePlugin: () => void\n\ntype IObject = Record<string, any>\n\ninterface IProcessApisIOptions {\n noPromiseApis?: Set<string>\n needPromiseApis?: Set<string>\n handleSyncApis?: (key: string, global: IObject, args: any[]) => any\n transformMeta?: (key: string, options: IObject) => { key: string, options: IObject }\n modifyApis?: (apis: Set<string>) => void\n modifyAsyncResult?: (key: string, res) => void\n isOnlyPromisify?: boolean\n [propName: string]: any\n}\n\nexport interface IApiDiff {\n [key: string]: {\n /** API重命名 */\n alias?: string\n options?: {\n /** API参数键名修改 */\n change?: {\n old: string\n new: string\n }[]\n /** API参数值修改 */\n set?: {\n key: string\n value: ((options: Record<string, any>) => unknown) | unknown\n }[]\n }\n }\n}\n\nconst needPromiseApis = new Set<string>([\n 'addPhoneContact',\n 'authorize',\n 'canvasGetImageData',\n 'canvasPutImageData',\n 'canvasToTempFilePath',\n 'checkSession',\n 'chooseAddress',\n 'chooseImage',\n 'chooseInvoiceTitle',\n 'chooseLocation',\n 'chooseVideo',\n 'clearStorage',\n 'closeBLEConnection',\n 'closeBluetoothAdapter',\n 'closeSocket',\n 'compressImage',\n 'connectSocket',\n 'createBLEConnection',\n 'downloadFile',\n 'exitMiniProgram',\n 'getAvailableAudioSources',\n 'getBLEDeviceCharacteristics',\n 'getBLEDeviceServices',\n 'getBatteryInfo',\n 'getBeacons',\n 'getBluetoothAdapterState',\n 'getBluetoothDevices',\n 'getClipboardData',\n 'getConnectedBluetoothDevices',\n 'getConnectedWifi',\n 'getExtConfig',\n 'getFileInfo',\n 'getImageInfo',\n 'getLocation',\n 'getNetworkType',\n 'getSavedFileInfo',\n 'getSavedFileList',\n 'getScreenBrightness',\n 'getSetting',\n 'getStorage',\n 'getStorageInfo',\n 'getSystemInfo',\n 'getUserInfo',\n 'getWifiList',\n 'hideHomeButton',\n 'hideShareMenu',\n 'hideTabBar',\n 'hideTabBarRedDot',\n 'loadFontFace',\n 'login',\n 'makePhoneCall',\n 'navigateBack',\n 'navigateBackMiniProgram',\n 'navigateTo',\n 'navigateToBookshelf',\n 'navigateToMiniProgram',\n 'notifyBLECharacteristicValueChange',\n 'hideKeyboard',\n 'hideLoading',\n 'hideNavigationBarLoading',\n 'hideToast',\n 'openBluetoothAdapter',\n 'openDocument',\n 'openLocation',\n 'openSetting',\n 'pageScrollTo',\n 'previewImage',\n 'queryBookshelf',\n 'reLaunch',\n 'readBLECharacteristicValue',\n 'redirectTo',\n 'removeSavedFile',\n 'removeStorage',\n 'removeTabBarBadge',\n 'requestSubscribeMessage',\n 'saveFile',\n 'saveImageToPhotosAlbum',\n 'saveVideoToPhotosAlbum',\n 'scanCode',\n 'sendSocketMessage',\n 'setBackgroundColor',\n 'setBackgroundTextStyle',\n 'setClipboardData',\n 'setEnableDebug',\n 'setInnerAudioOption',\n 'setKeepScreenOn',\n 'setNavigationBarColor',\n 'setNavigationBarTitle',\n 'setScreenBrightness',\n 'setStorage',\n 'setTabBarBadge',\n 'setTabBarItem',\n 'setTabBarStyle',\n 'showActionSheet',\n 'showFavoriteGuide',\n 'showLoading',\n 'showModal',\n 'showShareMenu',\n 'showTabBar',\n 'showTabBarRedDot',\n 'showToast',\n 'startBeaconDiscovery',\n 'startBluetoothDevicesDiscovery',\n 'startDeviceMotionListening',\n 'startPullDownRefresh',\n 'stopBeaconDiscovery',\n 'stopBluetoothDevicesDiscovery',\n 'stopCompass',\n 'startCompass',\n 'startAccelerometer',\n 'stopAccelerometer',\n 'showNavigationBarLoading',\n 'stopDeviceMotionListening',\n 'stopPullDownRefresh',\n 'switchTab',\n 'uploadFile',\n 'vibrateLong',\n 'vibrateShort',\n 'writeBLECharacteristicValue'\n])\n\nfunction getCanIUseWebp (taro) {\n return function () {\n const res = taro.getSystemInfoSync?.()\n\n if (!res) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('不支持 API canIUseWebp')\n }\n return false\n }\n\n const { platform } = res\n\n const platformLower = platform.toLowerCase()\n if (platformLower === 'android' || platformLower === 'devtools') {\n return true\n }\n return false\n }\n}\n\nfunction getNormalRequest (global) {\n return function request (options) {\n options = options\n ? (\n isString(options)\n ? { url: options }\n : options\n )\n : {}\n\n const originSuccess = options.success\n const originFail = options.fail\n const originComplete = options.complete\n let requestTask\n const p: any = new Promise((resolve, reject) => {\n options.success = res => {\n originSuccess && originSuccess(res)\n resolve(res)\n }\n options.fail = res => {\n originFail && originFail(res)\n reject(res)\n }\n\n options.complete = res => {\n originComplete && originComplete(res)\n }\n\n requestTask = global.request(options)\n })\n\n equipTaskMethodsIntoPromise(requestTask, p)\n\n p.abort = (cb) => {\n cb && cb()\n if (requestTask) {\n requestTask.abort()\n }\n return p\n }\n return p\n }\n}\n\nfunction processApis (taro, global, config: IProcessApisIOptions = {}) {\n const patchNeedPromiseApis = config.needPromiseApis || []\n const _needPromiseApis = new Set<string>([...patchNeedPromiseApis, ...needPromiseApis])\n const preserved = [\n 'getEnv',\n 'interceptors',\n 'Current',\n 'getCurrentInstance',\n 'options',\n 'nextTick',\n 'eventCenter',\n 'Events',\n 'preload',\n 'webpackJsonp'\n ]\n\n const apis = new Set(\n !config.isOnlyPromisify\n ? Object.keys(global).filter(api => preserved.indexOf(api) === -1)\n : patchNeedPromiseApis\n )\n\n if (config.modifyApis) {\n config.modifyApis(apis)\n }\n\n apis.forEach(key => {\n if (_needPromiseApis.has(key)) {\n const originKey = key\n taro[originKey] = (options: Record<string, any> | string = {}, ...args) => {\n let key = originKey\n\n // 第一个参数 options 为字符串,单独处理\n if (typeof options === 'string') {\n if (args.length) {\n return global[key](options, ...args)\n }\n return global[key](options)\n }\n\n // 改变 key 或 option 字段,如需要把支付宝标准的字段对齐微信标准的字段\n if (config.transformMeta) {\n const transformResult = config.transformMeta(key, options)\n key = transformResult.key\n ; (options as Record<string, any>) = transformResult.options\n // 新 key 可能不存在\n if (!global.hasOwnProperty(key)) {\n return nonsupport(key)()\n }\n }\n\n let task: any = null\n const obj: Record<string, any> = Object.assign({}, options)\n\n // 为页面跳转相关的 API 设置一个随机数作为路由参数。为了给 runtime 区分页面。\n setUniqueKeyToRoute(key, options)\n\n // Promise 化\n const p: any = new Promise((resolve, reject) => {\n obj.success = res => {\n config.modifyAsyncResult?.(key, res)\n options.success?.(res)\n if (key === 'connectSocket') {\n resolve(\n Promise.resolve().then(() => task ? Object.assign(task, res) : res)\n )\n } else {\n resolve(res)\n }\n }\n obj.fail = res => {\n options.fail?.(res)\n reject(res)\n }\n obj.complete = res => {\n options.complete?.(res)\n }\n if (args.length) {\n task = global[key](obj, ...args)\n } else {\n task = global[key](obj)\n }\n })\n\n // 给 promise 对象挂载属性\n if (['uploadFile', 'downloadFile'].includes(key)) {\n equipTaskMethodsIntoPromise(task, p)\n p.progress = cb => {\n task?.onProgressUpdate(cb)\n return p\n }\n p.abort = cb => {\n cb?.()\n task?.abort()\n return p\n }\n }\n return p\n }\n } else {\n let platformKey = key\n\n // 改变 key 或 option 字段,如需要把支付宝标准的字段对齐微信标准的字段\n if (config.transformMeta) {\n platformKey = config.transformMeta(key, {}).key\n }\n\n // API 不存在\n if (!global.hasOwnProperty(platformKey)) {\n taro[key] = nonsupport(key)\n return\n }\n if (isFunction(global[key])) {\n taro[key] = (...args) => {\n if (config.handleSyncApis) {\n return config.handleSyncApis(key, global, args)\n } else {\n return global[platformKey].apply(global, args)\n }\n }\n } else {\n taro[key] = global[platformKey]\n }\n }\n })\n\n !config.isOnlyPromisify && equipCommonApis(taro, global, config)\n}\n\n/**\n * 挂载常用 API\n * @param taro Taro 对象\n * @param global 小程序全局对象,如微信的 wx,支付宝的 my\n */\nfunction equipCommonApis (taro, global, apis: Record<string, any> = {}) {\n taro.canIUseWebp = getCanIUseWebp(taro)\n taro.getCurrentPages = getCurrentPages || nonsupport('getCurrentPages')\n taro.getApp = getApp || nonsupport('getApp')\n taro.env = global.env || {}\n\n try {\n taro.requirePlugin = requirePlugin || nonsupport('requirePlugin')\n } catch (error) {\n taro.requirePlugin = nonsupport('requirePlugin')\n }\n\n // request & interceptors\n const request = apis.request || getNormalRequest(global)\n function taroInterceptor (chain) {\n return request(chain.requestParams)\n }\n const link = new taro.Link(taroInterceptor)\n taro.request = link.request.bind(link)\n taro.addInterceptor = link.addInterceptor.bind(link)\n taro.cleanInterceptors = link.cleanInterceptors.bind(link)\n taro.miniGlobal = taro.options.miniGlobal = global\n taro.getAppInfo = function () {\n return {\n platform: process.env.TARO_PLATFORM || 'MiniProgram',\n taroVersion: process.env.TARO_VERSION || 'unknown',\n designWidth: taro.config.designWidth\n }\n }\n taro.createSelectorQuery = delayRef(taro, global, 'createSelectorQuery', 'exec')\n taro.createIntersectionObserver = delayRef(taro, global, 'createIntersectionObserver', 'observe')\n}\n\n/**\n * 将Task对象中的方法挂载到promise对象中,适配小程序api原生返回结果\n * @param task Task对象 {RequestTask | DownloadTask | UploadTask}\n * @param promise Promise\n */\nfunction equipTaskMethodsIntoPromise (task, promise) {\n if (!task || !promise) return\n const taskMethods = ['abort', 'onHeadersReceived', 'offHeadersReceived', 'onProgressUpdate', 'offProgressUpdate', 'onChunkReceived', 'offChunkReceived']\n task && taskMethods.forEach(method => {\n if (method in task) {\n promise[method] = task[method].bind(task)\n }\n })\n}\n\nfunction delayRef (taro, global, name: string, method: string) {\n return function (...args) {\n const res = global[name](...args)\n const raw = res[method].bind(res)\n res[method] = function (...methodArgs) {\n taro.nextTick(() => raw(...methodArgs))\n }\n return res\n }\n}\n\nexport {\n processApis\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"native-apis.js","sources":["../src/native-apis.ts"],"sourcesContent":["import { isFunction, isString } from './is'\nimport { nonsupport, setUniqueKeyToRoute } from './utils'\n\ndeclare const getCurrentPages: () => any\ndeclare const getApp: () => any\ndeclare const requirePlugin: () => void\n\ntype IObject = Record<string, any>\n\ninterface IProcessApisIOptions {\n noPromiseApis?: Set<string>\n needPromiseApis?: Set<string>\n handleSyncApis?: (key: string, global: IObject, args: any[]) => any\n transformMeta?: (key: string, options: IObject) => { key: string, options: IObject }\n modifyApis?: (apis: Set<string>) => void\n modifyAsyncResult?: (key: string, res) => void\n isOnlyPromisify?: boolean\n [propName: string]: any\n}\n\nexport interface IApiDiff {\n [key: string]: {\n /** API重命名 */\n alias?: string\n options?: {\n /** API参数键名修改 */\n change?: {\n old: string\n new: string\n }[]\n /** API参数值修改 */\n set?: {\n key: string\n value: ((options: Record<string, any>) => unknown) | unknown\n }[]\n }\n }\n}\n\nconst needPromiseApis = new Set<string>([\n 'addPhoneContact',\n 'authorize',\n 'canvasGetImageData',\n 'canvasPutImageData',\n 'canvasToTempFilePath',\n 'checkSession',\n 'chooseAddress',\n 'chooseImage',\n 'chooseInvoiceTitle',\n 'chooseLocation',\n 'chooseVideo',\n 'clearStorage',\n 'closeBLEConnection',\n 'closeBluetoothAdapter',\n 'closeSocket',\n 'compressImage',\n 'connectSocket',\n 'createBLEConnection',\n 'downloadFile',\n 'exitMiniProgram',\n 'getAvailableAudioSources',\n 'getBLEDeviceCharacteristics',\n 'getBLEDeviceServices',\n 'getBatteryInfo',\n 'getBeacons',\n 'getBluetoothAdapterState',\n 'getBluetoothDevices',\n 'getClipboardData',\n 'getConnectedBluetoothDevices',\n 'getConnectedWifi',\n 'getExtConfig',\n 'getFileInfo',\n 'getImageInfo',\n 'getLocation',\n 'getNetworkType',\n 'getSavedFileInfo',\n 'getSavedFileList',\n 'getScreenBrightness',\n 'getSetting',\n 'getStorage',\n 'getStorageInfo',\n 'getSystemInfo',\n 'getUserInfo',\n 'getWifiList',\n 'hideHomeButton',\n 'hideShareMenu',\n 'hideTabBar',\n 'hideTabBarRedDot',\n 'loadFontFace',\n 'login',\n 'makePhoneCall',\n 'navigateBack',\n 'navigateBackMiniProgram',\n 'navigateTo',\n 'navigateToBookshelf',\n 'navigateToMiniProgram',\n 'notifyBLECharacteristicValueChange',\n 'hideKeyboard',\n 'hideLoading',\n 'hideNavigationBarLoading',\n 'hideToast',\n 'openBluetoothAdapter',\n 'openDocument',\n 'openLocation',\n 'openSetting',\n 'pageScrollTo',\n 'previewImage',\n 'queryBookshelf',\n 'reLaunch',\n 'readBLECharacteristicValue',\n 'redirectTo',\n 'removeSavedFile',\n 'removeStorage',\n 'removeTabBarBadge',\n 'requestSubscribeMessage',\n 'saveFile',\n 'saveImageToPhotosAlbum',\n 'saveVideoToPhotosAlbum',\n 'scanCode',\n 'sendSocketMessage',\n 'setBackgroundColor',\n 'setBackgroundTextStyle',\n 'setClipboardData',\n 'setEnableDebug',\n 'setInnerAudioOption',\n 'setKeepScreenOn',\n 'setNavigationBarColor',\n 'setNavigationBarTitle',\n 'setScreenBrightness',\n 'setStorage',\n 'setTabBarBadge',\n 'setTabBarItem',\n 'setTabBarStyle',\n 'showActionSheet',\n 'showFavoriteGuide',\n 'showLoading',\n 'showModal',\n 'showShareMenu',\n 'showTabBar',\n 'showTabBarRedDot',\n 'showToast',\n 'startBeaconDiscovery',\n 'startBluetoothDevicesDiscovery',\n 'startDeviceMotionListening',\n 'startPullDownRefresh',\n 'stopBeaconDiscovery',\n 'stopBluetoothDevicesDiscovery',\n 'stopCompass',\n 'startCompass',\n 'startAccelerometer',\n 'stopAccelerometer',\n 'showNavigationBarLoading',\n 'stopDeviceMotionListening',\n 'stopPullDownRefresh',\n 'switchTab',\n 'uploadFile',\n 'vibrateLong',\n 'vibrateShort',\n 'writeBLECharacteristicValue'\n])\n\nfunction getCanIUseWebp (taro) {\n return function () {\n const res = taro.getSystemInfoSync?.()\n\n if (!res) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('不支持 API canIUseWebp')\n }\n return false\n }\n\n const { platform } = res\n\n const platformLower = platform.toLowerCase()\n if (platformLower === 'android' || platformLower === 'devtools') {\n return true\n }\n return false\n }\n}\n\nfunction getNormalRequest (global) {\n return function request (options) {\n options = options\n ? (\n isString(options)\n ? { url: options }\n : options\n )\n : {}\n\n const originSuccess = options.success\n const originFail = options.fail\n const originComplete = options.complete\n let requestTask\n const p: any = new Promise((resolve, reject) => {\n options.success = res => {\n originSuccess && originSuccess(res)\n resolve(res)\n }\n options.fail = res => {\n originFail && originFail(res)\n reject(res)\n }\n\n options.complete = res => {\n originComplete && originComplete(res)\n }\n\n requestTask = global.request(options)\n })\n\n equipTaskMethodsIntoPromise(requestTask, p)\n\n p.abort = (cb) => {\n cb && cb()\n if (requestTask) {\n requestTask.abort()\n }\n return p\n }\n return p\n }\n}\n\nfunction processApis (taro, global, config: IProcessApisIOptions = {}) {\n const patchNeedPromiseApis = config.needPromiseApis || []\n const _needPromiseApis = new Set<string>([...patchNeedPromiseApis, ...needPromiseApis])\n const preserved = [\n 'getEnv',\n 'interceptors',\n 'Current',\n 'getCurrentInstance',\n 'options',\n 'nextTick',\n 'eventCenter',\n 'Events',\n 'preload',\n 'webpackJsonp'\n ]\n\n const apis = new Set(\n !config.isOnlyPromisify\n ? Object.keys(global).filter(api => preserved.indexOf(api) === -1)\n : patchNeedPromiseApis\n )\n\n if (config.modifyApis) {\n config.modifyApis(apis)\n }\n\n apis.forEach(key => {\n if (_needPromiseApis.has(key)) {\n const originKey = key\n taro[originKey] = (options: Record<string, any> | string = {}, ...args) => {\n let key = originKey\n\n // 第一个参数 options 为字符串,单独处理\n if (typeof options === 'string') {\n if (args.length) {\n return global[key](options, ...args)\n }\n return global[key](options)\n }\n\n // 改变 key 或 option 字段,如需要把支付宝标准的字段对齐微信标准的字段\n if (config.transformMeta) {\n const transformResult = config.transformMeta(key, options)\n key = transformResult.key\n ; (options as Record<string, any>) = transformResult.options\n // 新 key 可能不存在\n if (!global.hasOwnProperty(key)) {\n return nonsupport(key)()\n }\n }\n\n let task: any = null\n const obj: Record<string, any> = Object.assign({}, options)\n\n // 为页面跳转相关的 API 设置一个随机数作为路由参数。为了给 runtime 区分页面。\n setUniqueKeyToRoute(key, options)\n\n // Promise 化\n const p: any = new Promise((resolve, reject) => {\n obj.success = res => {\n config.modifyAsyncResult?.(key, res)\n options.success?.(res)\n if (key === 'connectSocket') {\n resolve(\n Promise.resolve().then(() => task ? Object.assign(task, res) : res)\n )\n } else {\n resolve(res)\n }\n }\n obj.fail = res => {\n options.fail?.(res)\n reject(res)\n }\n obj.complete = res => {\n options.complete?.(res)\n }\n if (args.length) {\n task = global[key](obj, ...args)\n } else {\n task = global[key](obj)\n }\n })\n\n // 给 promise 对象挂载属性\n if (['uploadFile', 'downloadFile'].includes(key)) {\n equipTaskMethodsIntoPromise(task, p)\n p.progress = cb => {\n task?.onProgressUpdate(cb)\n return p\n }\n p.abort = cb => {\n cb?.()\n task?.abort()\n return p\n }\n }\n return p\n }\n } else {\n let platformKey = key\n\n // 改变 key 或 option 字段,如需要把支付宝标准的字段对齐微信标准的字段\n if (config.transformMeta) {\n platformKey = config.transformMeta(key, {}).key\n }\n\n // API 不存在\n if (!global.hasOwnProperty(platformKey)) {\n taro[key] = nonsupport(key)\n return\n }\n if (isFunction(global[key])) {\n taro[key] = (...args) => {\n if (config.handleSyncApis) {\n return config.handleSyncApis(key, global, args)\n } else {\n return global[platformKey].apply(global, args)\n }\n }\n } else {\n taro[key] = global[platformKey]\n }\n }\n })\n\n !config.isOnlyPromisify && equipCommonApis(taro, global, config)\n}\n\n/**\n * 挂载常用 API\n * @param taro Taro 对象\n * @param global 小程序全局对象,如微信的 wx,支付宝的 my\n */\nfunction equipCommonApis (taro, global, apis: Record<string, any> = {}) {\n taro.canIUseWebp = getCanIUseWebp(taro)\n taro.getCurrentPages = getCurrentPages || nonsupport('getCurrentPages')\n taro.getApp = getApp || nonsupport('getApp')\n taro.env = global.env || {}\n\n try {\n taro.requirePlugin = requirePlugin || nonsupport('requirePlugin')\n } catch (error) {\n taro.requirePlugin = nonsupport('requirePlugin')\n }\n\n // request & interceptors\n const request = apis.request || getNormalRequest(global)\n function taroInterceptor (chain) {\n return request(chain.requestParams)\n }\n const link = new taro.Link(taroInterceptor)\n taro.request = link.request.bind(link)\n taro.addInterceptor = link.addInterceptor.bind(link)\n taro.cleanInterceptors = link.cleanInterceptors.bind(link)\n taro.miniGlobal = taro.options.miniGlobal = global\n taro.getAppInfo = function () {\n return {\n platform: process.env.TARO_PLATFORM || 'MiniProgram',\n taroVersion: process.env.TARO_VERSION || 'unknown',\n designWidth: taro.config.designWidth\n }\n }\n taro.createSelectorQuery = delayRef(taro, global, 'createSelectorQuery', 'exec')\n taro.createIntersectionObserver = delayRef(taro, global, 'createIntersectionObserver', 'observe')\n}\n\n/**\n * 将Task对象中的方法挂载到promise对象中,适配小程序api原生返回结果\n * @param task Task对象 {RequestTask | DownloadTask | UploadTask}\n * @param promise Promise\n */\nfunction equipTaskMethodsIntoPromise (task, promise) {\n if (!task || !promise) return\n const taskMethods = ['abort', 'onHeadersReceived', 'offHeadersReceived', 'onProgressUpdate', 'offProgressUpdate', 'onChunkReceived', 'offChunkReceived']\n task && taskMethods.forEach(method => {\n if (method in task) {\n promise[method] = task[method].bind(task)\n }\n })\n}\n\nfunction delayRef (taro, global, name: string, method: string) {\n return function (...args) {\n const res = global[name](...args)\n const raw = res[method].bind(res)\n res[method] = function (...methodArgs) {\n taro.nextTick(() => raw(...methodArgs))\n }\n return res\n }\n}\n\nexport {\n processApis\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-hooks.js","sources":["../src/runtime-hooks.ts"],"sourcesContent":["import { Events } from './event-emitter'\nimport { isFunction } from './is'\n\nimport type { Shortcuts } from './template'\n\n// Note: @tarojs/runtime 不依赖 @tarojs/taro, 所以不能改为从 @tarojs/taro 引入 (可能导致循环依赖)\ntype TFunc = (...args: any[]) => any\n\nexport enum HOOK_TYPE {\n SINGLE,\n MULTI,\n WATERFALL\n}\n\ninterface Hook {\n type: HOOK_TYPE\n initial?: TFunc | null\n}\n\ninterface Node {\n next: Node\n context?: any\n callback?: TFunc\n}\n\ninterface MiniLifecycle {\n app: [\n string, /** onLaunch */\n string, /** onShow */\n string /** onHide */\n ]\n page: [\n string, /** onLoad */\n string, /** onUnload */\n string, /** onReady */\n string, /** onShow */\n string, /** onHide */\n string[], /** others */\n string[] /** side-effects */\n ]\n component: [\n string, /** attached */\n string, /** detached */\n ]\n}\n\ninterface MiniElementData {\n [Shortcuts.Childnodes]?: MiniData[]\n [Shortcuts.NodeName]: string\n [Shortcuts.Class]?: string\n [Shortcuts.Style]?: string\n uid?: string\n sid: string\n [key: string]: unknown\n}\n\ninterface MiniTextData {\n [Shortcuts.Text]: string\n [Shortcuts.NodeName]: string\n}\n\ntype MiniData = MiniElementData | MiniTextData\n\ninterface UpdatePayload {\n path: string\n value: string | boolean | (() => MiniData | MiniData[])\n}\n\ntype Target = Record<string, unknown> & { dataset: Record<string, unknown>, id: string }\n\ninterface MpEvent {\n type: string\n detail: Record<string, unknown>\n target: Target\n currentTarget: Target\n}\n\nconst defaultMiniLifecycle: MiniLifecycle = {\n app: [\n 'onLaunch',\n 'onShow',\n 'onHide'\n ],\n page: [\n 'onLoad',\n 'onUnload',\n 'onReady',\n 'onShow',\n 'onHide',\n [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onPageScroll',\n 'onResize',\n 'defer:onTabItemTap', // defer: 需要等页面组件挂载后再调用\n 'onTitleClick',\n 'onOptionMenuClick',\n 'onPopMenuClick',\n 'onPullIntercept',\n 'onAddToFavorites'\n ],\n [\n 'onShareAppMessage',\n 'onShareTimeline'\n ]\n ],\n component: [\n 'attached',\n 'detached'\n ]\n}\n\nexport function TaroHook (type: HOOK_TYPE, initial?: TFunc): Hook {\n return {\n type,\n initial: initial || null\n }\n}\n\nexport class TaroHooks<T extends Record<string, TFunc> = any> extends Events {\n hooks: Record<keyof T, Hook>\n\n constructor (hooks: Record<keyof T, Hook>, opts?) {\n super(opts)\n this.hooks = hooks\n for (const hookName in hooks) {\n const { initial } = hooks[hookName]\n if (isFunction(initial)) {\n this.on(hookName, initial)\n }\n }\n }\n\n private tapOneOrMany<K extends Extract<keyof T, string>> (hookName: K, callback: T[K] | T[K][]) {\n const list = isFunction(callback) ? [callback] : callback\n list.forEach(cb => this.on(hookName, cb))\n }\n\n tap<K extends Extract<keyof T, string>> (hookName: K, callback: T[K] | T[K][]) {\n const hooks = this.hooks\n const { type, initial } = hooks[hookName]\n if (type === HOOK_TYPE.SINGLE) {\n this.off(hookName)\n this.on(hookName, isFunction(callback) ? callback : callback[callback.length - 1])\n } else {\n initial && this.off(hookName, initial)\n this.tapOneOrMany(hookName, callback)\n }\n }\n\n call<K extends Extract<keyof T, string>> (hookName: K, ...rest: Parameters<T[K]>): ReturnType<T[K]> | undefined {\n const hook = this.hooks[hookName]\n if (!hook) return\n\n const { type } = hook\n\n const calls = this.callbacks\n if (!calls) return\n\n const list = calls[hookName] as { tail: Node, next: Node }\n\n if (list) {\n const tail = list.tail\n let node: Node = list.next\n let args = rest\n let res\n\n while (node !== tail) {\n res = node.callback?.apply(node.context || this, args)\n if (type === HOOK_TYPE.WATERFALL) {\n const params: any = [res]\n args = params\n }\n node = node.next\n }\n return res\n }\n }\n\n isExist (hookName: string) {\n return Boolean(this.callbacks?.[hookName])\n }\n}\n\ntype ITaroHooks = {\n /** 小程序端 App、Page 构造对象的生命周期方法名称 */\n getMiniLifecycle: (defaultConfig: MiniLifecycle) => MiniLifecycle\n getMiniLifecycleImpl: () => MiniLifecycle\n /** 解决 React 生命周期名称的兼容问题 */\n getLifecycle: (instance, lifecyle) => TFunc | Array<TFunc> | undefined\n /** 提供Hook,为不同平台提供修改生命周期配置 */\n modifyRecursiveComponentConfig: (defaultConfig:MiniLifecycle, options:any) => any\n /** 解决百度小程序的模版语法问题 */\n getPathIndex: (indexOfNode: number) => string\n /** 解决支付宝小程序分包时全局作用域不一致的问题 */\n getEventCenter: (EventsClass: typeof Events) => Events\n isBubbleEvents: (eventName: string) => boolean\n getSpecialNodes: () => string[]\n onRemoveAttribute: (element, qualifiedName: string) => boolean\n /** 用于把 React 同一事件回调中的所有 setState 合并到同一个更新处理中 */\n batchedEventUpdates: (cb: TFunc) => void\n /** 用于处理 React 中的小程序生命周期 hooks */\n mergePageInstance: (prev, next) => void\n /** 用于修改传递给小程序 Page 构造器的对象 */\n modifyPageObject: (config: Record<any, any>) => void\n /** H5 下拉刷新 wrapper */\n createPullDownComponent: (el, path: string, framework, customWrapper?: any, stampId?: string) => void\n /** H5 获取原生 DOM 对象 */\n getDOMNode: (instance) => any\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifyHydrateData:(data: Record<string, any>, node) => void\n /**\n * 自定义处理 Taro DOM 序列化数据,如使其脱离 data 树\n */\n transferHydrateData: (data: Record<string, any>, element, componentsAlias: Record<string, any>) => void\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifySetAttrPayload: (element, key: string, payload: UpdatePayload, componentsAlias: Record<string, any>) => void\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifyRmAttrPayload: (element, key: string, payload: UpdatePayload, componentsAlias: Record<string, any>) => void\n /**\n * @todo: multi\n * 调用 addEventListener 时触发\n **/\n onAddEvent: (type: string, handler, options: any, node) => void\n /** 用于修改小程序原生事件对象 */\n modifyMpEvent: (event: MpEvent) => void\n modifyMpEventImpl: (event: MpEvent) => void\n /** 用于修改 Taro DOM 事件对象 */\n modifyTaroEvent: (event, element) => void\n\n dispatchTaroEvent: (event, element) => void\n dispatchTaroEventFinish: (event, element) => void\n modifyTaroEventReturn: (node, event, returnVal) => any\n\n modifyDispatchEvent: (event, element) => void\n injectNewStyleProperties: (styleProperties: string[]) => void\n initNativeApi: (taro: Record<string, any>) => void\n patchElement: (node) => void\n\n /** 解 Proxy */\n proxyToRaw: (proxyObj) => Record<any, any>\n /** 元素增加事件监听钩子 */\n modifyAddEventListener: (element, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void\n /** 元素删除事件监听钩子 */\n modifyRemoveEventListener: (element, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void\n /** 鸿蒙用于监听 memory 等级的钩子 */\n getMemoryLevel: (level: { level: number }) => void\n}\n\nexport const hooks = new TaroHooks<ITaroHooks>({\n getMiniLifecycle: TaroHook(HOOK_TYPE.SINGLE, defaultConfig => defaultConfig),\n\n getMiniLifecycleImpl: TaroHook(HOOK_TYPE.SINGLE, function (this: TaroHooks<ITaroHooks>) {\n return this.call('getMiniLifecycle', defaultMiniLifecycle)\n }),\n\n getLifecycle: TaroHook(HOOK_TYPE.SINGLE, (instance, lifecycle) => instance[lifecycle]),\n\n modifyRecursiveComponentConfig: TaroHook(HOOK_TYPE.SINGLE, (defaultConfig) => defaultConfig),\n\n getPathIndex: TaroHook(HOOK_TYPE.SINGLE, indexOfNode => `[${indexOfNode}]`),\n\n getEventCenter: TaroHook(HOOK_TYPE.SINGLE, Events => new Events()),\n\n isBubbleEvents: TaroHook(HOOK_TYPE.SINGLE, eventName => {\n /**\n * 支持冒泡的事件, 除 支付宝小程序外,其余的可冒泡事件都和微信保持一致\n * 详见 见 https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html\n */\n const BUBBLE_EVENTS = new Set([\n 'touchstart',\n 'touchmove',\n 'touchcancel',\n 'touchend',\n 'touchforcechange',\n 'tap',\n 'longpress',\n 'longtap',\n 'transitionend',\n 'animationstart',\n 'animationiteration',\n 'animationend'\n ])\n\n return BUBBLE_EVENTS.has(eventName)\n }),\n\n getSpecialNodes: TaroHook(HOOK_TYPE.SINGLE, () => ['view', 'text', 'image']),\n\n onRemoveAttribute: TaroHook(HOOK_TYPE.SINGLE),\n\n batchedEventUpdates: TaroHook(HOOK_TYPE.SINGLE),\n\n mergePageInstance: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyPageObject: TaroHook(HOOK_TYPE.SINGLE),\n\n createPullDownComponent: TaroHook(HOOK_TYPE.SINGLE),\n\n getDOMNode: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyHydrateData: TaroHook(HOOK_TYPE.SINGLE),\n\n transferHydrateData: TaroHook(HOOK_TYPE.SINGLE),\n\n modifySetAttrPayload: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyRmAttrPayload: TaroHook(HOOK_TYPE.SINGLE),\n\n onAddEvent: TaroHook(HOOK_TYPE.SINGLE),\n\n proxyToRaw: TaroHook(HOOK_TYPE.SINGLE, function (proxyObj) {\n return proxyObj\n }),\n\n modifyMpEvent: TaroHook(HOOK_TYPE.MULTI),\n\n modifyMpEventImpl: TaroHook(HOOK_TYPE.SINGLE, function (this: TaroHooks<ITaroHooks>, e: MpEvent) {\n try {\n // 有些小程序的事件对象的某些属性只读\n this.call('modifyMpEvent', e)\n } catch (error) {\n console.warn('[Taro modifyMpEvent hook Error]: ' + error?.message)\n }\n }),\n\n injectNewStyleProperties: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyTaroEvent: TaroHook(HOOK_TYPE.MULTI),\n\n dispatchTaroEvent: TaroHook(HOOK_TYPE.SINGLE, (e, node) => {\n node.dispatchEvent(e)\n }),\n\n dispatchTaroEventFinish: TaroHook(HOOK_TYPE.MULTI),\n\n modifyTaroEventReturn: TaroHook(HOOK_TYPE.SINGLE, () => undefined),\n\n modifyDispatchEvent: TaroHook(HOOK_TYPE.MULTI),\n\n initNativeApi: TaroHook(HOOK_TYPE.MULTI),\n\n patchElement: TaroHook(HOOK_TYPE.MULTI),\n\n modifyAddEventListener: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyRemoveEventListener: TaroHook(HOOK_TYPE.SINGLE),\n\n getMemoryLevel: TaroHook(HOOK_TYPE.SINGLE),\n})\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime-hooks.js","sources":["../src/runtime-hooks.ts"],"sourcesContent":["import { Events } from './event-emitter'\nimport { isFunction } from './is'\n\nimport type { Shortcuts } from './template'\n\n// Note: @tarojs/runtime 不依赖 @tarojs/taro, 所以不能改为从 @tarojs/taro 引入 (可能导致循环依赖)\ntype TFunc = (...args: any[]) => any\n\nexport enum HOOK_TYPE {\n SINGLE,\n MULTI,\n WATERFALL\n}\n\ninterface Hook {\n type: HOOK_TYPE\n initial?: TFunc | null\n}\n\ninterface Node {\n next: Node\n context?: any\n callback?: TFunc\n}\n\ninterface MiniLifecycle {\n app: [\n string, /** onLaunch */\n string, /** onShow */\n string /** onHide */\n ]\n page: [\n string, /** onLoad */\n string, /** onUnload */\n string, /** onReady */\n string, /** onShow */\n string, /** onHide */\n string[], /** others */\n string[] /** side-effects */\n ]\n component: [\n string, /** attached */\n string, /** detached */\n ]\n}\n\ninterface MiniElementData {\n [Shortcuts.Childnodes]?: MiniData[]\n [Shortcuts.NodeName]: string\n [Shortcuts.Class]?: string\n [Shortcuts.Style]?: string\n uid?: string\n sid: string\n [key: string]: unknown\n}\n\ninterface MiniTextData {\n [Shortcuts.Text]: string\n [Shortcuts.NodeName]: string\n}\n\ntype MiniData = MiniElementData | MiniTextData\n\ninterface UpdatePayload {\n path: string\n value: string | boolean | (() => MiniData | MiniData[])\n}\n\ntype Target = Record<string, unknown> & { dataset: Record<string, unknown>, id: string }\n\ninterface MpEvent {\n type: string\n detail: Record<string, unknown>\n target: Target\n currentTarget: Target\n}\n\nconst defaultMiniLifecycle: MiniLifecycle = {\n app: [\n 'onLaunch',\n 'onShow',\n 'onHide'\n ],\n page: [\n 'onLoad',\n 'onUnload',\n 'onReady',\n 'onShow',\n 'onHide',\n [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onPageScroll',\n 'onResize',\n 'defer:onTabItemTap', // defer: 需要等页面组件挂载后再调用\n 'onTitleClick',\n 'onOptionMenuClick',\n 'onPopMenuClick',\n 'onPullIntercept',\n 'onAddToFavorites'\n ],\n [\n 'onShareAppMessage',\n 'onShareTimeline'\n ]\n ],\n component: [\n 'attached',\n 'detached'\n ]\n}\n\nexport function TaroHook (type: HOOK_TYPE, initial?: TFunc): Hook {\n return {\n type,\n initial: initial || null\n }\n}\n\nexport class TaroHooks<T extends Record<string, TFunc> = any> extends Events {\n hooks: Record<keyof T, Hook>\n\n constructor (hooks: Record<keyof T, Hook>, opts?) {\n super(opts)\n this.hooks = hooks\n for (const hookName in hooks) {\n const { initial } = hooks[hookName]\n if (isFunction(initial)) {\n this.on(hookName, initial)\n }\n }\n }\n\n private tapOneOrMany<K extends Extract<keyof T, string>> (hookName: K, callback: T[K] | T[K][]) {\n const list = isFunction(callback) ? [callback] : callback\n list.forEach(cb => this.on(hookName, cb))\n }\n\n tap<K extends Extract<keyof T, string>> (hookName: K, callback: T[K] | T[K][]) {\n const hooks = this.hooks\n const { type, initial } = hooks[hookName]\n if (type === HOOK_TYPE.SINGLE) {\n this.off(hookName)\n this.on(hookName, isFunction(callback) ? callback : callback[callback.length - 1])\n } else {\n initial && this.off(hookName, initial)\n this.tapOneOrMany(hookName, callback)\n }\n }\n\n call<K extends Extract<keyof T, string>> (hookName: K, ...rest: Parameters<T[K]>): ReturnType<T[K]> | undefined {\n const hook = this.hooks[hookName]\n if (!hook) return\n\n const { type } = hook\n\n const calls = this.callbacks\n if (!calls) return\n\n const list = calls[hookName] as { tail: Node, next: Node }\n\n if (list) {\n const tail = list.tail\n let node: Node = list.next\n let args = rest\n let res\n\n while (node !== tail) {\n res = node.callback?.apply(node.context || this, args)\n if (type === HOOK_TYPE.WATERFALL) {\n const params: any = [res]\n args = params\n }\n node = node.next\n }\n return res\n }\n }\n\n isExist (hookName: string) {\n return Boolean(this.callbacks?.[hookName])\n }\n}\n\ntype ITaroHooks = {\n /** 小程序端 App、Page 构造对象的生命周期方法名称 */\n getMiniLifecycle: (defaultConfig: MiniLifecycle) => MiniLifecycle\n getMiniLifecycleImpl: () => MiniLifecycle\n /** 解决 React 生命周期名称的兼容问题 */\n getLifecycle: (instance, lifecyle) => TFunc | Array<TFunc> | undefined\n /** 提供Hook,为不同平台提供修改生命周期配置 */\n modifyRecursiveComponentConfig: (defaultConfig:MiniLifecycle, options:any) => any\n /** 解决百度小程序的模版语法问题 */\n getPathIndex: (indexOfNode: number) => string\n /** 解决支付宝小程序分包时全局作用域不一致的问题 */\n getEventCenter: (EventsClass: typeof Events) => Events\n isBubbleEvents: (eventName: string) => boolean\n getSpecialNodes: () => string[]\n onRemoveAttribute: (element, qualifiedName: string) => boolean\n /** 用于把 React 同一事件回调中的所有 setState 合并到同一个更新处理中 */\n batchedEventUpdates: (cb: TFunc) => void\n /** 用于处理 React 中的小程序生命周期 hooks */\n mergePageInstance: (prev, next) => void\n /** 用于修改传递给小程序 Page 构造器的对象 */\n modifyPageObject: (config: Record<any, any>) => void\n /** H5 下拉刷新 wrapper */\n createPullDownComponent: (el, path: string, framework, customWrapper?: any, stampId?: string) => void\n /** H5 获取原生 DOM 对象 */\n getDOMNode: (instance) => any\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifyHydrateData:(data: Record<string, any>, node) => void\n /**\n * 自定义处理 Taro DOM 序列化数据,如使其脱离 data 树\n */\n transferHydrateData: (data: Record<string, any>, element, componentsAlias: Record<string, any>) => void\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifySetAttrPayload: (element, key: string, payload: UpdatePayload, componentsAlias: Record<string, any>) => void\n /**\n * @todo: multi\n * 修改 Taro DOM 序列化数据\n **/\n modifyRmAttrPayload: (element, key: string, payload: UpdatePayload, componentsAlias: Record<string, any>) => void\n /**\n * @todo: multi\n * 调用 addEventListener 时触发\n **/\n onAddEvent: (type: string, handler, options: any, node) => void\n /** 用于修改小程序原生事件对象 */\n modifyMpEvent: (event: MpEvent) => void\n modifyMpEventImpl: (event: MpEvent) => void\n /** 用于修改 Taro DOM 事件对象 */\n modifyTaroEvent: (event, element) => void\n\n dispatchTaroEvent: (event, element) => void\n dispatchTaroEventFinish: (event, element) => void\n modifyTaroEventReturn: (node, event, returnVal) => any\n\n modifyDispatchEvent: (event, element) => void\n injectNewStyleProperties: (styleProperties: string[]) => void\n initNativeApi: (taro: Record<string, any>) => void\n patchElement: (node) => void\n\n /** 解 Proxy */\n proxyToRaw: (proxyObj) => Record<any, any>\n /** 元素增加事件监听钩子 */\n modifyAddEventListener: (element, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void\n /** 元素删除事件监听钩子 */\n modifyRemoveEventListener: (element, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void\n /** 鸿蒙用于监听 memory 等级的钩子 */\n getMemoryLevel: (level: { level: number }) => void\n}\n\nexport const hooks = new TaroHooks<ITaroHooks>({\n getMiniLifecycle: TaroHook(HOOK_TYPE.SINGLE, defaultConfig => defaultConfig),\n\n getMiniLifecycleImpl: TaroHook(HOOK_TYPE.SINGLE, function (this: TaroHooks<ITaroHooks>) {\n return this.call('getMiniLifecycle', defaultMiniLifecycle)\n }),\n\n getLifecycle: TaroHook(HOOK_TYPE.SINGLE, (instance, lifecycle) => instance[lifecycle]),\n\n modifyRecursiveComponentConfig: TaroHook(HOOK_TYPE.SINGLE, (defaultConfig) => defaultConfig),\n\n getPathIndex: TaroHook(HOOK_TYPE.SINGLE, indexOfNode => `[${indexOfNode}]`),\n\n getEventCenter: TaroHook(HOOK_TYPE.SINGLE, Events => new Events()),\n\n isBubbleEvents: TaroHook(HOOK_TYPE.SINGLE, eventName => {\n /**\n * 支持冒泡的事件, 除 支付宝小程序外,其余的可冒泡事件都和微信保持一致\n * 详见 见 https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html\n */\n const BUBBLE_EVENTS = new Set([\n 'touchstart',\n 'touchmove',\n 'touchcancel',\n 'touchend',\n 'touchforcechange',\n 'tap',\n 'longpress',\n 'longtap',\n 'transitionend',\n 'animationstart',\n 'animationiteration',\n 'animationend'\n ])\n\n return BUBBLE_EVENTS.has(eventName)\n }),\n\n getSpecialNodes: TaroHook(HOOK_TYPE.SINGLE, () => ['view', 'text', 'image']),\n\n onRemoveAttribute: TaroHook(HOOK_TYPE.SINGLE),\n\n batchedEventUpdates: TaroHook(HOOK_TYPE.SINGLE),\n\n mergePageInstance: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyPageObject: TaroHook(HOOK_TYPE.SINGLE),\n\n createPullDownComponent: TaroHook(HOOK_TYPE.SINGLE),\n\n getDOMNode: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyHydrateData: TaroHook(HOOK_TYPE.SINGLE),\n\n transferHydrateData: TaroHook(HOOK_TYPE.SINGLE),\n\n modifySetAttrPayload: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyRmAttrPayload: TaroHook(HOOK_TYPE.SINGLE),\n\n onAddEvent: TaroHook(HOOK_TYPE.SINGLE),\n\n proxyToRaw: TaroHook(HOOK_TYPE.SINGLE, function (proxyObj) {\n return proxyObj\n }),\n\n modifyMpEvent: TaroHook(HOOK_TYPE.MULTI),\n\n modifyMpEventImpl: TaroHook(HOOK_TYPE.SINGLE, function (this: TaroHooks<ITaroHooks>, e: MpEvent) {\n try {\n // 有些小程序的事件对象的某些属性只读\n this.call('modifyMpEvent', e)\n } catch (error) {\n console.warn('[Taro modifyMpEvent hook Error]: ' + error?.message)\n }\n }),\n\n injectNewStyleProperties: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyTaroEvent: TaroHook(HOOK_TYPE.MULTI),\n\n dispatchTaroEvent: TaroHook(HOOK_TYPE.SINGLE, (e, node) => {\n node.dispatchEvent(e)\n }),\n\n dispatchTaroEventFinish: TaroHook(HOOK_TYPE.MULTI),\n\n modifyTaroEventReturn: TaroHook(HOOK_TYPE.SINGLE, () => undefined),\n\n modifyDispatchEvent: TaroHook(HOOK_TYPE.MULTI),\n\n initNativeApi: TaroHook(HOOK_TYPE.MULTI),\n\n patchElement: TaroHook(HOOK_TYPE.MULTI),\n\n modifyAddEventListener: TaroHook(HOOK_TYPE.SINGLE),\n\n modifyRemoveEventListener: TaroHook(HOOK_TYPE.SINGLE),\n\n getMemoryLevel: TaroHook(HOOK_TYPE.SINGLE),\n})\n"],"names":[],"mappings":"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"}
|