wevu 7.2.1 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/defineProperty.mjs +1 -1
- package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPrimitive.mjs +1 -1
- package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPropertyKey.mjs +1 -1
- package/dist/dev/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/typeof.mjs +1 -1
- package/dist/dev/api/vitest/setup.d.mts +1 -0
- package/dist/dev/api/vitest.d.mts +1 -0
- package/dist/dev/api.d.mts +1 -0
- package/dist/dev/compiler.d.mts +1 -0
- package/dist/dev/fetch.d.mts +9 -0
- package/dist/dev/index.d.mts +72 -0
- package/dist/dev/internal-reactivity.d.mts +18 -0
- package/dist/dev/internal-runtime.d.mts +45 -0
- package/dist/dev/internal-runtime.mjs +3 -2
- package/dist/dev/internal-template.d.mts +2 -0
- package/dist/dev/jsxTypes.d.mts +9 -0
- package/dist/dev/macros/shared.d.mts +83 -0
- package/dist/dev/macros.d.mts +71 -0
- package/dist/dev/package.mjs +1 -1
- package/dist/dev/reactivity/asyncDerivation.d.mts +41 -0
- package/dist/dev/reactivity/asyncDerivation.mjs +8 -10
- package/dist/dev/reactivity/asyncDerivation.mjs.map +1 -1
- package/dist/dev/reactivity/computed.d.mts +25 -0
- package/dist/dev/reactivity/core.d.mts +35 -0
- package/dist/dev/reactivity/core.mjs +5 -8
- package/dist/dev/reactivity/core.mjs.map +1 -1
- package/dist/dev/reactivity/index.d.mts +16 -0
- package/dist/dev/reactivity/reactive/mutation.d.mts +21 -0
- package/dist/dev/reactivity/reactive/patch.d.mts +18 -0
- package/dist/dev/reactivity/reactive/patch.mjs +3 -3
- package/dist/dev/reactivity/reactive/patch.mjs.map +1 -1
- package/dist/dev/reactivity/reactive/patchState.mjs +4 -8
- package/dist/dev/reactivity/reactive/patchState.mjs.map +1 -1
- package/dist/dev/reactivity/reactive/shallow.d.mts +22 -0
- package/dist/dev/reactivity/reactive/shared.d.mts +4 -0
- package/dist/dev/reactivity/reactive/shared.mjs +1 -2
- package/dist/dev/reactivity/reactive/shared.mjs.map +1 -1
- package/dist/dev/reactivity/reactive.d.mts +42 -0
- package/dist/dev/reactivity/reactive.mjs +5 -10
- package/dist/dev/reactivity/reactive.mjs.map +1 -1
- package/dist/dev/reactivity/readonly.d.mts +27 -0
- package/dist/dev/reactivity/ref.d.mts +27 -0
- package/dist/dev/reactivity/ref.mjs +2 -2
- package/dist/dev/reactivity/ref.mjs.map +1 -1
- package/dist/dev/reactivity/shallowRef.d.mts +19 -0
- package/dist/dev/reactivity/shallowRef.mjs +1 -1
- package/dist/dev/reactivity/shallowRef.mjs.map +1 -1
- package/dist/dev/reactivity/toRefs.d.mts +43 -0
- package/dist/dev/reactivity/traverse.d.mts +8 -0
- package/dist/dev/reactivity/watch/helpers.mjs +1 -1
- package/dist/dev/reactivity/watch/helpers.mjs.map +1 -1
- package/dist/dev/reactivity/watch/types.d.mts +43 -0
- package/dist/dev/reactivity/watch.d.mts +22 -0
- package/dist/dev/reactivity/watch.mjs +6 -8
- package/dist/dev/reactivity/watch.mjs.map +1 -1
- package/dist/dev/router/auto-routes.d.mts +8 -0
- package/dist/dev/router/createRouter.d.mts +9 -0
- package/dist/dev/router/createRouter.mjs +17 -24
- package/dist/dev/router/createRouter.mjs.map +1 -1
- package/dist/dev/router/initialNavigation.mjs +18 -16
- package/dist/dev/router/initialNavigation.mjs.map +1 -1
- package/dist/dev/router/instance.mjs +1 -2
- package/dist/dev/router/instance.mjs.map +1 -1
- package/dist/dev/router/navigationCore.d.mts +7 -0
- package/dist/dev/router/navigationCore.mjs +2 -2
- package/dist/dev/router/navigationCore.mjs.map +1 -1
- package/dist/dev/router/navigationResult.mjs +7 -10
- package/dist/dev/router/navigationResult.mjs.map +1 -1
- package/dist/dev/router/navigationTarget.mjs +1 -3
- package/dist/dev/router/navigationTarget.mjs.map +1 -1
- package/dist/dev/router/resolve.d.mts +7 -0
- package/dist/dev/router/resolve.mjs +3 -4
- package/dist/dev/router/resolve.mjs.map +1 -1
- package/dist/dev/router/routeRegistry.mjs +1 -1
- package/dist/dev/router/routeRegistry.mjs.map +1 -1
- package/dist/dev/router/routeSync.d.mts +2 -0
- package/dist/dev/router/routeSync.mjs +1 -1
- package/dist/dev/router/routeSync.mjs.map +1 -1
- package/dist/dev/router/types.d.mts +267 -0
- package/dist/dev/router/useRoute.d.mts +20 -0
- package/dist/dev/router/useRoute.mjs +12 -19
- package/dist/dev/router/useRoute.mjs.map +1 -1
- package/dist/dev/router/useRouter.d.mts +9 -0
- package/dist/dev/router.d.mts +26 -0
- package/dist/dev/routerInternal/location.d.mts +2 -0
- package/dist/dev/routerInternal/location.mjs +2 -3
- package/dist/dev/routerInternal/location.mjs.map +1 -1
- package/dist/dev/routerInternal/matching.d.mts +2 -0
- package/dist/dev/routerInternal/params.d.mts +2 -0
- package/dist/dev/routerInternal/params.mjs +2 -3
- package/dist/dev/routerInternal/params.mjs.map +1 -1
- package/dist/dev/routerInternal/query.d.mts +7 -0
- package/dist/dev/routerInternal/records.d.mts +2 -0
- package/dist/dev/routerInternal/records.mjs +1 -1
- package/dist/dev/routerInternal/records.mjs.map +1 -1
- package/dist/dev/routerInternal/recordsWarnings.d.mts +2 -0
- package/dist/dev/routerInternal/recordsWarnings.mjs +1 -2
- package/dist/dev/routerInternal/recordsWarnings.mjs.map +1 -1
- package/dist/dev/routerInternal/shared.d.mts +9 -0
- package/dist/dev/routerInternal/snapshots.d.mts +2 -0
- package/dist/dev/routerInternal/types.d.mts +9 -0
- package/dist/dev/runtime/app/context.mjs +13 -26
- package/dist/dev/runtime/app/context.mjs.map +1 -1
- package/dist/dev/runtime/app/diagnostics.mjs +2 -4
- package/dist/dev/runtime/app/diagnostics.mjs.map +1 -1
- package/dist/dev/runtime/app/mount.mjs +27 -33
- package/dist/dev/runtime/app/mount.mjs.map +1 -1
- package/dist/dev/runtime/app/pending.d.mts +10 -0
- package/dist/dev/runtime/app/setData/commitTracker.d.mts +13 -0
- package/dist/dev/runtime/app/setData/commitTracker.mjs +5 -9
- package/dist/dev/runtime/app/setData/commitTracker.mjs.map +1 -1
- package/dist/dev/runtime/app/setData/patchScheduler.mjs +2 -4
- package/dist/dev/runtime/app/setData/patchScheduler.mjs.map +1 -1
- package/dist/dev/runtime/app/setData/payload.mjs +2 -3
- package/dist/dev/runtime/app/setData/payload.mjs.map +1 -1
- package/dist/dev/runtime/app/setData/scheduler.d.mts +51 -0
- package/dist/dev/runtime/app/setData/scheduler.mjs +7 -9
- package/dist/dev/runtime/app/setData/scheduler.mjs.map +1 -1
- package/dist/dev/runtime/app/setData/snapshot.mjs +5 -6
- package/dist/dev/runtime/app/setData/snapshot.mjs.map +1 -1
- package/dist/dev/runtime/app/setDataOptions.mjs +26 -27
- package/dist/dev/runtime/app/setDataOptions.mjs.map +1 -1
- package/dist/dev/runtime/app.d.mts +8 -0
- package/dist/dev/runtime/app.mjs +9 -9
- package/dist/dev/runtime/app.mjs.map +1 -1
- package/dist/dev/runtime/bindingManifest.mjs +6 -14
- package/dist/dev/runtime/bindingManifest.mjs.map +1 -1
- package/dist/dev/runtime/capabilities.d.mts +78 -0
- package/dist/dev/runtime/capabilities.mjs.map +1 -1
- package/dist/dev/runtime/css.d.mts +14 -0
- package/dist/dev/runtime/css.mjs +4 -8
- package/dist/dev/runtime/css.mjs.map +1 -1
- package/dist/dev/runtime/defaults.d.mts +12 -0
- package/dist/dev/runtime/defaults.mjs +4 -4
- package/dist/dev/runtime/defaults.mjs.map +1 -1
- package/dist/dev/runtime/define/initialComputed.mjs +5 -5
- package/dist/dev/runtime/define/initialComputed.mjs.map +1 -1
- package/dist/dev/runtime/define/options.mjs +10 -12
- package/dist/dev/runtime/define/options.mjs.map +1 -1
- package/dist/dev/runtime/define/props.mjs +4 -5
- package/dist/dev/runtime/define/props.mjs.map +1 -1
- package/dist/dev/runtime/define/scopedSlotOptions.mjs +43 -61
- package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -1
- package/dist/dev/runtime/define/setupResult.mjs +17 -28
- package/dist/dev/runtime/define/setupResult.mjs.map +1 -1
- package/dist/dev/runtime/define.d.mts +118 -0
- package/dist/dev/runtime/define.mjs +9 -12
- package/dist/dev/runtime/define.mjs.map +1 -1
- package/dist/dev/runtime/diff.mjs +9 -11
- package/dist/dev/runtime/diff.mjs.map +1 -1
- package/dist/dev/runtime/disposables.d.mts +31 -0
- package/dist/dev/runtime/disposables.mjs +2 -2
- package/dist/dev/runtime/disposables.mjs.map +1 -1
- package/dist/dev/runtime/elementIntersectionObserver.d.mts +26 -0
- package/dist/dev/runtime/elementIntersectionObserver.mjs +16 -24
- package/dist/dev/runtime/elementIntersectionObserver.mjs.map +1 -1
- package/dist/dev/runtime/features/inlineEvents.d.mts +7 -0
- package/dist/dev/runtime/features/inlineEvents.mjs +2 -3
- package/dist/dev/runtime/features/inlineEvents.mjs.map +1 -1
- package/dist/dev/runtime/features/jsxIslands.d.mts +7 -0
- package/dist/dev/runtime/features/jsxIslands.mjs +20 -0
- package/dist/dev/runtime/features/jsxIslands.mjs.map +1 -0
- package/dist/dev/runtime/features/layout.d.mts +7 -0
- package/dist/dev/runtime/features/layout.mjs +2 -3
- package/dist/dev/runtime/features/layout.mjs.map +1 -1
- package/dist/dev/runtime/features/patchStrategy.d.mts +7 -0
- package/dist/dev/runtime/features/publicLayout.d.mts +24 -0
- package/dist/dev/runtime/features/publicLayout.mjs +2 -6
- package/dist/dev/runtime/features/publicLayout.mjs.map +1 -1
- package/dist/dev/runtime/features/scopedSlots.d.mts +23 -0
- package/dist/dev/runtime/features/scopedSlots.mjs +5 -9
- package/dist/dev/runtime/features/scopedSlots.mjs.map +1 -1
- package/dist/dev/runtime/features/setDataHighFrequencyWarning.d.mts +7 -0
- package/dist/dev/runtime/features/templateRefs.d.mts +7 -0
- package/dist/dev/runtime/features/templateRefs.mjs +1 -1
- package/dist/dev/runtime/features/templateRefs.mjs.map +1 -1
- package/dist/dev/runtime/hooks/base.d.mts +27 -0
- package/dist/dev/runtime/hooks/base.mjs +21 -32
- package/dist/dev/runtime/hooks/base.mjs.map +1 -1
- package/dist/dev/runtime/hooks/register.d.mts +30 -0
- package/dist/dev/runtime/hooks/vue.d.mts +52 -0
- package/dist/dev/runtime/hooks.d.mts +4 -0
- package/dist/dev/runtime/index.d.mts +46 -0
- package/dist/dev/runtime/inlineDataset.mjs +1 -2
- package/dist/dev/runtime/inlineDataset.mjs.map +1 -1
- package/dist/dev/runtime/intersectionObserver.d.mts +14 -0
- package/dist/dev/runtime/intersectionObserver.mjs +6 -6
- package/dist/dev/runtime/intersectionObserver.mjs.map +1 -1
- package/dist/dev/runtime/jsxIsland.d.mts +37 -0
- package/dist/dev/runtime/jsxIsland.mjs +16 -33
- package/dist/dev/runtime/jsxIsland.mjs.map +1 -1
- package/dist/dev/runtime/layoutBridge.d.mts +55 -0
- package/dist/dev/runtime/layoutBridge.mjs +32 -62
- package/dist/dev/runtime/layoutBridge.mjs.map +1 -1
- package/dist/dev/runtime/nativeBridge.mjs +1 -1
- package/dist/dev/runtime/nativeBridge.mjs.map +1 -1
- package/dist/dev/runtime/navigationLifecycle.mjs +24 -0
- package/dist/dev/runtime/navigationLifecycle.mjs.map +1 -0
- package/dist/dev/runtime/noSetData.d.mts +5 -0
- package/dist/dev/runtime/pageEnvironment.d.mts +50 -0
- package/dist/dev/runtime/pageEnvironment.mjs +15 -18
- package/dist/dev/runtime/pageEnvironment.mjs.map +1 -1
- package/dist/dev/runtime/pageLayout.d.mts +25 -0
- package/dist/dev/runtime/pageLayout.mjs +7 -11
- package/dist/dev/runtime/pageLayout.mjs.map +1 -1
- package/dist/dev/runtime/pageScroll.d.mts +29 -0
- package/dist/dev/runtime/pageScroll.mjs +2 -3
- package/dist/dev/runtime/pageScroll.mjs.map +1 -1
- package/dist/dev/runtime/platform/current.mjs +12 -0
- package/dist/dev/runtime/platform/current.mjs.map +1 -0
- package/dist/dev/runtime/platform/generic.mjs +36 -0
- package/dist/dev/runtime/platform/generic.mjs.map +1 -0
- package/dist/dev/runtime/platform/globals.mjs +29 -0
- package/dist/dev/runtime/platform/globals.mjs.map +1 -0
- package/dist/dev/runtime/platform.mjs +15 -60
- package/dist/dev/runtime/platform.mjs.map +1 -1
- package/dist/dev/runtime/provide.d.mts +60 -0
- package/dist/dev/runtime/provideContext.mjs +7 -9
- package/dist/dev/runtime/provideContext.mjs.map +1 -1
- package/dist/dev/runtime/provideStore.d.mts +7 -0
- package/dist/dev/runtime/publicRuntime.d.mts +22 -0
- package/dist/dev/runtime/publicRuntime.mjs +4 -0
- package/dist/dev/runtime/publicRuntime.mjs.map +1 -1
- package/dist/dev/runtime/pullDownRefresh.d.mts +12 -0
- package/dist/dev/runtime/pullDownRefresh.mjs +2 -4
- package/dist/dev/runtime/pullDownRefresh.mjs.map +1 -1
- package/dist/dev/runtime/register/app.d.mts +14 -0
- package/dist/dev/runtime/register/app.mjs +18 -19
- package/dist/dev/runtime/register/app.mjs.map +1 -1
- package/dist/dev/runtime/register/component/alipay.mjs +9 -18
- package/dist/dev/runtime/register/component/alipay.mjs.map +1 -1
- package/dist/dev/runtime/register/component/alipayRegistration.mjs +60 -0
- package/dist/dev/runtime/register/component/alipayRegistration.mjs.map +1 -0
- package/dist/dev/runtime/register/component/lifecycle/platform.mjs +8 -9
- package/dist/dev/runtime/register/component/lifecycle/platform.mjs.map +1 -1
- package/dist/dev/runtime/register/component/lifecycle.mjs +7 -12
- package/dist/dev/runtime/register/component/lifecycle.mjs.map +1 -1
- package/dist/dev/runtime/register/component/methods.mjs +13 -18
- package/dist/dev/runtime/register/component/methods.mjs.map +1 -1
- package/dist/dev/runtime/register/component/options.mjs +3 -4
- package/dist/dev/runtime/register/component/options.mjs.map +1 -1
- package/dist/dev/runtime/register/component/props.mjs +25 -31
- package/dist/dev/runtime/register/component/props.mjs.map +1 -1
- package/dist/dev/runtime/register/component/registerDefinition.mjs +18 -40
- package/dist/dev/runtime/register/component/registerDefinition.mjs.map +1 -1
- package/dist/dev/runtime/register/component/registerNativeDefinition.mjs +18 -60
- package/dist/dev/runtime/register/component/registerNativeDefinition.mjs.map +1 -1
- package/dist/dev/runtime/register/component.d.mts +17 -0
- package/dist/dev/runtime/register/component.mjs +3 -5
- package/dist/dev/runtime/register/component.mjs.map +1 -1
- package/dist/dev/runtime/register/inline.d.mts +15 -0
- package/dist/dev/runtime/register/inline.mjs +8 -10
- package/dist/dev/runtime/register/inline.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs +7 -8
- package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs +1 -1
- package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs +25 -34
- package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +6 -13
- package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs +2 -2
- package/dist/dev/runtime/register/runtimeInstance/setupSnapshot.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance/utils.mjs +9 -9
- package/dist/dev/runtime/register/runtimeInstance/utils.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance.d.mts +26 -0
- package/dist/dev/runtime/register/runtimeInstance.mjs +74 -100
- package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -1
- package/dist/dev/runtime/register/setDataFrequencyWarning.mjs +12 -15
- package/dist/dev/runtime/register/setDataFrequencyWarning.mjs.map +1 -1
- package/dist/dev/runtime/register/setup.d.mts +11 -0
- package/dist/dev/runtime/register/setup.mjs +2 -3
- package/dist/dev/runtime/register/setup.mjs.map +1 -1
- package/dist/dev/runtime/register/snapshot.mjs +1 -4
- package/dist/dev/runtime/register/snapshot.mjs.map +1 -1
- package/dist/dev/runtime/register/watch.d.mts +12 -0
- package/dist/dev/runtime/register/watch.mjs +3 -5
- package/dist/dev/runtime/register/watch.mjs.map +1 -1
- package/dist/dev/runtime/register.d.mts +5 -0
- package/dist/dev/runtime/scopedSlots.mjs +14 -21
- package/dist/dev/runtime/scopedSlots.mjs.map +1 -1
- package/dist/dev/runtime/selectorQuery.d.mts +54 -0
- package/dist/dev/runtime/selectorQuery.mjs +5 -9
- package/dist/dev/runtime/selectorQuery.mjs.map +1 -1
- package/dist/dev/runtime/template.d.mts +6 -0
- package/dist/dev/runtime/template.mjs +1 -1
- package/dist/dev/runtime/template.mjs.map +1 -1
- package/dist/dev/runtime/templateRefTypes.d.mts +12 -0
- package/dist/dev/runtime/templateRefs/helpers.mjs +14 -24
- package/dist/dev/runtime/templateRefs/helpers.mjs.map +1 -1
- package/dist/dev/runtime/templateRefs.mjs +8 -15
- package/dist/dev/runtime/templateRefs.mjs.map +1 -1
- package/dist/dev/runtime/types/core.d.mts +35 -0
- package/dist/dev/runtime/types/miniprogram.d.mts +84 -0
- package/dist/dev/runtime/types/miniprogramHost.d.mts +45 -0
- package/dist/dev/runtime/types/miniprogramHostSources.d.mts +112 -0
- package/dist/dev/runtime/types/options.d.mts +138 -0
- package/dist/dev/runtime/types/props/propTypes.d.mts +79 -0
- package/dist/dev/runtime/types/props/router.d.mts +51 -0
- package/dist/dev/runtime/types/props/setup.d.mts +96 -0
- package/dist/dev/runtime/types/props.d.mts +4 -0
- package/dist/dev/runtime/types/runtime.d.mts +59 -0
- package/dist/dev/runtime/types/setData.d.mts +237 -0
- package/dist/dev/runtime/types.d.mts +29 -0
- package/dist/dev/runtime/uniAppHost.d.mts +8 -0
- package/dist/dev/runtime/uniAppHost.mjs +6 -14
- package/dist/dev/runtime/uniAppHost.mjs.map +1 -1
- package/dist/dev/runtime/updatePerformance.d.mts +13 -0
- package/dist/dev/runtime/updatePerformance.mjs +1 -1
- package/dist/dev/runtime/updatePerformance.mjs.map +1 -1
- package/dist/dev/runtime/use.d.mts +13 -0
- package/dist/dev/runtime/use.mjs +1 -1
- package/dist/dev/runtime/use.mjs.map +1 -1
- package/dist/dev/runtime/vueCompat/context.d.mts +8 -0
- package/dist/dev/runtime/vueCompat/context.mjs +3 -5
- package/dist/dev/runtime/vueCompat/context.mjs.map +1 -1
- package/dist/dev/runtime/vueCompat/model.d.mts +30 -0
- package/dist/dev/runtime/vueCompat/model.mjs +9 -13
- package/dist/dev/runtime/vueCompat/model.mjs.map +1 -1
- package/dist/dev/runtime/vueCompat/router.d.mts +29 -0
- package/dist/dev/runtime/vueCompat/router.mjs +4 -4
- package/dist/dev/runtime/vueCompat/router.mjs.map +1 -1
- package/dist/dev/runtime/vueCompat/templateRef.d.mts +9 -0
- package/dist/dev/runtime/vueCompat/templateRef.mjs +1 -1
- package/dist/dev/runtime/vueCompat/templateRef.mjs.map +1 -1
- package/dist/dev/runtime/vueCompat.d.mts +5 -0
- package/dist/dev/scheduler.d.mts +4 -0
- package/dist/dev/scheduler.mjs +3 -4
- package/dist/dev/scheduler.mjs.map +1 -1
- package/dist/dev/store/base.mjs +1 -2
- package/dist/dev/store/base.mjs.map +1 -1
- package/dist/dev/store/define/create.mjs +11 -22
- package/dist/dev/store/define/create.mjs.map +1 -1
- package/dist/dev/store/define.d.mts +8 -0
- package/dist/dev/store/define.mjs +1 -1
- package/dist/dev/store/define.mjs.map +1 -1
- package/dist/dev/store/manager.d.mts +16 -0
- package/dist/dev/store/storeToRefs.d.mts +11 -0
- package/dist/dev/store/types.d.mts +106 -0
- package/dist/dev/store/view.mjs +1 -1
- package/dist/dev/store/view.mjs.map +1 -1
- package/dist/dev/store.d.mts +5 -0
- package/dist/dev/version.d.mts +4 -0
- package/dist/dev/vue-augment.d.mts +8 -0
- package/dist/dev/vue-demi.d.mts +87 -0
- package/dist/dev/vue-types.d.mts +19 -0
- package/dist/dev/web-apis.d.mts +3 -0
- package/dist/internal-runtime.d.mts +2 -1
- package/dist/internal-runtime.mjs +1 -1
- package/dist/package.mjs +1 -1
- package/dist/reactivity/asyncDerivation.mjs +1 -1
- package/dist/reactivity/core.mjs +1 -1
- package/dist/reactivity/reactive/patch.mjs +1 -1
- package/dist/reactivity/reactive/patchState.mjs +1 -1
- package/dist/reactivity/reactive/shared.mjs +1 -1
- package/dist/reactivity/reactive.mjs +1 -1
- package/dist/reactivity/ref.mjs +1 -1
- package/dist/reactivity/shallowRef.mjs +1 -1
- package/dist/reactivity/watch/helpers.mjs +1 -1
- package/dist/reactivity/watch.mjs +1 -1
- package/dist/router/createRouter.mjs +1 -1
- package/dist/router/initialNavigation.mjs +1 -1
- package/dist/router/instance.mjs +1 -1
- package/dist/router/navigationCore.mjs +1 -1
- package/dist/router/navigationResult.mjs +1 -1
- package/dist/router/navigationTarget.mjs +1 -1
- package/dist/router/resolve.mjs +1 -1
- package/dist/router/routeRegistry.mjs +1 -1
- package/dist/router/routeSync.mjs +1 -1
- package/dist/router/useRoute.mjs +1 -1
- package/dist/routerInternal/location.mjs +1 -1
- package/dist/routerInternal/params.mjs +1 -1
- package/dist/routerInternal/records.mjs +1 -1
- package/dist/routerInternal/recordsWarnings.mjs +1 -1
- package/dist/runtime/app/context.mjs +1 -1
- package/dist/runtime/app/diagnostics.mjs +1 -1
- package/dist/runtime/app/mount.mjs +1 -1
- package/dist/runtime/app/setData/commitTracker.mjs +1 -1
- package/dist/runtime/app/setData/patchScheduler.mjs +1 -1
- package/dist/runtime/app/setData/payload.mjs +1 -1
- package/dist/runtime/app/setData/scheduler.mjs +1 -1
- package/dist/runtime/app/setData/snapshot.mjs +1 -1
- package/dist/runtime/app/setDataOptions.mjs +1 -1
- package/dist/runtime/app.mjs +1 -1
- package/dist/runtime/bindingManifest.mjs +1 -1
- package/dist/runtime/capabilities.d.mts +4 -1
- package/dist/runtime/css.mjs +1 -1
- package/dist/runtime/defaults.mjs +1 -1
- package/dist/runtime/define/initialComputed.mjs +1 -1
- package/dist/runtime/define/options.mjs +1 -1
- package/dist/runtime/define/props.mjs +1 -1
- package/dist/runtime/define/scopedSlotOptions.mjs +1 -1
- package/dist/runtime/define/setupResult.mjs +1 -1
- package/dist/runtime/define.mjs +1 -1
- package/dist/runtime/diff.mjs +1 -1
- package/dist/runtime/disposables.mjs +1 -1
- package/dist/runtime/elementIntersectionObserver.mjs +1 -1
- package/dist/runtime/features/inlineEvents.mjs +1 -1
- package/dist/runtime/features/jsxIslands.d.mts +6 -0
- package/dist/runtime/features/jsxIslands.mjs +1 -0
- package/dist/runtime/features/layout.mjs +1 -1
- package/dist/runtime/features/publicLayout.mjs +1 -1
- package/dist/runtime/features/scopedSlots.mjs +1 -1
- package/dist/runtime/features/templateRefs.mjs +1 -1
- package/dist/runtime/hooks/base.mjs +1 -1
- package/dist/runtime/inlineDataset.mjs +1 -1
- package/dist/runtime/intersectionObserver.mjs +1 -1
- package/dist/runtime/jsxIsland.mjs +1 -1
- package/dist/runtime/layoutBridge.mjs +1 -1
- package/dist/runtime/nativeBridge.mjs +1 -1
- package/dist/runtime/navigationLifecycle.mjs +1 -0
- package/dist/runtime/pageEnvironment.mjs +1 -1
- package/dist/runtime/pageLayout.mjs +1 -1
- package/dist/runtime/pageScroll.mjs +1 -1
- package/dist/runtime/platform/current.mjs +1 -0
- package/dist/runtime/platform/generic.mjs +1 -0
- package/dist/runtime/platform/globals.mjs +1 -0
- package/dist/runtime/platform.mjs +1 -1
- package/dist/runtime/provideContext.mjs +1 -1
- package/dist/runtime/publicRuntime.mjs +1 -1
- package/dist/runtime/pullDownRefresh.mjs +1 -1
- package/dist/runtime/register/app.mjs +1 -1
- package/dist/runtime/register/component/alipay.mjs +1 -1
- package/dist/runtime/register/component/alipayRegistration.mjs +1 -0
- package/dist/runtime/register/component/lifecycle/platform.mjs +1 -1
- package/dist/runtime/register/component/lifecycle.mjs +1 -1
- package/dist/runtime/register/component/methods.mjs +1 -1
- package/dist/runtime/register/component/options.mjs +1 -1
- package/dist/runtime/register/component/props.mjs +1 -1
- package/dist/runtime/register/component/registerDefinition.mjs +1 -1
- package/dist/runtime/register/component/registerNativeDefinition.mjs +1 -1
- package/dist/runtime/register/component.mjs +1 -1
- package/dist/runtime/register/inline.mjs +1 -1
- package/dist/runtime/register/runtimeInstance/methodBridge.mjs +1 -1
- package/dist/runtime/register/runtimeInstance/provideContext.mjs +1 -1
- package/dist/runtime/register/runtimeInstance/setupContext.mjs +1 -1
- package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -1
- package/dist/runtime/register/runtimeInstance/setupSnapshot.mjs +1 -1
- package/dist/runtime/register/runtimeInstance/utils.mjs +1 -1
- package/dist/runtime/register/runtimeInstance.mjs +1 -1
- package/dist/runtime/register/setDataFrequencyWarning.mjs +1 -1
- package/dist/runtime/register/setup.mjs +1 -1
- package/dist/runtime/register/snapshot.mjs +1 -1
- package/dist/runtime/register/watch.mjs +1 -1
- package/dist/runtime/scopedSlots.mjs +1 -1
- package/dist/runtime/selectorQuery.mjs +1 -1
- package/dist/runtime/template.mjs +1 -1
- package/dist/runtime/templateRefs/helpers.mjs +1 -1
- package/dist/runtime/templateRefs.mjs +1 -1
- package/dist/runtime/uniAppHost.mjs +1 -1
- package/dist/runtime/updatePerformance.mjs +1 -1
- package/dist/runtime/use.mjs +1 -1
- package/dist/runtime/vueCompat/context.mjs +1 -1
- package/dist/runtime/vueCompat/model.mjs +1 -1
- package/dist/runtime/vueCompat/router.mjs +1 -1
- package/dist/runtime/vueCompat/templateRef.mjs +1 -1
- package/dist/scheduler.mjs +1 -1
- package/dist/store/base.mjs +1 -1
- package/dist/store/define/create.mjs +1 -1
- package/dist/store/define.mjs +1 -1
- package/dist/store/view.mjs +1 -1
- package/package.json +7 -7
- /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/defineProperty.mjs +0 -0
- /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPrimitive.mjs +0 -0
- /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/toPropertyKey.mjs +0 -0
- /package/dist/_virtual/{_@oxc-project_runtime@0.150.0 → _@oxc-project_runtime@0.151.0}/helpers/esm/typeof.mjs +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.mjs","names":[],"sources":["../../../../../src/runtime/register/component/lifecycle.ts"],"sourcesContent":["import type { MiniProgramPageLike } from '../../../routerInternal/shared'\nimport type { ComponentPropsOptions, ComputedDefinitions, DefineComponentOptions, InternalRuntimeState, MethodDefinitions, RuntimeApp } from '../../types'\nimport type { WatchMap } from '../watch'\nimport {\n WEVU_ON_LOAD_CALLED_KEY,\n WEVU_READY_CALLED_KEY,\n WEVU_ROUTE_DONE_CALLED_KEY,\n} from '@weapp-core/constants'\nimport {\n cancelInitialNavigation,\n ensureInitialNavigation,\n} from '../../../router/initialNavigation'\nimport { notifyRouteStateSync } from '../../../router/routeSync'\nimport { runtimeCapabilityRegistry } from '../../capabilities'\nimport { callHookList } from '../../hooks'\nimport { runTeardownSteps } from '../../teardown'\nimport { enableDeferredSetData, mountRuntimeInstance, setRuntimeSetDataVisibility, teardownRuntimeInstance } from '../runtimeInstance'\nimport { attachOptionalPageLifecycleHooks } from './lifecycle/optionalHooks'\nimport { bindCurrentPageInstance, ensureMiniProgramGlobalPatched, ensurePageShareMenus, releaseCurrentPageInstance, resolvePageOptions } from './lifecycle/platform'\n\nexport function createPageLifecycleHooks<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(options: {\n runtimeApp: RuntimeApp<D, C, M>\n watch: WatchMap | undefined\n setup: DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup']\n userOnLoad?: any\n userOnUnload?: any\n userOnShow?: any\n userOnHide?: any\n userOnReady?: any\n isPage: boolean\n enableOnSaveExitState: boolean\n enableOnPullDownRefresh: boolean\n enableOnReachBottom: boolean\n enableOnPageScroll: boolean\n enableOnRouteDone: boolean\n enableOnRouteDoneFallback: boolean\n enableOnTabItemTap: boolean\n enableOnResize: boolean\n enableOnShareAppMessage: boolean\n enableOnShareTimeline: boolean\n enableOnAddToFavorites: boolean\n syncWevuPropsFromValues?: (instance: InternalRuntimeState, values: Record<string, unknown> | undefined) => void\n effectiveOnSaveExitState: (...args: any[]) => any\n effectiveOnPullDownRefresh: (...args: any[]) => any\n effectiveOnReachBottom: (...args: any[]) => any\n effectiveOnPageScroll: (...args: any[]) => any\n effectiveOnRouteDone: (...args: any[]) => any\n effectiveOnTabItemTap: (...args: any[]) => any\n effectiveOnResize: (...args: any[]) => any\n effectiveOnShareAppMessage: (...args: any[]) => any\n effectiveOnShareTimeline: (...args: any[]) => any\n effectiveOnAddToFavorites: (...args: any[]) => any\n hasHook: (target: InternalRuntimeState, name: string) => boolean\n}) {\n const {\n runtimeApp,\n watch,\n setup,\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n isPage,\n enableOnSaveExitState,\n enableOnPullDownRefresh,\n enableOnReachBottom,\n enableOnPageScroll,\n enableOnRouteDone,\n enableOnRouteDoneFallback,\n enableOnTabItemTap,\n enableOnResize,\n enableOnShareAppMessage,\n enableOnShareTimeline,\n enableOnAddToFavorites,\n syncWevuPropsFromValues,\n effectiveOnSaveExitState,\n effectiveOnPullDownRefresh,\n effectiveOnReachBottom,\n effectiveOnPageScroll,\n effectiveOnRouteDone,\n effectiveOnTabItemTap,\n effectiveOnResize,\n effectiveOnShareAppMessage,\n effectiveOnShareTimeline,\n effectiveOnAddToFavorites,\n hasHook,\n } = options\n const flushPageSnapshotIfPossible = (target: InternalRuntimeState) => {\n ;(target as any).__wevu?.__wevu_flushSetupSnapshotSync?.()\n }\n\n const pageLifecycleHooks: Record<string, any> = {\n onLoad(this: InternalRuntimeState, ...args: any[]) {\n if ((this as any)[WEVU_ON_LOAD_CALLED_KEY]) {\n return\n }\n ;(this as any)[WEVU_ON_LOAD_CALLED_KEY] = true\n const mountPage = () => {\n mountRuntimeInstance(this, runtimeApp, watch, setup)\n const pageOptions = args[0] && typeof args[0] === 'object'\n ? args[0]\n : resolvePageOptions(this)\n syncWevuPropsFromValues?.(this, pageOptions)\n flushPageSnapshotIfPossible(this)\n enableDeferredSetData(this)\n if (isPage) {\n ensurePageShareMenus({\n enableOnShareAppMessage,\n enableOnShareTimeline,\n })\n }\n callHookList(this, 'onLoad', args)\n if (typeof userOnLoad === 'function') {\n return userOnLoad.apply(this, args.length ? args : [pageOptions])\n }\n }\n\n const initialNavigationPromise = isPage\n ? ensureInitialNavigation(this as MiniProgramPageLike, args[0], {\n onComplete: (shouldMount) => {\n if (shouldMount) {\n mountPage()\n }\n },\n })\n : undefined\n if (initialNavigationPromise) {\n return initialNavigationPromise\n }\n return mountPage()\n },\n onUnload(this: InternalRuntimeState, ...args: any[]) {\n let result: unknown\n runTeardownSteps([\n () => cancelInitialNavigation(this as MiniProgramPageLike),\n () => {\n if (isPage) {\n releaseCurrentPageInstance(this)\n }\n },\n () => teardownRuntimeInstance(this),\n () => {\n if (typeof userOnUnload === 'function') {\n result = userOnUnload.apply(this, args)\n }\n },\n ])\n return result\n },\n onShow(this: InternalRuntimeState, ...args: any[]) {\n if (isPage) {\n ensureMiniProgramGlobalPatched()\n bindCurrentPageInstance(this)\n if (!(this as any)[WEVU_ON_LOAD_CALLED_KEY]) {\n pageLifecycleHooks.onLoad.call(this, resolvePageOptions(this))\n }\n syncWevuPropsFromValues?.(this, resolvePageOptions(this))\n flushPageSnapshotIfPossible(this)\n ensurePageShareMenus({\n enableOnShareAppMessage,\n enableOnShareTimeline,\n })\n ;(this as any)[WEVU_ROUTE_DONE_CALLED_KEY] = false\n }\n setRuntimeSetDataVisibility(this, true)\n if (isPage) {\n notifyRouteStateSync({\n page: this as MiniProgramPageLike,\n source: 'page',\n })\n }\n callHookList(this, 'onShow', args)\n if (typeof userOnShow === 'function') {\n return userOnShow.apply(this, args)\n }\n },\n onHide(this: InternalRuntimeState, ...args: any[]) {\n if (isPage) {\n releaseCurrentPageInstance(this)\n }\n setRuntimeSetDataVisibility(this, false)\n callHookList(this, 'onHide', args)\n if (typeof userOnHide === 'function') {\n return userOnHide.apply(this, args)\n }\n },\n onReady(this: InternalRuntimeState, ...args: any[]) {\n if (isPage) {\n if (!(this as any)[WEVU_ON_LOAD_CALLED_KEY]) {\n pageLifecycleHooks.onLoad.call(this, resolvePageOptions(this))\n }\n syncWevuPropsFromValues?.(this, resolvePageOptions(this))\n flushPageSnapshotIfPossible(this)\n ensurePageShareMenus({\n enableOnShareAppMessage,\n enableOnShareTimeline,\n })\n }\n // 兼容:部分平台/模式可能触发 Page.onReady,而非 Component lifetimes.ready\n if (!(this as any)[WEVU_READY_CALLED_KEY]) {\n ;(this as any)[WEVU_READY_CALLED_KEY] = true\n // 部分 IDE/基础库在首屏场景可能不派发 routeDone,这里做一次延迟兜底。\n // 若平台随后派发了真实 routeDone,会因为 __wevuRouteDoneCalled 判定而跳过补发。\n if (isPage && enableOnRouteDone && enableOnRouteDoneFallback) {\n // eslint-disable-next-line ts/no-this-alias\n const current = this\n setTimeout(() => {\n if (!(current as any)[WEVU_ROUTE_DONE_CALLED_KEY]) {\n pageLifecycleHooks.onRouteDone?.call(current)\n }\n }, 0)\n }\n const callReadyHooks = () => {\n callHookList(this, 'onReady', args)\n if (typeof userOnReady === 'function') {\n userOnReady.apply(this, args)\n }\n }\n const scheduleReadyHooks = () => {\n if (Array.isArray(this.__wevuTemplateRefs) && this.__wevuTemplateRefs.length > 0) {\n runtimeCapabilityRegistry.templateRefs?.schedule(this, callReadyHooks)\n return\n }\n callReadyHooks()\n }\n const initialNavigationPromise = isPage\n ? ensureInitialNavigation(this as MiniProgramPageLike, undefined, {\n start: false,\n onComplete: (shouldMount) => {\n if (shouldMount) {\n scheduleReadyHooks()\n }\n },\n })\n : undefined\n if (!initialNavigationPromise) {\n scheduleReadyHooks()\n }\n return\n }\n if (typeof userOnReady === 'function') {\n return userOnReady.apply(this, args)\n }\n },\n }\n\n attachOptionalPageLifecycleHooks(pageLifecycleHooks, {\n enableOnSaveExitState,\n enableOnPullDownRefresh,\n enableOnReachBottom,\n enableOnPageScroll,\n enableOnRouteDone,\n enableOnTabItemTap,\n enableOnResize,\n enableOnShareAppMessage,\n enableOnShareTimeline,\n enableOnAddToFavorites,\n effectiveOnSaveExitState,\n effectiveOnPullDownRefresh,\n effectiveOnReachBottom,\n effectiveOnPageScroll,\n effectiveOnRouteDone,\n effectiveOnTabItemTap,\n effectiveOnResize,\n effectiveOnShareAppMessage,\n effectiveOnShareTimeline,\n effectiveOnAddToFavorites,\n hasHook,\n })\n\n return pageLifecycleHooks\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lifecycle.mjs","names":[],"sources":["../../../../../src/runtime/register/component/lifecycle.ts"],"sourcesContent":["import type { MiniProgramPageLike } from '../../../routerInternal/shared'\nimport type { ComponentPropsOptions, ComputedDefinitions, DefineComponentOptions, InternalRuntimeState, MethodDefinitions, RuntimeApp } from '../../types'\nimport type { WatchMap } from '../watch'\nimport {\n WEVU_ON_LOAD_CALLED_KEY,\n WEVU_READY_CALLED_KEY,\n WEVU_ROUTE_DONE_CALLED_KEY,\n} from '@weapp-core/constants'\nimport { notifyRouteStateSync } from '../../../router/routeSync'\nimport { runtimeCapabilityRegistry } from '../../capabilities'\nimport { callHookList } from '../../hooks'\nimport { cancelInitialNavigation, ensureInitialNavigation } from '../../navigationLifecycle'\nimport { runTeardownSteps } from '../../teardown'\nimport { enableDeferredSetData, mountRuntimeInstance, setRuntimeSetDataVisibility, teardownRuntimeInstance } from '../runtimeInstance'\nimport { attachOptionalPageLifecycleHooks } from './lifecycle/optionalHooks'\nimport { bindCurrentPageInstance, ensureMiniProgramGlobalPatched, ensurePageShareMenus, releaseCurrentPageInstance, resolvePageOptions } from './lifecycle/platform'\n\nexport function createPageLifecycleHooks<D extends object, C extends ComputedDefinitions, M extends MethodDefinitions>(options: {\n runtimeApp: RuntimeApp<D, C, M>\n watch: WatchMap | undefined\n setup: DefineComponentOptions<ComponentPropsOptions, D, C, M>['setup']\n userOnLoad?: any\n userOnUnload?: any\n userOnShow?: any\n userOnHide?: any\n userOnReady?: any\n isPage: boolean\n enableOnSaveExitState: boolean\n enableOnPullDownRefresh: boolean\n enableOnReachBottom: boolean\n enableOnPageScroll: boolean\n enableOnRouteDone: boolean\n enableOnRouteDoneFallback: boolean\n enableOnTabItemTap: boolean\n enableOnResize: boolean\n enableOnShareAppMessage: boolean\n enableOnShareTimeline: boolean\n enableOnAddToFavorites: boolean\n syncWevuPropsFromValues?: (instance: InternalRuntimeState, values: Record<string, unknown> | undefined) => void\n effectiveOnSaveExitState: (...args: any[]) => any\n effectiveOnPullDownRefresh: (...args: any[]) => any\n effectiveOnReachBottom: (...args: any[]) => any\n effectiveOnPageScroll: (...args: any[]) => any\n effectiveOnRouteDone: (...args: any[]) => any\n effectiveOnTabItemTap: (...args: any[]) => any\n effectiveOnResize: (...args: any[]) => any\n effectiveOnShareAppMessage: (...args: any[]) => any\n effectiveOnShareTimeline: (...args: any[]) => any\n effectiveOnAddToFavorites: (...args: any[]) => any\n hasHook: (target: InternalRuntimeState, name: string) => boolean\n}) {\n const {\n runtimeApp,\n watch,\n setup,\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n isPage,\n enableOnSaveExitState,\n enableOnPullDownRefresh,\n enableOnReachBottom,\n enableOnPageScroll,\n enableOnRouteDone,\n enableOnRouteDoneFallback,\n enableOnTabItemTap,\n enableOnResize,\n enableOnShareAppMessage,\n enableOnShareTimeline,\n enableOnAddToFavorites,\n syncWevuPropsFromValues,\n effectiveOnSaveExitState,\n effectiveOnPullDownRefresh,\n effectiveOnReachBottom,\n effectiveOnPageScroll,\n effectiveOnRouteDone,\n effectiveOnTabItemTap,\n effectiveOnResize,\n effectiveOnShareAppMessage,\n effectiveOnShareTimeline,\n effectiveOnAddToFavorites,\n hasHook,\n } = options\n const flushPageSnapshotIfPossible = (target: InternalRuntimeState) => {\n ;(target as any).__wevu?.__wevu_flushSetupSnapshotSync?.()\n }\n\n const pageLifecycleHooks: Record<string, any> = {\n onLoad(this: InternalRuntimeState, ...args: any[]) {\n if ((this as any)[WEVU_ON_LOAD_CALLED_KEY]) {\n return\n }\n ;(this as any)[WEVU_ON_LOAD_CALLED_KEY] = true\n const mountPage = () => {\n mountRuntimeInstance(this, runtimeApp, watch, setup)\n const pageOptions = args[0] && typeof args[0] === 'object'\n ? args[0]\n : resolvePageOptions(this)\n syncWevuPropsFromValues?.(this, pageOptions)\n flushPageSnapshotIfPossible(this)\n enableDeferredSetData(this)\n if (isPage) {\n ensurePageShareMenus({\n enableOnShareAppMessage,\n enableOnShareTimeline,\n })\n }\n callHookList(this, 'onLoad', args)\n if (typeof userOnLoad === 'function') {\n return userOnLoad.apply(this, args.length ? args : [pageOptions])\n }\n }\n\n const initialNavigationPromise = isPage\n ? ensureInitialNavigation(this as MiniProgramPageLike, args[0], {\n onComplete: (shouldMount) => {\n if (shouldMount) {\n mountPage()\n }\n },\n })\n : undefined\n if (initialNavigationPromise) {\n return initialNavigationPromise\n }\n return mountPage()\n },\n onUnload(this: InternalRuntimeState, ...args: any[]) {\n let result: unknown\n runTeardownSteps([\n () => cancelInitialNavigation(this as MiniProgramPageLike),\n () => {\n if (isPage) {\n releaseCurrentPageInstance(this)\n }\n },\n () => teardownRuntimeInstance(this),\n () => {\n if (typeof userOnUnload === 'function') {\n result = userOnUnload.apply(this, args)\n }\n },\n ])\n return result\n },\n onShow(this: InternalRuntimeState, ...args: any[]) {\n if (isPage) {\n ensureMiniProgramGlobalPatched()\n bindCurrentPageInstance(this)\n if (!(this as any)[WEVU_ON_LOAD_CALLED_KEY]) {\n pageLifecycleHooks.onLoad.call(this, resolvePageOptions(this))\n }\n syncWevuPropsFromValues?.(this, resolvePageOptions(this))\n flushPageSnapshotIfPossible(this)\n ensurePageShareMenus({\n enableOnShareAppMessage,\n enableOnShareTimeline,\n })\n ;(this as any)[WEVU_ROUTE_DONE_CALLED_KEY] = false\n }\n setRuntimeSetDataVisibility(this, true)\n if (isPage) {\n notifyRouteStateSync({\n page: this as MiniProgramPageLike,\n source: 'page',\n })\n }\n callHookList(this, 'onShow', args)\n if (typeof userOnShow === 'function') {\n return userOnShow.apply(this, args)\n }\n },\n onHide(this: InternalRuntimeState, ...args: any[]) {\n if (isPage) {\n releaseCurrentPageInstance(this)\n }\n setRuntimeSetDataVisibility(this, false)\n callHookList(this, 'onHide', args)\n if (typeof userOnHide === 'function') {\n return userOnHide.apply(this, args)\n }\n },\n onReady(this: InternalRuntimeState, ...args: any[]) {\n if (isPage) {\n if (!(this as any)[WEVU_ON_LOAD_CALLED_KEY]) {\n pageLifecycleHooks.onLoad.call(this, resolvePageOptions(this))\n }\n syncWevuPropsFromValues?.(this, resolvePageOptions(this))\n flushPageSnapshotIfPossible(this)\n ensurePageShareMenus({\n enableOnShareAppMessage,\n enableOnShareTimeline,\n })\n }\n // 兼容:部分平台/模式可能触发 Page.onReady,而非 Component lifetimes.ready\n if (!(this as any)[WEVU_READY_CALLED_KEY]) {\n ;(this as any)[WEVU_READY_CALLED_KEY] = true\n // 部分 IDE/基础库在首屏场景可能不派发 routeDone,这里做一次延迟兜底。\n // 若平台随后派发了真实 routeDone,会因为 __wevuRouteDoneCalled 判定而跳过补发。\n if (isPage && enableOnRouteDone && enableOnRouteDoneFallback) {\n // eslint-disable-next-line ts/no-this-alias\n const current = this\n setTimeout(() => {\n if (!(current as any)[WEVU_ROUTE_DONE_CALLED_KEY]) {\n pageLifecycleHooks.onRouteDone?.call(current)\n }\n }, 0)\n }\n const callReadyHooks = () => {\n callHookList(this, 'onReady', args)\n if (typeof userOnReady === 'function') {\n userOnReady.apply(this, args)\n }\n }\n const scheduleReadyHooks = () => {\n if (Array.isArray(this.__wevuTemplateRefs) && this.__wevuTemplateRefs.length > 0) {\n runtimeCapabilityRegistry.templateRefs?.schedule(this, callReadyHooks)\n return\n }\n callReadyHooks()\n }\n const initialNavigationPromise = isPage\n ? ensureInitialNavigation(this as MiniProgramPageLike, undefined, {\n start: false,\n onComplete: (shouldMount) => {\n if (shouldMount) {\n scheduleReadyHooks()\n }\n },\n })\n : undefined\n if (!initialNavigationPromise) {\n scheduleReadyHooks()\n }\n return\n }\n if (typeof userOnReady === 'function') {\n return userOnReady.apply(this, args)\n }\n },\n }\n\n attachOptionalPageLifecycleHooks(pageLifecycleHooks, {\n enableOnSaveExitState,\n enableOnPullDownRefresh,\n enableOnReachBottom,\n enableOnPageScroll,\n enableOnRouteDone,\n enableOnTabItemTap,\n enableOnResize,\n enableOnShareAppMessage,\n enableOnShareTimeline,\n enableOnAddToFavorites,\n effectiveOnSaveExitState,\n effectiveOnPullDownRefresh,\n effectiveOnReachBottom,\n effectiveOnPageScroll,\n effectiveOnRouteDone,\n effectiveOnTabItemTap,\n effectiveOnResize,\n effectiveOnShareAppMessage,\n effectiveOnShareTimeline,\n effectiveOnAddToFavorites,\n hasHook,\n })\n\n return pageLifecycleHooks\n}\n"],"mappings":"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"}
|
|
@@ -1,32 +1,28 @@
|
|
|
1
1
|
import { requireRuntimeCapability, runtimeCapabilityRegistry } from "../../capabilities.mjs";
|
|
2
2
|
import { parseModelEventValue } from "../../internal.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { WEVU_INLINE_HANDLER, WEVU_INLINE_MAP_KEY, WEVU_JSX_ISLAND_HANDLER, WEVU_MODEL_HANDLER, WEVU_NATIVE_INSTANCE_KEY, WEVU_OWNER_HANDLER, WEVU_RESERVED_METHOD_PREFIX, WEVU_RUNTIME_KEY } from "@weapp-core/constants";
|
|
3
|
+
import { WEVU_INLINE_HANDLER, WEVU_INLINE_MAP_KEY, WEVU_MODEL_HANDLER, WEVU_NATIVE_INSTANCE_KEY, WEVU_OWNER_HANDLER, WEVU_RESERVED_METHOD_PREFIX, WEVU_RUNTIME_KEY } from "@weapp-core/constants";
|
|
5
4
|
|
|
6
5
|
//#region src/runtime/register/component/methods.ts
|
|
7
6
|
function createComponentMethods(options) {
|
|
8
7
|
const { userMethods, runtimeMethods } = options;
|
|
9
8
|
const finalMethods = { ...userMethods };
|
|
10
|
-
const runtimeMethodRecord = runtimeMethods
|
|
9
|
+
const runtimeMethodRecord = runtimeMethods ?? {};
|
|
11
10
|
const inlineMap = runtimeMethodRecord[WEVU_INLINE_MAP_KEY];
|
|
12
11
|
const inlineEvents = Object.prototype.hasOwnProperty.call(runtimeMethodRecord, WEVU_INLINE_MAP_KEY) && inlineMap && typeof inlineMap === "object" && Object.keys(inlineMap).length > 0 ? requireRuntimeCapability("inlineEvents", "createComponentMethods(inline event metadata)") : runtimeCapabilityRegistry.inlineEvents;
|
|
13
12
|
if (!finalMethods[WEVU_INLINE_HANDLER] && inlineEvents) finalMethods[WEVU_INLINE_HANDLER] = inlineEvents.handler;
|
|
14
13
|
if (!finalMethods[WEVU_MODEL_HANDLER]) finalMethods[WEVU_MODEL_HANDLER] = function __weapp_vite_model(event) {
|
|
15
|
-
|
|
16
|
-
const path = (_event$currentTarget$ = event === null || event === void 0 || (_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 || (_event$currentTarget = _event$currentTarget.dataset) === null || _event$currentTarget === void 0 ? void 0 : _event$currentTarget.wvModel) !== null && _event$currentTarget$ !== void 0 ? _event$currentTarget$ : event === null || event === void 0 || (_event$target = event.target) === null || _event$target === void 0 || (_event$target = _event$target.dataset) === null || _event$target === void 0 ? void 0 : _event$target.wvModel;
|
|
14
|
+
const path = event?.currentTarget?.dataset?.wvModel ?? event?.target?.dataset?.wvModel;
|
|
17
15
|
if (typeof path !== "string" || !path) return;
|
|
18
16
|
const runtime = this.__wevu;
|
|
19
17
|
if (!runtime || typeof runtime.bindModel !== "function") return;
|
|
20
18
|
const value = parseModelEventValue(event);
|
|
21
19
|
try {
|
|
22
20
|
runtime.bindModel(path).update(value);
|
|
23
|
-
} catch
|
|
21
|
+
} catch {}
|
|
24
22
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
28
|
-
if (!finalMethods[WEVU_OWNER_HANDLER] && typeof (runtimeMethods === null || runtimeMethods === void 0 ? void 0 : runtimeMethods[WEVU_OWNER_HANDLER]) === "function") finalMethods[WEVU_OWNER_HANDLER] = runtimeMethods[WEVU_OWNER_HANDLER];
|
|
29
|
-
const methodNames = Object.keys(runtimeMethods !== null && runtimeMethods !== void 0 ? runtimeMethods : {});
|
|
23
|
+
runtimeCapabilityRegistry.jsxIslands?.attachMethods(finalMethods);
|
|
24
|
+
if (!finalMethods[WEVU_OWNER_HANDLER] && typeof runtimeMethods?.[WEVU_OWNER_HANDLER] === "function") finalMethods[WEVU_OWNER_HANDLER] = runtimeMethods[WEVU_OWNER_HANDLER];
|
|
25
|
+
const methodNames = Object.keys(runtimeMethods ?? {});
|
|
30
26
|
function resolveRuntime(instance) {
|
|
31
27
|
const directRuntime = instance.__wevu;
|
|
32
28
|
if (directRuntime) return directRuntime;
|
|
@@ -34,17 +30,17 @@ function createComponentMethods(options) {
|
|
|
34
30
|
if (runtimeState && typeof runtimeState === "object") return runtimeState[WEVU_RUNTIME_KEY];
|
|
35
31
|
}
|
|
36
32
|
function syncRuntimeNativeInstance(runtime, instance) {
|
|
37
|
-
if (
|
|
38
|
-
const runtimeProxy = runtime
|
|
33
|
+
if (runtime?.proxy === instance) return;
|
|
34
|
+
const runtimeProxy = runtime?.proxy;
|
|
39
35
|
const isBridgeMethod = (methodName) => {
|
|
40
36
|
const instanceMethod = instance[methodName];
|
|
41
37
|
if (typeof instanceMethod !== "function") return false;
|
|
42
|
-
const proxyMethod = runtimeProxy
|
|
38
|
+
const proxyMethod = runtimeProxy?.[methodName];
|
|
43
39
|
return typeof proxyMethod === "function" && instanceMethod === proxyMethod;
|
|
44
40
|
};
|
|
45
41
|
if (isBridgeMethod("triggerEvent") || isBridgeMethod("createSelectorQuery") || isBridgeMethod("createIntersectionObserver") || isBridgeMethod("setData")) return;
|
|
46
42
|
if (!(typeof instance.triggerEvent === "function" || typeof instance.createSelectorQuery === "function" || typeof instance.createIntersectionObserver === "function" || typeof instance.setData === "function")) return;
|
|
47
|
-
const runtimeState = runtime
|
|
43
|
+
const runtimeState = runtime?.state;
|
|
48
44
|
if (!runtimeState || typeof runtimeState !== "object") return;
|
|
49
45
|
if (instance.$state === runtimeState) return;
|
|
50
46
|
try {
|
|
@@ -54,7 +50,7 @@ function createComponentMethods(options) {
|
|
|
54
50
|
enumerable: false,
|
|
55
51
|
writable: true
|
|
56
52
|
});
|
|
57
|
-
} catch
|
|
53
|
+
} catch {
|
|
58
54
|
runtimeState[WEVU_NATIVE_INSTANCE_KEY] = instance;
|
|
59
55
|
}
|
|
60
56
|
}
|
|
@@ -62,11 +58,10 @@ function createComponentMethods(options) {
|
|
|
62
58
|
if (methodName === WEVU_INLINE_MAP_KEY || methodName.startsWith(WEVU_RESERVED_METHOD_PREFIX)) continue;
|
|
63
59
|
const userMethod = finalMethods[methodName];
|
|
64
60
|
finalMethods[methodName] = function componentMethod(...args) {
|
|
65
|
-
var _runtime$methods;
|
|
66
61
|
const runtime = resolveRuntime(this);
|
|
67
62
|
syncRuntimeNativeInstance(runtime, this);
|
|
68
63
|
let result;
|
|
69
|
-
const bound = runtime
|
|
64
|
+
const bound = runtime?.methods?.[methodName];
|
|
70
65
|
if (bound) result = bound.apply(runtime.proxy, args);
|
|
71
66
|
if (typeof userMethod === "function") {
|
|
72
67
|
const userResult = userMethod.apply(this, args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"methods.mjs","names":[],"sources":["../../../../../src/runtime/register/component/methods.ts"],"sourcesContent":["import type { InternalRuntimeState, MethodDefinitions } from '../../types'\nimport {\n WEVU_INLINE_HANDLER,\n WEVU_INLINE_MAP_KEY,\n
|
|
1
|
+
{"version":3,"file":"methods.mjs","names":[],"sources":["../../../../../src/runtime/register/component/methods.ts"],"sourcesContent":["import type { InternalRuntimeState, MethodDefinitions } from '../../types'\nimport {\n WEVU_INLINE_HANDLER,\n WEVU_INLINE_MAP_KEY,\n WEVU_MODEL_HANDLER,\n WEVU_NATIVE_INSTANCE_KEY,\n WEVU_OWNER_HANDLER,\n WEVU_RESERVED_METHOD_PREFIX,\n WEVU_RUNTIME_KEY,\n} from '@weapp-core/constants'\nimport { requireRuntimeCapability, runtimeCapabilityRegistry } from '../../capabilities'\nimport { parseModelEventValue } from '../../internal'\n\nexport function createComponentMethods(options: {\n userMethods: Record<string, (...args: any[]) => any>\n runtimeMethods: MethodDefinitions\n}) {\n const { userMethods, runtimeMethods } = options\n const finalMethods: Record<string, (...args: any[]) => any> = {\n ...userMethods,\n }\n\n const runtimeMethodRecord = (runtimeMethods ?? {}) as Record<string, unknown>\n const inlineMap = runtimeMethodRecord[WEVU_INLINE_MAP_KEY]\n const requiresInlineEvents = Object.prototype.hasOwnProperty.call(runtimeMethodRecord, WEVU_INLINE_MAP_KEY)\n && inlineMap\n && typeof inlineMap === 'object'\n && Object.keys(inlineMap).length > 0\n const inlineEvents = requiresInlineEvents\n ? requireRuntimeCapability('inlineEvents', 'createComponentMethods(inline event metadata)')\n : runtimeCapabilityRegistry.inlineEvents\n if (!finalMethods[WEVU_INLINE_HANDLER] && inlineEvents) {\n finalMethods[WEVU_INLINE_HANDLER] = inlineEvents.handler\n }\n\n if (!finalMethods[WEVU_MODEL_HANDLER]) {\n finalMethods[WEVU_MODEL_HANDLER] = function __weapp_vite_model(this: InternalRuntimeState, event: any) {\n const path = event?.currentTarget?.dataset?.wvModel ?? event?.target?.dataset?.wvModel\n if (typeof path !== 'string' || !path) {\n return undefined\n }\n const runtime = (this as any).__wevu\n if (!runtime || typeof runtime.bindModel !== 'function') {\n return undefined\n }\n const value = parseModelEventValue(event)\n try {\n runtime.bindModel(path).update(value)\n }\n catch {\n // 忽略异常\n }\n return undefined\n }\n }\n\n runtimeCapabilityRegistry.jsxIslands?.attachMethods(finalMethods)\n\n if (!finalMethods[WEVU_OWNER_HANDLER] && typeof (runtimeMethods as any)?.[WEVU_OWNER_HANDLER] === 'function') {\n finalMethods[WEVU_OWNER_HANDLER] = (runtimeMethods as any)[WEVU_OWNER_HANDLER]\n }\n\n const methodNames = Object.keys(runtimeMethods ?? {})\n\n function resolveRuntime(instance: InternalRuntimeState) {\n const directRuntime = (instance as any).__wevu\n if (directRuntime) {\n return directRuntime\n }\n const runtimeState = (instance as any).$state\n if (runtimeState && typeof runtimeState === 'object') {\n return (runtimeState as any)[WEVU_RUNTIME_KEY]\n }\n return undefined\n }\n\n function syncRuntimeNativeInstance(runtime: any, instance: InternalRuntimeState) {\n if (runtime?.proxy === instance) {\n return\n }\n const runtimeProxy = runtime?.proxy as Record<string, any> | undefined\n const isBridgeMethod = (\n methodName: 'triggerEvent' | 'createSelectorQuery' | 'createIntersectionObserver' | 'setData',\n ) => {\n const instanceMethod = (instance as any)[methodName]\n if (typeof instanceMethod !== 'function') {\n return false\n }\n const proxyMethod = runtimeProxy?.[methodName]\n return typeof proxyMethod === 'function' && instanceMethod === proxyMethod\n }\n if (\n isBridgeMethod('triggerEvent')\n || isBridgeMethod('createSelectorQuery')\n || isBridgeMethod('createIntersectionObserver')\n || isBridgeMethod('setData')\n ) {\n return\n }\n const hasNativeApis = typeof (instance as any).triggerEvent === 'function'\n || typeof (instance as any).createSelectorQuery === 'function'\n || typeof (instance as any).createIntersectionObserver === 'function'\n || typeof (instance as any).setData === 'function'\n if (!hasNativeApis) {\n return\n }\n const runtimeState = runtime?.state\n if (!runtimeState || typeof runtimeState !== 'object') {\n return\n }\n if ((instance as any).$state === runtimeState) {\n return\n }\n try {\n Object.defineProperty(runtimeState, WEVU_NATIVE_INSTANCE_KEY, {\n value: instance,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n ;(runtimeState as any)[WEVU_NATIVE_INSTANCE_KEY] = instance\n }\n }\n\n for (const methodName of methodNames) {\n if (\n methodName === WEVU_INLINE_MAP_KEY\n || methodName.startsWith(WEVU_RESERVED_METHOD_PREFIX)\n ) {\n continue\n }\n const userMethod = finalMethods[methodName]\n finalMethods[methodName] = function componentMethod(this: InternalRuntimeState, ...args: any[]) {\n const runtime = resolveRuntime(this)\n // 事件/方法实际调用时 this 可能是 DevTools 或平台包装后的实例,\n // 这里实时同步,避免 mounted 时缓存的实例与当前调用实例不一致。\n syncRuntimeNativeInstance(runtime, this)\n let result: unknown\n const bound = runtime?.methods?.[methodName]\n if (bound) {\n result = bound.apply(runtime.proxy, args)\n }\n if (typeof userMethod === 'function') {\n const userResult = userMethod.apply(this, args)\n return userResult === undefined ? result : userResult\n }\n return result\n }\n }\n\n return {\n finalMethods,\n }\n}\n"],"mappings":";;;;;AAaA,SAAgB,uBAAuB,SAGpC;CACD,MAAM,EAAE,aAAa,mBAAmB;CACxC,MAAM,eAAwD,EAC5D,GAAG,YACL;CAEA,MAAM,sBAAuB,kBAAkB,CAAC;CAChD,MAAM,YAAY,oBAAoB;CAKtC,MAAM,eAJuB,OAAO,UAAU,eAAe,KAAK,qBAAqB,mBAAmB,KACrG,aACA,OAAO,cAAc,YACrB,OAAO,KAAK,SAAS,CAAC,CAAC,SAAS,IAEjC,yBAAyB,gBAAgB,+CAA+C,IACxF,0BAA0B;CAC9B,IAAI,CAAC,aAAa,wBAAwB,cACxC,aAAa,uBAAuB,aAAa;CAGnD,IAAI,CAAC,aAAa,qBAChB,aAAa,sBAAsB,SAAS,mBAA+C,OAAY;EACrG,MAAM,OAAO,OAAO,eAAe,SAAS,WAAW,OAAO,QAAQ,SAAS;EAC/E,IAAI,OAAO,SAAS,YAAY,CAAC,MAC/B;EAEF,MAAM,UAAW,KAAa;EAC9B,IAAI,CAAC,WAAW,OAAO,QAAQ,cAAc,YAC3C;EAEF,MAAM,QAAQ,qBAAqB,KAAK;EACxC,IAAI;GACF,QAAQ,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK;EACtC,QACM,CAEN;CAEF;CAGF,0BAA0B,YAAY,cAAc,YAAY;CAEhE,IAAI,CAAC,aAAa,uBAAuB,OAAQ,iBAAyB,wBAAwB,YAChG,aAAa,sBAAuB,eAAuB;CAG7D,MAAM,cAAc,OAAO,KAAK,kBAAkB,CAAC,CAAC;CAEpD,SAAS,eAAe,UAAgC;EACtD,MAAM,gBAAiB,SAAiB;EACxC,IAAI,eACF,OAAO;EAET,MAAM,eAAgB,SAAiB;EACvC,IAAI,gBAAgB,OAAO,iBAAiB,UAC1C,OAAQ,aAAqB;CAGjC;CAEA,SAAS,0BAA0B,SAAc,UAAgC;EAC/E,IAAI,SAAS,UAAU,UACrB;EAEF,MAAM,eAAe,SAAS;EAC9B,MAAM,kBACJ,eACG;GACH,MAAM,iBAAkB,SAAiB;GACzC,IAAI,OAAO,mBAAmB,YAC5B,OAAO;GAET,MAAM,cAAc,eAAe;GACnC,OAAO,OAAO,gBAAgB,cAAc,mBAAmB;EACjE;EACA,IACE,eAAe,cAAc,KAC1B,eAAe,qBAAqB,KACpC,eAAe,4BAA4B,KAC3C,eAAe,SAAS,GAE3B;EAMF,IAAI,EAJkB,OAAQ,SAAiB,iBAAiB,cAC3D,OAAQ,SAAiB,wBAAwB,cACjD,OAAQ,SAAiB,+BAA+B,cACxD,OAAQ,SAAiB,YAAY,aAExC;EAEF,MAAM,eAAe,SAAS;EAC9B,IAAI,CAAC,gBAAgB,OAAO,iBAAiB,UAC3C;EAEF,IAAK,SAAiB,WAAW,cAC/B;EAEF,IAAI;GACF,OAAO,eAAe,cAAc,0BAA0B;IAC5D,OAAO;IACP,cAAc;IACd,YAAY;IACZ,UAAU;GACZ,CAAC;EACH,QACM;GACH,AAAC,aAAqB,4BAA4B;EACrD;CACF;CAEA,KAAK,MAAM,cAAc,aAAa;EACpC,IACE,eAAe,uBACZ,WAAW,WAAW,2BAA2B,GAEpD;EAEF,MAAM,aAAa,aAAa;EAChC,aAAa,cAAc,SAAS,gBAA4C,GAAG,MAAa;GAC9F,MAAM,UAAU,eAAe,IAAI;GAGnC,0BAA0B,SAAS,IAAI;GACvC,IAAI;GACJ,MAAM,QAAQ,SAAS,UAAU;GACjC,IAAI,OACF,SAAS,MAAM,MAAM,QAAQ,OAAO,IAAI;GAE1C,IAAI,OAAO,eAAe,YAAY;IACpC,MAAM,aAAa,WAAW,MAAM,MAAM,IAAI;IAC9C,OAAO,eAAe,SAAY,SAAS;GAC7C;GACA,OAAO;EACT;CACF;CAEA,OAAO,EACL,aACF;AACF"}
|
|
@@ -24,7 +24,6 @@ function getRuntimeOwnerLabel(instance) {
|
|
|
24
24
|
return "unknown";
|
|
25
25
|
}
|
|
26
26
|
function prepareComponentOptions(mpOptions) {
|
|
27
|
-
var _features;
|
|
28
27
|
const { methods: userMethods = {}, lifetimes: userLifetimes = {}, pageLifetimes: userPageLifetimes = {}, options: userOptions = {}, ...rest } = mpOptions;
|
|
29
28
|
const userOnLoad = rest.onLoad;
|
|
30
29
|
const userOnUnload = rest.onUnload;
|
|
@@ -41,7 +40,7 @@ function prepareComponentOptions(mpOptions) {
|
|
|
41
40
|
const userOnShareAppMessage = rest.onShareAppMessage;
|
|
42
41
|
const userOnShareTimeline = rest.onShareTimeline;
|
|
43
42
|
const userOnAddToFavorites = rest.onAddToFavorites;
|
|
44
|
-
const features =
|
|
43
|
+
const features = rest.features ?? {};
|
|
45
44
|
const hasPageOnlyHooks = [
|
|
46
45
|
userOnLoad,
|
|
47
46
|
userOnUnload,
|
|
@@ -59,7 +58,7 @@ function prepareComponentOptions(mpOptions) {
|
|
|
59
58
|
userOnShareTimeline,
|
|
60
59
|
userOnAddToFavorites
|
|
61
60
|
].some((hook) => typeof hook === "function");
|
|
62
|
-
const isPage = hasOwn(rest, "__wevu_isPage") ? rest.__wevu_isPage === true : Object.keys(features
|
|
61
|
+
const isPage = hasOwn(rest, "__wevu_isPage") ? rest.__wevu_isPage === true : Object.keys(features ?? {}).length > 0 || hasPageOnlyHooks;
|
|
63
62
|
const restOptions = { ...rest };
|
|
64
63
|
const preservedInstanceFieldKeys = /* @__PURE__ */ new Set([
|
|
65
64
|
"data",
|
|
@@ -99,7 +98,7 @@ function prepareComponentOptions(mpOptions) {
|
|
|
99
98
|
if (hasOwn(instance, key)) continue;
|
|
100
99
|
try {
|
|
101
100
|
instance[key] = cloneInstanceFieldValue(value);
|
|
102
|
-
} catch
|
|
101
|
+
} catch {}
|
|
103
102
|
}
|
|
104
103
|
};
|
|
105
104
|
const moveToMethodsExcludes = /* @__PURE__ */ new Set([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.mjs","names":[],"sources":["../../../../../src/runtime/register/component/options.ts"],"sourcesContent":["import type { LayoutHostBinding, TemplateRefBinding } from '../../capabilities'\nimport type { InternalRuntimeState, MiniProgramComponentRawOptions, PageFeatures } from '../../types'\nimport { WEVU_COMPONENT_NAME_KEY, WEVU_PROPS_ALIASES_KEY, WEVU_PROPS_DERIVED_KEYS_KEY } from '@weapp-core/constants'\nimport { hasOwn } from '../../../utils'\n\ninterface PreparedComponentOptions {\n userMethods: Record<string, (...args: any[]) => any>\n userLifetimes: Record<string, any>\n userPageLifetimes: Record<string, any>\n userOptions: Record<string, any>\n restOptions: Record<string, any>\n topLevelMethods: Record<string, (...args: any[]) => any>\n templateRefs: TemplateRefBinding[] | undefined\n layoutHosts: LayoutHostBinding[] | undefined\n propsAliases: Record<string, string> | undefined\n propsDerivedKeys: string[] | undefined\n userObservers: Record<string, any> | undefined\n setupLifecycle: 'created' | 'attached'\n vueLifecycles: Record<string, unknown>\n isPage: boolean\n features: PageFeatures\n userOnLoad: any\n userOnUnload: any\n userOnShow: any\n userOnHide: any\n userOnReady: any\n userOnSaveExitState: any\n userOnPullDownRefresh: any\n userOnReachBottom: any\n userOnPageScroll: any\n userOnRouteDone: any\n userOnTabItemTap: any\n userOnResize: any\n userOnShareAppMessage: any\n userOnShareTimeline: any\n userOnAddToFavorites: any\n applyExtraInstanceFields: (instance: InternalRuntimeState) => void\n}\n\nfunction cloneInstanceFieldValue(value: unknown, cache = new WeakMap<object, unknown>()): unknown {\n if (!value || typeof value !== 'object') {\n return value\n }\n if (cache.has(value as object)) {\n return cache.get(value as object)\n }\n if (Array.isArray(value)) {\n const next: unknown[] = []\n cache.set(value, next)\n for (const item of value) {\n next.push(cloneInstanceFieldValue(item, cache))\n }\n return next\n }\n const next: Record<string, unknown> = {}\n cache.set(value as object, next)\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n next[key] = cloneInstanceFieldValue(child, cache)\n }\n return next\n}\n\nexport function getRuntimeOwnerLabel(instance: InternalRuntimeState) {\n const route = (instance as any).route\n if (typeof route === 'string' && route) {\n return route\n }\n const is = (instance as any).is\n if (typeof is === 'string' && is) {\n return is\n }\n return 'unknown'\n}\n\nexport function prepareComponentOptions(mpOptions: MiniProgramComponentRawOptions): PreparedComponentOptions {\n const {\n methods: userMethods = {},\n lifetimes: userLifetimes = {},\n pageLifetimes: userPageLifetimes = {},\n options: userOptions = {},\n ...rest\n } = mpOptions\n\n const userOnLoad = (rest as any).onLoad\n const userOnUnload = (rest as any).onUnload\n const userOnShow = (rest as any).onShow\n const userOnHide = (rest as any).onHide\n const userOnReady = (rest as any).onReady\n const userOnSaveExitState = (rest as any).onSaveExitState\n const userOnPullDownRefresh = (rest as any).onPullDownRefresh\n const userOnReachBottom = (rest as any).onReachBottom\n const userOnPageScroll = (rest as any).onPageScroll\n const userOnRouteDone = (rest as any).onRouteDone\n const userOnTabItemTap = (rest as any).onTabItemTap\n const userOnResize = (rest as any).onResize\n const userOnShareAppMessage = (rest as any).onShareAppMessage\n const userOnShareTimeline = (rest as any).onShareTimeline\n const userOnAddToFavorites = (rest as any).onAddToFavorites\n const features = ((rest as any).features ?? {}) as PageFeatures\n const hasPageOnlyHooks = [\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n ].some(hook => typeof hook === 'function')\n const isPage = hasOwn(rest, '__wevu_isPage')\n ? (rest as any).__wevu_isPage === true\n : Object.keys(features ?? {}).length > 0 || hasPageOnlyHooks\n\n const restOptions: Record<string, any> = {\n ...(rest as any),\n }\n const preservedInstanceFieldKeys = new Set([\n 'data',\n 'behaviors',\n 'relations',\n 'externalClasses',\n 'options',\n 'properties',\n 'observers',\n 'pureDataPattern',\n 'virtualHost',\n 'definitionFilter',\n 'export',\n '__wevuTemplateRefs',\n '__wevuLayoutHosts',\n WEVU_PROPS_ALIASES_KEY,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n 'setupLifecycle',\n 'features',\n '__wevu_isPage',\n ])\n const extraInstanceFieldEntries: Array<[string, unknown]> = []\n for (const [key, value] of Object.entries(restOptions)) {\n if (preservedInstanceFieldKeys.has(key)) {\n continue\n }\n if (typeof value === 'function') {\n continue\n }\n extraInstanceFieldEntries.push([key, value])\n delete restOptions[key]\n }\n\n const applyExtraInstanceFields = (instance: InternalRuntimeState) => {\n const componentName = (mpOptions as Record<string, unknown>).name\n if (typeof componentName === 'string' && componentName) {\n Object.defineProperty(instance, WEVU_COMPONENT_NAME_KEY, {\n configurable: true,\n enumerable: false,\n value: componentName,\n })\n }\n for (const [key, value] of extraInstanceFieldEntries) {\n if (hasOwn(instance, key)) {\n continue\n }\n try {\n ;(instance as any)[key] = cloneInstanceFieldValue(value)\n }\n catch {\n // 忽略实例字段注入失败,避免阻断生命周期。\n }\n }\n }\n\n const moveToMethodsExcludes = new Set([\n 'data',\n 'export',\n 'definitionFilter',\n 'onLoad',\n 'onUnload',\n 'onShow',\n 'onHide',\n 'onReady',\n 'onSaveExitState',\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onPageScroll',\n 'onRouteDone',\n 'onTabItemTap',\n 'onResize',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUnmount',\n 'beforeDestroy',\n 'unmounted',\n 'destroyed',\n ])\n const topLevelMethods: Record<string, (...args: any[]) => any> = {}\n for (const [key, value] of Object.entries(restOptions)) {\n if (typeof value !== 'function' || moveToMethodsExcludes.has(key)) {\n continue\n }\n topLevelMethods[key] = value as (...args: any[]) => any\n delete restOptions[key]\n }\n const templateRefs = (restOptions as any).__wevuTemplateRefs as TemplateRefBinding[] | undefined\n delete (restOptions as any).__wevuTemplateRefs\n const layoutHosts = (restOptions as any).__wevuLayoutHosts as LayoutHostBinding[] | undefined\n delete (restOptions as any).__wevuLayoutHosts\n const propsAliases = (restOptions as any)[WEVU_PROPS_ALIASES_KEY] as Record<string, string> | undefined\n delete (restOptions as any)[WEVU_PROPS_ALIASES_KEY]\n const propsDerivedKeys = (restOptions as any)[WEVU_PROPS_DERIVED_KEYS_KEY] as string[] | undefined\n delete (restOptions as any)[WEVU_PROPS_DERIVED_KEYS_KEY]\n const userObservers = (restOptions as any).observers as Record<string, any> | undefined\n const setupLifecycle = (restOptions as any).setupLifecycle === 'created' ? 'created' : 'attached'\n delete (restOptions as any).setupLifecycle\n const vueLifecycles: Record<string, any> = {}\n for (const key of [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUnmount',\n 'beforeDestroy',\n 'unmounted',\n 'destroyed',\n ]) {\n vueLifecycles[key] = restOptions[key]\n }\n delete restOptions.features\n for (const key of Object.keys(vueLifecycles)) {\n delete restOptions[key]\n }\n delete restOptions.onLoad\n delete restOptions.onUnload\n delete restOptions.onShow\n delete restOptions.onHide\n delete restOptions.onReady\n\n return {\n userMethods,\n userLifetimes,\n userPageLifetimes,\n userOptions,\n restOptions,\n topLevelMethods,\n templateRefs,\n layoutHosts,\n propsAliases,\n propsDerivedKeys,\n userObservers,\n setupLifecycle,\n vueLifecycles,\n isPage,\n features,\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n applyExtraInstanceFields,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"options.mjs","names":[],"sources":["../../../../../src/runtime/register/component/options.ts"],"sourcesContent":["import type { LayoutHostBinding, TemplateRefBinding } from '../../capabilities'\nimport type { InternalRuntimeState, MiniProgramComponentRawOptions, PageFeatures } from '../../types'\nimport { WEVU_COMPONENT_NAME_KEY, WEVU_PROPS_ALIASES_KEY, WEVU_PROPS_DERIVED_KEYS_KEY } from '@weapp-core/constants'\nimport { hasOwn } from '../../../utils'\n\ninterface PreparedComponentOptions {\n userMethods: Record<string, (...args: any[]) => any>\n userLifetimes: Record<string, any>\n userPageLifetimes: Record<string, any>\n userOptions: Record<string, any>\n restOptions: Record<string, any>\n topLevelMethods: Record<string, (...args: any[]) => any>\n templateRefs: TemplateRefBinding[] | undefined\n layoutHosts: LayoutHostBinding[] | undefined\n propsAliases: Record<string, string> | undefined\n propsDerivedKeys: string[] | undefined\n userObservers: Record<string, any> | undefined\n setupLifecycle: 'created' | 'attached'\n vueLifecycles: Record<string, unknown>\n isPage: boolean\n features: PageFeatures\n userOnLoad: any\n userOnUnload: any\n userOnShow: any\n userOnHide: any\n userOnReady: any\n userOnSaveExitState: any\n userOnPullDownRefresh: any\n userOnReachBottom: any\n userOnPageScroll: any\n userOnRouteDone: any\n userOnTabItemTap: any\n userOnResize: any\n userOnShareAppMessage: any\n userOnShareTimeline: any\n userOnAddToFavorites: any\n applyExtraInstanceFields: (instance: InternalRuntimeState) => void\n}\n\nfunction cloneInstanceFieldValue(value: unknown, cache = new WeakMap<object, unknown>()): unknown {\n if (!value || typeof value !== 'object') {\n return value\n }\n if (cache.has(value as object)) {\n return cache.get(value as object)\n }\n if (Array.isArray(value)) {\n const next: unknown[] = []\n cache.set(value, next)\n for (const item of value) {\n next.push(cloneInstanceFieldValue(item, cache))\n }\n return next\n }\n const next: Record<string, unknown> = {}\n cache.set(value as object, next)\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n next[key] = cloneInstanceFieldValue(child, cache)\n }\n return next\n}\n\nexport function getRuntimeOwnerLabel(instance: InternalRuntimeState) {\n const route = (instance as any).route\n if (typeof route === 'string' && route) {\n return route\n }\n const is = (instance as any).is\n if (typeof is === 'string' && is) {\n return is\n }\n return 'unknown'\n}\n\nexport function prepareComponentOptions(mpOptions: MiniProgramComponentRawOptions): PreparedComponentOptions {\n const {\n methods: userMethods = {},\n lifetimes: userLifetimes = {},\n pageLifetimes: userPageLifetimes = {},\n options: userOptions = {},\n ...rest\n } = mpOptions\n\n const userOnLoad = (rest as any).onLoad\n const userOnUnload = (rest as any).onUnload\n const userOnShow = (rest as any).onShow\n const userOnHide = (rest as any).onHide\n const userOnReady = (rest as any).onReady\n const userOnSaveExitState = (rest as any).onSaveExitState\n const userOnPullDownRefresh = (rest as any).onPullDownRefresh\n const userOnReachBottom = (rest as any).onReachBottom\n const userOnPageScroll = (rest as any).onPageScroll\n const userOnRouteDone = (rest as any).onRouteDone\n const userOnTabItemTap = (rest as any).onTabItemTap\n const userOnResize = (rest as any).onResize\n const userOnShareAppMessage = (rest as any).onShareAppMessage\n const userOnShareTimeline = (rest as any).onShareTimeline\n const userOnAddToFavorites = (rest as any).onAddToFavorites\n const features = ((rest as any).features ?? {}) as PageFeatures\n const hasPageOnlyHooks = [\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n ].some(hook => typeof hook === 'function')\n const isPage = hasOwn(rest, '__wevu_isPage')\n ? (rest as any).__wevu_isPage === true\n : Object.keys(features ?? {}).length > 0 || hasPageOnlyHooks\n\n const restOptions: Record<string, any> = {\n ...(rest as any),\n }\n const preservedInstanceFieldKeys = new Set([\n 'data',\n 'behaviors',\n 'relations',\n 'externalClasses',\n 'options',\n 'properties',\n 'observers',\n 'pureDataPattern',\n 'virtualHost',\n 'definitionFilter',\n 'export',\n '__wevuTemplateRefs',\n '__wevuLayoutHosts',\n WEVU_PROPS_ALIASES_KEY,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n 'setupLifecycle',\n 'features',\n '__wevu_isPage',\n ])\n const extraInstanceFieldEntries: Array<[string, unknown]> = []\n for (const [key, value] of Object.entries(restOptions)) {\n if (preservedInstanceFieldKeys.has(key)) {\n continue\n }\n if (typeof value === 'function') {\n continue\n }\n extraInstanceFieldEntries.push([key, value])\n delete restOptions[key]\n }\n\n const applyExtraInstanceFields = (instance: InternalRuntimeState) => {\n const componentName = (mpOptions as Record<string, unknown>).name\n if (typeof componentName === 'string' && componentName) {\n Object.defineProperty(instance, WEVU_COMPONENT_NAME_KEY, {\n configurable: true,\n enumerable: false,\n value: componentName,\n })\n }\n for (const [key, value] of extraInstanceFieldEntries) {\n if (hasOwn(instance, key)) {\n continue\n }\n try {\n ;(instance as any)[key] = cloneInstanceFieldValue(value)\n }\n catch {\n // 忽略实例字段注入失败,避免阻断生命周期。\n }\n }\n }\n\n const moveToMethodsExcludes = new Set([\n 'data',\n 'export',\n 'definitionFilter',\n 'onLoad',\n 'onUnload',\n 'onShow',\n 'onHide',\n 'onReady',\n 'onSaveExitState',\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onPageScroll',\n 'onRouteDone',\n 'onTabItemTap',\n 'onResize',\n 'onShareAppMessage',\n 'onShareTimeline',\n 'onAddToFavorites',\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUnmount',\n 'beforeDestroy',\n 'unmounted',\n 'destroyed',\n ])\n const topLevelMethods: Record<string, (...args: any[]) => any> = {}\n for (const [key, value] of Object.entries(restOptions)) {\n if (typeof value !== 'function' || moveToMethodsExcludes.has(key)) {\n continue\n }\n topLevelMethods[key] = value as (...args: any[]) => any\n delete restOptions[key]\n }\n const templateRefs = (restOptions as any).__wevuTemplateRefs as TemplateRefBinding[] | undefined\n delete (restOptions as any).__wevuTemplateRefs\n const layoutHosts = (restOptions as any).__wevuLayoutHosts as LayoutHostBinding[] | undefined\n delete (restOptions as any).__wevuLayoutHosts\n const propsAliases = (restOptions as any)[WEVU_PROPS_ALIASES_KEY] as Record<string, string> | undefined\n delete (restOptions as any)[WEVU_PROPS_ALIASES_KEY]\n const propsDerivedKeys = (restOptions as any)[WEVU_PROPS_DERIVED_KEYS_KEY] as string[] | undefined\n delete (restOptions as any)[WEVU_PROPS_DERIVED_KEYS_KEY]\n const userObservers = (restOptions as any).observers as Record<string, any> | undefined\n const setupLifecycle = (restOptions as any).setupLifecycle === 'created' ? 'created' : 'attached'\n delete (restOptions as any).setupLifecycle\n const vueLifecycles: Record<string, any> = {}\n for (const key of [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUnmount',\n 'beforeDestroy',\n 'unmounted',\n 'destroyed',\n ]) {\n vueLifecycles[key] = restOptions[key]\n }\n delete restOptions.features\n for (const key of Object.keys(vueLifecycles)) {\n delete restOptions[key]\n }\n delete restOptions.onLoad\n delete restOptions.onUnload\n delete restOptions.onShow\n delete restOptions.onHide\n delete restOptions.onReady\n\n return {\n userMethods,\n userLifetimes,\n userPageLifetimes,\n userOptions,\n restOptions,\n topLevelMethods,\n templateRefs,\n layoutHosts,\n propsAliases,\n propsDerivedKeys,\n userObservers,\n setupLifecycle,\n vueLifecycles,\n isPage,\n features,\n userOnLoad,\n userOnUnload,\n userOnShow,\n userOnHide,\n userOnReady,\n userOnSaveExitState,\n userOnPullDownRefresh,\n userOnReachBottom,\n userOnPageScroll,\n userOnRouteDone,\n userOnTabItemTap,\n userOnResize,\n userOnShareAppMessage,\n userOnShareTimeline,\n userOnAddToFavorites,\n applyExtraInstanceFields,\n }\n}\n"],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ function createPropsSync(options) {
|
|
|
8
8
|
const { restOptions, propsAliases, propsDerivedKeys, userObservers } = options;
|
|
9
9
|
const propKeys = restOptions.properties && typeof restOptions.properties === "object" ? Object.keys(restOptions.properties) : [];
|
|
10
10
|
const propKeySet = new Set(propKeys);
|
|
11
|
-
const propsDerivedKeySet = new Set(propsDerivedKeys
|
|
12
|
-
const aliasEntries = Object.entries(propsAliases
|
|
11
|
+
const propsDerivedKeySet = new Set(propsDerivedKeys ?? []);
|
|
12
|
+
const aliasEntries = Object.entries(propsAliases ?? {}).filter(([alias, propName]) => alias && propName);
|
|
13
13
|
const templateRuntimePropKeys = /* @__PURE__ */ new Set([
|
|
14
14
|
WEVU_SLOT_NAMES_PROP,
|
|
15
15
|
WEVU_SLOT_OWNER_ID_PROP,
|
|
@@ -19,8 +19,7 @@ function createPropsSync(options) {
|
|
|
19
19
|
const syncedAliases = /* @__PURE__ */ new WeakMap();
|
|
20
20
|
const isInternalAttrKey = (key) => key.startsWith("__wv_");
|
|
21
21
|
const updateSnapshotOmitKeys = (instance) => {
|
|
22
|
-
const
|
|
23
|
-
const snapshotOmitKeys = runtime === null || runtime === void 0 ? void 0 : runtime[WEVU_PROPS_DERIVED_KEYS_KEY];
|
|
22
|
+
const snapshotOmitKeys = instance.__wevu?.[WEVU_PROPS_DERIVED_KEYS_KEY];
|
|
24
23
|
if (!(snapshotOmitKeys instanceof Set)) return;
|
|
25
24
|
for (const key of directPropsDerivedKeys) snapshotOmitKeys.add(key);
|
|
26
25
|
};
|
|
@@ -34,29 +33,27 @@ function createPropsSync(options) {
|
|
|
34
33
|
return setIfChanged(target, key, value);
|
|
35
34
|
};
|
|
36
35
|
const syncTemplateRuntimeProp = (instance, key, value) => {
|
|
37
|
-
var _wevu;
|
|
38
36
|
if (!templateRuntimePropKeys.has(key)) return;
|
|
39
37
|
let nativeDataChanged = false;
|
|
40
|
-
const runtimeState =
|
|
38
|
+
const runtimeState = instance.__wevu?.state;
|
|
41
39
|
try {
|
|
42
40
|
if (runtimeState && typeof runtimeState === "object") setPropIfChanged(runtimeState, key, value);
|
|
43
41
|
const nativeData = instance.data;
|
|
44
42
|
if (nativeData && typeof nativeData === "object") nativeDataChanged = setPropIfChanged(nativeData, key, value);
|
|
45
|
-
} catch
|
|
43
|
+
} catch {}
|
|
46
44
|
if (!nativeDataChanged || typeof instance.setData !== "function") return;
|
|
47
45
|
try {
|
|
48
46
|
instance.setData({ [key]: value });
|
|
49
|
-
} catch
|
|
47
|
+
} catch {}
|
|
50
48
|
};
|
|
51
49
|
const syncSetupStatePropsAliases = (instance, propsProxy) => {
|
|
52
|
-
var _syncedAliases$get;
|
|
53
50
|
if (!aliasEntries.length) return;
|
|
54
51
|
const runtime = instance.__wevu;
|
|
55
|
-
const setupState = runtime
|
|
56
|
-
const state = runtime
|
|
52
|
+
const setupState = runtime?.setupState;
|
|
53
|
+
const state = runtime?.state;
|
|
57
54
|
if (!setupState || typeof setupState !== "object") return;
|
|
58
55
|
updateSnapshotOmitKeys(instance);
|
|
59
|
-
const aliases =
|
|
56
|
+
const aliases = syncedAliases.get(instance) ?? /* @__PURE__ */ new Set();
|
|
60
57
|
syncedAliases.set(instance, aliases);
|
|
61
58
|
for (const [alias, propName] of aliasEntries) {
|
|
62
59
|
if (hasOwn(setupState, alias) && !aliases.has(alias)) continue;
|
|
@@ -64,26 +61,24 @@ function createPropsSync(options) {
|
|
|
64
61
|
try {
|
|
65
62
|
setIfChanged(setupState, alias, value);
|
|
66
63
|
aliases.add(alias);
|
|
67
|
-
} catch
|
|
64
|
+
} catch {}
|
|
68
65
|
if (state && typeof state === "object" && (!hasOwn(state, alias) || aliases.has(alias))) try {
|
|
69
66
|
setIfChanged(state, alias, value);
|
|
70
|
-
} catch
|
|
67
|
+
} catch {}
|
|
71
68
|
}
|
|
72
69
|
};
|
|
73
70
|
const syncPropsDerivedKeys = (instance, propsProxy) => {
|
|
74
71
|
if (!propsDerivedKeySet.size) return;
|
|
75
|
-
const
|
|
76
|
-
const setupState = runtime === null || runtime === void 0 ? void 0 : runtime.setupState;
|
|
72
|
+
const setupState = instance.__wevu?.setupState;
|
|
77
73
|
if (!setupState || typeof setupState !== "object") return;
|
|
78
74
|
updateSnapshotOmitKeys(instance);
|
|
79
75
|
const aliasToPropName = new Map(aliasEntries);
|
|
80
76
|
for (const key of propsDerivedKeySet) {
|
|
81
|
-
|
|
82
|
-
const propName = (_aliasToPropName$get = aliasToPropName.get(key)) !== null && _aliasToPropName$get !== void 0 ? _aliasToPropName$get : key;
|
|
77
|
+
const propName = aliasToPropName.get(key) ?? key;
|
|
83
78
|
if (!hasOwn(propsProxy, propName)) continue;
|
|
84
79
|
try {
|
|
85
80
|
setIfChanged(setupState, key, propsProxy[propName]);
|
|
86
|
-
} catch
|
|
81
|
+
} catch {}
|
|
87
82
|
}
|
|
88
83
|
};
|
|
89
84
|
const attachWevuPropKeys = (instance) => {
|
|
@@ -94,7 +89,7 @@ function createPropsSync(options) {
|
|
|
94
89
|
enumerable: false,
|
|
95
90
|
writable: false
|
|
96
91
|
});
|
|
97
|
-
} catch
|
|
92
|
+
} catch {
|
|
98
93
|
instance[WEVU_PROP_KEYS_KEY] = propKeys;
|
|
99
94
|
}
|
|
100
95
|
};
|
|
@@ -102,8 +97,7 @@ function createPropsSync(options) {
|
|
|
102
97
|
const attrsProxy = instance[WEVU_ATTRS_KEY];
|
|
103
98
|
if (!attrsProxy || typeof attrsProxy !== "object") return;
|
|
104
99
|
const hasRuntimeStateKey = (key) => {
|
|
105
|
-
|
|
106
|
-
const runtimeState = (_wevu2 = instance.__wevu) === null || _wevu2 === void 0 ? void 0 : _wevu2.state;
|
|
100
|
+
const runtimeState = instance.__wevu?.state;
|
|
107
101
|
return runtimeState != null && typeof runtimeState === "object" && hasOwn(runtimeState, key);
|
|
108
102
|
};
|
|
109
103
|
const properties = instance.properties;
|
|
@@ -111,7 +105,7 @@ function createPropsSync(options) {
|
|
|
111
105
|
const currentKeys = Object.keys(attrsProxy);
|
|
112
106
|
for (const existingKey of currentKeys) if (!next || !hasOwn(next, existingKey) || isInternalAttrKey(existingKey) || propKeySet.has(existingKey) || hasRuntimeStateKey(existingKey)) try {
|
|
113
107
|
delete attrsProxy[existingKey];
|
|
114
|
-
} catch
|
|
108
|
+
} catch {}
|
|
115
109
|
if (!next) {
|
|
116
110
|
refreshOwnerSnapshotFromInstance(instance);
|
|
117
111
|
return;
|
|
@@ -120,7 +114,7 @@ function createPropsSync(options) {
|
|
|
120
114
|
if (isInternalAttrKey(key) || propKeySet.has(key) || hasRuntimeStateKey(key)) continue;
|
|
121
115
|
try {
|
|
122
116
|
attrsProxy[key] = value;
|
|
123
|
-
} catch
|
|
117
|
+
} catch {}
|
|
124
118
|
}
|
|
125
119
|
refreshOwnerSnapshotFromInstance(instance);
|
|
126
120
|
};
|
|
@@ -133,14 +127,14 @@ function createPropsSync(options) {
|
|
|
133
127
|
const currentKeys = Object.keys(propsProxy);
|
|
134
128
|
for (const existingKey of currentKeys) if (!propKeySet.has(existingKey) || !hasOwn(next, existingKey)) try {
|
|
135
129
|
delete propsProxy[existingKey];
|
|
136
|
-
} catch
|
|
130
|
+
} catch {}
|
|
137
131
|
for (const key of propKeys) {
|
|
138
132
|
const hasPendingValue = pendingPropValues && hasOwn(pendingPropValues, key);
|
|
139
133
|
if (!hasPendingValue && !hasOwn(next, key)) continue;
|
|
140
134
|
const nextValue = hasPendingValue ? pendingPropValues[key] : next[key];
|
|
141
135
|
try {
|
|
142
136
|
setPropIfChanged(propsProxy, key, nextValue);
|
|
143
|
-
} catch
|
|
137
|
+
} catch {}
|
|
144
138
|
syncTemplateRuntimeProp(instance, key, nextValue);
|
|
145
139
|
}
|
|
146
140
|
syncPropsDerivedKeys(instance, propsProxy);
|
|
@@ -159,7 +153,7 @@ function createPropsSync(options) {
|
|
|
159
153
|
if (!hasOwn(values, key)) continue;
|
|
160
154
|
try {
|
|
161
155
|
changed = setPropIfChanged(propsProxy, key, values[key]) || changed;
|
|
162
|
-
} catch
|
|
156
|
+
} catch {}
|
|
163
157
|
syncTemplateRuntimeProp(instance, key, values[key]);
|
|
164
158
|
}
|
|
165
159
|
if (!changed) return;
|
|
@@ -169,7 +163,7 @@ function createPropsSync(options) {
|
|
|
169
163
|
syncWevuAttrsFromInstance(instance);
|
|
170
164
|
};
|
|
171
165
|
const syncWevuPropValue = (instance, key, value) => {
|
|
172
|
-
var _ref
|
|
166
|
+
var _ref;
|
|
173
167
|
const propsProxy = instance[WEVU_PROPS_KEY];
|
|
174
168
|
if (!propsProxy || typeof propsProxy !== "object") return;
|
|
175
169
|
try {
|
|
@@ -177,9 +171,9 @@ function createPropsSync(options) {
|
|
|
177
171
|
syncTemplateRuntimeProp(instance, key, value);
|
|
178
172
|
return;
|
|
179
173
|
}
|
|
180
|
-
} catch
|
|
174
|
+
} catch {}
|
|
181
175
|
syncTemplateRuntimeProp(instance, key, value);
|
|
182
|
-
const pendingPropValues = (_ref
|
|
176
|
+
const pendingPropValues = (_ref = instance)[WEVU_PENDING_PROP_VALUES_KEY] ?? (_ref[WEVU_PENDING_PROP_VALUES_KEY] = Object.create(null));
|
|
183
177
|
pendingPropValues[key] = value;
|
|
184
178
|
syncPropsDerivedKeys(instance, propsProxy);
|
|
185
179
|
syncSetupStatePropsAliases(instance, propsProxy);
|
|
@@ -190,7 +184,7 @@ function createPropsSync(options) {
|
|
|
190
184
|
if (propKeys.length) for (const key of propKeys) injectedObservers[key] = function __wevu_prop_observer(newValue) {
|
|
191
185
|
syncWevuPropValue(this, key, newValue);
|
|
192
186
|
};
|
|
193
|
-
const finalObservers = { ...userObservers
|
|
187
|
+
const finalObservers = { ...userObservers ?? {} };
|
|
194
188
|
for (const [key, injected] of Object.entries(injectedObservers)) {
|
|
195
189
|
const existing = finalObservers[key];
|
|
196
190
|
if (typeof existing === "function") finalObservers[key] = function chainedObserver(...args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.mjs","names":[],"sources":["../../../../../src/runtime/register/component/props.ts"],"sourcesContent":["import type { InternalRuntimeState } from '../../types'\nimport {\n WEVU_ATTRS_KEY,\n WEVU_PENDING_PROP_VALUES_KEY,\n WEVU_PROP_KEYS_KEY,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n WEVU_PROPS_KEY,\n WEVU_SLOT_NAMES_PROP,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_SCOPE_KEY,\n} from '@weapp-core/constants'\nimport { hasOwn } from '../../../utils'\nimport { isDeepEqualValue } from '../../app/setData/snapshot'\nimport { refreshOwnerSnapshotFromInstance } from '../snapshot'\n\nexport function createPropsSync(options: {\n restOptions: Record<string, any>\n propsAliases?: Record<string, string>\n propsDerivedKeys?: string[]\n userObservers?: Record<string, any>\n}) {\n const { restOptions, propsAliases, propsDerivedKeys, userObservers } = options\n const propKeys = restOptions.properties && typeof restOptions.properties === 'object'\n ? Object.keys(restOptions.properties as any)\n : []\n const propKeySet = new Set(propKeys)\n const propsDerivedKeySet = new Set(propsDerivedKeys ?? [])\n const aliasEntries = Object.entries(propsAliases ?? {})\n .filter(([alias, propName]) => alias && propName)\n const templateRuntimePropKeys = new Set([\n WEVU_SLOT_NAMES_PROP,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_SCOPE_KEY,\n ])\n // 原生 properties 已由宿主管理,setup/data 中的同名绑定不能再通过 setData 回写。\n // 编译协议字段仍需镜像到顶层 data,供 WXML 的 slot 分支直接读取。\n const directPropsDerivedKeys = propKeys.filter(key => !templateRuntimePropKeys.has(key))\n const syncedAliases = new WeakMap<InternalRuntimeState, Set<string>>()\n\n const isInternalAttrKey = (key: string) => key.startsWith('__wv_')\n\n const updateSnapshotOmitKeys = (instance: InternalRuntimeState) => {\n const runtime = (instance as any).__wevu\n const snapshotOmitKeys = runtime?.[WEVU_PROPS_DERIVED_KEYS_KEY]\n if (!(snapshotOmitKeys instanceof Set)) {\n return\n }\n for (const key of directPropsDerivedKeys) {\n snapshotOmitKeys.add(key)\n }\n }\n\n const setIfChanged = (target: Record<string, unknown>, key: string, value: unknown) => {\n if (hasOwn(target, key) && Object.is(target[key], value)) {\n return false\n }\n target[key] = value\n return true\n }\n\n const setPropIfChanged = (target: Record<string, unknown>, key: string, value: unknown) => {\n if (\n templateRuntimePropKeys.has(key)\n && hasOwn(target, key)\n && isDeepEqualValue(target[key], value, 20, { keys: 10_000 })\n ) {\n return false\n }\n return setIfChanged(target, key, value)\n }\n\n const syncTemplateRuntimeProp = (instance: InternalRuntimeState, key: string, value: unknown) => {\n if (!templateRuntimePropKeys.has(key)) {\n return\n }\n let nativeDataChanged = false\n const runtimeState = (instance as any).__wevu?.state\n try {\n if (runtimeState && typeof runtimeState === 'object') {\n setPropIfChanged(runtimeState as Record<string, unknown>, key, value)\n }\n const nativeData = (instance as any).data\n if (nativeData && typeof nativeData === 'object') {\n nativeDataChanged = setPropIfChanged(nativeData as Record<string, unknown>, key, value)\n }\n }\n catch {\n // 忽略模板运行时字段同步失败,保持 props 主链路可用。\n }\n if (!nativeDataChanged || typeof (instance as any).setData !== 'function') {\n return\n }\n try {\n ;(instance as any).setData({ [key]: value })\n }\n catch {\n // 忽略模板桥接字段 setData 失败,后续响应式调度仍可兜底。\n }\n }\n\n const syncSetupStatePropsAliases = (instance: InternalRuntimeState, propsProxy: Record<string, unknown>) => {\n if (!aliasEntries.length) {\n return\n }\n const runtime = (instance as any).__wevu\n const setupState = runtime?.setupState\n const state = runtime?.state\n if (!setupState || typeof setupState !== 'object') {\n return\n }\n updateSnapshotOmitKeys(instance)\n const aliases = syncedAliases.get(instance) ?? new Set<string>()\n syncedAliases.set(instance, aliases)\n for (const [alias, propName] of aliasEntries) {\n if (hasOwn(setupState, alias) && !aliases.has(alias)) {\n continue\n }\n const value = propsProxy[propName]\n try {\n setIfChanged(setupState as Record<string, unknown>, alias, value)\n aliases.add(alias)\n }\n catch {\n // 忽略 alias 同步失败,保持 props 主链路可用。\n }\n if (state && typeof state === 'object' && (!hasOwn(state, alias) || aliases.has(alias))) {\n try {\n setIfChanged(state as Record<string, unknown>, alias, value)\n }\n catch {\n // 旧兼容 state 写入失败时不阻断运行时。\n }\n }\n }\n }\n\n const syncPropsDerivedKeys = (instance: InternalRuntimeState, propsProxy: Record<string, unknown>) => {\n if (!propsDerivedKeySet.size) {\n return\n }\n const runtime = (instance as any).__wevu\n const setupState = runtime?.setupState\n if (!setupState || typeof setupState !== 'object') {\n return\n }\n updateSnapshotOmitKeys(instance)\n const aliasToPropName = new Map<string, string>(aliasEntries)\n for (const key of propsDerivedKeySet) {\n const propName = aliasToPropName.get(key) ?? key\n if (!hasOwn(propsProxy, propName)) {\n continue\n }\n try {\n setIfChanged(setupState as Record<string, unknown>, key, propsProxy[propName])\n }\n catch {\n // 忽略 props-derived 同步失败,保持主 props 链路可用。\n }\n }\n }\n\n const attachWevuPropKeys = (instance: InternalRuntimeState) => {\n try {\n Object.defineProperty(instance, WEVU_PROP_KEYS_KEY, {\n value: propKeys,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(instance as any)[WEVU_PROP_KEYS_KEY] = propKeys\n }\n }\n\n const syncWevuAttrsFromInstance = (instance: InternalRuntimeState) => {\n const attrsProxy = (instance as any)[WEVU_ATTRS_KEY]\n if (!attrsProxy || typeof attrsProxy !== 'object') {\n return\n }\n const hasRuntimeStateKey = (key: string) => {\n const runtimeState = (instance as any).__wevu?.state\n return runtimeState != null\n && typeof runtimeState === 'object'\n && hasOwn(runtimeState as Record<string, unknown>, key)\n }\n\n const properties = (instance as any).properties\n const next = properties && typeof properties === 'object'\n ? (properties as Record<string, unknown>)\n : undefined\n\n const currentKeys = Object.keys(attrsProxy as any)\n for (const existingKey of currentKeys) {\n if (\n !next\n || !hasOwn(next, existingKey)\n || isInternalAttrKey(existingKey)\n || propKeySet.has(existingKey)\n || hasRuntimeStateKey(existingKey)\n ) {\n try {\n delete (attrsProxy as any)[existingKey]\n }\n catch {\n // 忽略异常\n }\n }\n }\n\n if (!next) {\n refreshOwnerSnapshotFromInstance(instance)\n return\n }\n\n for (const [key, value] of Object.entries(next)) {\n if (isInternalAttrKey(key) || propKeySet.has(key) || hasRuntimeStateKey(key)) {\n continue\n }\n try {\n ;(attrsProxy as any)[key] = value\n }\n catch {\n // 忽略异常\n }\n }\n\n refreshOwnerSnapshotFromInstance(instance)\n }\n\n const syncWevuPropsFromInstance = (instance: InternalRuntimeState) => {\n const propsProxy = (instance as any)[WEVU_PROPS_KEY]\n const properties = (instance as any).properties\n const pendingPropValues = (instance as any)[WEVU_PENDING_PROP_VALUES_KEY] as Record<string, unknown> | undefined\n\n if (propsProxy && typeof propsProxy === 'object' && properties && typeof properties === 'object') {\n const next = properties as any\n const currentKeys = Object.keys(propsProxy as any)\n for (const existingKey of currentKeys) {\n if (!propKeySet.has(existingKey) || !hasOwn(next, existingKey)) {\n try {\n delete (propsProxy as any)[existingKey]\n }\n catch {\n // 忽略异常\n }\n }\n }\n for (const key of propKeys) {\n const hasPendingValue = pendingPropValues && hasOwn(pendingPropValues, key)\n if (!hasPendingValue && !hasOwn(next, key)) {\n continue\n }\n const nextValue = hasPendingValue ? pendingPropValues[key] : next[key]\n try {\n setPropIfChanged(propsProxy as Record<string, unknown>, key, nextValue)\n }\n catch {\n // 忽略异常\n }\n syncTemplateRuntimeProp(instance, key, nextValue)\n }\n syncPropsDerivedKeys(instance, propsProxy as Record<string, unknown>)\n syncSetupStatePropsAliases(instance, propsProxy as Record<string, unknown>)\n refreshOwnerSnapshotFromInstance(instance)\n }\n if (pendingPropValues) {\n delete (instance as any)[WEVU_PENDING_PROP_VALUES_KEY]\n }\n\n syncWevuAttrsFromInstance(instance)\n }\n\n const syncWevuPropsFromValues = (instance: InternalRuntimeState, values: Record<string, unknown> | undefined) => {\n if (!values || typeof values !== 'object') {\n return\n }\n const propsProxy = (instance as any)[WEVU_PROPS_KEY]\n if (!propsProxy || typeof propsProxy !== 'object') {\n return\n }\n let changed = false\n for (const key of propKeys) {\n if (!hasOwn(values, key)) {\n continue\n }\n try {\n changed = setPropIfChanged(propsProxy as Record<string, unknown>, key, values[key]) || changed\n }\n catch {\n // 忽略 query props 同步失败,保持页面生命周期主链路可用。\n }\n syncTemplateRuntimeProp(instance, key, values[key])\n }\n if (!changed) {\n return\n }\n syncPropsDerivedKeys(instance, propsProxy as Record<string, unknown>)\n syncSetupStatePropsAliases(instance, propsProxy as Record<string, unknown>)\n refreshOwnerSnapshotFromInstance(instance)\n syncWevuAttrsFromInstance(instance)\n }\n\n const syncWevuPropValue = (instance: InternalRuntimeState, key: string, value: unknown) => {\n const propsProxy = (instance as any)[WEVU_PROPS_KEY]\n if (!propsProxy || typeof propsProxy !== 'object') {\n return\n }\n try {\n if (!setPropIfChanged(propsProxy as Record<string, unknown>, key, value)) {\n syncTemplateRuntimeProp(instance, key, value)\n return\n }\n }\n catch {\n // 忽略异常\n }\n syncTemplateRuntimeProp(instance, key, value)\n const pendingPropValues = ((instance as any)[WEVU_PENDING_PROP_VALUES_KEY] ??= Object.create(null)) as Record<string, unknown>\n pendingPropValues[key] = value\n syncPropsDerivedKeys(instance, propsProxy as Record<string, unknown>)\n syncSetupStatePropsAliases(instance, propsProxy as Record<string, unknown>)\n refreshOwnerSnapshotFromInstance(instance)\n syncWevuAttrsFromInstance(instance)\n }\n\n const injectedObservers: Record<string, any> = {}\n if (propKeys.length) {\n for (const key of propKeys) {\n injectedObservers[key] = function __wevu_prop_observer(this: InternalRuntimeState, newValue: unknown) {\n // 注意:在部分小程序运行时中,observer 回调触发时 `this.properties` 可能尚未更新,\n // 因此这里以 observer 的 newValue 为准写入 propsProxy,避免出现 props 仍为旧值/undefined。\n syncWevuPropValue(this, key, newValue)\n }\n }\n }\n\n const finalObservers: Record<string, any> = {\n ...(userObservers ?? {}),\n }\n for (const [key, injected] of Object.entries(injectedObservers)) {\n const existing = finalObservers[key]\n if (typeof existing === 'function') {\n finalObservers[key] = function chainedObserver(this: InternalRuntimeState, ...args: any[]) {\n existing.apply(this, args)\n injected.apply(this, args)\n }\n }\n else {\n finalObservers[key] = injected\n }\n }\n\n const allObserver = finalObservers['**']\n finalObservers['**'] = function __wevu_observer_all(this: InternalRuntimeState, ...args: any[]) {\n if (typeof allObserver === 'function') {\n allObserver.apply(this, args)\n }\n syncWevuPropsFromInstance(this)\n }\n\n return {\n attachWevuPropKeys,\n directPropsDerivedKeys,\n syncWevuPropsFromInstance,\n syncWevuPropsFromValues,\n finalObservers,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"props.mjs","names":[],"sources":["../../../../../src/runtime/register/component/props.ts"],"sourcesContent":["import type { InternalRuntimeState } from '../../types'\nimport {\n WEVU_ATTRS_KEY,\n WEVU_PENDING_PROP_VALUES_KEY,\n WEVU_PROP_KEYS_KEY,\n WEVU_PROPS_DERIVED_KEYS_KEY,\n WEVU_PROPS_KEY,\n WEVU_SLOT_NAMES_PROP,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_SCOPE_KEY,\n} from '@weapp-core/constants'\nimport { hasOwn } from '../../../utils'\nimport { isDeepEqualValue } from '../../app/setData/snapshot'\nimport { refreshOwnerSnapshotFromInstance } from '../snapshot'\n\nexport function createPropsSync(options: {\n restOptions: Record<string, any>\n propsAliases?: Record<string, string>\n propsDerivedKeys?: string[]\n userObservers?: Record<string, any>\n}) {\n const { restOptions, propsAliases, propsDerivedKeys, userObservers } = options\n const propKeys = restOptions.properties && typeof restOptions.properties === 'object'\n ? Object.keys(restOptions.properties as any)\n : []\n const propKeySet = new Set(propKeys)\n const propsDerivedKeySet = new Set(propsDerivedKeys ?? [])\n const aliasEntries = Object.entries(propsAliases ?? {})\n .filter(([alias, propName]) => alias && propName)\n const templateRuntimePropKeys = new Set([\n WEVU_SLOT_NAMES_PROP,\n WEVU_SLOT_OWNER_ID_PROP,\n WEVU_SLOT_SCOPE_KEY,\n ])\n // 原生 properties 已由宿主管理,setup/data 中的同名绑定不能再通过 setData 回写。\n // 编译协议字段仍需镜像到顶层 data,供 WXML 的 slot 分支直接读取。\n const directPropsDerivedKeys = propKeys.filter(key => !templateRuntimePropKeys.has(key))\n const syncedAliases = new WeakMap<InternalRuntimeState, Set<string>>()\n\n const isInternalAttrKey = (key: string) => key.startsWith('__wv_')\n\n const updateSnapshotOmitKeys = (instance: InternalRuntimeState) => {\n const runtime = (instance as any).__wevu\n const snapshotOmitKeys = runtime?.[WEVU_PROPS_DERIVED_KEYS_KEY]\n if (!(snapshotOmitKeys instanceof Set)) {\n return\n }\n for (const key of directPropsDerivedKeys) {\n snapshotOmitKeys.add(key)\n }\n }\n\n const setIfChanged = (target: Record<string, unknown>, key: string, value: unknown) => {\n if (hasOwn(target, key) && Object.is(target[key], value)) {\n return false\n }\n target[key] = value\n return true\n }\n\n const setPropIfChanged = (target: Record<string, unknown>, key: string, value: unknown) => {\n if (\n templateRuntimePropKeys.has(key)\n && hasOwn(target, key)\n && isDeepEqualValue(target[key], value, 20, { keys: 10_000 })\n ) {\n return false\n }\n return setIfChanged(target, key, value)\n }\n\n const syncTemplateRuntimeProp = (instance: InternalRuntimeState, key: string, value: unknown) => {\n if (!templateRuntimePropKeys.has(key)) {\n return\n }\n let nativeDataChanged = false\n const runtimeState = (instance as any).__wevu?.state\n try {\n if (runtimeState && typeof runtimeState === 'object') {\n setPropIfChanged(runtimeState as Record<string, unknown>, key, value)\n }\n const nativeData = (instance as any).data\n if (nativeData && typeof nativeData === 'object') {\n nativeDataChanged = setPropIfChanged(nativeData as Record<string, unknown>, key, value)\n }\n }\n catch {\n // 忽略模板运行时字段同步失败,保持 props 主链路可用。\n }\n if (!nativeDataChanged || typeof (instance as any).setData !== 'function') {\n return\n }\n try {\n ;(instance as any).setData({ [key]: value })\n }\n catch {\n // 忽略模板桥接字段 setData 失败,后续响应式调度仍可兜底。\n }\n }\n\n const syncSetupStatePropsAliases = (instance: InternalRuntimeState, propsProxy: Record<string, unknown>) => {\n if (!aliasEntries.length) {\n return\n }\n const runtime = (instance as any).__wevu\n const setupState = runtime?.setupState\n const state = runtime?.state\n if (!setupState || typeof setupState !== 'object') {\n return\n }\n updateSnapshotOmitKeys(instance)\n const aliases = syncedAliases.get(instance) ?? new Set<string>()\n syncedAliases.set(instance, aliases)\n for (const [alias, propName] of aliasEntries) {\n if (hasOwn(setupState, alias) && !aliases.has(alias)) {\n continue\n }\n const value = propsProxy[propName]\n try {\n setIfChanged(setupState as Record<string, unknown>, alias, value)\n aliases.add(alias)\n }\n catch {\n // 忽略 alias 同步失败,保持 props 主链路可用。\n }\n if (state && typeof state === 'object' && (!hasOwn(state, alias) || aliases.has(alias))) {\n try {\n setIfChanged(state as Record<string, unknown>, alias, value)\n }\n catch {\n // 旧兼容 state 写入失败时不阻断运行时。\n }\n }\n }\n }\n\n const syncPropsDerivedKeys = (instance: InternalRuntimeState, propsProxy: Record<string, unknown>) => {\n if (!propsDerivedKeySet.size) {\n return\n }\n const runtime = (instance as any).__wevu\n const setupState = runtime?.setupState\n if (!setupState || typeof setupState !== 'object') {\n return\n }\n updateSnapshotOmitKeys(instance)\n const aliasToPropName = new Map<string, string>(aliasEntries)\n for (const key of propsDerivedKeySet) {\n const propName = aliasToPropName.get(key) ?? key\n if (!hasOwn(propsProxy, propName)) {\n continue\n }\n try {\n setIfChanged(setupState as Record<string, unknown>, key, propsProxy[propName])\n }\n catch {\n // 忽略 props-derived 同步失败,保持主 props 链路可用。\n }\n }\n }\n\n const attachWevuPropKeys = (instance: InternalRuntimeState) => {\n try {\n Object.defineProperty(instance, WEVU_PROP_KEYS_KEY, {\n value: propKeys,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(instance as any)[WEVU_PROP_KEYS_KEY] = propKeys\n }\n }\n\n const syncWevuAttrsFromInstance = (instance: InternalRuntimeState) => {\n const attrsProxy = (instance as any)[WEVU_ATTRS_KEY]\n if (!attrsProxy || typeof attrsProxy !== 'object') {\n return\n }\n const hasRuntimeStateKey = (key: string) => {\n const runtimeState = (instance as any).__wevu?.state\n return runtimeState != null\n && typeof runtimeState === 'object'\n && hasOwn(runtimeState as Record<string, unknown>, key)\n }\n\n const properties = (instance as any).properties\n const next = properties && typeof properties === 'object'\n ? (properties as Record<string, unknown>)\n : undefined\n\n const currentKeys = Object.keys(attrsProxy as any)\n for (const existingKey of currentKeys) {\n if (\n !next\n || !hasOwn(next, existingKey)\n || isInternalAttrKey(existingKey)\n || propKeySet.has(existingKey)\n || hasRuntimeStateKey(existingKey)\n ) {\n try {\n delete (attrsProxy as any)[existingKey]\n }\n catch {\n // 忽略异常\n }\n }\n }\n\n if (!next) {\n refreshOwnerSnapshotFromInstance(instance)\n return\n }\n\n for (const [key, value] of Object.entries(next)) {\n if (isInternalAttrKey(key) || propKeySet.has(key) || hasRuntimeStateKey(key)) {\n continue\n }\n try {\n ;(attrsProxy as any)[key] = value\n }\n catch {\n // 忽略异常\n }\n }\n\n refreshOwnerSnapshotFromInstance(instance)\n }\n\n const syncWevuPropsFromInstance = (instance: InternalRuntimeState) => {\n const propsProxy = (instance as any)[WEVU_PROPS_KEY]\n const properties = (instance as any).properties\n const pendingPropValues = (instance as any)[WEVU_PENDING_PROP_VALUES_KEY] as Record<string, unknown> | undefined\n\n if (propsProxy && typeof propsProxy === 'object' && properties && typeof properties === 'object') {\n const next = properties as any\n const currentKeys = Object.keys(propsProxy as any)\n for (const existingKey of currentKeys) {\n if (!propKeySet.has(existingKey) || !hasOwn(next, existingKey)) {\n try {\n delete (propsProxy as any)[existingKey]\n }\n catch {\n // 忽略异常\n }\n }\n }\n for (const key of propKeys) {\n const hasPendingValue = pendingPropValues && hasOwn(pendingPropValues, key)\n if (!hasPendingValue && !hasOwn(next, key)) {\n continue\n }\n const nextValue = hasPendingValue ? pendingPropValues[key] : next[key]\n try {\n setPropIfChanged(propsProxy as Record<string, unknown>, key, nextValue)\n }\n catch {\n // 忽略异常\n }\n syncTemplateRuntimeProp(instance, key, nextValue)\n }\n syncPropsDerivedKeys(instance, propsProxy as Record<string, unknown>)\n syncSetupStatePropsAliases(instance, propsProxy as Record<string, unknown>)\n refreshOwnerSnapshotFromInstance(instance)\n }\n if (pendingPropValues) {\n delete (instance as any)[WEVU_PENDING_PROP_VALUES_KEY]\n }\n\n syncWevuAttrsFromInstance(instance)\n }\n\n const syncWevuPropsFromValues = (instance: InternalRuntimeState, values: Record<string, unknown> | undefined) => {\n if (!values || typeof values !== 'object') {\n return\n }\n const propsProxy = (instance as any)[WEVU_PROPS_KEY]\n if (!propsProxy || typeof propsProxy !== 'object') {\n return\n }\n let changed = false\n for (const key of propKeys) {\n if (!hasOwn(values, key)) {\n continue\n }\n try {\n changed = setPropIfChanged(propsProxy as Record<string, unknown>, key, values[key]) || changed\n }\n catch {\n // 忽略 query props 同步失败,保持页面生命周期主链路可用。\n }\n syncTemplateRuntimeProp(instance, key, values[key])\n }\n if (!changed) {\n return\n }\n syncPropsDerivedKeys(instance, propsProxy as Record<string, unknown>)\n syncSetupStatePropsAliases(instance, propsProxy as Record<string, unknown>)\n refreshOwnerSnapshotFromInstance(instance)\n syncWevuAttrsFromInstance(instance)\n }\n\n const syncWevuPropValue = (instance: InternalRuntimeState, key: string, value: unknown) => {\n const propsProxy = (instance as any)[WEVU_PROPS_KEY]\n if (!propsProxy || typeof propsProxy !== 'object') {\n return\n }\n try {\n if (!setPropIfChanged(propsProxy as Record<string, unknown>, key, value)) {\n syncTemplateRuntimeProp(instance, key, value)\n return\n }\n }\n catch {\n // 忽略异常\n }\n syncTemplateRuntimeProp(instance, key, value)\n const pendingPropValues = ((instance as any)[WEVU_PENDING_PROP_VALUES_KEY] ??= Object.create(null)) as Record<string, unknown>\n pendingPropValues[key] = value\n syncPropsDerivedKeys(instance, propsProxy as Record<string, unknown>)\n syncSetupStatePropsAliases(instance, propsProxy as Record<string, unknown>)\n refreshOwnerSnapshotFromInstance(instance)\n syncWevuAttrsFromInstance(instance)\n }\n\n const injectedObservers: Record<string, any> = {}\n if (propKeys.length) {\n for (const key of propKeys) {\n injectedObservers[key] = function __wevu_prop_observer(this: InternalRuntimeState, newValue: unknown) {\n // 注意:在部分小程序运行时中,observer 回调触发时 `this.properties` 可能尚未更新,\n // 因此这里以 observer 的 newValue 为准写入 propsProxy,避免出现 props 仍为旧值/undefined。\n syncWevuPropValue(this, key, newValue)\n }\n }\n }\n\n const finalObservers: Record<string, any> = {\n ...(userObservers ?? {}),\n }\n for (const [key, injected] of Object.entries(injectedObservers)) {\n const existing = finalObservers[key]\n if (typeof existing === 'function') {\n finalObservers[key] = function chainedObserver(this: InternalRuntimeState, ...args: any[]) {\n existing.apply(this, args)\n injected.apply(this, args)\n }\n }\n else {\n finalObservers[key] = injected\n }\n }\n\n const allObserver = finalObservers['**']\n finalObservers['**'] = function __wevu_observer_all(this: InternalRuntimeState, ...args: any[]) {\n if (typeof allObserver === 'function') {\n allObserver.apply(this, args)\n }\n syncWevuPropsFromInstance(this)\n }\n\n return {\n attachWevuPropKeys,\n directPropsDerivedKeys,\n syncWevuPropsFromInstance,\n syncWevuPropsFromValues,\n finalObservers,\n }\n}\n"],"mappings":"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"}
|