@tarojs/shared 4.0.1 → 4.0.3-alpah.2
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/LICENSE +8 -8
- package/dist/components.d.ts +8 -9
- package/dist/constants.d.ts +2 -3
- package/dist/event-channel.d.ts +3 -3
- package/dist/event-channel.js.map +1 -1
- package/dist/event-emitter.d.ts +2 -3
- package/dist/event-emitter.js.map +1 -1
- package/dist/index.cjs.js +2 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/is.d.ts +10 -11
- package/dist/native-apis.d.ts +2 -2
- package/dist/native-apis.js.map +1 -1
- package/dist/runtime-hooks.d.ts +20 -135
- package/dist/runtime-hooks.js +2 -1
- package/dist/runtime-hooks.js.map +1 -1
- package/dist/shared.esm.js +2 -1
- package/dist/shared.esm.js.map +1 -1
- package/dist/shortcuts.d.ts +1 -2
- package/dist/template.d.ts +25 -25
- package/dist/template.js +2 -11
- package/dist/template.js.map +1 -1
- package/dist/utils.d.ts +27 -28
- package/dist/utils.js.map +1 -1
- package/package.json +10 -12
- package/dist/index.cjs.d.ts +0 -315
- package/dist/shared.esm.d.ts +0 -315
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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"}
|
package/dist/runtime-hooks.d.ts
CHANGED
|
@@ -1,125 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* 1. 模板递归:
|
|
4
|
-
* - 支持:tmpl0 套 tmpl0
|
|
5
|
-
* - 不支持:这就使得我们必须生成多级的模板,tmpl0 套 tmpl1,tmpl1 套 tmpl2……
|
|
6
|
-
* 直到超过阈值 N (N = config.miniapp.baseLevel) tmplN 会套组件 comp,组件 comp 重新再套 tmpl0。
|
|
7
|
-
* 2. 小程序脚本语言(wxs, sjs, etc...):
|
|
8
|
-
* - 支持:可以在模板使用函数缩减模板大小或提高性能(存疑),例如判断一个值是不是假值(falsy value)。
|
|
9
|
-
* 将来或许会把数据序列化^1 的操作也放到小程序脚本语言里。
|
|
10
|
-
* - 不支持:使用纯 *xml 语法
|
|
11
|
-
*
|
|
12
|
-
* ^1: packages/taro-runtime/src/hydrate.ts
|
|
13
|
-
*/
|
|
14
|
-
import { internalComponents } from "./components.js";
|
|
15
|
-
import { Shortcuts } from "./shortcuts.js";
|
|
16
|
-
import { capitalize, toCamelCase } from "./utils.js";
|
|
17
|
-
import { Events } from "./event-emitter.js";
|
|
18
|
-
interface Component {
|
|
19
|
-
nodeName: string;
|
|
20
|
-
nodeAlias: string;
|
|
21
|
-
attributes: Attributes;
|
|
22
|
-
}
|
|
23
|
-
interface Components {
|
|
24
|
-
[key: string]: Record<string, string>;
|
|
25
|
-
}
|
|
26
|
-
interface ComponentConfig {
|
|
27
|
-
includes: Set<string>;
|
|
28
|
-
exclude: Set<string>;
|
|
29
|
-
thirdPartyComponents: Map<string, Set<string>>;
|
|
30
|
-
includeAll: boolean;
|
|
31
|
-
}
|
|
32
|
-
interface IAdapter {
|
|
33
|
-
if: string;
|
|
34
|
-
else: string;
|
|
35
|
-
elseif: string;
|
|
36
|
-
for: string;
|
|
37
|
-
forItem: string;
|
|
38
|
-
forIndex: string;
|
|
39
|
-
key: string;
|
|
40
|
-
xs?: string;
|
|
41
|
-
type: string;
|
|
42
|
-
}
|
|
43
|
-
type Attributes = Record<string, string>;
|
|
44
|
-
declare const styles: {
|
|
45
|
-
style: string;
|
|
46
|
-
class: string;
|
|
47
|
-
};
|
|
48
|
-
declare const events: {
|
|
49
|
-
bindtap: string;
|
|
50
|
-
};
|
|
51
|
-
declare class BaseTemplate {
|
|
52
|
-
protected _baseLevel: number;
|
|
53
|
-
protected exportExpr: string;
|
|
54
|
-
protected isSupportRecursive: boolean;
|
|
55
|
-
protected miniComponents: Components;
|
|
56
|
-
protected thirdPartyPatcher: Record<string, Record<string, string>>;
|
|
57
|
-
protected modifyCompProps?: (compName: string, target: Record<string, string>) => Record<string, string>;
|
|
58
|
-
protected modifyLoopBody?: (child: string, nodeName: string) => string;
|
|
59
|
-
protected modifyLoopContainer?: (children: string, nodeName: string) => string;
|
|
60
|
-
protected modifyTemplateResult?: (res: string, nodeName: string, level: number, children: string) => string;
|
|
61
|
-
protected modifyThirdPartyLoopBody?: (child: string, nodeName: string) => string;
|
|
62
|
-
supportXS: boolean;
|
|
63
|
-
isXMLSupportRecursiveReference: boolean;
|
|
64
|
-
Adapter: IAdapter;
|
|
65
|
-
/** 组件列表 */
|
|
66
|
-
internalComponents: Record<string, Record<string, string>>;
|
|
67
|
-
/** 可以 focus 聚焦的组件 */
|
|
68
|
-
focusComponents: Set<string>;
|
|
69
|
-
/** 不需要渲染子节点的元素 */
|
|
70
|
-
voidElements: Set<string>;
|
|
71
|
-
/** 可以递归调用自身的组件 */
|
|
72
|
-
nestElements: Map<string, number>;
|
|
73
|
-
componentsAlias: any;
|
|
74
|
-
set baseLevel(lv: number);
|
|
75
|
-
get baseLevel(): number;
|
|
76
|
-
private buildAttribute;
|
|
77
|
-
protected replacePropName(name: string, value: string, _componentName?: string, _componentAlias?: any): string;
|
|
78
|
-
createMiniComponents(components: Components): Components;
|
|
79
|
-
protected buildBaseTemplate(): string;
|
|
80
|
-
protected buildThirdPartyAttr(attrs: Set<string>, patcher?: Record<string, string>): string;
|
|
81
|
-
protected buildComponentTemplate(comp: Component, level: number): string;
|
|
82
|
-
private getChildrenTemplate;
|
|
83
|
-
private getChildren;
|
|
84
|
-
protected buildFocusComponentTemplate(comp: Component, level: number): string;
|
|
85
|
-
protected buildStandardComponentTemplate(comp: Component, level: number): string;
|
|
86
|
-
protected buildPlainTextTemplate(level: number): string;
|
|
87
|
-
protected buildThirdPartyTemplate(level: number, componentConfig: ComponentConfig): string;
|
|
88
|
-
// 最后一层的 comp 需要引用 container 进行重新的模版循环,其他情况不需要 container
|
|
89
|
-
protected buildContainerTemplate(level: number): string;
|
|
90
|
-
protected dataKeymap(keymap: string): string;
|
|
91
|
-
protected getEvents(): any;
|
|
92
|
-
protected getAttrValue(value: string, _key: string, _nodeName: string): string;
|
|
93
|
-
buildXsTemplate(_filePath?: string): string;
|
|
94
|
-
buildPageTemplate: (baseTempPath: string, _page: {
|
|
95
|
-
content: Record<string, any>;
|
|
96
|
-
path: string;
|
|
97
|
-
}) => string;
|
|
98
|
-
buildBaseComponentTemplate: (ext: string) => string;
|
|
99
|
-
buildCustomComponentTemplate: (ext: string) => string;
|
|
100
|
-
buildXScript: () => string;
|
|
101
|
-
mergeComponents(ctx: any, patch: Record<string, Record<string, string>>): void;
|
|
102
|
-
mergeThirdPartyComponents(patch: Record<string, Record<string, string>>): void;
|
|
103
|
-
protected buildXSTmplName(): string;
|
|
104
|
-
protected buildXSTepFocus(nn: string): string;
|
|
105
|
-
protected buildXSTmpExtra(): string;
|
|
106
|
-
}
|
|
107
|
-
declare class RecursiveTemplate extends BaseTemplate {
|
|
108
|
-
isSupportRecursive: boolean;
|
|
109
|
-
buildTemplate: (componentConfig: ComponentConfig) => string;
|
|
110
|
-
}
|
|
111
|
-
declare class UnRecursiveTemplate extends BaseTemplate {
|
|
112
|
-
isSupportRecursive: boolean;
|
|
113
|
-
protected _baseLevel: number;
|
|
114
|
-
private componentConfig;
|
|
115
|
-
buildTemplate: (componentConfig: ComponentConfig) => string;
|
|
116
|
-
protected buildFloor(level: number, components: string[], restart?: boolean): string;
|
|
117
|
-
protected buildOptimizeFloor(level: number, components: string[], restart?: boolean): string;
|
|
118
|
-
protected buildXSTmplName(): string;
|
|
119
|
-
protected buildXSTmpExtra(): string;
|
|
120
|
-
}
|
|
1
|
+
import { Events } from './event-emitter';
|
|
2
|
+
import type { Shortcuts } from './template';
|
|
121
3
|
type TFunc = (...args: any[]) => any;
|
|
122
|
-
declare enum HOOK_TYPE {
|
|
4
|
+
export declare enum HOOK_TYPE {
|
|
123
5
|
SINGLE = 0,
|
|
124
6
|
MULTI = 1,
|
|
125
7
|
WATERFALL = 2
|
|
@@ -130,21 +12,21 @@ interface Hook {
|
|
|
130
12
|
}
|
|
131
13
|
interface MiniLifecycle {
|
|
132
14
|
app: [
|
|
133
|
-
string,
|
|
134
|
-
string,
|
|
15
|
+
string, /** onLaunch */
|
|
16
|
+
string, /** onShow */
|
|
135
17
|
string /** onHide */
|
|
136
18
|
];
|
|
137
19
|
page: [
|
|
138
|
-
string,
|
|
139
|
-
string,
|
|
140
|
-
string,
|
|
141
|
-
string,
|
|
142
|
-
string,
|
|
143
|
-
string[],
|
|
20
|
+
string, /** onLoad */
|
|
21
|
+
string, /** onUnload */
|
|
22
|
+
string, /** onReady */
|
|
23
|
+
string, /** onShow */
|
|
24
|
+
string, /** onHide */
|
|
25
|
+
string[], /** others */
|
|
144
26
|
string[] /** side-effects */
|
|
145
27
|
];
|
|
146
28
|
component: [
|
|
147
|
-
string,
|
|
29
|
+
string, /** attached */
|
|
148
30
|
string
|
|
149
31
|
];
|
|
150
32
|
}
|
|
@@ -176,8 +58,8 @@ interface MpEvent {
|
|
|
176
58
|
target: Target;
|
|
177
59
|
currentTarget: Target;
|
|
178
60
|
}
|
|
179
|
-
declare function TaroHook(type: HOOK_TYPE, initial?: TFunc): Hook;
|
|
180
|
-
declare class TaroHooks<T extends Record<string, TFunc> = any> extends Events {
|
|
61
|
+
export declare function TaroHook(type: HOOK_TYPE, initial?: TFunc): Hook;
|
|
62
|
+
export declare class TaroHooks<T extends Record<string, TFunc> = any> extends Events {
|
|
181
63
|
hooks: Record<keyof T, Hook>;
|
|
182
64
|
constructor(hooks: Record<keyof T, Hook>, opts?: any);
|
|
183
65
|
private tapOneOrMany;
|
|
@@ -199,7 +81,6 @@ type ITaroHooks = {
|
|
|
199
81
|
getEventCenter: (EventsClass: typeof Events) => Events;
|
|
200
82
|
isBubbleEvents: (eventName: string) => boolean;
|
|
201
83
|
getSpecialNodes: () => string[];
|
|
202
|
-
/** 解决 Vue2 布尔值属性值的设置问题 */
|
|
203
84
|
onRemoveAttribute: (element: any, qualifiedName: string) => boolean;
|
|
204
85
|
/** 用于把 React 同一事件回调中的所有 setState 合并到同一个更新处理中 */
|
|
205
86
|
batchedEventUpdates: (cb: TFunc) => void;
|
|
@@ -253,6 +134,10 @@ type ITaroHooks = {
|
|
|
253
134
|
modifyAddEventListener: (element: any, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void;
|
|
254
135
|
/** 元素删除事件监听钩子 */
|
|
255
136
|
modifyRemoveEventListener: (element: any, sideEffect: boolean, getComponentsAlias: () => Record<string, any>) => void;
|
|
137
|
+
/** 鸿蒙用于监听 memory 等级的钩子 */
|
|
138
|
+
getMemoryLevel: (level: {
|
|
139
|
+
level: number;
|
|
140
|
+
}) => void;
|
|
256
141
|
};
|
|
257
|
-
declare const hooks: TaroHooks<ITaroHooks>;
|
|
258
|
-
export {
|
|
142
|
+
export declare const hooks: TaroHooks<ITaroHooks>;
|
|
143
|
+
export {};
|
package/dist/runtime-hooks.js
CHANGED
|
@@ -24,7 +24,7 @@ const defaultMiniLifecycle = {
|
|
|
24
24
|
'onReachBottom',
|
|
25
25
|
'onPageScroll',
|
|
26
26
|
'onResize',
|
|
27
|
-
'defer:onTabItemTap',
|
|
27
|
+
'defer:onTabItemTap', // defer: 需要等页面组件挂载后再调用
|
|
28
28
|
'onTitleClick',
|
|
29
29
|
'onOptionMenuClick',
|
|
30
30
|
'onPopMenuClick',
|
|
@@ -172,6 +172,7 @@ const hooks = new TaroHooks({
|
|
|
172
172
|
patchElement: TaroHook(HOOK_TYPE.MULTI),
|
|
173
173
|
modifyAddEventListener: TaroHook(HOOK_TYPE.SINGLE),
|
|
174
174
|
modifyRemoveEventListener: TaroHook(HOOK_TYPE.SINGLE),
|
|
175
|
+
getMemoryLevel: TaroHook(HOOK_TYPE.SINGLE),
|
|
175
176
|
});
|
|
176
177
|
|
|
177
178
|
export { HOOK_TYPE, TaroHook, TaroHooks, hooks };
|
|
@@ -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 /** 解决 Vue2 布尔值属性值的设置问题 */\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}\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"],"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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"}
|
package/dist/shared.esm.js
CHANGED
|
@@ -548,7 +548,7 @@ const defaultMiniLifecycle = {
|
|
|
548
548
|
'onReachBottom',
|
|
549
549
|
'onPageScroll',
|
|
550
550
|
'onResize',
|
|
551
|
-
'defer:onTabItemTap',
|
|
551
|
+
'defer:onTabItemTap', // defer: 需要等页面组件挂载后再调用
|
|
552
552
|
'onTitleClick',
|
|
553
553
|
'onOptionMenuClick',
|
|
554
554
|
'onPopMenuClick',
|
|
@@ -696,6 +696,7 @@ const hooks = new TaroHooks({
|
|
|
696
696
|
patchElement: TaroHook(HOOK_TYPE.MULTI),
|
|
697
697
|
modifyAddEventListener: TaroHook(HOOK_TYPE.SINGLE),
|
|
698
698
|
modifyRemoveEventListener: TaroHook(HOOK_TYPE.SINGLE),
|
|
699
|
+
getMemoryLevel: TaroHook(HOOK_TYPE.SINGLE),
|
|
699
700
|
});
|
|
700
701
|
|
|
701
702
|
const EMPTY_OBJ = {};
|