@tarojs/with-weapp 3.3.13 → 3.3.17

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/lifecycle.ts","../src/utils.ts","../src/diff.js","../src/clone.js","../src/index.ts"],"sourcesContent":["interface LifecycleMap {\n [key: string]: string[]\n}\n\nexport enum TaroLifeCycles {\n WillMount = 'componentWillMount',\n DidMount = 'componentDidMount',\n DidShow = 'componentDidShow',\n DidHide = 'componentDidHide',\n WillUnmount = 'componentWillUnmount'\n}\n\nexport const lifecycleMap: LifecycleMap = {\n [TaroLifeCycles.WillMount]: ['created'],\n [TaroLifeCycles.DidMount]: ['attached'],\n [TaroLifeCycles.DidShow]: ['onShow'],\n [TaroLifeCycles.DidHide]: ['onHide'],\n [TaroLifeCycles.WillUnmount]: ['detached', 'onUnload']\n}\n\nexport const lifecycles = new Set<string>(['ready'])\n\nfor (const key in lifecycleMap) {\n const lifecycle = lifecycleMap[key]\n lifecycle.forEach(l => lifecycles.add(l))\n}\n\nexport const uniquePageLifecycle = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n]\n\nexport const appOptions = [\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onUnhandledRejection',\n 'onThemeChange'\n]\n","/**\n * Simple bind, faster than native\n */\nexport function bind (fn /*: Function */, ctx /*: Object */) /*: Function */ {\n if (!fn) return false\n\n function boundFn (a) {\n const l /*: number */ = arguments.length\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\n }\n\n // record original fn length\n boundFn._length = fn.length\n return boundFn\n}\n\nexport function isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function noop (..._: unknown[]) {\n //\n}\n\nconst sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n}\n\nexport function proxy (target, sourceKey: string, key: string) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n }\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val\n }\n Object.defineProperty(target, key, sharedPropertyDefinition)\n}\n\nexport function safeGet (obj, propsArg, defaultValue?) {\n if (!obj) {\n return defaultValue\n }\n let props, prop\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0)\n }\n if (typeof propsArg === 'string') {\n props = propsArg.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof propsArg === 'symbol') {\n props = [propsArg]\n }\n if (!Array.isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol')\n }\n while (props.length) {\n prop = props.shift()\n if (!obj) {\n return defaultValue\n }\n obj = obj[prop]\n if (obj === undefined) {\n return defaultValue\n }\n }\n return obj\n}\n\nexport function safeSet (obj, props, value) {\n if (typeof props === 'string') {\n props = props.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof props === 'symbol') {\n props = [props]\n }\n const lastProp = props.pop()\n if (!lastProp) {\n return false\n }\n let thisProp\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] === 'undefined') {\n obj[thisProp] = {}\n }\n\n // 直接按路径修改 this.state 可能会导致 nextProps 也被修改\n // 因此按路径寻找时,每一层都复制一遍\n if (Array.isArray(obj[thisProp])) {\n obj[thisProp] = [...obj[thisProp]]\n } else if (typeof obj[thisProp] === 'object') {\n obj[thisProp] = { ...obj[thisProp] }\n }\n\n obj = obj[thisProp]\n if (!obj || typeof obj !== 'object') {\n return false\n }\n }\n obj[lastProp] = value\n return true\n}\n\nexport function report (msg) {\n console.warn('[Taro Convert Warning] ' + msg)\n}\n\nexport const unsupport = new Map([\n ['onError', '不支持 App 的 onError 生命周期方法。'],\n ['onPageNotFound', '不支持 App 的 onPageNotFound 生命周期方法。'],\n ['onUnhandledRejection', '不支持 App 的 onUnhandledRejection 生命周期方法。'],\n ['onThemeChange', '不支持 App 的 onThemeChange 生命周期方法。'],\n ['moved', '不支持自定义组件的 moved 生命周期。'],\n ['externalClasses', '不支持自定义组件的 externalClasses 功能。'],\n ['relations', '不支持自定义组件的 relations 功能。'],\n ['options', '不支持自定义组件的 options 功能。'],\n ['definitionFilter', '不支持自定义组件的 definitionFilter 功能。'],\n ['selectComponent', 'selectComponent 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectAllComponents', 'selectAllComponents 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectOwnerComponent', 'selectOwnerComponent 方法产生不到目标效果,请使用 React 语法重构。'],\n ['groupSetData', 'groupSetData 方法产生不到目标效果,请使用 React 语法重构。']\n])\n\nexport function flattenBehaviors (behavior, behaviorMap: Map<string, any[]>) {\n if (typeof behavior === 'string') {\n return report(`不支持使用内置 Behavior: [${behavior}]`)\n }\n const subBehaviors = behavior.behaviors\n if (subBehaviors?.length) {\n subBehaviors.forEach(subBehavior => flattenBehaviors(subBehavior, behaviorMap))\n }\n\n Object.keys(behavior).forEach(key => {\n // 不支持的属性\n if (unsupport.has(key)) {\n const advise = unsupport.get(key)\n return report(advise)\n }\n\n if (behaviorMap.has(key)) {\n const list = behaviorMap.get(key)!\n const value = behavior[key]\n list.push(value)\n }\n })\n}\n","/*eslint-disable*/\nconst ARRAYTYPE = '[object Array]'\nconst OBJECTTYPE = '[object Object]'\nconst FUNCTIONTYPE = '[object Function]'\n\nexport function diff (current, pre) {\n const result = {}\n syncKeys(current, pre)\n _diff(current, pre, '', result)\n return result\n}\n\nfunction syncKeys (current, pre) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n // if(Object.keys(current).length >= Object.keys(pre).length){\n for (let key in pre) {\n const currentValue = current[key]\n if (currentValue === undefined) {\n current[key] = null\n } else {\n syncKeys(currentValue, pre[key])\n }\n }\n // }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item)\n })\n }\n }\n}\n\nfunction _diff (current, pre, path, result) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current)\n } else {\n for (let key in current) {\n const currentValue = current[key]\n const preValue = pre[key]\n const currentType = type(currentValue)\n const preType = type(preValue)\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n currentValue.forEach((item, index) => {\n _diff(item, preValue[index], (path == '' ? '' : path + '.') + key + '[' + index + ']', result)\n })\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n for (let subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + '.') + key + '.' + subKey, result)\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current)\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current)\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + '[' + index + ']', result)\n })\n }\n }\n } else {\n setResult(result, path, current)\n }\n}\n\nfunction setResult (result, k, v) {\n if (type(v) != FUNCTIONTYPE) {\n result[k] = v\n }\n}\n\nfunction type (obj) {\n return Object.prototype.toString.call(obj)\n}\n","const json = JSON\n\nexport const clone = (obj) => json.parse(stringify(obj))\n\nconst isArray = Array.isArray || function (x) {\n return {}.toString.call(x) === '[object Array]'\n}\n\nconst objectKeys = Object.keys || function (obj) {\n const has = Object.prototype.hasOwnProperty || function () { return true }\n const keys = []\n for (const key in obj) {\n if (has.call(obj, key)) keys.push(key)\n }\n return keys\n}\n\nfunction stringify (obj, opts) {\n if (!opts) opts = {}\n if (typeof opts === 'function') opts = { cmp: opts }\n let space = opts.space || ''\n if (typeof space === 'number') space = Array(space + 1).join(' ')\n const cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false\n const replacer = opts.replacer || function (key, value) { return value }\n\n const cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n const aobj = { key: a, value: node[a] }\n const bobj = { key: b, value: node[b] }\n return f(aobj, bobj)\n }\n }\n })(opts.cmp)\n\n const seen = []\n return (function stringify (parent, key, node, level) {\n const indent = space ? ('\\n' + new Array(level + 1).join(space)) : ''\n const colonSeparator = space ? ': ' : ':'\n\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON()\n }\n\n node = replacer.call(parent, key, node)\n\n if (node === undefined) {\n return\n }\n if (typeof node !== 'object' || node === null) {\n return json.stringify(node)\n }\n if (isArray(node)) {\n const out = []\n for (let i = 0; i < node.length; i++) {\n const item = stringify(node, i, node[i], level + 1) || json.stringify(null)\n out.push(indent + space + item)\n }\n return '[' + out.join(',') + indent + ']'\n } else {\n if (seen.indexOf(node) !== -1) {\n if (cycles) return json.stringify('__cycle__')\n throw new TypeError('Converting circular structure to JSON')\n } else seen.push(node)\n\n const keys = objectKeys(node).sort(cmp && cmp(node))\n const out = []\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const value = stringify(node, key, node[key], level + 1)\n\n if (!value) continue\n\n const keyValue = json.stringify(key) +\n colonSeparator +\n value\n\n out.push(indent + space + keyValue)\n }\n seen.splice(seen.indexOf(node), 1)\n return '{' + out.join(',') + indent + '}'\n }\n })({ '': obj }, '', obj, 0)\n}\n","import { Component, ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'\nimport { getCurrentInstance } from '@tarojs/runtime'\nimport { lifecycles, lifecycleMap, TaroLifeCycles, uniquePageLifecycle, appOptions } from './lifecycle'\nimport { bind, isEqual, safeGet, safeSet, report, unsupport, flattenBehaviors } from './utils'\nimport { diff } from './diff'\nimport { clone } from './clone'\n\ntype Observer = (newProps, oldProps, changePath: string) => void\ntype Func = (...args: any[]) => void\n\ninterface ObserverProperties {\n name: string,\n observer: string | Observer\n}\n\ninterface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {\n new (props: P): Component<P, S>\n externalClasses: Record<string, unknown>\n defaultProps?: Partial<P>\n _observeProps?: ObserverProperties[]\n observers?: Record<string, Func>\n}\n\ninterface WxOptions {\n methods?: {\n [key: string]: Func;\n }\n properties?: Record<string, Record<string, unknown> | Func>\n props?: Record<string, unknown>\n data?: Record<string, unknown>,\n observers?: Record<string, Func>\n lifetimes?: Record<string, Func>\n behaviors?: any[]\n}\n\nfunction defineGetter (component: Component, key: string, getter: string) {\n Object.defineProperty(component, key, {\n enumerable: true,\n configurable: true,\n get: () => {\n if (getter === 'props') {\n return component.props\n }\n return {\n ...component.state,\n ...component.props\n }\n }\n })\n}\n\nfunction isFunction (o): o is Func {\n return typeof o === 'function'\n}\n\nexport default function withWeapp (weappConf: WxOptions, isApp = false) {\n if (typeof weappConf === 'object' && Object.keys(weappConf).length === 0) {\n report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。')\n }\n return (ConnectComponent: ComponentClass<any, any>) => {\n const behaviorMap = new Map<string, any[]>([\n ['properties', []],\n ['data', []],\n ['methods', []],\n ['created', []],\n ['attached', []],\n ['ready', []],\n ['detached', []]\n ])\n const behaviorProperties = {}\n if (weappConf.behaviors?.length) {\n const { behaviors } = weappConf\n behaviors.forEach(behavior => flattenBehaviors(behavior, behaviorMap))\n\n const propertiesList = behaviorMap.get('properties')!\n if (propertiesList.length) {\n propertiesList.forEach(property => {\n Object.assign(behaviorProperties, property)\n })\n Object.keys(behaviorProperties).forEach(propName => {\n const propValue = behaviorProperties[propName]\n if (!weappConf.properties) {\n weappConf.properties = {}\n }\n if (!weappConf.properties.hasOwnProperty(propName)) {\n if (propValue && typeof propValue === 'object' && propValue.value) {\n propValue.value = clone(propValue.value)\n }\n weappConf.properties[propName] = propValue\n }\n })\n }\n }\n\n class BaseComponent<P = Record<string, any>, S = Record<string, any>> extends ConnectComponent {\n private _observeProps: ObserverProperties[] = []\n\n // mixins 可以多次调用生命周期\n private willMounts: Func[] = []\n\n private didMounts: Func[] = []\n\n private didHides: Func[] = []\n\n private didShows: Func[] = []\n\n private willUnmounts: Func[] = []\n\n private eventDistoryList: Func[] = []\n\n private current: any = getCurrentInstance()\n\n public observers?: Record<string, Func>\n\n public taroGlobalData: Record<any, any> = Object.create(null)\n\n public data: any\n\n constructor (props) {\n super(props)\n this.state = this.state || {}\n this.init(weappConf)\n defineGetter(this, 'data', 'state')\n defineGetter(this, 'properties', 'props')\n }\n\n private initProps (props: any) {\n for (const propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n const propValue = props[propKey]\n // propValue 可能是 null, 构造函数, 对象\n if (propValue && !isFunction(propValue)) {\n if (propValue.observer) {\n this._observeProps.push({\n name: propKey,\n observer: propValue.observer\n })\n }\n }\n }\n }\n }\n\n private init (options: WxOptions) {\n // 处理 Behaviors\n if (options.behaviors?.length) {\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'created':\n case 'attached':\n case 'detached':\n case 'ready':\n list.forEach(fn => this.initLifeCycles(key, fn))\n break\n }\n }\n }\n\n for (const confKey in options) {\n // 不支持的属性\n if (unsupport.has(confKey)) {\n const advise = unsupport.get(confKey)\n report(advise)\n }\n\n const confValue = options[confKey]\n\n switch (confKey) {\n case 'behaviors':\n break\n case 'data': {\n if (isApp) {\n this[confKey] = confValue\n if (!appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n } else {\n this.state = {\n ...confValue,\n ...this.state\n }\n }\n break\n }\n case 'properties':\n this.initProps(Object.assign(behaviorProperties, confValue))\n break\n case 'methods':\n for (const key in confValue) {\n const method = confValue[key]\n this[key] = bind(method, this)\n }\n break\n case 'lifetimes':\n for (const key in confValue) {\n this.initLifeCycles(key, confValue[key])\n }\n break\n case 'pageLifetimes':\n for (const key in confValue) {\n const cb = confValue[key]\n switch (key) {\n case 'show': {\n this.initLifeCycleListener('show', cb)\n break\n }\n case 'hide': {\n this.initLifeCycleListener('hide', cb)\n break\n }\n case 'resize': {\n report('不支持组件所在页面的生命周期 pageLifetimes.resize。')\n break\n }\n }\n }\n break\n default:\n if (lifecycles.has(confKey)) {\n // 优先使用 lifetimes 中定义的生命周期\n if (options.lifetimes?.[confKey]) {\n break\n }\n\n const lifecycle = options[confKey]\n this.initLifeCycles(confKey, lifecycle)\n } else if (isFunction(confValue)) {\n this[confKey] = bind(confValue, this)\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n\n // 原生页面和 Taro 页面中共计只能定义一次的生命周期\n if (uniquePageLifecycle.includes(confKey) && ConnectComponent.prototype[confKey]) {\n report(`生命周期 ${confKey} 已在原生部分进行定义,React 部分的定义将不会被执行。`)\n }\n } else {\n this[confKey] = confValue\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n }\n\n break\n }\n }\n\n // 处理 Behaviors\n if (options.behaviors?.length) {\n const behaviorData = {}\n const methods = {}\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'data':\n [...list, this.state].forEach((dataObject, index) => {\n Object.keys(dataObject).forEach(dataKey => {\n const value = dataObject[dataKey]\n const preValue = behaviorData[dataKey]\n const valueType = typeof value\n const preValueType = typeof preValue\n if (valueType === 'object') {\n if (!value) {\n behaviorData[dataKey] = value\n } else if (preValueType !== 'object' || !preValueType || Array.isArray(value)) {\n behaviorData[dataKey] = index === list.length ? value : clone(value)\n } else {\n const newVal = Object.assign({}, preValue, value)\n behaviorData[dataKey] = index === list.length ? newVal : clone(newVal)\n }\n } else {\n behaviorData[dataKey] = value\n }\n })\n })\n this.state = behaviorData\n break\n case 'methods':\n list.forEach(methodsObject => {\n Object.assign(methods, methodsObject)\n })\n Object.keys(methods).forEach(methodName => {\n if (!this[methodName]) {\n const method = methods[methodName]\n this[methodName] = bind(method, this)\n }\n })\n break\n default:\n break\n }\n }\n }\n }\n\n private initLifeCycles (lifecycleName: string, lifecycle: (...args: any[]) => any) {\n // 不支持的生命周期\n if (unsupport.has(lifecycleName)) {\n const advise = unsupport.get(lifecycleName)\n return report(advise)\n }\n\n if (lifecycleName === 'ready') {\n // 如果组件是延时渲染的,页面 onReady 的事件已经 emit 了,因此使用 componentDidMount + nextTick 模拟\n if (this.current.page.onReady.called) {\n this.didMounts.push(function (...args: unknown[]) {\n nextTick(() => {\n if (isFunction(lifecycle)) {\n lifecycle.apply(this, args)\n }\n })\n })\n } else {\n this.initLifeCycleListener('ready', lifecycle)\n }\n } else {\n for (const lifecycleKey in lifecycleMap) {\n const cycleNames = lifecycleMap[lifecycleKey]\n if (cycleNames.indexOf(lifecycleName) !== -1) {\n switch (lifecycleKey) {\n case TaroLifeCycles.DidHide:\n this.didHides.push(lifecycle)\n break\n case TaroLifeCycles.DidMount:\n this.didMounts.push(lifecycle)\n break\n case TaroLifeCycles.DidShow:\n this.didShows.push(lifecycle)\n break\n case TaroLifeCycles.WillMount:\n this.willMounts.push(lifecycle)\n break\n case TaroLifeCycles.WillUnmount:\n this.willUnmounts.push(lifecycle)\n break\n default:\n break\n }\n }\n }\n }\n\n // mixins 不会覆盖已经设置的生命周期,加入到 this 是为了形如 this.created() 的调用\n if (!isFunction(this[lifecycleName])) {\n this[lifecycleName] = lifecycle\n }\n }\n\n private safeExecute = (func?: Func, ...args: unknown[]) => {\n if (isFunction(func)) func.apply(this, args)\n }\n\n private initLifeCycleListener (name: string, cb: (...args: any[]) => void) {\n // 组件的 ready、show、hide 需要利用页面事件触发\n const { router } = this.current\n const lifecycleName = `on${name[0].toUpperCase()}${name.slice(1)}`\n cb = cb.bind(this)\n router?.[lifecycleName] && eventCenter.on(router[lifecycleName], cb)\n // unMount 时需要取消事件监听\n this.eventDistoryList.push(() => eventCenter.off(router[lifecycleName], cb))\n }\n\n private executeLifeCycles (funcs: Func[], ...args: unknown[]) {\n for (let i = 0; i < funcs.length; i++) {\n const func = funcs[i]\n this.safeExecute(func, ...args)\n }\n }\n\n private triggerPropertiesObservers (prevProps, nextProps) {\n this._observeProps.forEach(({ name: key, observer }) => {\n const prop = prevProps?.[key]\n const nextProp = nextProps[key]\n // 小程序是深比较不同之后才 trigger observer\n if (!isEqual(prop, nextProp)) {\n if (typeof observer === 'string') {\n const ob = this[observer]\n if (isFunction(ob)) {\n ob.call(this, nextProp, prop, key)\n }\n } else if (isFunction(observer)) {\n observer.call(this, nextProp, prop, key)\n }\n }\n })\n }\n\n private triggerObservers (current, prev) {\n const observers = this.observers\n if (observers == null) {\n return\n }\n\n if (Object.keys(observers).length === 0) {\n return\n }\n\n const result = diff(current, prev)\n const resultKeys = Object.keys(result)\n if (resultKeys.length === 0) {\n return\n }\n\n for (const observerKey in observers) {\n if (/\\*\\*/.test(observerKey)) {\n report('数据监听器 observers 不支持使用通配符 **。')\n continue\n }\n\n const keys = observerKey.split(',').map(k => k.trim())\n let isModified = false\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n for (let j = 0; j < resultKeys.length; j++) {\n const resultKey = resultKeys[j]\n if (\n resultKey.startsWith(key) ||\n (key.startsWith(resultKey) && key.endsWith(']'))\n ) {\n isModified = true\n }\n }\n }\n if (isModified) {\n observers[observerKey].apply(this, keys.map(key => safeGet(current, key)))\n }\n }\n }\n\n private defineProperty (target, key, data) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set (value) {\n data[key] = value\n },\n get () {\n return data[key]\n }\n })\n }\n\n public privateStopNoop (...args) {\n let e\n let fn\n if (args.length === 2) {\n fn = args[0]\n e = args[1]\n } else if (args.length === 1) {\n e = args[0]\n }\n if (e.type === 'touchmove') {\n report('catchtouchmove 转换后只能停止回调函数的冒泡,不能阻止滚动穿透。如要阻止滚动穿透,可以手动给编译后的 View 组件加上 catchMove 属性')\n }\n e.stopPropagation()\n isFunction(fn) && fn(e)\n }\n\n // ================ React 生命周期 ================\n\n public componentWillMount () {\n this.safeExecute(super.componentWillMount)\n this.executeLifeCycles(this.willMounts, this.current.router || {})\n this.triggerObservers(this.data, BaseComponent.defaultProps)\n this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props)\n }\n\n public componentDidMount () {\n this.safeExecute(super.componentDidMount)\n this.executeLifeCycles(this.didMounts)\n }\n\n public componentWillUnmount () {\n this.eventDistoryList.forEach(fn => fn())\n this.safeExecute(super.componentWillUnmount)\n this.executeLifeCycles(this.willUnmounts)\n }\n\n public componentDidHide () {\n this.safeExecute(super.componentDidHide)\n this.executeLifeCycles(this.didHides)\n }\n\n public componentDidShow () {\n this.safeExecute(super.componentDidShow, this.current.router || {})\n this.executeLifeCycles(this.didShows, this.current.router || {})\n }\n\n public componentWillReceiveProps (nextProps: P) {\n this.triggerObservers(nextProps, this.props)\n this.triggerPropertiesObservers(this.props, nextProps)\n this.safeExecute(super.componentWillReceiveProps)\n }\n\n // ================ 小程序 App, Page, Component 实例属性与方法 ================\n\n get is () {\n return this.current.page.is\n }\n\n get id () {\n return this.current.page.id\n }\n\n get dataset () {\n return this.current.page.dataset\n }\n\n public setData = (obj: S, callback?: () => void) => {\n let oldState\n if (this.observers && Object.keys(Object.keys(this.observers))) {\n oldState = clone(this.state)\n }\n Object.keys(obj).forEach(key => {\n safeSet(this.state, key, obj[key])\n })\n this.setState(this.state, () => {\n this.triggerObservers(this.state, oldState)\n if (callback) {\n callback.call(this)\n }\n })\n }\n\n public triggerEvent = (eventName: string, detail, options) => {\n if (options) {\n report('triggerEvent 不支持事件选项。')\n }\n\n const props = this.props\n const dataset = {}\n for (const key in props) {\n if (!key.startsWith('data-')) continue\n dataset[key.replace(/^data-/, '')] = props[key]\n }\n\n const func = props[`on${eventName[0].toUpperCase()}${eventName.slice(1)}`]\n if (isFunction(func)) {\n func.call(this, {\n type: eventName,\n detail,\n target: {\n id: props.id || '',\n dataset\n },\n currentTarget: {\n id: props.id || '',\n dataset\n }\n })\n }\n }\n\n private componentMethodsProxy (method: string) {\n return (...args: any[]) => {\n const page = this.current.page\n if (page?.[method]) {\n return page[method](...args)\n } else {\n console.error(`page 下没有 ${method} 方法`)\n }\n }\n }\n\n public hasBehavior = this.componentMethodsProxy('hasBehavior')\n public createSelectorQuery = this.componentMethodsProxy('createSelectorQuery')\n public createIntersectionObserver = this.componentMethodsProxy('createIntersectionObserver')\n public createMediaQueryObserver = this.componentMethodsProxy('createMediaQueryObserver')\n public getRelationNodes = this.componentMethodsProxy('getRelationNodes')\n public getTabBar = this.componentMethodsProxy('getTabBar')\n public getPageId = this.componentMethodsProxy('getPageId')\n public animate = this.componentMethodsProxy('animate')\n public clearAnimation = this.componentMethodsProxy('clearAnimation')\n public setUpdatePerformanceListener = this.componentMethodsProxy('setUpdatePerformanceListener')\n\n public selectComponent () {\n report(unsupport.get('selectComponent'))\n }\n\n public selectAllComponents () {\n report(unsupport.get('selectAllComponents'))\n }\n\n public selectOwnerComponent () {\n report(unsupport.get('selectOwnerComponent'))\n }\n\n public groupSetData () {\n report(unsupport.get('groupSetData'))\n }\n }\n\n const props = weappConf.properties\n\n if (props) {\n for (const propKey in props) {\n const propValue = props[propKey]\n if (propValue != null && !isFunction(propValue)) {\n if (propValue.value !== undefined) { // 如果是 null 也赋值到 defaultProps\n BaseComponent.defaultProps = {\n [propKey]: propValue.value,\n ...BaseComponent.defaultProps\n }\n }\n }\n }\n }\n\n const staticOptions = ['externalClasses', 'relations', 'options']\n\n staticOptions.forEach(option => {\n const value = weappConf[option]\n if (value != null) {\n BaseComponent[option] = value\n }\n })\n\n return BaseComponent\n }\n}\n"],"names":["TaroLifeCycles","lifecycleMap","WillMount","DidMount","DidShow","DidHide","WillUnmount","lifecycles","Set","key","lifecycle","forEach","l","add","uniquePageLifecycle","appOptions","bind","fn","ctx","boundFn","a","arguments","length","apply","call","_length","isEqual","obj1","obj2","JSON","stringify","safeGet","obj","propsArg","defaultValue","props","prop","Array","isArray","slice","replace","split","Error","shift","undefined","safeSet","value","lastProp","pop","thisProp","report","msg","console","warn","unsupport","Map","flattenBehaviors","behavior","behaviorMap","subBehaviors","behaviors","subBehavior","Object","keys","has","advise","get","list","push","ARRAYTYPE","OBJECTTYPE","FUNCTIONTYPE","diff","current","pre","result","syncKeys","_diff","rootCurrentType","type","rootPreType","currentValue","item","index","path","setResult","preValue","currentType","preType","subKey","k","v","prototype","toString","json","clone","parse","x","objectKeys","hasOwnProperty","opts","cmp","space","join","cycles","replacer","f","node","b","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","out","i","indexOf","TypeError","sort","keyValue","splice","defineGetter","component","getter","defineProperty","enumerable","configurable","state","isFunction","o","withWeapp","weappConf","isApp","ConnectComponent","behaviorProperties","propertiesList","property","assign","propName","propValue","properties","BaseComponent","getCurrentInstance","create","func","args","callback","oldState","observers","setState","triggerObservers","eventName","detail","options","dataset","startsWith","toUpperCase","target","id","currentTarget","componentMethodsProxy","init","propKey","observer","_observeProps","name","entries","initLifeCycles","confKey","confValue","includes","taroGlobalData","initProps","method","cb","initLifeCycleListener","lifetimes","behaviorData","methods","dataObject","dataKey","valueType","preValueType","newVal","methodsObject","methodName","lifecycleName","page","onReady","called","didMounts","nextTick","lifecycleKey","cycleNames","didHides","didShows","willMounts","willUnmounts","router","eventCenter","on","eventDistoryList","off","funcs","safeExecute","prevProps","nextProps","nextProp","ob","prev","resultKeys","observerKey","test","map","trim","isModified","j","resultKey","endsWith","data","set","e","stopPropagation","executeLifeCycles","defaultProps","triggerPropertiesObservers","is","error","staticOptions","option"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/lifecycle.ts","../src/utils.ts","../src/diff.js","../src/clone.js","../src/index.ts"],"sourcesContent":["interface LifecycleMap {\n [key: string]: string[]\n}\n\nexport enum TaroLifeCycles {\n WillMount = 'componentWillMount',\n DidMount = 'componentDidMount',\n DidShow = 'componentDidShow',\n DidHide = 'componentDidHide',\n WillUnmount = 'componentWillUnmount'\n}\n\nexport const lifecycleMap: LifecycleMap = {\n [TaroLifeCycles.WillMount]: ['created'],\n [TaroLifeCycles.DidMount]: ['attached'],\n [TaroLifeCycles.DidShow]: ['onShow'],\n [TaroLifeCycles.DidHide]: ['onHide'],\n [TaroLifeCycles.WillUnmount]: ['detached', 'onUnload']\n}\n\nexport const lifecycles = new Set<string>(['ready'])\n\nfor (const key in lifecycleMap) {\n const lifecycle = lifecycleMap[key]\n lifecycle.forEach(l => lifecycles.add(l))\n}\n\nexport const uniquePageLifecycle = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n]\n\nexport const appOptions = [\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onUnhandledRejection',\n 'onThemeChange'\n]\n","/**\n * Simple bind, faster than native\n */\nexport function bind (fn /*: Function */, ctx /*: Object */) /*: Function */ {\n if (!fn) return false\n\n function boundFn (a) {\n const l /*: number */ = arguments.length\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\n }\n\n // record original fn length\n boundFn._length = fn.length\n return boundFn\n}\n\nexport function isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function noop (..._: unknown[]) {\n //\n}\n\nconst sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n}\n\nexport function proxy (target, sourceKey: string, key: string) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n }\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val\n }\n Object.defineProperty(target, key, sharedPropertyDefinition)\n}\n\nexport function safeGet (obj, propsArg, defaultValue?) {\n if (!obj) {\n return defaultValue\n }\n let props, prop\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0)\n }\n if (typeof propsArg === 'string') {\n props = propsArg.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof propsArg === 'symbol') {\n props = [propsArg]\n }\n if (!Array.isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol')\n }\n while (props.length) {\n prop = props.shift()\n if (!obj) {\n return defaultValue\n }\n obj = obj[prop]\n if (obj === undefined) {\n return defaultValue\n }\n }\n return obj\n}\n\nexport function safeSet (obj, props, value) {\n if (typeof props === 'string') {\n props = props.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof props === 'symbol') {\n props = [props]\n }\n const lastProp = props.pop()\n if (!lastProp) {\n return false\n }\n let thisProp\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] === 'undefined') {\n obj[thisProp] = {}\n }\n\n // 直接按路径修改 this.state 可能会导致 nextProps 也被修改\n // 因此按路径寻找时,每一层都复制一遍\n if (Array.isArray(obj[thisProp])) {\n obj[thisProp] = [...obj[thisProp]]\n } else if (typeof obj[thisProp] === 'object') {\n obj[thisProp] = { ...obj[thisProp] }\n }\n\n obj = obj[thisProp]\n if (!obj || typeof obj !== 'object') {\n return false\n }\n }\n obj[lastProp] = value\n return true\n}\n\nexport function report (msg) {\n console.warn('[Taro Convert Warning] ' + msg)\n}\n\nexport const unsupport = new Map([\n ['onError', '不支持 App 的 onError 生命周期方法。'],\n ['onPageNotFound', '不支持 App 的 onPageNotFound 生命周期方法。'],\n ['onUnhandledRejection', '不支持 App 的 onUnhandledRejection 生命周期方法。'],\n ['onThemeChange', '不支持 App 的 onThemeChange 生命周期方法。'],\n ['moved', '不支持自定义组件的 moved 生命周期。'],\n ['externalClasses', '不支持自定义组件的 externalClasses 功能。'],\n ['relations', '不支持自定义组件的 relations 功能。'],\n ['options', '不支持自定义组件的 options 功能。'],\n ['definitionFilter', '不支持自定义组件的 definitionFilter 功能。'],\n ['selectComponent', 'selectComponent 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectAllComponents', 'selectAllComponents 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectOwnerComponent', 'selectOwnerComponent 方法产生不到目标效果,请使用 React 语法重构。'],\n ['groupSetData', 'groupSetData 方法产生不到目标效果,请使用 React 语法重构。']\n])\n\nexport function flattenBehaviors (behavior, behaviorMap: Map<string, any[]>) {\n if (typeof behavior === 'string') {\n return report(`不支持使用内置 Behavior: [${behavior}]`)\n }\n const subBehaviors = behavior.behaviors\n if (subBehaviors?.length) {\n subBehaviors.forEach(subBehavior => flattenBehaviors(subBehavior, behaviorMap))\n }\n\n Object.keys(behavior).forEach(key => {\n // 不支持的属性\n if (unsupport.has(key)) {\n const advise = unsupport.get(key)\n return report(advise)\n }\n\n if (behaviorMap.has(key)) {\n const list = behaviorMap.get(key)!\n const value = behavior[key]\n list.push(value)\n }\n })\n}\n","/*eslint-disable*/\nconst ARRAYTYPE = '[object Array]'\nconst OBJECTTYPE = '[object Object]'\nconst FUNCTIONTYPE = '[object Function]'\n\nexport function diff (current, pre) {\n const result = {}\n syncKeys(current, pre)\n _diff(current, pre, '', result)\n return result\n}\n\nfunction syncKeys (current, pre) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n // if(Object.keys(current).length >= Object.keys(pre).length){\n for (let key in pre) {\n const currentValue = current[key]\n if (currentValue === undefined) {\n current[key] = null\n } else {\n syncKeys(currentValue, pre[key])\n }\n }\n // }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item)\n })\n }\n }\n}\n\nfunction _diff (current, pre, path, result) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current)\n } else {\n for (let key in current) {\n const currentValue = current[key]\n const preValue = pre[key]\n const currentType = type(currentValue)\n const preType = type(preValue)\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n currentValue.forEach((item, index) => {\n _diff(item, preValue[index], (path == '' ? '' : path + '.') + key + '[' + index + ']', result)\n })\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n for (let subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + '.') + key + '.' + subKey, result)\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current)\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current)\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + '[' + index + ']', result)\n })\n }\n }\n } else {\n setResult(result, path, current)\n }\n}\n\nfunction setResult (result, k, v) {\n if (type(v) != FUNCTIONTYPE) {\n result[k] = v\n }\n}\n\nfunction type (obj) {\n return Object.prototype.toString.call(obj)\n}\n","const json = JSON\n\nexport const clone = (obj) => json.parse(stringify(obj))\n\nconst isArray = Array.isArray || function (x) {\n return {}.toString.call(x) === '[object Array]'\n}\n\nconst objectKeys = Object.keys || function (obj) {\n const has = Object.prototype.hasOwnProperty || function () { return true }\n const keys = []\n for (const key in obj) {\n if (has.call(obj, key)) keys.push(key)\n }\n return keys\n}\n\nfunction stringify (obj, opts) {\n if (!opts) opts = {}\n if (typeof opts === 'function') opts = { cmp: opts }\n let space = opts.space || ''\n if (typeof space === 'number') space = Array(space + 1).join(' ')\n const cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false\n const replacer = opts.replacer || function (key, value) { return value }\n\n const cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n const aobj = { key: a, value: node[a] }\n const bobj = { key: b, value: node[b] }\n return f(aobj, bobj)\n }\n }\n })(opts.cmp)\n\n const seen = []\n return (function stringify (parent, key, node, level) {\n const indent = space ? ('\\n' + new Array(level + 1).join(space)) : ''\n const colonSeparator = space ? ': ' : ':'\n\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON()\n }\n\n node = replacer.call(parent, key, node)\n\n if (node === undefined) {\n return\n }\n if (typeof node !== 'object' || node === null) {\n return json.stringify(node)\n }\n if (isArray(node)) {\n const out = []\n for (let i = 0; i < node.length; i++) {\n const item = stringify(node, i, node[i], level + 1) || json.stringify(null)\n out.push(indent + space + item)\n }\n return '[' + out.join(',') + indent + ']'\n } else {\n if (seen.indexOf(node) !== -1) {\n if (cycles) return json.stringify('__cycle__')\n throw new TypeError('Converting circular structure to JSON')\n } else seen.push(node)\n\n const keys = objectKeys(node).sort(cmp && cmp(node))\n const out = []\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const value = stringify(node, key, node[key], level + 1)\n\n if (!value) continue\n\n const keyValue = json.stringify(key) +\n colonSeparator +\n value\n\n out.push(indent + space + keyValue)\n }\n seen.splice(seen.indexOf(node), 1)\n return '{' + out.join(',') + indent + '}'\n }\n })({ '': obj }, '', obj, 0)\n}\n","import { ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'\nimport { getCurrentInstance } from '@tarojs/runtime'\nimport { lifecycles, lifecycleMap, TaroLifeCycles, uniquePageLifecycle, appOptions } from './lifecycle'\nimport { bind, isEqual, safeGet, safeSet, report, unsupport, flattenBehaviors } from './utils'\nimport { diff } from './diff'\nimport { clone } from './clone'\n\ntype Observer = (newProps, oldProps, changePath: string) => void\ntype Func = (...args: any[]) => void\n\ninterface ObserverProperties {\n name: string,\n observer: string | Observer\n}\n\ninterface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {\n new (props: P)\n externalClasses: Record<string, unknown>\n defaultProps?: Partial<P>\n _observeProps?: ObserverProperties[]\n observers?: Record<string, Func>\n}\n\ninterface WxOptions {\n methods?: {\n [key: string]: Func;\n }\n properties?: Record<string, Record<string, unknown> | Func>\n props?: Record<string, unknown>\n data?: Record<string, unknown>,\n observers?: Record<string, Func>\n lifetimes?: Record<string, Func>\n behaviors?: any[]\n}\n\nfunction defineGetter (component, key: string, getter: string) {\n Object.defineProperty(component, key, {\n enumerable: true,\n configurable: true,\n get: () => {\n if (getter === 'props') {\n return component.props\n }\n return {\n ...component.state,\n ...component.props\n }\n }\n })\n}\n\nfunction isFunction (o): o is Func {\n return typeof o === 'function'\n}\n\nexport default function withWeapp (weappConf: WxOptions, isApp = false) {\n if (typeof weappConf === 'object' && Object.keys(weappConf).length === 0) {\n report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。')\n }\n return (ConnectComponent: ComponentClass<any, any>) => {\n const behaviorMap = new Map<string, any[]>([\n ['properties', []],\n ['data', []],\n ['methods', []],\n ['created', []],\n ['attached', []],\n ['ready', []],\n ['detached', []]\n ])\n const behaviorProperties = {}\n if (weappConf.behaviors?.length) {\n const { behaviors } = weappConf\n behaviors.forEach(behavior => flattenBehaviors(behavior, behaviorMap))\n\n const propertiesList = behaviorMap.get('properties')!\n if (propertiesList.length) {\n propertiesList.forEach(property => {\n Object.assign(behaviorProperties, property)\n })\n Object.keys(behaviorProperties).forEach(propName => {\n const propValue = behaviorProperties[propName]\n if (!weappConf.properties) {\n weappConf.properties = {}\n }\n if (!weappConf.properties.hasOwnProperty(propName)) {\n if (propValue && typeof propValue === 'object' && propValue.value) {\n propValue.value = clone(propValue.value)\n }\n weappConf.properties[propName] = propValue\n }\n })\n }\n }\n\n class BaseComponent<P = Record<string, any>, S = Record<string, any>> extends ConnectComponent {\n private _observeProps: ObserverProperties[] = []\n\n // mixins 可以多次调用生命周期\n private willMounts: Func[] = []\n\n private didMounts: Func[] = []\n\n private didHides: Func[] = []\n\n private didShows: Func[] = []\n\n private willUnmounts: Func[] = []\n\n private eventDistoryList: Func[] = []\n\n private current: any = getCurrentInstance()\n\n public observers?: Record<string, Func>\n\n public taroGlobalData: Record<any, any> = Object.create(null)\n\n public data: any\n\n constructor (props) {\n super(props)\n this.state = this.state || {}\n this.init(weappConf)\n defineGetter(this, 'data', 'state')\n defineGetter(this, 'properties', 'props')\n }\n\n private initProps (props: any) {\n for (const propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n const propValue = props[propKey]\n // propValue 可能是 null, 构造函数, 对象\n if (propValue && !isFunction(propValue)) {\n if (propValue.observer) {\n this._observeProps.push({\n name: propKey,\n observer: propValue.observer\n })\n }\n }\n }\n }\n }\n\n private init (options: WxOptions) {\n // 处理 Behaviors\n if (options.behaviors?.length) {\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'created':\n case 'attached':\n case 'detached':\n case 'ready':\n list.forEach(fn => this.initLifeCycles(key, fn))\n break\n }\n }\n }\n\n for (const confKey in options) {\n // 不支持的属性\n if (unsupport.has(confKey)) {\n const advise = unsupport.get(confKey)\n report(advise)\n }\n\n const confValue = options[confKey]\n\n switch (confKey) {\n case 'behaviors':\n break\n case 'data': {\n if (isApp) {\n this[confKey] = confValue\n if (!appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n } else {\n this.state = {\n ...confValue,\n ...this.state\n }\n }\n break\n }\n case 'properties':\n this.initProps(Object.assign(behaviorProperties, confValue))\n break\n case 'methods':\n for (const key in confValue) {\n const method = confValue[key]\n this[key] = bind(method, this)\n }\n break\n case 'lifetimes':\n for (const key in confValue) {\n this.initLifeCycles(key, confValue[key])\n }\n break\n case 'pageLifetimes':\n for (const key in confValue) {\n const cb = confValue[key]\n switch (key) {\n case 'show': {\n this.initLifeCycleListener('show', cb)\n break\n }\n case 'hide': {\n this.initLifeCycleListener('hide', cb)\n break\n }\n case 'resize': {\n report('不支持组件所在页面的生命周期 pageLifetimes.resize。')\n break\n }\n }\n }\n break\n default:\n if (lifecycles.has(confKey)) {\n // 优先使用 lifetimes 中定义的生命周期\n if (options.lifetimes?.[confKey]) {\n break\n }\n\n const lifecycle = options[confKey]\n this.initLifeCycles(confKey, lifecycle)\n } else if (isFunction(confValue)) {\n this[confKey] = bind(confValue, this)\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n\n // 原生页面和 Taro 页面中共计只能定义一次的生命周期\n if (uniquePageLifecycle.includes(confKey) && ConnectComponent.prototype[confKey]) {\n report(`生命周期 ${confKey} 已在原生部分进行定义,React 部分的定义将不会被执行。`)\n }\n } else {\n this[confKey] = confValue\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n }\n\n break\n }\n }\n\n // 处理 Behaviors\n if (options.behaviors?.length) {\n const behaviorData = {}\n const methods = {}\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'data':\n [...list, this.state].forEach((dataObject, index) => {\n Object.keys(dataObject).forEach(dataKey => {\n const value = dataObject[dataKey]\n const preValue = behaviorData[dataKey]\n const valueType = typeof value\n const preValueType = typeof preValue\n if (valueType === 'object') {\n if (!value) {\n behaviorData[dataKey] = value\n } else if (preValueType !== 'object' || !preValueType || Array.isArray(value)) {\n behaviorData[dataKey] = index === list.length ? value : clone(value)\n } else {\n const newVal = Object.assign({}, preValue, value)\n behaviorData[dataKey] = index === list.length ? newVal : clone(newVal)\n }\n } else {\n behaviorData[dataKey] = value\n }\n })\n })\n this.state = behaviorData\n break\n case 'methods':\n list.forEach(methodsObject => {\n Object.assign(methods, methodsObject)\n })\n Object.keys(methods).forEach(methodName => {\n if (!this[methodName]) {\n const method = methods[methodName]\n this[methodName] = bind(method, this)\n }\n })\n break\n default:\n break\n }\n }\n }\n }\n\n private initLifeCycles (lifecycleName: string, lifecycle: (...args: any[]) => any) {\n // 不支持的生命周期\n if (unsupport.has(lifecycleName)) {\n const advise = unsupport.get(lifecycleName)\n return report(advise)\n }\n\n if (lifecycleName === 'ready') {\n // 如果组件是延时渲染的,页面 onReady 的事件已经 emit 了,因此使用 componentDidMount + nextTick 模拟\n if (this.current.page.onReady.called) {\n this.didMounts.push(function (...args: unknown[]) {\n nextTick(() => {\n if (isFunction(lifecycle)) {\n lifecycle.apply(this, args)\n }\n })\n })\n } else {\n this.initLifeCycleListener('ready', lifecycle)\n }\n } else {\n for (const lifecycleKey in lifecycleMap) {\n const cycleNames = lifecycleMap[lifecycleKey]\n if (cycleNames.indexOf(lifecycleName) !== -1) {\n switch (lifecycleKey) {\n case TaroLifeCycles.DidHide:\n this.didHides.push(lifecycle)\n break\n case TaroLifeCycles.DidMount:\n this.didMounts.push(lifecycle)\n break\n case TaroLifeCycles.DidShow:\n this.didShows.push(lifecycle)\n break\n case TaroLifeCycles.WillMount:\n this.willMounts.push(lifecycle)\n break\n case TaroLifeCycles.WillUnmount:\n this.willUnmounts.push(lifecycle)\n break\n default:\n break\n }\n }\n }\n }\n\n // mixins 不会覆盖已经设置的生命周期,加入到 this 是为了形如 this.created() 的调用\n if (!isFunction(this[lifecycleName])) {\n this[lifecycleName] = lifecycle\n }\n }\n\n private safeExecute = (func?: Func, ...args: unknown[]) => {\n if (isFunction(func)) func.apply(this, args)\n }\n\n private initLifeCycleListener (name: string, cb: (...args: any[]) => void) {\n // 组件的 ready、show、hide 需要利用页面事件触发\n const { router } = this.current\n const lifecycleName = `on${name[0].toUpperCase()}${name.slice(1)}`\n cb = cb.bind(this)\n router?.[lifecycleName] && eventCenter.on(router[lifecycleName], cb)\n // unMount 时需要取消事件监听\n this.eventDistoryList.push(() => eventCenter.off(router[lifecycleName], cb))\n }\n\n private executeLifeCycles (funcs: Func[], ...args: unknown[]) {\n for (let i = 0; i < funcs.length; i++) {\n const func = funcs[i]\n this.safeExecute(func, ...args)\n }\n }\n\n private triggerPropertiesObservers (prevProps, nextProps) {\n this._observeProps.forEach(({ name: key, observer }) => {\n const prop = prevProps?.[key]\n const nextProp = nextProps[key]\n // 小程序是深比较不同之后才 trigger observer\n if (!isEqual(prop, nextProp)) {\n if (typeof observer === 'string') {\n const ob = this[observer]\n if (isFunction(ob)) {\n ob.call(this, nextProp, prop, key)\n }\n } else if (isFunction(observer)) {\n observer.call(this, nextProp, prop, key)\n }\n }\n })\n }\n\n private triggerObservers (current, prev) {\n const observers = this.observers\n if (observers == null) {\n return\n }\n\n if (Object.keys(observers).length === 0) {\n return\n }\n\n const result = diff(current, prev)\n const resultKeys = Object.keys(result)\n if (resultKeys.length === 0) {\n return\n }\n\n for (const observerKey in observers) {\n if (/\\*\\*/.test(observerKey)) {\n report('数据监听器 observers 不支持使用通配符 **。')\n continue\n }\n\n const keys = observerKey.split(',').map(k => k.trim())\n let isModified = false\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n for (let j = 0; j < resultKeys.length; j++) {\n const resultKey = resultKeys[j]\n if (\n resultKey.startsWith(key) ||\n (key.startsWith(resultKey) && key.endsWith(']'))\n ) {\n isModified = true\n }\n }\n }\n if (isModified) {\n observers[observerKey].apply(this, keys.map(key => safeGet(current, key)))\n }\n }\n }\n\n private defineProperty (target, key, data) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set (value) {\n data[key] = value\n },\n get () {\n return data[key]\n }\n })\n }\n\n public privateStopNoop (...args) {\n let e\n let fn\n if (args.length === 2) {\n fn = args[0]\n e = args[1]\n } else if (args.length === 1) {\n e = args[0]\n }\n if (e.type === 'touchmove') {\n report('catchtouchmove 转换后只能停止回调函数的冒泡,不能阻止滚动穿透。如要阻止滚动穿透,可以手动给编译后的 View 组件加上 catchMove 属性')\n }\n e.stopPropagation()\n isFunction(fn) && fn(e)\n }\n\n // ================ React 生命周期 ================\n\n public componentWillMount () {\n this.safeExecute(super.componentWillMount)\n this.executeLifeCycles(this.willMounts, this.current.router || {})\n this.triggerObservers(this.data, BaseComponent.defaultProps)\n this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props)\n }\n\n public componentDidMount () {\n this.safeExecute(super.componentDidMount)\n this.executeLifeCycles(this.didMounts)\n }\n\n public componentWillUnmount () {\n this.eventDistoryList.forEach(fn => fn())\n this.safeExecute(super.componentWillUnmount)\n this.executeLifeCycles(this.willUnmounts)\n }\n\n public componentDidHide () {\n this.safeExecute(super.componentDidHide)\n this.executeLifeCycles(this.didHides)\n }\n\n public componentDidShow () {\n this.safeExecute(super.componentDidShow, this.current.router || {})\n this.executeLifeCycles(this.didShows, this.current.router || {})\n }\n\n public componentWillReceiveProps (nextProps: P) {\n this.triggerObservers(nextProps, this.props)\n this.triggerPropertiesObservers(this.props, nextProps)\n this.safeExecute(super.componentWillReceiveProps)\n }\n\n // ================ 小程序 App, Page, Component 实例属性与方法 ================\n\n get is () {\n return this.current.page.is\n }\n\n get id () {\n return this.current.page.id\n }\n\n get dataset () {\n return this.current.page.dataset\n }\n\n public setData = (obj: S, callback?: () => void) => {\n let oldState\n if (this.observers && Object.keys(Object.keys(this.observers))) {\n oldState = clone(this.state)\n }\n Object.keys(obj).forEach(key => {\n safeSet(this.state, key, obj[key])\n })\n this.setState(this.state, () => {\n this.triggerObservers(this.state, oldState)\n if (callback) {\n callback.call(this)\n }\n })\n }\n\n public triggerEvent = (eventName: string, detail, options) => {\n if (options) {\n report('triggerEvent 不支持事件选项。')\n }\n\n const props = this.props\n const dataset = {}\n for (const key in props) {\n if (!key.startsWith('data-')) continue\n dataset[key.replace(/^data-/, '')] = props[key]\n }\n\n const func = props[`on${eventName[0].toUpperCase()}${eventName.slice(1)}`]\n if (isFunction(func)) {\n func.call(this, {\n type: eventName,\n detail,\n target: {\n id: props.id || '',\n dataset\n },\n currentTarget: {\n id: props.id || '',\n dataset\n }\n })\n }\n }\n\n private componentMethodsProxy (method: string) {\n return (...args: any[]) => {\n const page = this.current.page\n if (page?.[method]) {\n return page[method](...args)\n } else {\n console.error(`page 下没有 ${method} 方法`)\n }\n }\n }\n\n public hasBehavior = this.componentMethodsProxy('hasBehavior')\n public createSelectorQuery = this.componentMethodsProxy('createSelectorQuery')\n public createIntersectionObserver = this.componentMethodsProxy('createIntersectionObserver')\n public createMediaQueryObserver = this.componentMethodsProxy('createMediaQueryObserver')\n public getRelationNodes = this.componentMethodsProxy('getRelationNodes')\n public getTabBar = this.componentMethodsProxy('getTabBar')\n public getPageId = this.componentMethodsProxy('getPageId')\n public animate = this.componentMethodsProxy('animate')\n public clearAnimation = this.componentMethodsProxy('clearAnimation')\n public setUpdatePerformanceListener = this.componentMethodsProxy('setUpdatePerformanceListener')\n\n public selectComponent () {\n report(unsupport.get('selectComponent'))\n }\n\n public selectAllComponents () {\n report(unsupport.get('selectAllComponents'))\n }\n\n public selectOwnerComponent () {\n report(unsupport.get('selectOwnerComponent'))\n }\n\n public groupSetData () {\n report(unsupport.get('groupSetData'))\n }\n }\n\n const props = weappConf.properties\n\n if (props) {\n for (const propKey in props) {\n const propValue = props[propKey]\n if (propValue != null && !isFunction(propValue)) {\n if (propValue.value !== undefined) { // 如果是 null 也赋值到 defaultProps\n BaseComponent.defaultProps = {\n [propKey]: propValue.value,\n ...BaseComponent.defaultProps\n }\n }\n }\n }\n }\n\n const staticOptions = ['externalClasses', 'relations', 'options']\n\n staticOptions.forEach(option => {\n const value = weappConf[option]\n if (value != null) {\n BaseComponent[option] = value\n }\n })\n\n return BaseComponent\n }\n}\n"],"names":["TaroLifeCycles","lifecycleMap","WillMount","DidMount","DidShow","DidHide","WillUnmount","lifecycles","Set","key","lifecycle","forEach","l","add","uniquePageLifecycle","appOptions","bind","fn","ctx","boundFn","a","arguments","length","apply","call","_length","isEqual","obj1","obj2","JSON","stringify","safeGet","obj","propsArg","defaultValue","props","prop","Array","isArray","slice","replace","split","Error","shift","undefined","safeSet","value","lastProp","pop","thisProp","report","msg","console","warn","unsupport","Map","flattenBehaviors","behavior","behaviorMap","subBehaviors","behaviors","subBehavior","Object","keys","has","advise","get","list","push","ARRAYTYPE","OBJECTTYPE","FUNCTIONTYPE","diff","current","pre","result","syncKeys","_diff","rootCurrentType","type","rootPreType","currentValue","item","index","path","setResult","preValue","currentType","preType","subKey","k","v","prototype","toString","json","clone","parse","x","objectKeys","hasOwnProperty","opts","cmp","space","join","cycles","replacer","f","node","b","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","out","i","indexOf","TypeError","sort","keyValue","splice","defineGetter","component","getter","defineProperty","enumerable","configurable","state","isFunction","o","withWeapp","weappConf","isApp","ConnectComponent","behaviorProperties","propertiesList","property","assign","propName","propValue","properties","BaseComponent","getCurrentInstance","create","func","args","callback","oldState","observers","setState","triggerObservers","eventName","detail","options","dataset","startsWith","toUpperCase","target","id","currentTarget","componentMethodsProxy","init","propKey","observer","_observeProps","name","entries","initLifeCycles","confKey","confValue","includes","taroGlobalData","initProps","method","cb","initLifeCycleListener","lifetimes","behaviorData","methods","dataObject","dataKey","valueType","preValueType","newVal","methodsObject","methodName","lifecycleName","page","onReady","called","didMounts","nextTick","lifecycleKey","cycleNames","didHides","didShows","willMounts","willUnmounts","router","eventCenter","on","eventDistoryList","off","funcs","safeExecute","prevProps","nextProps","nextProp","ob","prev","resultKeys","observerKey","test","map","trim","isModified","j","resultKey","endsWith","data","set","e","stopPropagation","executeLifeCycles","defaultProps","triggerPropertiesObservers","is","error","staticOptions","option"],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/lifecycle.ts","../src/utils.ts","../src/diff.js","../src/clone.js","../src/index.ts"],"sourcesContent":["interface LifecycleMap {\n [key: string]: string[]\n}\n\nexport enum TaroLifeCycles {\n WillMount = 'componentWillMount',\n DidMount = 'componentDidMount',\n DidShow = 'componentDidShow',\n DidHide = 'componentDidHide',\n WillUnmount = 'componentWillUnmount'\n}\n\nexport const lifecycleMap: LifecycleMap = {\n [TaroLifeCycles.WillMount]: ['created'],\n [TaroLifeCycles.DidMount]: ['attached'],\n [TaroLifeCycles.DidShow]: ['onShow'],\n [TaroLifeCycles.DidHide]: ['onHide'],\n [TaroLifeCycles.WillUnmount]: ['detached', 'onUnload']\n}\n\nexport const lifecycles = new Set<string>(['ready'])\n\nfor (const key in lifecycleMap) {\n const lifecycle = lifecycleMap[key]\n lifecycle.forEach(l => lifecycles.add(l))\n}\n\nexport const uniquePageLifecycle = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n]\n\nexport const appOptions = [\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onUnhandledRejection',\n 'onThemeChange'\n]\n","/**\n * Simple bind, faster than native\n */\nexport function bind (fn /*: Function */, ctx /*: Object */) /*: Function */ {\n if (!fn) return false\n\n function boundFn (a) {\n const l /*: number */ = arguments.length\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\n }\n\n // record original fn length\n boundFn._length = fn.length\n return boundFn\n}\n\nexport function isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function noop (..._: unknown[]) {\n //\n}\n\nconst sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n}\n\nexport function proxy (target, sourceKey: string, key: string) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n }\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val\n }\n Object.defineProperty(target, key, sharedPropertyDefinition)\n}\n\nexport function safeGet (obj, propsArg, defaultValue?) {\n if (!obj) {\n return defaultValue\n }\n let props, prop\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0)\n }\n if (typeof propsArg === 'string') {\n props = propsArg.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof propsArg === 'symbol') {\n props = [propsArg]\n }\n if (!Array.isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol')\n }\n while (props.length) {\n prop = props.shift()\n if (!obj) {\n return defaultValue\n }\n obj = obj[prop]\n if (obj === undefined) {\n return defaultValue\n }\n }\n return obj\n}\n\nexport function safeSet (obj, props, value) {\n if (typeof props === 'string') {\n props = props.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof props === 'symbol') {\n props = [props]\n }\n const lastProp = props.pop()\n if (!lastProp) {\n return false\n }\n let thisProp\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] === 'undefined') {\n obj[thisProp] = {}\n }\n\n // 直接按路径修改 this.state 可能会导致 nextProps 也被修改\n // 因此按路径寻找时,每一层都复制一遍\n if (Array.isArray(obj[thisProp])) {\n obj[thisProp] = [...obj[thisProp]]\n } else if (typeof obj[thisProp] === 'object') {\n obj[thisProp] = { ...obj[thisProp] }\n }\n\n obj = obj[thisProp]\n if (!obj || typeof obj !== 'object') {\n return false\n }\n }\n obj[lastProp] = value\n return true\n}\n\nexport function report (msg) {\n console.warn('[Taro Convert Warning] ' + msg)\n}\n\nexport const unsupport = new Map([\n ['onError', '不支持 App 的 onError 生命周期方法。'],\n ['onPageNotFound', '不支持 App 的 onPageNotFound 生命周期方法。'],\n ['onUnhandledRejection', '不支持 App 的 onUnhandledRejection 生命周期方法。'],\n ['onThemeChange', '不支持 App 的 onThemeChange 生命周期方法。'],\n ['moved', '不支持自定义组件的 moved 生命周期。'],\n ['externalClasses', '不支持自定义组件的 externalClasses 功能。'],\n ['relations', '不支持自定义组件的 relations 功能。'],\n ['options', '不支持自定义组件的 options 功能。'],\n ['definitionFilter', '不支持自定义组件的 definitionFilter 功能。'],\n ['selectComponent', 'selectComponent 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectAllComponents', 'selectAllComponents 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectOwnerComponent', 'selectOwnerComponent 方法产生不到目标效果,请使用 React 语法重构。'],\n ['groupSetData', 'groupSetData 方法产生不到目标效果,请使用 React 语法重构。']\n])\n\nexport function flattenBehaviors (behavior, behaviorMap: Map<string, any[]>) {\n if (typeof behavior === 'string') {\n return report(`不支持使用内置 Behavior: [${behavior}]`)\n }\n const subBehaviors = behavior.behaviors\n if (subBehaviors?.length) {\n subBehaviors.forEach(subBehavior => flattenBehaviors(subBehavior, behaviorMap))\n }\n\n Object.keys(behavior).forEach(key => {\n // 不支持的属性\n if (unsupport.has(key)) {\n const advise = unsupport.get(key)\n return report(advise)\n }\n\n if (behaviorMap.has(key)) {\n const list = behaviorMap.get(key)!\n const value = behavior[key]\n list.push(value)\n }\n })\n}\n","/*eslint-disable*/\nconst ARRAYTYPE = '[object Array]'\nconst OBJECTTYPE = '[object Object]'\nconst FUNCTIONTYPE = '[object Function]'\n\nexport function diff (current, pre) {\n const result = {}\n syncKeys(current, pre)\n _diff(current, pre, '', result)\n return result\n}\n\nfunction syncKeys (current, pre) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n // if(Object.keys(current).length >= Object.keys(pre).length){\n for (let key in pre) {\n const currentValue = current[key]\n if (currentValue === undefined) {\n current[key] = null\n } else {\n syncKeys(currentValue, pre[key])\n }\n }\n // }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item)\n })\n }\n }\n}\n\nfunction _diff (current, pre, path, result) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current)\n } else {\n for (let key in current) {\n const currentValue = current[key]\n const preValue = pre[key]\n const currentType = type(currentValue)\n const preType = type(preValue)\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n currentValue.forEach((item, index) => {\n _diff(item, preValue[index], (path == '' ? '' : path + '.') + key + '[' + index + ']', result)\n })\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n for (let subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + '.') + key + '.' + subKey, result)\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current)\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current)\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + '[' + index + ']', result)\n })\n }\n }\n } else {\n setResult(result, path, current)\n }\n}\n\nfunction setResult (result, k, v) {\n if (type(v) != FUNCTIONTYPE) {\n result[k] = v\n }\n}\n\nfunction type (obj) {\n return Object.prototype.toString.call(obj)\n}\n","const json = JSON\n\nexport const clone = (obj) => json.parse(stringify(obj))\n\nconst isArray = Array.isArray || function (x) {\n return {}.toString.call(x) === '[object Array]'\n}\n\nconst objectKeys = Object.keys || function (obj) {\n const has = Object.prototype.hasOwnProperty || function () { return true }\n const keys = []\n for (const key in obj) {\n if (has.call(obj, key)) keys.push(key)\n }\n return keys\n}\n\nfunction stringify (obj, opts) {\n if (!opts) opts = {}\n if (typeof opts === 'function') opts = { cmp: opts }\n let space = opts.space || ''\n if (typeof space === 'number') space = Array(space + 1).join(' ')\n const cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false\n const replacer = opts.replacer || function (key, value) { return value }\n\n const cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n const aobj = { key: a, value: node[a] }\n const bobj = { key: b, value: node[b] }\n return f(aobj, bobj)\n }\n }\n })(opts.cmp)\n\n const seen = []\n return (function stringify (parent, key, node, level) {\n const indent = space ? ('\\n' + new Array(level + 1).join(space)) : ''\n const colonSeparator = space ? ': ' : ':'\n\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON()\n }\n\n node = replacer.call(parent, key, node)\n\n if (node === undefined) {\n return\n }\n if (typeof node !== 'object' || node === null) {\n return json.stringify(node)\n }\n if (isArray(node)) {\n const out = []\n for (let i = 0; i < node.length; i++) {\n const item = stringify(node, i, node[i], level + 1) || json.stringify(null)\n out.push(indent + space + item)\n }\n return '[' + out.join(',') + indent + ']'\n } else {\n if (seen.indexOf(node) !== -1) {\n if (cycles) return json.stringify('__cycle__')\n throw new TypeError('Converting circular structure to JSON')\n } else seen.push(node)\n\n const keys = objectKeys(node).sort(cmp && cmp(node))\n const out = []\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const value = stringify(node, key, node[key], level + 1)\n\n if (!value) continue\n\n const keyValue = json.stringify(key) +\n colonSeparator +\n value\n\n out.push(indent + space + keyValue)\n }\n seen.splice(seen.indexOf(node), 1)\n return '{' + out.join(',') + indent + '}'\n }\n })({ '': obj }, '', obj, 0)\n}\n","import { Component, ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'\nimport { getCurrentInstance } from '@tarojs/runtime'\nimport { lifecycles, lifecycleMap, TaroLifeCycles, uniquePageLifecycle, appOptions } from './lifecycle'\nimport { bind, isEqual, safeGet, safeSet, report, unsupport, flattenBehaviors } from './utils'\nimport { diff } from './diff'\nimport { clone } from './clone'\n\ntype Observer = (newProps, oldProps, changePath: string) => void\ntype Func = (...args: any[]) => void\n\ninterface ObserverProperties {\n name: string,\n observer: string | Observer\n}\n\ninterface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {\n new (props: P): Component<P, S>\n externalClasses: Record<string, unknown>\n defaultProps?: Partial<P>\n _observeProps?: ObserverProperties[]\n observers?: Record<string, Func>\n}\n\ninterface WxOptions {\n methods?: {\n [key: string]: Func;\n }\n properties?: Record<string, Record<string, unknown> | Func>\n props?: Record<string, unknown>\n data?: Record<string, unknown>,\n observers?: Record<string, Func>\n lifetimes?: Record<string, Func>\n behaviors?: any[]\n}\n\nfunction defineGetter (component: Component, key: string, getter: string) {\n Object.defineProperty(component, key, {\n enumerable: true,\n configurable: true,\n get: () => {\n if (getter === 'props') {\n return component.props\n }\n return {\n ...component.state,\n ...component.props\n }\n }\n })\n}\n\nfunction isFunction (o): o is Func {\n return typeof o === 'function'\n}\n\nexport default function withWeapp (weappConf: WxOptions, isApp = false) {\n if (typeof weappConf === 'object' && Object.keys(weappConf).length === 0) {\n report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。')\n }\n return (ConnectComponent: ComponentClass<any, any>) => {\n const behaviorMap = new Map<string, any[]>([\n ['properties', []],\n ['data', []],\n ['methods', []],\n ['created', []],\n ['attached', []],\n ['ready', []],\n ['detached', []]\n ])\n const behaviorProperties = {}\n if (weappConf.behaviors?.length) {\n const { behaviors } = weappConf\n behaviors.forEach(behavior => flattenBehaviors(behavior, behaviorMap))\n\n const propertiesList = behaviorMap.get('properties')!\n if (propertiesList.length) {\n propertiesList.forEach(property => {\n Object.assign(behaviorProperties, property)\n })\n Object.keys(behaviorProperties).forEach(propName => {\n const propValue = behaviorProperties[propName]\n if (!weappConf.properties) {\n weappConf.properties = {}\n }\n if (!weappConf.properties.hasOwnProperty(propName)) {\n if (propValue && typeof propValue === 'object' && propValue.value) {\n propValue.value = clone(propValue.value)\n }\n weappConf.properties[propName] = propValue\n }\n })\n }\n }\n\n class BaseComponent<P = Record<string, any>, S = Record<string, any>> extends ConnectComponent {\n private _observeProps: ObserverProperties[] = []\n\n // mixins 可以多次调用生命周期\n private willMounts: Func[] = []\n\n private didMounts: Func[] = []\n\n private didHides: Func[] = []\n\n private didShows: Func[] = []\n\n private willUnmounts: Func[] = []\n\n private eventDistoryList: Func[] = []\n\n private current: any = getCurrentInstance()\n\n public observers?: Record<string, Func>\n\n public taroGlobalData: Record<any, any> = Object.create(null)\n\n public data: any\n\n constructor (props) {\n super(props)\n this.state = this.state || {}\n this.init(weappConf)\n defineGetter(this, 'data', 'state')\n defineGetter(this, 'properties', 'props')\n }\n\n private initProps (props: any) {\n for (const propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n const propValue = props[propKey]\n // propValue 可能是 null, 构造函数, 对象\n if (propValue && !isFunction(propValue)) {\n if (propValue.observer) {\n this._observeProps.push({\n name: propKey,\n observer: propValue.observer\n })\n }\n }\n }\n }\n }\n\n private init (options: WxOptions) {\n // 处理 Behaviors\n if (options.behaviors?.length) {\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'created':\n case 'attached':\n case 'detached':\n case 'ready':\n list.forEach(fn => this.initLifeCycles(key, fn))\n break\n }\n }\n }\n\n for (const confKey in options) {\n // 不支持的属性\n if (unsupport.has(confKey)) {\n const advise = unsupport.get(confKey)\n report(advise)\n }\n\n const confValue = options[confKey]\n\n switch (confKey) {\n case 'behaviors':\n break\n case 'data': {\n if (isApp) {\n this[confKey] = confValue\n if (!appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n } else {\n this.state = {\n ...confValue,\n ...this.state\n }\n }\n break\n }\n case 'properties':\n this.initProps(Object.assign(behaviorProperties, confValue))\n break\n case 'methods':\n for (const key in confValue) {\n const method = confValue[key]\n this[key] = bind(method, this)\n }\n break\n case 'lifetimes':\n for (const key in confValue) {\n this.initLifeCycles(key, confValue[key])\n }\n break\n case 'pageLifetimes':\n for (const key in confValue) {\n const cb = confValue[key]\n switch (key) {\n case 'show': {\n this.initLifeCycleListener('show', cb)\n break\n }\n case 'hide': {\n this.initLifeCycleListener('hide', cb)\n break\n }\n case 'resize': {\n report('不支持组件所在页面的生命周期 pageLifetimes.resize。')\n break\n }\n }\n }\n break\n default:\n if (lifecycles.has(confKey)) {\n // 优先使用 lifetimes 中定义的生命周期\n if (options.lifetimes?.[confKey]) {\n break\n }\n\n const lifecycle = options[confKey]\n this.initLifeCycles(confKey, lifecycle)\n } else if (isFunction(confValue)) {\n this[confKey] = bind(confValue, this)\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n\n // 原生页面和 Taro 页面中共计只能定义一次的生命周期\n if (uniquePageLifecycle.includes(confKey) && ConnectComponent.prototype[confKey]) {\n report(`生命周期 ${confKey} 已在原生部分进行定义,React 部分的定义将不会被执行。`)\n }\n } else {\n this[confKey] = confValue\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n }\n\n break\n }\n }\n\n // 处理 Behaviors\n if (options.behaviors?.length) {\n const behaviorData = {}\n const methods = {}\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'data':\n [...list, this.state].forEach((dataObject, index) => {\n Object.keys(dataObject).forEach(dataKey => {\n const value = dataObject[dataKey]\n const preValue = behaviorData[dataKey]\n const valueType = typeof value\n const preValueType = typeof preValue\n if (valueType === 'object') {\n if (!value) {\n behaviorData[dataKey] = value\n } else if (preValueType !== 'object' || !preValueType || Array.isArray(value)) {\n behaviorData[dataKey] = index === list.length ? value : clone(value)\n } else {\n const newVal = Object.assign({}, preValue, value)\n behaviorData[dataKey] = index === list.length ? newVal : clone(newVal)\n }\n } else {\n behaviorData[dataKey] = value\n }\n })\n })\n this.state = behaviorData\n break\n case 'methods':\n list.forEach(methodsObject => {\n Object.assign(methods, methodsObject)\n })\n Object.keys(methods).forEach(methodName => {\n if (!this[methodName]) {\n const method = methods[methodName]\n this[methodName] = bind(method, this)\n }\n })\n break\n default:\n break\n }\n }\n }\n }\n\n private initLifeCycles (lifecycleName: string, lifecycle: (...args: any[]) => any) {\n // 不支持的生命周期\n if (unsupport.has(lifecycleName)) {\n const advise = unsupport.get(lifecycleName)\n return report(advise)\n }\n\n if (lifecycleName === 'ready') {\n // 如果组件是延时渲染的,页面 onReady 的事件已经 emit 了,因此使用 componentDidMount + nextTick 模拟\n if (this.current.page.onReady.called) {\n this.didMounts.push(function (...args: unknown[]) {\n nextTick(() => {\n if (isFunction(lifecycle)) {\n lifecycle.apply(this, args)\n }\n })\n })\n } else {\n this.initLifeCycleListener('ready', lifecycle)\n }\n } else {\n for (const lifecycleKey in lifecycleMap) {\n const cycleNames = lifecycleMap[lifecycleKey]\n if (cycleNames.indexOf(lifecycleName) !== -1) {\n switch (lifecycleKey) {\n case TaroLifeCycles.DidHide:\n this.didHides.push(lifecycle)\n break\n case TaroLifeCycles.DidMount:\n this.didMounts.push(lifecycle)\n break\n case TaroLifeCycles.DidShow:\n this.didShows.push(lifecycle)\n break\n case TaroLifeCycles.WillMount:\n this.willMounts.push(lifecycle)\n break\n case TaroLifeCycles.WillUnmount:\n this.willUnmounts.push(lifecycle)\n break\n default:\n break\n }\n }\n }\n }\n\n // mixins 不会覆盖已经设置的生命周期,加入到 this 是为了形如 this.created() 的调用\n if (!isFunction(this[lifecycleName])) {\n this[lifecycleName] = lifecycle\n }\n }\n\n private safeExecute = (func?: Func, ...args: unknown[]) => {\n if (isFunction(func)) func.apply(this, args)\n }\n\n private initLifeCycleListener (name: string, cb: (...args: any[]) => void) {\n // 组件的 ready、show、hide 需要利用页面事件触发\n const { router } = this.current\n const lifecycleName = `on${name[0].toUpperCase()}${name.slice(1)}`\n cb = cb.bind(this)\n router?.[lifecycleName] && eventCenter.on(router[lifecycleName], cb)\n // unMount 时需要取消事件监听\n this.eventDistoryList.push(() => eventCenter.off(router[lifecycleName], cb))\n }\n\n private executeLifeCycles (funcs: Func[], ...args: unknown[]) {\n for (let i = 0; i < funcs.length; i++) {\n const func = funcs[i]\n this.safeExecute(func, ...args)\n }\n }\n\n private triggerPropertiesObservers (prevProps, nextProps) {\n this._observeProps.forEach(({ name: key, observer }) => {\n const prop = prevProps?.[key]\n const nextProp = nextProps[key]\n // 小程序是深比较不同之后才 trigger observer\n if (!isEqual(prop, nextProp)) {\n if (typeof observer === 'string') {\n const ob = this[observer]\n if (isFunction(ob)) {\n ob.call(this, nextProp, prop, key)\n }\n } else if (isFunction(observer)) {\n observer.call(this, nextProp, prop, key)\n }\n }\n })\n }\n\n private triggerObservers (current, prev) {\n const observers = this.observers\n if (observers == null) {\n return\n }\n\n if (Object.keys(observers).length === 0) {\n return\n }\n\n const result = diff(current, prev)\n const resultKeys = Object.keys(result)\n if (resultKeys.length === 0) {\n return\n }\n\n for (const observerKey in observers) {\n if (/\\*\\*/.test(observerKey)) {\n report('数据监听器 observers 不支持使用通配符 **。')\n continue\n }\n\n const keys = observerKey.split(',').map(k => k.trim())\n let isModified = false\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n for (let j = 0; j < resultKeys.length; j++) {\n const resultKey = resultKeys[j]\n if (\n resultKey.startsWith(key) ||\n (key.startsWith(resultKey) && key.endsWith(']'))\n ) {\n isModified = true\n }\n }\n }\n if (isModified) {\n observers[observerKey].apply(this, keys.map(key => safeGet(current, key)))\n }\n }\n }\n\n private defineProperty (target, key, data) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set (value) {\n data[key] = value\n },\n get () {\n return data[key]\n }\n })\n }\n\n public privateStopNoop (...args) {\n let e\n let fn\n if (args.length === 2) {\n fn = args[0]\n e = args[1]\n } else if (args.length === 1) {\n e = args[0]\n }\n if (e.type === 'touchmove') {\n report('catchtouchmove 转换后只能停止回调函数的冒泡,不能阻止滚动穿透。如要阻止滚动穿透,可以手动给编译后的 View 组件加上 catchMove 属性')\n }\n e.stopPropagation()\n isFunction(fn) && fn(e)\n }\n\n // ================ React 生命周期 ================\n\n public componentWillMount () {\n this.safeExecute(super.componentWillMount)\n this.executeLifeCycles(this.willMounts, this.current.router || {})\n this.triggerObservers(this.data, BaseComponent.defaultProps)\n this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props)\n }\n\n public componentDidMount () {\n this.safeExecute(super.componentDidMount)\n this.executeLifeCycles(this.didMounts)\n }\n\n public componentWillUnmount () {\n this.eventDistoryList.forEach(fn => fn())\n this.safeExecute(super.componentWillUnmount)\n this.executeLifeCycles(this.willUnmounts)\n }\n\n public componentDidHide () {\n this.safeExecute(super.componentDidHide)\n this.executeLifeCycles(this.didHides)\n }\n\n public componentDidShow () {\n this.safeExecute(super.componentDidShow, this.current.router || {})\n this.executeLifeCycles(this.didShows, this.current.router || {})\n }\n\n public componentWillReceiveProps (nextProps: P) {\n this.triggerObservers(nextProps, this.props)\n this.triggerPropertiesObservers(this.props, nextProps)\n this.safeExecute(super.componentWillReceiveProps)\n }\n\n // ================ 小程序 App, Page, Component 实例属性与方法 ================\n\n get is () {\n return this.current.page.is\n }\n\n get id () {\n return this.current.page.id\n }\n\n get dataset () {\n return this.current.page.dataset\n }\n\n public setData = (obj: S, callback?: () => void) => {\n let oldState\n if (this.observers && Object.keys(Object.keys(this.observers))) {\n oldState = clone(this.state)\n }\n Object.keys(obj).forEach(key => {\n safeSet(this.state, key, obj[key])\n })\n this.setState(this.state, () => {\n this.triggerObservers(this.state, oldState)\n if (callback) {\n callback.call(this)\n }\n })\n }\n\n public triggerEvent = (eventName: string, detail, options) => {\n if (options) {\n report('triggerEvent 不支持事件选项。')\n }\n\n const props = this.props\n const dataset = {}\n for (const key in props) {\n if (!key.startsWith('data-')) continue\n dataset[key.replace(/^data-/, '')] = props[key]\n }\n\n const func = props[`on${eventName[0].toUpperCase()}${eventName.slice(1)}`]\n if (isFunction(func)) {\n func.call(this, {\n type: eventName,\n detail,\n target: {\n id: props.id || '',\n dataset\n },\n currentTarget: {\n id: props.id || '',\n dataset\n }\n })\n }\n }\n\n private componentMethodsProxy (method: string) {\n return (...args: any[]) => {\n const page = this.current.page\n if (page?.[method]) {\n return page[method](...args)\n } else {\n console.error(`page 下没有 ${method} 方法`)\n }\n }\n }\n\n public hasBehavior = this.componentMethodsProxy('hasBehavior')\n public createSelectorQuery = this.componentMethodsProxy('createSelectorQuery')\n public createIntersectionObserver = this.componentMethodsProxy('createIntersectionObserver')\n public createMediaQueryObserver = this.componentMethodsProxy('createMediaQueryObserver')\n public getRelationNodes = this.componentMethodsProxy('getRelationNodes')\n public getTabBar = this.componentMethodsProxy('getTabBar')\n public getPageId = this.componentMethodsProxy('getPageId')\n public animate = this.componentMethodsProxy('animate')\n public clearAnimation = this.componentMethodsProxy('clearAnimation')\n public setUpdatePerformanceListener = this.componentMethodsProxy('setUpdatePerformanceListener')\n\n public selectComponent () {\n report(unsupport.get('selectComponent'))\n }\n\n public selectAllComponents () {\n report(unsupport.get('selectAllComponents'))\n }\n\n public selectOwnerComponent () {\n report(unsupport.get('selectOwnerComponent'))\n }\n\n public groupSetData () {\n report(unsupport.get('groupSetData'))\n }\n }\n\n const props = weappConf.properties\n\n if (props) {\n for (const propKey in props) {\n const propValue = props[propKey]\n if (propValue != null && !isFunction(propValue)) {\n if (propValue.value !== undefined) { // 如果是 null 也赋值到 defaultProps\n BaseComponent.defaultProps = {\n [propKey]: propValue.value,\n ...BaseComponent.defaultProps\n }\n }\n }\n }\n }\n\n const staticOptions = ['externalClasses', 'relations', 'options']\n\n staticOptions.forEach(option => {\n const value = weappConf[option]\n if (value != null) {\n BaseComponent[option] = value\n }\n })\n\n return BaseComponent\n }\n}\n"],"names":["TaroLifeCycles","lifecycleMap","WillMount","DidMount","DidShow","DidHide","WillUnmount","lifecycles","Set","key","lifecycle","forEach","l","add","uniquePageLifecycle","appOptions","bind","fn","ctx","boundFn","a","arguments","length","apply","call","_length","isEqual","obj1","obj2","JSON","stringify","safeGet","obj","propsArg","defaultValue","props","prop","Array","isArray","slice","replace","split","Error","shift","undefined","safeSet","value","lastProp","pop","thisProp","report","msg","console","warn","unsupport","Map","flattenBehaviors","behavior","behaviorMap","subBehaviors","behaviors","subBehavior","Object","keys","has","advise","get","list","push","ARRAYTYPE","OBJECTTYPE","FUNCTIONTYPE","diff","current","pre","result","syncKeys","_diff","rootCurrentType","type","rootPreType","currentValue","item","index","path","setResult","preValue","currentType","preType","subKey","k","v","prototype","toString","json","clone","parse","x","objectKeys","hasOwnProperty","opts","cmp","space","join","cycles","replacer","f","node","b","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","out","i","indexOf","TypeError","sort","keyValue","splice","defineGetter","component","getter","defineProperty","enumerable","configurable","state","isFunction","o","withWeapp","weappConf","isApp","ConnectComponent","behaviorProperties","propertiesList","property","assign","propName","propValue","properties","BaseComponent","getCurrentInstance","create","func","args","callback","oldState","observers","setState","triggerObservers","eventName","detail","options","dataset","startsWith","toUpperCase","target","id","currentTarget","componentMethodsProxy","init","propKey","observer","_observeProps","name","entries","initLifeCycles","confKey","confValue","includes","taroGlobalData","initProps","method","cb","initLifeCycleListener","lifetimes","behaviorData","methods","dataObject","dataKey","valueType","preValueType","newVal","methodsObject","methodName","lifecycleName","page","onReady","called","didMounts","nextTick","lifecycleKey","cycleNames","didHides","didShows","willMounts","willUnmounts","router","eventCenter","on","eventDistoryList","off","funcs","safeExecute","prevProps","nextProps","nextProp","ob","prev","resultKeys","observerKey","test","map","trim","isModified","j","resultKey","endsWith","data","set","e","stopPropagation","executeLifeCycles","defaultProps","triggerPropertiesObservers","is","error","staticOptions","option"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/lifecycle.ts","../src/utils.ts","../src/diff.js","../src/clone.js","../src/index.ts"],"sourcesContent":["interface LifecycleMap {\n [key: string]: string[]\n}\n\nexport enum TaroLifeCycles {\n WillMount = 'componentWillMount',\n DidMount = 'componentDidMount',\n DidShow = 'componentDidShow',\n DidHide = 'componentDidHide',\n WillUnmount = 'componentWillUnmount'\n}\n\nexport const lifecycleMap: LifecycleMap = {\n [TaroLifeCycles.WillMount]: ['created'],\n [TaroLifeCycles.DidMount]: ['attached'],\n [TaroLifeCycles.DidShow]: ['onShow'],\n [TaroLifeCycles.DidHide]: ['onHide'],\n [TaroLifeCycles.WillUnmount]: ['detached', 'onUnload']\n}\n\nexport const lifecycles = new Set<string>(['ready'])\n\nfor (const key in lifecycleMap) {\n const lifecycle = lifecycleMap[key]\n lifecycle.forEach(l => lifecycles.add(l))\n}\n\nexport const uniquePageLifecycle = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n]\n\nexport const appOptions = [\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onUnhandledRejection',\n 'onThemeChange'\n]\n","/**\n * Simple bind, faster than native\n */\nexport function bind (fn /*: Function */, ctx /*: Object */) /*: Function */ {\n if (!fn) return false\n\n function boundFn (a) {\n const l /*: number */ = arguments.length\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\n }\n\n // record original fn length\n boundFn._length = fn.length\n return boundFn\n}\n\nexport function isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function noop (..._: unknown[]) {\n //\n}\n\nconst sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n}\n\nexport function proxy (target, sourceKey: string, key: string) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n }\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val\n }\n Object.defineProperty(target, key, sharedPropertyDefinition)\n}\n\nexport function safeGet (obj, propsArg, defaultValue?) {\n if (!obj) {\n return defaultValue\n }\n let props, prop\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0)\n }\n if (typeof propsArg === 'string') {\n props = propsArg.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof propsArg === 'symbol') {\n props = [propsArg]\n }\n if (!Array.isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol')\n }\n while (props.length) {\n prop = props.shift()\n if (!obj) {\n return defaultValue\n }\n obj = obj[prop]\n if (obj === undefined) {\n return defaultValue\n }\n }\n return obj\n}\n\nexport function safeSet (obj, props, value) {\n if (typeof props === 'string') {\n props = props.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof props === 'symbol') {\n props = [props]\n }\n const lastProp = props.pop()\n if (!lastProp) {\n return false\n }\n let thisProp\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] === 'undefined') {\n obj[thisProp] = {}\n }\n\n // 直接按路径修改 this.state 可能会导致 nextProps 也被修改\n // 因此按路径寻找时,每一层都复制一遍\n if (Array.isArray(obj[thisProp])) {\n obj[thisProp] = [...obj[thisProp]]\n } else if (typeof obj[thisProp] === 'object') {\n obj[thisProp] = { ...obj[thisProp] }\n }\n\n obj = obj[thisProp]\n if (!obj || typeof obj !== 'object') {\n return false\n }\n }\n obj[lastProp] = value\n return true\n}\n\nexport function report (msg) {\n console.warn('[Taro Convert Warning] ' + msg)\n}\n\nexport const unsupport = new Map([\n ['onError', '不支持 App 的 onError 生命周期方法。'],\n ['onPageNotFound', '不支持 App 的 onPageNotFound 生命周期方法。'],\n ['onUnhandledRejection', '不支持 App 的 onUnhandledRejection 生命周期方法。'],\n ['onThemeChange', '不支持 App 的 onThemeChange 生命周期方法。'],\n ['moved', '不支持自定义组件的 moved 生命周期。'],\n ['externalClasses', '不支持自定义组件的 externalClasses 功能。'],\n ['relations', '不支持自定义组件的 relations 功能。'],\n ['options', '不支持自定义组件的 options 功能。'],\n ['definitionFilter', '不支持自定义组件的 definitionFilter 功能。'],\n ['selectComponent', 'selectComponent 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectAllComponents', 'selectAllComponents 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectOwnerComponent', 'selectOwnerComponent 方法产生不到目标效果,请使用 React 语法重构。'],\n ['groupSetData', 'groupSetData 方法产生不到目标效果,请使用 React 语法重构。']\n])\n\nexport function flattenBehaviors (behavior, behaviorMap: Map<string, any[]>) {\n if (typeof behavior === 'string') {\n return report(`不支持使用内置 Behavior: [${behavior}]`)\n }\n const subBehaviors = behavior.behaviors\n if (subBehaviors?.length) {\n subBehaviors.forEach(subBehavior => flattenBehaviors(subBehavior, behaviorMap))\n }\n\n Object.keys(behavior).forEach(key => {\n // 不支持的属性\n if (unsupport.has(key)) {\n const advise = unsupport.get(key)\n return report(advise)\n }\n\n if (behaviorMap.has(key)) {\n const list = behaviorMap.get(key)!\n const value = behavior[key]\n list.push(value)\n }\n })\n}\n","/*eslint-disable*/\nconst ARRAYTYPE = '[object Array]'\nconst OBJECTTYPE = '[object Object]'\nconst FUNCTIONTYPE = '[object Function]'\n\nexport function diff (current, pre) {\n const result = {}\n syncKeys(current, pre)\n _diff(current, pre, '', result)\n return result\n}\n\nfunction syncKeys (current, pre) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n // if(Object.keys(current).length >= Object.keys(pre).length){\n for (let key in pre) {\n const currentValue = current[key]\n if (currentValue === undefined) {\n current[key] = null\n } else {\n syncKeys(currentValue, pre[key])\n }\n }\n // }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item)\n })\n }\n }\n}\n\nfunction _diff (current, pre, path, result) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current)\n } else {\n for (let key in current) {\n const currentValue = current[key]\n const preValue = pre[key]\n const currentType = type(currentValue)\n const preType = type(preValue)\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n currentValue.forEach((item, index) => {\n _diff(item, preValue[index], (path == '' ? '' : path + '.') + key + '[' + index + ']', result)\n })\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n for (let subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + '.') + key + '.' + subKey, result)\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current)\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current)\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + '[' + index + ']', result)\n })\n }\n }\n } else {\n setResult(result, path, current)\n }\n}\n\nfunction setResult (result, k, v) {\n if (type(v) != FUNCTIONTYPE) {\n result[k] = v\n }\n}\n\nfunction type (obj) {\n return Object.prototype.toString.call(obj)\n}\n","const json = JSON\n\nexport const clone = (obj) => json.parse(stringify(obj))\n\nconst isArray = Array.isArray || function (x) {\n return {}.toString.call(x) === '[object Array]'\n}\n\nconst objectKeys = Object.keys || function (obj) {\n const has = Object.prototype.hasOwnProperty || function () { return true }\n const keys = []\n for (const key in obj) {\n if (has.call(obj, key)) keys.push(key)\n }\n return keys\n}\n\nfunction stringify (obj, opts) {\n if (!opts) opts = {}\n if (typeof opts === 'function') opts = { cmp: opts }\n let space = opts.space || ''\n if (typeof space === 'number') space = Array(space + 1).join(' ')\n const cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false\n const replacer = opts.replacer || function (key, value) { return value }\n\n const cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n const aobj = { key: a, value: node[a] }\n const bobj = { key: b, value: node[b] }\n return f(aobj, bobj)\n }\n }\n })(opts.cmp)\n\n const seen = []\n return (function stringify (parent, key, node, level) {\n const indent = space ? ('\\n' + new Array(level + 1).join(space)) : ''\n const colonSeparator = space ? ': ' : ':'\n\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON()\n }\n\n node = replacer.call(parent, key, node)\n\n if (node === undefined) {\n return\n }\n if (typeof node !== 'object' || node === null) {\n return json.stringify(node)\n }\n if (isArray(node)) {\n const out = []\n for (let i = 0; i < node.length; i++) {\n const item = stringify(node, i, node[i], level + 1) || json.stringify(null)\n out.push(indent + space + item)\n }\n return '[' + out.join(',') + indent + ']'\n } else {\n if (seen.indexOf(node) !== -1) {\n if (cycles) return json.stringify('__cycle__')\n throw new TypeError('Converting circular structure to JSON')\n } else seen.push(node)\n\n const keys = objectKeys(node).sort(cmp && cmp(node))\n const out = []\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const value = stringify(node, key, node[key], level + 1)\n\n if (!value) continue\n\n const keyValue = json.stringify(key) +\n colonSeparator +\n value\n\n out.push(indent + space + keyValue)\n }\n seen.splice(seen.indexOf(node), 1)\n return '{' + out.join(',') + indent + '}'\n }\n })({ '': obj }, '', obj, 0)\n}\n","import { ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'\nimport { getCurrentInstance } from '@tarojs/runtime'\nimport { lifecycles, lifecycleMap, TaroLifeCycles, uniquePageLifecycle, appOptions } from './lifecycle'\nimport { bind, isEqual, safeGet, safeSet, report, unsupport, flattenBehaviors } from './utils'\nimport { diff } from './diff'\nimport { clone } from './clone'\n\ntype Observer = (newProps, oldProps, changePath: string) => void\ntype Func = (...args: any[]) => void\n\ninterface ObserverProperties {\n name: string,\n observer: string | Observer\n}\n\ninterface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {\n new (props: P)\n externalClasses: Record<string, unknown>\n defaultProps?: Partial<P>\n _observeProps?: ObserverProperties[]\n observers?: Record<string, Func>\n}\n\ninterface WxOptions {\n methods?: {\n [key: string]: Func;\n }\n properties?: Record<string, Record<string, unknown> | Func>\n props?: Record<string, unknown>\n data?: Record<string, unknown>,\n observers?: Record<string, Func>\n lifetimes?: Record<string, Func>\n behaviors?: any[]\n}\n\nfunction defineGetter (component, key: string, getter: string) {\n Object.defineProperty(component, key, {\n enumerable: true,\n configurable: true,\n get: () => {\n if (getter === 'props') {\n return component.props\n }\n return {\n ...component.state,\n ...component.props\n }\n }\n })\n}\n\nfunction isFunction (o): o is Func {\n return typeof o === 'function'\n}\n\nexport default function withWeapp (weappConf: WxOptions, isApp = false) {\n if (typeof weappConf === 'object' && Object.keys(weappConf).length === 0) {\n report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。')\n }\n return (ConnectComponent: ComponentClass<any, any>) => {\n const behaviorMap = new Map<string, any[]>([\n ['properties', []],\n ['data', []],\n ['methods', []],\n ['created', []],\n ['attached', []],\n ['ready', []],\n ['detached', []]\n ])\n const behaviorProperties = {}\n if (weappConf.behaviors?.length) {\n const { behaviors } = weappConf\n behaviors.forEach(behavior => flattenBehaviors(behavior, behaviorMap))\n\n const propertiesList = behaviorMap.get('properties')!\n if (propertiesList.length) {\n propertiesList.forEach(property => {\n Object.assign(behaviorProperties, property)\n })\n Object.keys(behaviorProperties).forEach(propName => {\n const propValue = behaviorProperties[propName]\n if (!weappConf.properties) {\n weappConf.properties = {}\n }\n if (!weappConf.properties.hasOwnProperty(propName)) {\n if (propValue && typeof propValue === 'object' && propValue.value) {\n propValue.value = clone(propValue.value)\n }\n weappConf.properties[propName] = propValue\n }\n })\n }\n }\n\n class BaseComponent<P = Record<string, any>, S = Record<string, any>> extends ConnectComponent {\n private _observeProps: ObserverProperties[] = []\n\n // mixins 可以多次调用生命周期\n private willMounts: Func[] = []\n\n private didMounts: Func[] = []\n\n private didHides: Func[] = []\n\n private didShows: Func[] = []\n\n private willUnmounts: Func[] = []\n\n private eventDistoryList: Func[] = []\n\n private current: any = getCurrentInstance()\n\n public observers?: Record<string, Func>\n\n public taroGlobalData: Record<any, any> = Object.create(null)\n\n public data: any\n\n constructor (props) {\n super(props)\n this.state = this.state || {}\n this.init(weappConf)\n defineGetter(this, 'data', 'state')\n defineGetter(this, 'properties', 'props')\n }\n\n private initProps (props: any) {\n for (const propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n const propValue = props[propKey]\n // propValue 可能是 null, 构造函数, 对象\n if (propValue && !isFunction(propValue)) {\n if (propValue.observer) {\n this._observeProps.push({\n name: propKey,\n observer: propValue.observer\n })\n }\n }\n }\n }\n }\n\n private init (options: WxOptions) {\n // 处理 Behaviors\n if (options.behaviors?.length) {\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'created':\n case 'attached':\n case 'detached':\n case 'ready':\n list.forEach(fn => this.initLifeCycles(key, fn))\n break\n }\n }\n }\n\n for (const confKey in options) {\n // 不支持的属性\n if (unsupport.has(confKey)) {\n const advise = unsupport.get(confKey)\n report(advise)\n }\n\n const confValue = options[confKey]\n\n switch (confKey) {\n case 'behaviors':\n break\n case 'data': {\n if (isApp) {\n this[confKey] = confValue\n if (!appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n } else {\n this.state = {\n ...confValue,\n ...this.state\n }\n }\n break\n }\n case 'properties':\n this.initProps(Object.assign(behaviorProperties, confValue))\n break\n case 'methods':\n for (const key in confValue) {\n const method = confValue[key]\n this[key] = bind(method, this)\n }\n break\n case 'lifetimes':\n for (const key in confValue) {\n this.initLifeCycles(key, confValue[key])\n }\n break\n case 'pageLifetimes':\n for (const key in confValue) {\n const cb = confValue[key]\n switch (key) {\n case 'show': {\n this.initLifeCycleListener('show', cb)\n break\n }\n case 'hide': {\n this.initLifeCycleListener('hide', cb)\n break\n }\n case 'resize': {\n report('不支持组件所在页面的生命周期 pageLifetimes.resize。')\n break\n }\n }\n }\n break\n default:\n if (lifecycles.has(confKey)) {\n // 优先使用 lifetimes 中定义的生命周期\n if (options.lifetimes?.[confKey]) {\n break\n }\n\n const lifecycle = options[confKey]\n this.initLifeCycles(confKey, lifecycle)\n } else if (isFunction(confValue)) {\n this[confKey] = bind(confValue, this)\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n\n // 原生页面和 Taro 页面中共计只能定义一次的生命周期\n if (uniquePageLifecycle.includes(confKey) && ConnectComponent.prototype[confKey]) {\n report(`生命周期 ${confKey} 已在原生部分进行定义,React 部分的定义将不会被执行。`)\n }\n } else {\n this[confKey] = confValue\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n }\n\n break\n }\n }\n\n // 处理 Behaviors\n if (options.behaviors?.length) {\n const behaviorData = {}\n const methods = {}\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'data':\n [...list, this.state].forEach((dataObject, index) => {\n Object.keys(dataObject).forEach(dataKey => {\n const value = dataObject[dataKey]\n const preValue = behaviorData[dataKey]\n const valueType = typeof value\n const preValueType = typeof preValue\n if (valueType === 'object') {\n if (!value) {\n behaviorData[dataKey] = value\n } else if (preValueType !== 'object' || !preValueType || Array.isArray(value)) {\n behaviorData[dataKey] = index === list.length ? value : clone(value)\n } else {\n const newVal = Object.assign({}, preValue, value)\n behaviorData[dataKey] = index === list.length ? newVal : clone(newVal)\n }\n } else {\n behaviorData[dataKey] = value\n }\n })\n })\n this.state = behaviorData\n break\n case 'methods':\n list.forEach(methodsObject => {\n Object.assign(methods, methodsObject)\n })\n Object.keys(methods).forEach(methodName => {\n if (!this[methodName]) {\n const method = methods[methodName]\n this[methodName] = bind(method, this)\n }\n })\n break\n default:\n break\n }\n }\n }\n }\n\n private initLifeCycles (lifecycleName: string, lifecycle: (...args: any[]) => any) {\n // 不支持的生命周期\n if (unsupport.has(lifecycleName)) {\n const advise = unsupport.get(lifecycleName)\n return report(advise)\n }\n\n if (lifecycleName === 'ready') {\n // 如果组件是延时渲染的,页面 onReady 的事件已经 emit 了,因此使用 componentDidMount + nextTick 模拟\n if (this.current.page.onReady.called) {\n this.didMounts.push(function (...args: unknown[]) {\n nextTick(() => {\n if (isFunction(lifecycle)) {\n lifecycle.apply(this, args)\n }\n })\n })\n } else {\n this.initLifeCycleListener('ready', lifecycle)\n }\n } else {\n for (const lifecycleKey in lifecycleMap) {\n const cycleNames = lifecycleMap[lifecycleKey]\n if (cycleNames.indexOf(lifecycleName) !== -1) {\n switch (lifecycleKey) {\n case TaroLifeCycles.DidHide:\n this.didHides.push(lifecycle)\n break\n case TaroLifeCycles.DidMount:\n this.didMounts.push(lifecycle)\n break\n case TaroLifeCycles.DidShow:\n this.didShows.push(lifecycle)\n break\n case TaroLifeCycles.WillMount:\n this.willMounts.push(lifecycle)\n break\n case TaroLifeCycles.WillUnmount:\n this.willUnmounts.push(lifecycle)\n break\n default:\n break\n }\n }\n }\n }\n\n // mixins 不会覆盖已经设置的生命周期,加入到 this 是为了形如 this.created() 的调用\n if (!isFunction(this[lifecycleName])) {\n this[lifecycleName] = lifecycle\n }\n }\n\n private safeExecute = (func?: Func, ...args: unknown[]) => {\n if (isFunction(func)) func.apply(this, args)\n }\n\n private initLifeCycleListener (name: string, cb: (...args: any[]) => void) {\n // 组件的 ready、show、hide 需要利用页面事件触发\n const { router } = this.current\n const lifecycleName = `on${name[0].toUpperCase()}${name.slice(1)}`\n cb = cb.bind(this)\n router?.[lifecycleName] && eventCenter.on(router[lifecycleName], cb)\n // unMount 时需要取消事件监听\n this.eventDistoryList.push(() => eventCenter.off(router[lifecycleName], cb))\n }\n\n private executeLifeCycles (funcs: Func[], ...args: unknown[]) {\n for (let i = 0; i < funcs.length; i++) {\n const func = funcs[i]\n this.safeExecute(func, ...args)\n }\n }\n\n private triggerPropertiesObservers (prevProps, nextProps) {\n this._observeProps.forEach(({ name: key, observer }) => {\n const prop = prevProps?.[key]\n const nextProp = nextProps[key]\n // 小程序是深比较不同之后才 trigger observer\n if (!isEqual(prop, nextProp)) {\n if (typeof observer === 'string') {\n const ob = this[observer]\n if (isFunction(ob)) {\n ob.call(this, nextProp, prop, key)\n }\n } else if (isFunction(observer)) {\n observer.call(this, nextProp, prop, key)\n }\n }\n })\n }\n\n private triggerObservers (current, prev) {\n const observers = this.observers\n if (observers == null) {\n return\n }\n\n if (Object.keys(observers).length === 0) {\n return\n }\n\n const result = diff(current, prev)\n const resultKeys = Object.keys(result)\n if (resultKeys.length === 0) {\n return\n }\n\n for (const observerKey in observers) {\n if (/\\*\\*/.test(observerKey)) {\n report('数据监听器 observers 不支持使用通配符 **。')\n continue\n }\n\n const keys = observerKey.split(',').map(k => k.trim())\n let isModified = false\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n for (let j = 0; j < resultKeys.length; j++) {\n const resultKey = resultKeys[j]\n if (\n resultKey.startsWith(key) ||\n (key.startsWith(resultKey) && key.endsWith(']'))\n ) {\n isModified = true\n }\n }\n }\n if (isModified) {\n observers[observerKey].apply(this, keys.map(key => safeGet(current, key)))\n }\n }\n }\n\n private defineProperty (target, key, data) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set (value) {\n data[key] = value\n },\n get () {\n return data[key]\n }\n })\n }\n\n public privateStopNoop (...args) {\n let e\n let fn\n if (args.length === 2) {\n fn = args[0]\n e = args[1]\n } else if (args.length === 1) {\n e = args[0]\n }\n if (e.type === 'touchmove') {\n report('catchtouchmove 转换后只能停止回调函数的冒泡,不能阻止滚动穿透。如要阻止滚动穿透,可以手动给编译后的 View 组件加上 catchMove 属性')\n }\n e.stopPropagation()\n isFunction(fn) && fn(e)\n }\n\n // ================ React 生命周期 ================\n\n public componentWillMount () {\n this.safeExecute(super.componentWillMount)\n this.executeLifeCycles(this.willMounts, this.current.router || {})\n this.triggerObservers(this.data, BaseComponent.defaultProps)\n this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props)\n }\n\n public componentDidMount () {\n this.safeExecute(super.componentDidMount)\n this.executeLifeCycles(this.didMounts)\n }\n\n public componentWillUnmount () {\n this.eventDistoryList.forEach(fn => fn())\n this.safeExecute(super.componentWillUnmount)\n this.executeLifeCycles(this.willUnmounts)\n }\n\n public componentDidHide () {\n this.safeExecute(super.componentDidHide)\n this.executeLifeCycles(this.didHides)\n }\n\n public componentDidShow () {\n this.safeExecute(super.componentDidShow, this.current.router || {})\n this.executeLifeCycles(this.didShows, this.current.router || {})\n }\n\n public componentWillReceiveProps (nextProps: P) {\n this.triggerObservers(nextProps, this.props)\n this.triggerPropertiesObservers(this.props, nextProps)\n this.safeExecute(super.componentWillReceiveProps)\n }\n\n // ================ 小程序 App, Page, Component 实例属性与方法 ================\n\n get is () {\n return this.current.page.is\n }\n\n get id () {\n return this.current.page.id\n }\n\n get dataset () {\n return this.current.page.dataset\n }\n\n public setData = (obj: S, callback?: () => void) => {\n let oldState\n if (this.observers && Object.keys(Object.keys(this.observers))) {\n oldState = clone(this.state)\n }\n Object.keys(obj).forEach(key => {\n safeSet(this.state, key, obj[key])\n })\n this.setState(this.state, () => {\n this.triggerObservers(this.state, oldState)\n if (callback) {\n callback.call(this)\n }\n })\n }\n\n public triggerEvent = (eventName: string, detail, options) => {\n if (options) {\n report('triggerEvent 不支持事件选项。')\n }\n\n const props = this.props\n const dataset = {}\n for (const key in props) {\n if (!key.startsWith('data-')) continue\n dataset[key.replace(/^data-/, '')] = props[key]\n }\n\n const func = props[`on${eventName[0].toUpperCase()}${eventName.slice(1)}`]\n if (isFunction(func)) {\n func.call(this, {\n type: eventName,\n detail,\n target: {\n id: props.id || '',\n dataset\n },\n currentTarget: {\n id: props.id || '',\n dataset\n }\n })\n }\n }\n\n private componentMethodsProxy (method: string) {\n return (...args: any[]) => {\n const page = this.current.page\n if (page?.[method]) {\n return page[method](...args)\n } else {\n console.error(`page 下没有 ${method} 方法`)\n }\n }\n }\n\n public hasBehavior = this.componentMethodsProxy('hasBehavior')\n public createSelectorQuery = this.componentMethodsProxy('createSelectorQuery')\n public createIntersectionObserver = this.componentMethodsProxy('createIntersectionObserver')\n public createMediaQueryObserver = this.componentMethodsProxy('createMediaQueryObserver')\n public getRelationNodes = this.componentMethodsProxy('getRelationNodes')\n public getTabBar = this.componentMethodsProxy('getTabBar')\n public getPageId = this.componentMethodsProxy('getPageId')\n public animate = this.componentMethodsProxy('animate')\n public clearAnimation = this.componentMethodsProxy('clearAnimation')\n public setUpdatePerformanceListener = this.componentMethodsProxy('setUpdatePerformanceListener')\n\n public selectComponent () {\n report(unsupport.get('selectComponent'))\n }\n\n public selectAllComponents () {\n report(unsupport.get('selectAllComponents'))\n }\n\n public selectOwnerComponent () {\n report(unsupport.get('selectOwnerComponent'))\n }\n\n public groupSetData () {\n report(unsupport.get('groupSetData'))\n }\n }\n\n const props = weappConf.properties\n\n if (props) {\n for (const propKey in props) {\n const propValue = props[propKey]\n if (propValue != null && !isFunction(propValue)) {\n if (propValue.value !== undefined) { // 如果是 null 也赋值到 defaultProps\n BaseComponent.defaultProps = {\n [propKey]: propValue.value,\n ...BaseComponent.defaultProps\n }\n }\n }\n }\n }\n\n const staticOptions = ['externalClasses', 'relations', 'options']\n\n staticOptions.forEach(option => {\n const value = weappConf[option]\n if (value != null) {\n BaseComponent[option] = value\n }\n })\n\n return BaseComponent\n }\n}\n"],"names":["TaroLifeCycles","lifecycleMap","WillMount","DidMount","DidShow","DidHide","WillUnmount","lifecycles","Set","key","lifecycle","forEach","l","add","uniquePageLifecycle","appOptions","bind","fn","ctx","boundFn","a","arguments","length","apply","call","_length","isEqual","obj1","obj2","JSON","stringify","safeGet","obj","propsArg","defaultValue","props","prop","Array","isArray","slice","replace","split","Error","shift","undefined","safeSet","value","lastProp","pop","thisProp","report","msg","console","warn","unsupport","Map","flattenBehaviors","behavior","behaviorMap","subBehaviors","behaviors","subBehavior","Object","keys","has","advise","get","list","push","ARRAYTYPE","OBJECTTYPE","FUNCTIONTYPE","diff","current","pre","result","syncKeys","_diff","rootCurrentType","type","rootPreType","currentValue","item","index","path","setResult","preValue","currentType","preType","subKey","k","v","prototype","toString","json","clone","parse","x","objectKeys","hasOwnProperty","opts","cmp","space","join","cycles","replacer","f","node","b","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","out","i","indexOf","TypeError","sort","keyValue","splice","defineGetter","component","getter","defineProperty","enumerable","configurable","state","isFunction","o","withWeapp","weappConf","isApp","ConnectComponent","behaviorProperties","propertiesList","property","assign","propName","propValue","properties","BaseComponent","getCurrentInstance","create","func","args","callback","oldState","observers","setState","triggerObservers","eventName","detail","options","dataset","startsWith","toUpperCase","target","id","currentTarget","componentMethodsProxy","init","propKey","observer","_observeProps","name","entries","initLifeCycles","confKey","confValue","includes","taroGlobalData","initProps","method","cb","initLifeCycleListener","lifetimes","behaviorData","methods","dataObject","dataKey","valueType","preValueType","newVal","methodsObject","methodName","lifecycleName","page","onReady","called","didMounts","nextTick","lifecycleKey","cycleNames","didHides","didShows","willMounts","willUnmounts","router","eventCenter","on","eventDistoryList","off","funcs","safeExecute","prevProps","nextProps","nextProp","ob","prev","resultKeys","observerKey","test","map","trim","isModified","j","resultKey","endsWith","data","set","e","stopPropagation","executeLifeCycles","defaultProps","triggerPropertiesObservers","is","error","staticOptions","option"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"with-weapp.js","sources":["../src/lifecycle.ts","../src/utils.ts","../src/diff.js","../src/clone.js","../src/index.ts"],"sourcesContent":["interface LifecycleMap {\n [key: string]: string[]\n}\n\nexport enum TaroLifeCycles {\n WillMount = 'componentWillMount',\n DidMount = 'componentDidMount',\n DidShow = 'componentDidShow',\n DidHide = 'componentDidHide',\n WillUnmount = 'componentWillUnmount'\n}\n\nexport const lifecycleMap: LifecycleMap = {\n [TaroLifeCycles.WillMount]: ['created'],\n [TaroLifeCycles.DidMount]: ['attached'],\n [TaroLifeCycles.DidShow]: ['onShow'],\n [TaroLifeCycles.DidHide]: ['onHide'],\n [TaroLifeCycles.WillUnmount]: ['detached', 'onUnload']\n}\n\nexport const lifecycles = new Set<string>(['ready'])\n\nfor (const key in lifecycleMap) {\n const lifecycle = lifecycleMap[key]\n lifecycle.forEach(l => lifecycles.add(l))\n}\n\nexport const uniquePageLifecycle = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n]\n\nexport const appOptions = [\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onUnhandledRejection',\n 'onThemeChange'\n]\n","/**\n * Simple bind, faster than native\n */\nexport function bind (fn /*: Function */, ctx /*: Object */) /*: Function */ {\n if (!fn) return false\n\n function boundFn (a) {\n const l /*: number */ = arguments.length\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\n }\n\n // record original fn length\n boundFn._length = fn.length\n return boundFn\n}\n\nexport function isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function noop (..._: unknown[]) {\n //\n}\n\nconst sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n}\n\nexport function proxy (target, sourceKey: string, key: string) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n }\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val\n }\n Object.defineProperty(target, key, sharedPropertyDefinition)\n}\n\nexport function safeGet (obj, propsArg, defaultValue?) {\n if (!obj) {\n return defaultValue\n }\n let props, prop\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0)\n }\n if (typeof propsArg === 'string') {\n props = propsArg.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof propsArg === 'symbol') {\n props = [propsArg]\n }\n if (!Array.isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol')\n }\n while (props.length) {\n prop = props.shift()\n if (!obj) {\n return defaultValue\n }\n obj = obj[prop]\n if (obj === undefined) {\n return defaultValue\n }\n }\n return obj\n}\n\nexport function safeSet (obj, props, value) {\n if (typeof props === 'string') {\n props = props.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof props === 'symbol') {\n props = [props]\n }\n const lastProp = props.pop()\n if (!lastProp) {\n return false\n }\n let thisProp\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] === 'undefined') {\n obj[thisProp] = {}\n }\n\n // 直接按路径修改 this.state 可能会导致 nextProps 也被修改\n // 因此按路径寻找时,每一层都复制一遍\n if (Array.isArray(obj[thisProp])) {\n obj[thisProp] = [...obj[thisProp]]\n } else if (typeof obj[thisProp] === 'object') {\n obj[thisProp] = { ...obj[thisProp] }\n }\n\n obj = obj[thisProp]\n if (!obj || typeof obj !== 'object') {\n return false\n }\n }\n obj[lastProp] = value\n return true\n}\n\nexport function report (msg) {\n console.warn('[Taro Convert Warning] ' + msg)\n}\n\nexport const unsupport = new Map([\n ['onError', '不支持 App 的 onError 生命周期方法。'],\n ['onPageNotFound', '不支持 App 的 onPageNotFound 生命周期方法。'],\n ['onUnhandledRejection', '不支持 App 的 onUnhandledRejection 生命周期方法。'],\n ['onThemeChange', '不支持 App 的 onThemeChange 生命周期方法。'],\n ['moved', '不支持自定义组件的 moved 生命周期。'],\n ['externalClasses', '不支持自定义组件的 externalClasses 功能。'],\n ['relations', '不支持自定义组件的 relations 功能。'],\n ['options', '不支持自定义组件的 options 功能。'],\n ['definitionFilter', '不支持自定义组件的 definitionFilter 功能。'],\n ['selectComponent', 'selectComponent 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectAllComponents', 'selectAllComponents 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectOwnerComponent', 'selectOwnerComponent 方法产生不到目标效果,请使用 React 语法重构。'],\n ['groupSetData', 'groupSetData 方法产生不到目标效果,请使用 React 语法重构。']\n])\n\nexport function flattenBehaviors (behavior, behaviorMap: Map<string, any[]>) {\n if (typeof behavior === 'string') {\n return report(`不支持使用内置 Behavior: [${behavior}]`)\n }\n const subBehaviors = behavior.behaviors\n if (subBehaviors?.length) {\n subBehaviors.forEach(subBehavior => flattenBehaviors(subBehavior, behaviorMap))\n }\n\n Object.keys(behavior).forEach(key => {\n // 不支持的属性\n if (unsupport.has(key)) {\n const advise = unsupport.get(key)\n return report(advise)\n }\n\n if (behaviorMap.has(key)) {\n const list = behaviorMap.get(key)!\n const value = behavior[key]\n list.push(value)\n }\n })\n}\n","/*eslint-disable*/\nconst ARRAYTYPE = '[object Array]'\nconst OBJECTTYPE = '[object Object]'\nconst FUNCTIONTYPE = '[object Function]'\n\nexport function diff (current, pre) {\n const result = {}\n syncKeys(current, pre)\n _diff(current, pre, '', result)\n return result\n}\n\nfunction syncKeys (current, pre) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n // if(Object.keys(current).length >= Object.keys(pre).length){\n for (let key in pre) {\n const currentValue = current[key]\n if (currentValue === undefined) {\n current[key] = null\n } else {\n syncKeys(currentValue, pre[key])\n }\n }\n // }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item)\n })\n }\n }\n}\n\nfunction _diff (current, pre, path, result) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current)\n } else {\n for (let key in current) {\n const currentValue = current[key]\n const preValue = pre[key]\n const currentType = type(currentValue)\n const preType = type(preValue)\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n currentValue.forEach((item, index) => {\n _diff(item, preValue[index], (path == '' ? '' : path + '.') + key + '[' + index + ']', result)\n })\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n for (let subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + '.') + key + '.' + subKey, result)\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current)\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current)\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + '[' + index + ']', result)\n })\n }\n }\n } else {\n setResult(result, path, current)\n }\n}\n\nfunction setResult (result, k, v) {\n if (type(v) != FUNCTIONTYPE) {\n result[k] = v\n }\n}\n\nfunction type (obj) {\n return Object.prototype.toString.call(obj)\n}\n","const json = JSON\n\nexport const clone = (obj) => json.parse(stringify(obj))\n\nconst isArray = Array.isArray || function (x) {\n return {}.toString.call(x) === '[object Array]'\n}\n\nconst objectKeys = Object.keys || function (obj) {\n const has = Object.prototype.hasOwnProperty || function () { return true }\n const keys = []\n for (const key in obj) {\n if (has.call(obj, key)) keys.push(key)\n }\n return keys\n}\n\nfunction stringify (obj, opts) {\n if (!opts) opts = {}\n if (typeof opts === 'function') opts = { cmp: opts }\n let space = opts.space || ''\n if (typeof space === 'number') space = Array(space + 1).join(' ')\n const cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false\n const replacer = opts.replacer || function (key, value) { return value }\n\n const cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n const aobj = { key: a, value: node[a] }\n const bobj = { key: b, value: node[b] }\n return f(aobj, bobj)\n }\n }\n })(opts.cmp)\n\n const seen = []\n return (function stringify (parent, key, node, level) {\n const indent = space ? ('\\n' + new Array(level + 1).join(space)) : ''\n const colonSeparator = space ? ': ' : ':'\n\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON()\n }\n\n node = replacer.call(parent, key, node)\n\n if (node === undefined) {\n return\n }\n if (typeof node !== 'object' || node === null) {\n return json.stringify(node)\n }\n if (isArray(node)) {\n const out = []\n for (let i = 0; i < node.length; i++) {\n const item = stringify(node, i, node[i], level + 1) || json.stringify(null)\n out.push(indent + space + item)\n }\n return '[' + out.join(',') + indent + ']'\n } else {\n if (seen.indexOf(node) !== -1) {\n if (cycles) return json.stringify('__cycle__')\n throw new TypeError('Converting circular structure to JSON')\n } else seen.push(node)\n\n const keys = objectKeys(node).sort(cmp && cmp(node))\n const out = []\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const value = stringify(node, key, node[key], level + 1)\n\n if (!value) continue\n\n const keyValue = json.stringify(key) +\n colonSeparator +\n value\n\n out.push(indent + space + keyValue)\n }\n seen.splice(seen.indexOf(node), 1)\n return '{' + out.join(',') + indent + '}'\n }\n })({ '': obj }, '', obj, 0)\n}\n","import { Component, ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'\nimport { getCurrentInstance } from '@tarojs/runtime'\nimport { lifecycles, lifecycleMap, TaroLifeCycles, uniquePageLifecycle, appOptions } from './lifecycle'\nimport { bind, isEqual, safeGet, safeSet, report, unsupport, flattenBehaviors } from './utils'\nimport { diff } from './diff'\nimport { clone } from './clone'\n\ntype Observer = (newProps, oldProps, changePath: string) => void\ntype Func = (...args: any[]) => void\n\ninterface ObserverProperties {\n name: string,\n observer: string | Observer\n}\n\ninterface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {\n new (props: P): Component<P, S>\n externalClasses: Record<string, unknown>\n defaultProps?: Partial<P>\n _observeProps?: ObserverProperties[]\n observers?: Record<string, Func>\n}\n\ninterface WxOptions {\n methods?: {\n [key: string]: Func;\n }\n properties?: Record<string, Record<string, unknown> | Func>\n props?: Record<string, unknown>\n data?: Record<string, unknown>,\n observers?: Record<string, Func>\n lifetimes?: Record<string, Func>\n behaviors?: any[]\n}\n\nfunction defineGetter (component: Component, key: string, getter: string) {\n Object.defineProperty(component, key, {\n enumerable: true,\n configurable: true,\n get: () => {\n if (getter === 'props') {\n return component.props\n }\n return {\n ...component.state,\n ...component.props\n }\n }\n })\n}\n\nfunction isFunction (o): o is Func {\n return typeof o === 'function'\n}\n\nexport default function withWeapp (weappConf: WxOptions, isApp = false) {\n if (typeof weappConf === 'object' && Object.keys(weappConf).length === 0) {\n report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。')\n }\n return (ConnectComponent: ComponentClass<any, any>) => {\n const behaviorMap = new Map<string, any[]>([\n ['properties', []],\n ['data', []],\n ['methods', []],\n ['created', []],\n ['attached', []],\n ['ready', []],\n ['detached', []]\n ])\n const behaviorProperties = {}\n if (weappConf.behaviors?.length) {\n const { behaviors } = weappConf\n behaviors.forEach(behavior => flattenBehaviors(behavior, behaviorMap))\n\n const propertiesList = behaviorMap.get('properties')!\n if (propertiesList.length) {\n propertiesList.forEach(property => {\n Object.assign(behaviorProperties, property)\n })\n Object.keys(behaviorProperties).forEach(propName => {\n const propValue = behaviorProperties[propName]\n if (!weappConf.properties) {\n weappConf.properties = {}\n }\n if (!weappConf.properties.hasOwnProperty(propName)) {\n if (propValue && typeof propValue === 'object' && propValue.value) {\n propValue.value = clone(propValue.value)\n }\n weappConf.properties[propName] = propValue\n }\n })\n }\n }\n\n class BaseComponent<P = Record<string, any>, S = Record<string, any>> extends ConnectComponent {\n private _observeProps: ObserverProperties[] = []\n\n // mixins 可以多次调用生命周期\n private willMounts: Func[] = []\n\n private didMounts: Func[] = []\n\n private didHides: Func[] = []\n\n private didShows: Func[] = []\n\n private willUnmounts: Func[] = []\n\n private eventDistoryList: Func[] = []\n\n private current: any = getCurrentInstance()\n\n public observers?: Record<string, Func>\n\n public taroGlobalData: Record<any, any> = Object.create(null)\n\n public data: any\n\n constructor (props) {\n super(props)\n this.state = this.state || {}\n this.init(weappConf)\n defineGetter(this, 'data', 'state')\n defineGetter(this, 'properties', 'props')\n }\n\n private initProps (props: any) {\n for (const propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n const propValue = props[propKey]\n // propValue 可能是 null, 构造函数, 对象\n if (propValue && !isFunction(propValue)) {\n if (propValue.observer) {\n this._observeProps.push({\n name: propKey,\n observer: propValue.observer\n })\n }\n }\n }\n }\n }\n\n private init (options: WxOptions) {\n // 处理 Behaviors\n if (options.behaviors?.length) {\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'created':\n case 'attached':\n case 'detached':\n case 'ready':\n list.forEach(fn => this.initLifeCycles(key, fn))\n break\n }\n }\n }\n\n for (const confKey in options) {\n // 不支持的属性\n if (unsupport.has(confKey)) {\n const advise = unsupport.get(confKey)\n report(advise)\n }\n\n const confValue = options[confKey]\n\n switch (confKey) {\n case 'behaviors':\n break\n case 'data': {\n if (isApp) {\n this[confKey] = confValue\n if (!appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n } else {\n this.state = {\n ...confValue,\n ...this.state\n }\n }\n break\n }\n case 'properties':\n this.initProps(Object.assign(behaviorProperties, confValue))\n break\n case 'methods':\n for (const key in confValue) {\n const method = confValue[key]\n this[key] = bind(method, this)\n }\n break\n case 'lifetimes':\n for (const key in confValue) {\n this.initLifeCycles(key, confValue[key])\n }\n break\n case 'pageLifetimes':\n for (const key in confValue) {\n const cb = confValue[key]\n switch (key) {\n case 'show': {\n this.initLifeCycleListener('show', cb)\n break\n }\n case 'hide': {\n this.initLifeCycleListener('hide', cb)\n break\n }\n case 'resize': {\n report('不支持组件所在页面的生命周期 pageLifetimes.resize。')\n break\n }\n }\n }\n break\n default:\n if (lifecycles.has(confKey)) {\n // 优先使用 lifetimes 中定义的生命周期\n if (options.lifetimes?.[confKey]) {\n break\n }\n\n const lifecycle = options[confKey]\n this.initLifeCycles(confKey, lifecycle)\n } else if (isFunction(confValue)) {\n this[confKey] = bind(confValue, this)\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n\n // 原生页面和 Taro 页面中共计只能定义一次的生命周期\n if (uniquePageLifecycle.includes(confKey) && ConnectComponent.prototype[confKey]) {\n report(`生命周期 ${confKey} 已在原生部分进行定义,React 部分的定义将不会被执行。`)\n }\n } else {\n this[confKey] = confValue\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n }\n\n break\n }\n }\n\n // 处理 Behaviors\n if (options.behaviors?.length) {\n const behaviorData = {}\n const methods = {}\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'data':\n [...list, this.state].forEach((dataObject, index) => {\n Object.keys(dataObject).forEach(dataKey => {\n const value = dataObject[dataKey]\n const preValue = behaviorData[dataKey]\n const valueType = typeof value\n const preValueType = typeof preValue\n if (valueType === 'object') {\n if (!value) {\n behaviorData[dataKey] = value\n } else if (preValueType !== 'object' || !preValueType || Array.isArray(value)) {\n behaviorData[dataKey] = index === list.length ? value : clone(value)\n } else {\n const newVal = Object.assign({}, preValue, value)\n behaviorData[dataKey] = index === list.length ? newVal : clone(newVal)\n }\n } else {\n behaviorData[dataKey] = value\n }\n })\n })\n this.state = behaviorData\n break\n case 'methods':\n list.forEach(methodsObject => {\n Object.assign(methods, methodsObject)\n })\n Object.keys(methods).forEach(methodName => {\n if (!this[methodName]) {\n const method = methods[methodName]\n this[methodName] = bind(method, this)\n }\n })\n break\n default:\n break\n }\n }\n }\n }\n\n private initLifeCycles (lifecycleName: string, lifecycle: (...args: any[]) => any) {\n // 不支持的生命周期\n if (unsupport.has(lifecycleName)) {\n const advise = unsupport.get(lifecycleName)\n return report(advise)\n }\n\n if (lifecycleName === 'ready') {\n // 如果组件是延时渲染的,页面 onReady 的事件已经 emit 了,因此使用 componentDidMount + nextTick 模拟\n if (this.current.page.onReady.called) {\n this.didMounts.push(function (...args: unknown[]) {\n nextTick(() => {\n if (isFunction(lifecycle)) {\n lifecycle.apply(this, args)\n }\n })\n })\n } else {\n this.initLifeCycleListener('ready', lifecycle)\n }\n } else {\n for (const lifecycleKey in lifecycleMap) {\n const cycleNames = lifecycleMap[lifecycleKey]\n if (cycleNames.indexOf(lifecycleName) !== -1) {\n switch (lifecycleKey) {\n case TaroLifeCycles.DidHide:\n this.didHides.push(lifecycle)\n break\n case TaroLifeCycles.DidMount:\n this.didMounts.push(lifecycle)\n break\n case TaroLifeCycles.DidShow:\n this.didShows.push(lifecycle)\n break\n case TaroLifeCycles.WillMount:\n this.willMounts.push(lifecycle)\n break\n case TaroLifeCycles.WillUnmount:\n this.willUnmounts.push(lifecycle)\n break\n default:\n break\n }\n }\n }\n }\n\n // mixins 不会覆盖已经设置的生命周期,加入到 this 是为了形如 this.created() 的调用\n if (!isFunction(this[lifecycleName])) {\n this[lifecycleName] = lifecycle\n }\n }\n\n private safeExecute = (func?: Func, ...args: unknown[]) => {\n if (isFunction(func)) func.apply(this, args)\n }\n\n private initLifeCycleListener (name: string, cb: (...args: any[]) => void) {\n // 组件的 ready、show、hide 需要利用页面事件触发\n const { router } = this.current\n const lifecycleName = `on${name[0].toUpperCase()}${name.slice(1)}`\n cb = cb.bind(this)\n router?.[lifecycleName] && eventCenter.on(router[lifecycleName], cb)\n // unMount 时需要取消事件监听\n this.eventDistoryList.push(() => eventCenter.off(router[lifecycleName], cb))\n }\n\n private executeLifeCycles (funcs: Func[], ...args: unknown[]) {\n for (let i = 0; i < funcs.length; i++) {\n const func = funcs[i]\n this.safeExecute(func, ...args)\n }\n }\n\n private triggerPropertiesObservers (prevProps, nextProps) {\n this._observeProps.forEach(({ name: key, observer }) => {\n const prop = prevProps?.[key]\n const nextProp = nextProps[key]\n // 小程序是深比较不同之后才 trigger observer\n if (!isEqual(prop, nextProp)) {\n if (typeof observer === 'string') {\n const ob = this[observer]\n if (isFunction(ob)) {\n ob.call(this, nextProp, prop, key)\n }\n } else if (isFunction(observer)) {\n observer.call(this, nextProp, prop, key)\n }\n }\n })\n }\n\n private triggerObservers (current, prev) {\n const observers = this.observers\n if (observers == null) {\n return\n }\n\n if (Object.keys(observers).length === 0) {\n return\n }\n\n const result = diff(current, prev)\n const resultKeys = Object.keys(result)\n if (resultKeys.length === 0) {\n return\n }\n\n for (const observerKey in observers) {\n if (/\\*\\*/.test(observerKey)) {\n report('数据监听器 observers 不支持使用通配符 **。')\n continue\n }\n\n const keys = observerKey.split(',').map(k => k.trim())\n let isModified = false\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n for (let j = 0; j < resultKeys.length; j++) {\n const resultKey = resultKeys[j]\n if (\n resultKey.startsWith(key) ||\n (key.startsWith(resultKey) && key.endsWith(']'))\n ) {\n isModified = true\n }\n }\n }\n if (isModified) {\n observers[observerKey].apply(this, keys.map(key => safeGet(current, key)))\n }\n }\n }\n\n private defineProperty (target, key, data) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set (value) {\n data[key] = value\n },\n get () {\n return data[key]\n }\n })\n }\n\n public privateStopNoop (...args) {\n let e\n let fn\n if (args.length === 2) {\n fn = args[0]\n e = args[1]\n } else if (args.length === 1) {\n e = args[0]\n }\n if (e.type === 'touchmove') {\n report('catchtouchmove 转换后只能停止回调函数的冒泡,不能阻止滚动穿透。如要阻止滚动穿透,可以手动给编译后的 View 组件加上 catchMove 属性')\n }\n e.stopPropagation()\n isFunction(fn) && fn(e)\n }\n\n // ================ React 生命周期 ================\n\n public componentWillMount () {\n this.safeExecute(super.componentWillMount)\n this.executeLifeCycles(this.willMounts, this.current.router || {})\n this.triggerObservers(this.data, BaseComponent.defaultProps)\n this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props)\n }\n\n public componentDidMount () {\n this.safeExecute(super.componentDidMount)\n this.executeLifeCycles(this.didMounts)\n }\n\n public componentWillUnmount () {\n this.eventDistoryList.forEach(fn => fn())\n this.safeExecute(super.componentWillUnmount)\n this.executeLifeCycles(this.willUnmounts)\n }\n\n public componentDidHide () {\n this.safeExecute(super.componentDidHide)\n this.executeLifeCycles(this.didHides)\n }\n\n public componentDidShow () {\n this.safeExecute(super.componentDidShow, this.current.router || {})\n this.executeLifeCycles(this.didShows, this.current.router || {})\n }\n\n public componentWillReceiveProps (nextProps: P) {\n this.triggerObservers(nextProps, this.props)\n this.triggerPropertiesObservers(this.props, nextProps)\n this.safeExecute(super.componentWillReceiveProps)\n }\n\n // ================ 小程序 App, Page, Component 实例属性与方法 ================\n\n get is () {\n return this.current.page.is\n }\n\n get id () {\n return this.current.page.id\n }\n\n get dataset () {\n return this.current.page.dataset\n }\n\n public setData = (obj: S, callback?: () => void) => {\n let oldState\n if (this.observers && Object.keys(Object.keys(this.observers))) {\n oldState = clone(this.state)\n }\n Object.keys(obj).forEach(key => {\n safeSet(this.state, key, obj[key])\n })\n this.setState(this.state, () => {\n this.triggerObservers(this.state, oldState)\n if (callback) {\n callback.call(this)\n }\n })\n }\n\n public triggerEvent = (eventName: string, detail, options) => {\n if (options) {\n report('triggerEvent 不支持事件选项。')\n }\n\n const props = this.props\n const dataset = {}\n for (const key in props) {\n if (!key.startsWith('data-')) continue\n dataset[key.replace(/^data-/, '')] = props[key]\n }\n\n const func = props[`on${eventName[0].toUpperCase()}${eventName.slice(1)}`]\n if (isFunction(func)) {\n func.call(this, {\n type: eventName,\n detail,\n target: {\n id: props.id || '',\n dataset\n },\n currentTarget: {\n id: props.id || '',\n dataset\n }\n })\n }\n }\n\n private componentMethodsProxy (method: string) {\n return (...args: any[]) => {\n const page = this.current.page\n if (page?.[method]) {\n return page[method](...args)\n } else {\n console.error(`page 下没有 ${method} 方法`)\n }\n }\n }\n\n public hasBehavior = this.componentMethodsProxy('hasBehavior')\n public createSelectorQuery = this.componentMethodsProxy('createSelectorQuery')\n public createIntersectionObserver = this.componentMethodsProxy('createIntersectionObserver')\n public createMediaQueryObserver = this.componentMethodsProxy('createMediaQueryObserver')\n public getRelationNodes = this.componentMethodsProxy('getRelationNodes')\n public getTabBar = this.componentMethodsProxy('getTabBar')\n public getPageId = this.componentMethodsProxy('getPageId')\n public animate = this.componentMethodsProxy('animate')\n public clearAnimation = this.componentMethodsProxy('clearAnimation')\n public setUpdatePerformanceListener = this.componentMethodsProxy('setUpdatePerformanceListener')\n\n public selectComponent () {\n report(unsupport.get('selectComponent'))\n }\n\n public selectAllComponents () {\n report(unsupport.get('selectAllComponents'))\n }\n\n public selectOwnerComponent () {\n report(unsupport.get('selectOwnerComponent'))\n }\n\n public groupSetData () {\n report(unsupport.get('groupSetData'))\n }\n }\n\n const props = weappConf.properties\n\n if (props) {\n for (const propKey in props) {\n const propValue = props[propKey]\n if (propValue != null && !isFunction(propValue)) {\n if (propValue.value !== undefined) { // 如果是 null 也赋值到 defaultProps\n BaseComponent.defaultProps = {\n [propKey]: propValue.value,\n ...BaseComponent.defaultProps\n }\n }\n }\n }\n }\n\n const staticOptions = ['externalClasses', 'relations', 'options']\n\n staticOptions.forEach(option => {\n const value = weappConf[option]\n if (value != null) {\n BaseComponent[option] = value\n }\n })\n\n return BaseComponent\n }\n}\n"],"names":["TaroLifeCycles","lifecycleMap","WillMount","DidMount","DidShow","DidHide","WillUnmount","lifecycles","Set","key","lifecycle","forEach","l","add","uniquePageLifecycle","appOptions","bind","fn","ctx","boundFn","a","arguments","length","apply","call","_length","isEqual","obj1","obj2","JSON","stringify","safeGet","obj","propsArg","defaultValue","props","prop","Array","isArray","slice","replace","split","Error","shift","undefined","safeSet","value","lastProp","pop","thisProp","report","msg","console","warn","unsupport","Map","flattenBehaviors","behavior","behaviorMap","subBehaviors","behaviors","subBehavior","Object","keys","has","advise","get","list","push","ARRAYTYPE","OBJECTTYPE","FUNCTIONTYPE","diff","current","pre","result","syncKeys","_diff","rootCurrentType","type","rootPreType","currentValue","item","index","path","setResult","preValue","currentType","preType","subKey","k","v","prototype","toString","json","clone","parse","x","objectKeys","hasOwnProperty","opts","cmp","space","join","cycles","replacer","f","node","b","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","out","i","indexOf","TypeError","sort","keyValue","splice","defineGetter","component","getter","defineProperty","enumerable","configurable","state","isFunction","o","withWeapp","weappConf","isApp","ConnectComponent","behaviorProperties","propertiesList","property","assign","propName","propValue","properties","BaseComponent","getCurrentInstance","create","func","args","callback","oldState","observers","setState","triggerObservers","eventName","detail","options","dataset","startsWith","toUpperCase","target","id","currentTarget","componentMethodsProxy","init","propKey","observer","_observeProps","name","entries","initLifeCycles","confKey","confValue","includes","taroGlobalData","initProps","method","cb","initLifeCycleListener","lifetimes","behaviorData","methods","dataObject","dataKey","valueType","preValueType","newVal","methodsObject","methodName","lifecycleName","page","onReady","called","didMounts","nextTick","lifecycleKey","cycleNames","didHides","didShows","willMounts","willUnmounts","router","eventCenter","on","eventDistoryList","off","funcs","safeExecute","prevProps","nextProps","nextProp","ob","prev","resultKeys","observerKey","test","map","trim","isModified","j","resultKey","endsWith","data","set","e","stopPropagation","executeLifeCycles","defaultProps","triggerPropertiesObservers","is","error","staticOptions","option"],"mappings":"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"}
1
+ {"version":3,"file":"with-weapp.js","sources":["../src/lifecycle.ts","../src/utils.ts","../src/diff.js","../src/clone.js","../src/index.ts"],"sourcesContent":["interface LifecycleMap {\n [key: string]: string[]\n}\n\nexport enum TaroLifeCycles {\n WillMount = 'componentWillMount',\n DidMount = 'componentDidMount',\n DidShow = 'componentDidShow',\n DidHide = 'componentDidHide',\n WillUnmount = 'componentWillUnmount'\n}\n\nexport const lifecycleMap: LifecycleMap = {\n [TaroLifeCycles.WillMount]: ['created'],\n [TaroLifeCycles.DidMount]: ['attached'],\n [TaroLifeCycles.DidShow]: ['onShow'],\n [TaroLifeCycles.DidHide]: ['onHide'],\n [TaroLifeCycles.WillUnmount]: ['detached', 'onUnload']\n}\n\nexport const lifecycles = new Set<string>(['ready'])\n\nfor (const key in lifecycleMap) {\n const lifecycle = lifecycleMap[key]\n lifecycle.forEach(l => lifecycles.add(l))\n}\n\nexport const uniquePageLifecycle = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n]\n\nexport const appOptions = [\n 'onLaunch',\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onUnhandledRejection',\n 'onThemeChange'\n]\n","/**\n * Simple bind, faster than native\n */\nexport function bind (fn /*: Function */, ctx /*: Object */) /*: Function */ {\n if (!fn) return false\n\n function boundFn (a) {\n const l /*: number */ = arguments.length\n return l ? (l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a)) : fn.call(ctx)\n }\n\n // record original fn length\n boundFn._length = fn.length\n return boundFn\n}\n\nexport function isEqual (obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2)\n}\n\nexport function noop (..._: unknown[]) {\n //\n}\n\nconst sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n}\n\nexport function proxy (target, sourceKey: string, key: string) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n }\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val\n }\n Object.defineProperty(target, key, sharedPropertyDefinition)\n}\n\nexport function safeGet (obj, propsArg, defaultValue?) {\n if (!obj) {\n return defaultValue\n }\n let props, prop\n if (Array.isArray(propsArg)) {\n props = propsArg.slice(0)\n }\n if (typeof propsArg === 'string') {\n props = propsArg.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof propsArg === 'symbol') {\n props = [propsArg]\n }\n if (!Array.isArray(props)) {\n throw new Error('props arg must be an array, a string or a symbol')\n }\n while (props.length) {\n prop = props.shift()\n if (!obj) {\n return defaultValue\n }\n obj = obj[prop]\n if (obj === undefined) {\n return defaultValue\n }\n }\n return obj\n}\n\nexport function safeSet (obj, props, value) {\n if (typeof props === 'string') {\n props = props.replace(/\\[(.+?)\\]/g, '.$1')\n props = props.split('.')\n }\n if (typeof props === 'symbol') {\n props = [props]\n }\n const lastProp = props.pop()\n if (!lastProp) {\n return false\n }\n let thisProp\n while ((thisProp = props.shift())) {\n if (typeof obj[thisProp] === 'undefined') {\n obj[thisProp] = {}\n }\n\n // 直接按路径修改 this.state 可能会导致 nextProps 也被修改\n // 因此按路径寻找时,每一层都复制一遍\n if (Array.isArray(obj[thisProp])) {\n obj[thisProp] = [...obj[thisProp]]\n } else if (typeof obj[thisProp] === 'object') {\n obj[thisProp] = { ...obj[thisProp] }\n }\n\n obj = obj[thisProp]\n if (!obj || typeof obj !== 'object') {\n return false\n }\n }\n obj[lastProp] = value\n return true\n}\n\nexport function report (msg) {\n console.warn('[Taro Convert Warning] ' + msg)\n}\n\nexport const unsupport = new Map([\n ['onError', '不支持 App 的 onError 生命周期方法。'],\n ['onPageNotFound', '不支持 App 的 onPageNotFound 生命周期方法。'],\n ['onUnhandledRejection', '不支持 App 的 onUnhandledRejection 生命周期方法。'],\n ['onThemeChange', '不支持 App 的 onThemeChange 生命周期方法。'],\n ['moved', '不支持自定义组件的 moved 生命周期。'],\n ['externalClasses', '不支持自定义组件的 externalClasses 功能。'],\n ['relations', '不支持自定义组件的 relations 功能。'],\n ['options', '不支持自定义组件的 options 功能。'],\n ['definitionFilter', '不支持自定义组件的 definitionFilter 功能。'],\n ['selectComponent', 'selectComponent 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectAllComponents', 'selectAllComponents 方法产生不到目标效果,请使用 React 的 ref 进行重构。'],\n ['selectOwnerComponent', 'selectOwnerComponent 方法产生不到目标效果,请使用 React 语法重构。'],\n ['groupSetData', 'groupSetData 方法产生不到目标效果,请使用 React 语法重构。']\n])\n\nexport function flattenBehaviors (behavior, behaviorMap: Map<string, any[]>) {\n if (typeof behavior === 'string') {\n return report(`不支持使用内置 Behavior: [${behavior}]`)\n }\n const subBehaviors = behavior.behaviors\n if (subBehaviors?.length) {\n subBehaviors.forEach(subBehavior => flattenBehaviors(subBehavior, behaviorMap))\n }\n\n Object.keys(behavior).forEach(key => {\n // 不支持的属性\n if (unsupport.has(key)) {\n const advise = unsupport.get(key)\n return report(advise)\n }\n\n if (behaviorMap.has(key)) {\n const list = behaviorMap.get(key)!\n const value = behavior[key]\n list.push(value)\n }\n })\n}\n","/*eslint-disable*/\nconst ARRAYTYPE = '[object Array]'\nconst OBJECTTYPE = '[object Object]'\nconst FUNCTIONTYPE = '[object Function]'\n\nexport function diff (current, pre) {\n const result = {}\n syncKeys(current, pre)\n _diff(current, pre, '', result)\n return result\n}\n\nfunction syncKeys (current, pre) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE && rootPreType == OBJECTTYPE) {\n // if(Object.keys(current).length >= Object.keys(pre).length){\n for (let key in pre) {\n const currentValue = current[key]\n if (currentValue === undefined) {\n current[key] = null\n } else {\n syncKeys(currentValue, pre[key])\n }\n }\n // }\n } else if (rootCurrentType == ARRAYTYPE && rootPreType == ARRAYTYPE) {\n if (current.length >= pre.length) {\n pre.forEach((item, index) => {\n syncKeys(current[index], item)\n })\n }\n }\n}\n\nfunction _diff (current, pre, path, result) {\n if (current === pre) return\n const rootCurrentType = type(current)\n const rootPreType = type(pre)\n if (rootCurrentType == OBJECTTYPE) {\n if (rootPreType != OBJECTTYPE || Object.keys(current).length < Object.keys(pre).length) {\n setResult(result, path, current)\n } else {\n for (let key in current) {\n const currentValue = current[key]\n const preValue = pre[key]\n const currentType = type(currentValue)\n const preType = type(preValue)\n if (currentType != ARRAYTYPE && currentType != OBJECTTYPE) {\n if (currentValue != pre[key]) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n }\n } else if (currentType == ARRAYTYPE) {\n if (preType != ARRAYTYPE) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n if (currentValue.length < preValue.length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n currentValue.forEach((item, index) => {\n _diff(item, preValue[index], (path == '' ? '' : path + '.') + key + '[' + index + ']', result)\n })\n }\n }\n } else if (currentType == OBJECTTYPE) {\n if (preType != OBJECTTYPE || Object.keys(currentValue).length < Object.keys(preValue).length) {\n setResult(result, (path == '' ? '' : path + '.') + key, currentValue)\n } else {\n for (let subKey in currentValue) {\n _diff(currentValue[subKey], preValue[subKey], (path == '' ? '' : path + '.') + key + '.' + subKey, result)\n }\n }\n }\n }\n }\n } else if (rootCurrentType == ARRAYTYPE) {\n if (rootPreType != ARRAYTYPE) {\n setResult(result, path, current)\n } else {\n if (current.length < pre.length) {\n setResult(result, path, current)\n } else {\n current.forEach((item, index) => {\n _diff(item, pre[index], path + '[' + index + ']', result)\n })\n }\n }\n } else {\n setResult(result, path, current)\n }\n}\n\nfunction setResult (result, k, v) {\n if (type(v) != FUNCTIONTYPE) {\n result[k] = v\n }\n}\n\nfunction type (obj) {\n return Object.prototype.toString.call(obj)\n}\n","const json = JSON\n\nexport const clone = (obj) => json.parse(stringify(obj))\n\nconst isArray = Array.isArray || function (x) {\n return {}.toString.call(x) === '[object Array]'\n}\n\nconst objectKeys = Object.keys || function (obj) {\n const has = Object.prototype.hasOwnProperty || function () { return true }\n const keys = []\n for (const key in obj) {\n if (has.call(obj, key)) keys.push(key)\n }\n return keys\n}\n\nfunction stringify (obj, opts) {\n if (!opts) opts = {}\n if (typeof opts === 'function') opts = { cmp: opts }\n let space = opts.space || ''\n if (typeof space === 'number') space = Array(space + 1).join(' ')\n const cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false\n const replacer = opts.replacer || function (key, value) { return value }\n\n const cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n const aobj = { key: a, value: node[a] }\n const bobj = { key: b, value: node[b] }\n return f(aobj, bobj)\n }\n }\n })(opts.cmp)\n\n const seen = []\n return (function stringify (parent, key, node, level) {\n const indent = space ? ('\\n' + new Array(level + 1).join(space)) : ''\n const colonSeparator = space ? ': ' : ':'\n\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON()\n }\n\n node = replacer.call(parent, key, node)\n\n if (node === undefined) {\n return\n }\n if (typeof node !== 'object' || node === null) {\n return json.stringify(node)\n }\n if (isArray(node)) {\n const out = []\n for (let i = 0; i < node.length; i++) {\n const item = stringify(node, i, node[i], level + 1) || json.stringify(null)\n out.push(indent + space + item)\n }\n return '[' + out.join(',') + indent + ']'\n } else {\n if (seen.indexOf(node) !== -1) {\n if (cycles) return json.stringify('__cycle__')\n throw new TypeError('Converting circular structure to JSON')\n } else seen.push(node)\n\n const keys = objectKeys(node).sort(cmp && cmp(node))\n const out = []\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n const value = stringify(node, key, node[key], level + 1)\n\n if (!value) continue\n\n const keyValue = json.stringify(key) +\n colonSeparator +\n value\n\n out.push(indent + space + keyValue)\n }\n seen.splice(seen.indexOf(node), 1)\n return '{' + out.join(',') + indent + '}'\n }\n })({ '': obj }, '', obj, 0)\n}\n","import { ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'\nimport { getCurrentInstance } from '@tarojs/runtime'\nimport { lifecycles, lifecycleMap, TaroLifeCycles, uniquePageLifecycle, appOptions } from './lifecycle'\nimport { bind, isEqual, safeGet, safeSet, report, unsupport, flattenBehaviors } from './utils'\nimport { diff } from './diff'\nimport { clone } from './clone'\n\ntype Observer = (newProps, oldProps, changePath: string) => void\ntype Func = (...args: any[]) => void\n\ninterface ObserverProperties {\n name: string,\n observer: string | Observer\n}\n\ninterface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {\n new (props: P)\n externalClasses: Record<string, unknown>\n defaultProps?: Partial<P>\n _observeProps?: ObserverProperties[]\n observers?: Record<string, Func>\n}\n\ninterface WxOptions {\n methods?: {\n [key: string]: Func;\n }\n properties?: Record<string, Record<string, unknown> | Func>\n props?: Record<string, unknown>\n data?: Record<string, unknown>,\n observers?: Record<string, Func>\n lifetimes?: Record<string, Func>\n behaviors?: any[]\n}\n\nfunction defineGetter (component, key: string, getter: string) {\n Object.defineProperty(component, key, {\n enumerable: true,\n configurable: true,\n get: () => {\n if (getter === 'props') {\n return component.props\n }\n return {\n ...component.state,\n ...component.props\n }\n }\n })\n}\n\nfunction isFunction (o): o is Func {\n return typeof o === 'function'\n}\n\nexport default function withWeapp (weappConf: WxOptions, isApp = false) {\n if (typeof weappConf === 'object' && Object.keys(weappConf).length === 0) {\n report('withWeapp 请传入“App/页面/组件“的配置对象。如果原生写法使用了基类,请将基类组合后的配置对象传入,详情请参考文档。')\n }\n return (ConnectComponent: ComponentClass<any, any>) => {\n const behaviorMap = new Map<string, any[]>([\n ['properties', []],\n ['data', []],\n ['methods', []],\n ['created', []],\n ['attached', []],\n ['ready', []],\n ['detached', []]\n ])\n const behaviorProperties = {}\n if (weappConf.behaviors?.length) {\n const { behaviors } = weappConf\n behaviors.forEach(behavior => flattenBehaviors(behavior, behaviorMap))\n\n const propertiesList = behaviorMap.get('properties')!\n if (propertiesList.length) {\n propertiesList.forEach(property => {\n Object.assign(behaviorProperties, property)\n })\n Object.keys(behaviorProperties).forEach(propName => {\n const propValue = behaviorProperties[propName]\n if (!weappConf.properties) {\n weappConf.properties = {}\n }\n if (!weappConf.properties.hasOwnProperty(propName)) {\n if (propValue && typeof propValue === 'object' && propValue.value) {\n propValue.value = clone(propValue.value)\n }\n weappConf.properties[propName] = propValue\n }\n })\n }\n }\n\n class BaseComponent<P = Record<string, any>, S = Record<string, any>> extends ConnectComponent {\n private _observeProps: ObserverProperties[] = []\n\n // mixins 可以多次调用生命周期\n private willMounts: Func[] = []\n\n private didMounts: Func[] = []\n\n private didHides: Func[] = []\n\n private didShows: Func[] = []\n\n private willUnmounts: Func[] = []\n\n private eventDistoryList: Func[] = []\n\n private current: any = getCurrentInstance()\n\n public observers?: Record<string, Func>\n\n public taroGlobalData: Record<any, any> = Object.create(null)\n\n public data: any\n\n constructor (props) {\n super(props)\n this.state = this.state || {}\n this.init(weappConf)\n defineGetter(this, 'data', 'state')\n defineGetter(this, 'properties', 'props')\n }\n\n private initProps (props: any) {\n for (const propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n const propValue = props[propKey]\n // propValue 可能是 null, 构造函数, 对象\n if (propValue && !isFunction(propValue)) {\n if (propValue.observer) {\n this._observeProps.push({\n name: propKey,\n observer: propValue.observer\n })\n }\n }\n }\n }\n }\n\n private init (options: WxOptions) {\n // 处理 Behaviors\n if (options.behaviors?.length) {\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'created':\n case 'attached':\n case 'detached':\n case 'ready':\n list.forEach(fn => this.initLifeCycles(key, fn))\n break\n }\n }\n }\n\n for (const confKey in options) {\n // 不支持的属性\n if (unsupport.has(confKey)) {\n const advise = unsupport.get(confKey)\n report(advise)\n }\n\n const confValue = options[confKey]\n\n switch (confKey) {\n case 'behaviors':\n break\n case 'data': {\n if (isApp) {\n this[confKey] = confValue\n if (!appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n } else {\n this.state = {\n ...confValue,\n ...this.state\n }\n }\n break\n }\n case 'properties':\n this.initProps(Object.assign(behaviorProperties, confValue))\n break\n case 'methods':\n for (const key in confValue) {\n const method = confValue[key]\n this[key] = bind(method, this)\n }\n break\n case 'lifetimes':\n for (const key in confValue) {\n this.initLifeCycles(key, confValue[key])\n }\n break\n case 'pageLifetimes':\n for (const key in confValue) {\n const cb = confValue[key]\n switch (key) {\n case 'show': {\n this.initLifeCycleListener('show', cb)\n break\n }\n case 'hide': {\n this.initLifeCycleListener('hide', cb)\n break\n }\n case 'resize': {\n report('不支持组件所在页面的生命周期 pageLifetimes.resize。')\n break\n }\n }\n }\n break\n default:\n if (lifecycles.has(confKey)) {\n // 优先使用 lifetimes 中定义的生命周期\n if (options.lifetimes?.[confKey]) {\n break\n }\n\n const lifecycle = options[confKey]\n this.initLifeCycles(confKey, lifecycle)\n } else if (isFunction(confValue)) {\n this[confKey] = bind(confValue, this)\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n\n // 原生页面和 Taro 页面中共计只能定义一次的生命周期\n if (uniquePageLifecycle.includes(confKey) && ConnectComponent.prototype[confKey]) {\n report(`生命周期 ${confKey} 已在原生部分进行定义,React 部分的定义将不会被执行。`)\n }\n } else {\n this[confKey] = confValue\n\n if (isApp && !appOptions.includes(confKey)) {\n this.defineProperty(this.taroGlobalData, confKey, this)\n }\n }\n\n break\n }\n }\n\n // 处理 Behaviors\n if (options.behaviors?.length) {\n const behaviorData = {}\n const methods = {}\n for (const [key, list] of behaviorMap.entries()) {\n switch (key) {\n case 'data':\n [...list, this.state].forEach((dataObject, index) => {\n Object.keys(dataObject).forEach(dataKey => {\n const value = dataObject[dataKey]\n const preValue = behaviorData[dataKey]\n const valueType = typeof value\n const preValueType = typeof preValue\n if (valueType === 'object') {\n if (!value) {\n behaviorData[dataKey] = value\n } else if (preValueType !== 'object' || !preValueType || Array.isArray(value)) {\n behaviorData[dataKey] = index === list.length ? value : clone(value)\n } else {\n const newVal = Object.assign({}, preValue, value)\n behaviorData[dataKey] = index === list.length ? newVal : clone(newVal)\n }\n } else {\n behaviorData[dataKey] = value\n }\n })\n })\n this.state = behaviorData\n break\n case 'methods':\n list.forEach(methodsObject => {\n Object.assign(methods, methodsObject)\n })\n Object.keys(methods).forEach(methodName => {\n if (!this[methodName]) {\n const method = methods[methodName]\n this[methodName] = bind(method, this)\n }\n })\n break\n default:\n break\n }\n }\n }\n }\n\n private initLifeCycles (lifecycleName: string, lifecycle: (...args: any[]) => any) {\n // 不支持的生命周期\n if (unsupport.has(lifecycleName)) {\n const advise = unsupport.get(lifecycleName)\n return report(advise)\n }\n\n if (lifecycleName === 'ready') {\n // 如果组件是延时渲染的,页面 onReady 的事件已经 emit 了,因此使用 componentDidMount + nextTick 模拟\n if (this.current.page.onReady.called) {\n this.didMounts.push(function (...args: unknown[]) {\n nextTick(() => {\n if (isFunction(lifecycle)) {\n lifecycle.apply(this, args)\n }\n })\n })\n } else {\n this.initLifeCycleListener('ready', lifecycle)\n }\n } else {\n for (const lifecycleKey in lifecycleMap) {\n const cycleNames = lifecycleMap[lifecycleKey]\n if (cycleNames.indexOf(lifecycleName) !== -1) {\n switch (lifecycleKey) {\n case TaroLifeCycles.DidHide:\n this.didHides.push(lifecycle)\n break\n case TaroLifeCycles.DidMount:\n this.didMounts.push(lifecycle)\n break\n case TaroLifeCycles.DidShow:\n this.didShows.push(lifecycle)\n break\n case TaroLifeCycles.WillMount:\n this.willMounts.push(lifecycle)\n break\n case TaroLifeCycles.WillUnmount:\n this.willUnmounts.push(lifecycle)\n break\n default:\n break\n }\n }\n }\n }\n\n // mixins 不会覆盖已经设置的生命周期,加入到 this 是为了形如 this.created() 的调用\n if (!isFunction(this[lifecycleName])) {\n this[lifecycleName] = lifecycle\n }\n }\n\n private safeExecute = (func?: Func, ...args: unknown[]) => {\n if (isFunction(func)) func.apply(this, args)\n }\n\n private initLifeCycleListener (name: string, cb: (...args: any[]) => void) {\n // 组件的 ready、show、hide 需要利用页面事件触发\n const { router } = this.current\n const lifecycleName = `on${name[0].toUpperCase()}${name.slice(1)}`\n cb = cb.bind(this)\n router?.[lifecycleName] && eventCenter.on(router[lifecycleName], cb)\n // unMount 时需要取消事件监听\n this.eventDistoryList.push(() => eventCenter.off(router[lifecycleName], cb))\n }\n\n private executeLifeCycles (funcs: Func[], ...args: unknown[]) {\n for (let i = 0; i < funcs.length; i++) {\n const func = funcs[i]\n this.safeExecute(func, ...args)\n }\n }\n\n private triggerPropertiesObservers (prevProps, nextProps) {\n this._observeProps.forEach(({ name: key, observer }) => {\n const prop = prevProps?.[key]\n const nextProp = nextProps[key]\n // 小程序是深比较不同之后才 trigger observer\n if (!isEqual(prop, nextProp)) {\n if (typeof observer === 'string') {\n const ob = this[observer]\n if (isFunction(ob)) {\n ob.call(this, nextProp, prop, key)\n }\n } else if (isFunction(observer)) {\n observer.call(this, nextProp, prop, key)\n }\n }\n })\n }\n\n private triggerObservers (current, prev) {\n const observers = this.observers\n if (observers == null) {\n return\n }\n\n if (Object.keys(observers).length === 0) {\n return\n }\n\n const result = diff(current, prev)\n const resultKeys = Object.keys(result)\n if (resultKeys.length === 0) {\n return\n }\n\n for (const observerKey in observers) {\n if (/\\*\\*/.test(observerKey)) {\n report('数据监听器 observers 不支持使用通配符 **。')\n continue\n }\n\n const keys = observerKey.split(',').map(k => k.trim())\n let isModified = false\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n for (let j = 0; j < resultKeys.length; j++) {\n const resultKey = resultKeys[j]\n if (\n resultKey.startsWith(key) ||\n (key.startsWith(resultKey) && key.endsWith(']'))\n ) {\n isModified = true\n }\n }\n }\n if (isModified) {\n observers[observerKey].apply(this, keys.map(key => safeGet(current, key)))\n }\n }\n }\n\n private defineProperty (target, key, data) {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set (value) {\n data[key] = value\n },\n get () {\n return data[key]\n }\n })\n }\n\n public privateStopNoop (...args) {\n let e\n let fn\n if (args.length === 2) {\n fn = args[0]\n e = args[1]\n } else if (args.length === 1) {\n e = args[0]\n }\n if (e.type === 'touchmove') {\n report('catchtouchmove 转换后只能停止回调函数的冒泡,不能阻止滚动穿透。如要阻止滚动穿透,可以手动给编译后的 View 组件加上 catchMove 属性')\n }\n e.stopPropagation()\n isFunction(fn) && fn(e)\n }\n\n // ================ React 生命周期 ================\n\n public componentWillMount () {\n this.safeExecute(super.componentWillMount)\n this.executeLifeCycles(this.willMounts, this.current.router || {})\n this.triggerObservers(this.data, BaseComponent.defaultProps)\n this.triggerPropertiesObservers(BaseComponent.defaultProps, this.props)\n }\n\n public componentDidMount () {\n this.safeExecute(super.componentDidMount)\n this.executeLifeCycles(this.didMounts)\n }\n\n public componentWillUnmount () {\n this.eventDistoryList.forEach(fn => fn())\n this.safeExecute(super.componentWillUnmount)\n this.executeLifeCycles(this.willUnmounts)\n }\n\n public componentDidHide () {\n this.safeExecute(super.componentDidHide)\n this.executeLifeCycles(this.didHides)\n }\n\n public componentDidShow () {\n this.safeExecute(super.componentDidShow, this.current.router || {})\n this.executeLifeCycles(this.didShows, this.current.router || {})\n }\n\n public componentWillReceiveProps (nextProps: P) {\n this.triggerObservers(nextProps, this.props)\n this.triggerPropertiesObservers(this.props, nextProps)\n this.safeExecute(super.componentWillReceiveProps)\n }\n\n // ================ 小程序 App, Page, Component 实例属性与方法 ================\n\n get is () {\n return this.current.page.is\n }\n\n get id () {\n return this.current.page.id\n }\n\n get dataset () {\n return this.current.page.dataset\n }\n\n public setData = (obj: S, callback?: () => void) => {\n let oldState\n if (this.observers && Object.keys(Object.keys(this.observers))) {\n oldState = clone(this.state)\n }\n Object.keys(obj).forEach(key => {\n safeSet(this.state, key, obj[key])\n })\n this.setState(this.state, () => {\n this.triggerObservers(this.state, oldState)\n if (callback) {\n callback.call(this)\n }\n })\n }\n\n public triggerEvent = (eventName: string, detail, options) => {\n if (options) {\n report('triggerEvent 不支持事件选项。')\n }\n\n const props = this.props\n const dataset = {}\n for (const key in props) {\n if (!key.startsWith('data-')) continue\n dataset[key.replace(/^data-/, '')] = props[key]\n }\n\n const func = props[`on${eventName[0].toUpperCase()}${eventName.slice(1)}`]\n if (isFunction(func)) {\n func.call(this, {\n type: eventName,\n detail,\n target: {\n id: props.id || '',\n dataset\n },\n currentTarget: {\n id: props.id || '',\n dataset\n }\n })\n }\n }\n\n private componentMethodsProxy (method: string) {\n return (...args: any[]) => {\n const page = this.current.page\n if (page?.[method]) {\n return page[method](...args)\n } else {\n console.error(`page 下没有 ${method} 方法`)\n }\n }\n }\n\n public hasBehavior = this.componentMethodsProxy('hasBehavior')\n public createSelectorQuery = this.componentMethodsProxy('createSelectorQuery')\n public createIntersectionObserver = this.componentMethodsProxy('createIntersectionObserver')\n public createMediaQueryObserver = this.componentMethodsProxy('createMediaQueryObserver')\n public getRelationNodes = this.componentMethodsProxy('getRelationNodes')\n public getTabBar = this.componentMethodsProxy('getTabBar')\n public getPageId = this.componentMethodsProxy('getPageId')\n public animate = this.componentMethodsProxy('animate')\n public clearAnimation = this.componentMethodsProxy('clearAnimation')\n public setUpdatePerformanceListener = this.componentMethodsProxy('setUpdatePerformanceListener')\n\n public selectComponent () {\n report(unsupport.get('selectComponent'))\n }\n\n public selectAllComponents () {\n report(unsupport.get('selectAllComponents'))\n }\n\n public selectOwnerComponent () {\n report(unsupport.get('selectOwnerComponent'))\n }\n\n public groupSetData () {\n report(unsupport.get('groupSetData'))\n }\n }\n\n const props = weappConf.properties\n\n if (props) {\n for (const propKey in props) {\n const propValue = props[propKey]\n if (propValue != null && !isFunction(propValue)) {\n if (propValue.value !== undefined) { // 如果是 null 也赋值到 defaultProps\n BaseComponent.defaultProps = {\n [propKey]: propValue.value,\n ...BaseComponent.defaultProps\n }\n }\n }\n }\n }\n\n const staticOptions = ['externalClasses', 'relations', 'options']\n\n staticOptions.forEach(option => {\n const value = weappConf[option]\n if (value != null) {\n BaseComponent[option] = value\n }\n })\n\n return BaseComponent\n }\n}\n"],"names":["TaroLifeCycles","lifecycleMap","WillMount","DidMount","DidShow","DidHide","WillUnmount","lifecycles","Set","key","lifecycle","forEach","l","add","uniquePageLifecycle","appOptions","bind","fn","ctx","boundFn","a","arguments","length","apply","call","_length","isEqual","obj1","obj2","JSON","stringify","safeGet","obj","propsArg","defaultValue","props","prop","Array","isArray","slice","replace","split","Error","shift","undefined","safeSet","value","lastProp","pop","thisProp","report","msg","console","warn","unsupport","Map","flattenBehaviors","behavior","behaviorMap","subBehaviors","behaviors","subBehavior","Object","keys","has","advise","get","list","push","ARRAYTYPE","OBJECTTYPE","FUNCTIONTYPE","diff","current","pre","result","syncKeys","_diff","rootCurrentType","type","rootPreType","currentValue","item","index","path","setResult","preValue","currentType","preType","subKey","k","v","prototype","toString","json","clone","parse","x","objectKeys","hasOwnProperty","opts","cmp","space","join","cycles","replacer","f","node","b","aobj","bobj","seen","parent","level","indent","colonSeparator","toJSON","out","i","indexOf","TypeError","sort","keyValue","splice","defineGetter","component","getter","defineProperty","enumerable","configurable","state","isFunction","o","withWeapp","weappConf","isApp","ConnectComponent","behaviorProperties","propertiesList","property","assign","propName","propValue","properties","BaseComponent","getCurrentInstance","create","func","args","callback","oldState","observers","setState","triggerObservers","eventName","detail","options","dataset","startsWith","toUpperCase","target","id","currentTarget","componentMethodsProxy","init","propKey","observer","_observeProps","name","entries","initLifeCycles","confKey","confValue","includes","taroGlobalData","initProps","method","cb","initLifeCycleListener","lifetimes","behaviorData","methods","dataObject","dataKey","valueType","preValueType","newVal","methodsObject","methodName","lifecycleName","page","onReady","called","didMounts","nextTick","lifecycleKey","cycleNames","didHides","didShows","willMounts","willUnmounts","router","eventCenter","on","eventDistoryList","off","funcs","safeExecute","prevProps","nextProps","nextProp","ob","prev","resultKeys","observerKey","test","map","trim","isModified","j","resultKey","endsWith","data","set","e","stopPropagation","executeLifeCycles","defaultProps","triggerPropertiesObservers","is","error","staticOptions","option"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/with-weapp",
3
- "version": "3.3.13",
3
+ "version": "3.3.17",
4
4
  "description": "taroize 之后的运行时",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -23,9 +23,9 @@
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
25
  "@babel/runtime": "^7.12.5",
26
- "@tarojs/runtime": "3.3.13",
27
- "@tarojs/taro": "3.3.13",
26
+ "@tarojs/runtime": "3.3.17",
27
+ "@tarojs/taro": "3.3.17",
28
28
  "lodash": "^4.17.11"
29
29
  },
30
- "gitHead": "d84177a97cc27c01ca63c9dd07e5ab5bbaa91d8a"
30
+ "gitHead": "3f3ce5f66d370b1982a30e4a5f2c8eb383652063"
31
31
  }
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Component, ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'
1
+ import { ComponentLifecycle, eventCenter, nextTick } from '@tarojs/taro'
2
2
  import { getCurrentInstance } from '@tarojs/runtime'
3
3
  import { lifecycles, lifecycleMap, TaroLifeCycles, uniquePageLifecycle, appOptions } from './lifecycle'
4
4
  import { bind, isEqual, safeGet, safeSet, report, unsupport, flattenBehaviors } from './utils'
@@ -14,7 +14,7 @@ interface ObserverProperties {
14
14
  }
15
15
 
16
16
  interface ComponentClass<P = Record<string, any>, S = Record<string, any>> extends ComponentLifecycle<P, S> {
17
- new (props: P): Component<P, S>
17
+ new (props: P)
18
18
  externalClasses: Record<string, unknown>
19
19
  defaultProps?: Partial<P>
20
20
  _observeProps?: ObserverProperties[]
@@ -33,7 +33,7 @@ interface WxOptions {
33
33
  behaviors?: any[]
34
34
  }
35
35
 
36
- function defineGetter (component: Component, key: string, getter: string) {
36
+ function defineGetter (component, key: string, getter: string) {
37
37
  Object.defineProperty(component, key, {
38
38
  enumerable: true,
39
39
  configurable: true,