wevu 6.18.7 → 6.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/defineProperty.mjs +1 -0
- package/dist/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/toPrimitive.mjs +1 -0
- package/dist/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/toPropertyKey.mjs +1 -0
- package/dist/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/typeof.mjs +1 -0
- package/dist/dev/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/defineProperty.mjs +14 -0
- package/dist/dev/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/toPrimitive.mjs +16 -0
- package/dist/dev/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/toPropertyKey.mjs +11 -0
- package/dist/dev/_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/typeof.mjs +12 -0
- package/dist/dev/index.mjs +48 -10
- package/dist/dev/internal-reactivity.mjs +15 -5
- package/dist/dev/internal-runtime.mjs +32 -4
- package/dist/dev/internal-template.mjs +1 -1
- package/dist/dev/package.mjs +6 -0
- package/dist/dev/package.mjs.map +1 -0
- package/dist/dev/reactivity/computed.mjs +49 -0
- package/dist/dev/reactivity/computed.mjs.map +1 -0
- package/dist/dev/reactivity/core.mjs +184 -0
- package/dist/dev/reactivity/core.mjs.map +1 -0
- package/dist/dev/reactivity/reactive/mutation.mjs +12 -0
- package/dist/dev/reactivity/reactive/mutation.mjs.map +1 -0
- package/dist/dev/{computed-BxRsUJgi.mjs → reactivity/reactive/patch.mjs} +8 -49
- package/dist/dev/reactivity/reactive/patch.mjs.map +1 -0
- package/dist/dev/reactivity/reactive/patchState.mjs +138 -0
- package/dist/dev/reactivity/reactive/patchState.mjs.map +1 -0
- package/dist/dev/reactivity/reactive/shallow.mjs +77 -0
- package/dist/dev/reactivity/reactive/shallow.mjs.map +1 -0
- package/dist/dev/reactivity/reactive/shared.mjs +40 -0
- package/dist/dev/reactivity/reactive/shared.mjs.map +1 -0
- package/dist/dev/reactivity/reactive/state.mjs +8 -0
- package/dist/dev/reactivity/reactive/state.mjs.map +1 -0
- package/dist/dev/reactivity/reactive.mjs +213 -0
- package/dist/dev/reactivity/reactive.mjs.map +1 -0
- package/dist/dev/reactivity/readonly.mjs +69 -0
- package/dist/dev/reactivity/readonly.mjs.map +1 -0
- package/dist/dev/reactivity/ref.mjs +97 -0
- package/dist/dev/reactivity/ref.mjs.map +1 -0
- package/dist/dev/reactivity/shallowRef.mjs +71 -0
- package/dist/dev/reactivity/shallowRef.mjs.map +1 -0
- package/dist/dev/{toRefs-D06VmFK2.mjs → reactivity/toRefs.mjs} +4 -3
- package/dist/dev/reactivity/toRefs.mjs.map +1 -0
- package/dist/dev/reactivity/traverse.mjs +40 -0
- package/dist/dev/reactivity/traverse.mjs.map +1 -0
- package/dist/dev/reactivity/watch/helpers.mjs +78 -0
- package/dist/dev/reactivity/watch/helpers.mjs.map +1 -0
- package/dist/dev/reactivity/watch/types.mjs +20 -0
- package/dist/dev/reactivity/watch/types.mjs.map +1 -0
- package/dist/dev/reactivity/watch.mjs +167 -0
- package/dist/dev/reactivity/watch.mjs.map +1 -0
- package/dist/dev/router/backNavigation.mjs +32 -0
- package/dist/dev/router/backNavigation.mjs.map +1 -0
- package/dist/dev/router/createRouter.mjs +179 -0
- package/dist/dev/router/createRouter.mjs.map +1 -0
- package/dist/dev/router/instance.mjs +17 -0
- package/dist/dev/router/instance.mjs.map +1 -0
- package/dist/dev/router/navigationApi.mjs +94 -0
- package/dist/dev/router/navigationApi.mjs.map +1 -0
- package/dist/dev/router/navigationCore.mjs +139 -0
- package/dist/dev/router/navigationCore.mjs.map +1 -0
- package/dist/dev/router/navigationResult.mjs +54 -0
- package/dist/dev/router/navigationResult.mjs.map +1 -0
- package/dist/dev/router/navigationTarget.mjs +122 -0
- package/dist/dev/router/navigationTarget.mjs.map +1 -0
- package/dist/dev/router/navigationTargetHelpers.mjs +38 -0
- package/dist/dev/router/navigationTargetHelpers.mjs.map +1 -0
- package/dist/dev/router/resolve.mjs +29 -0
- package/dist/dev/router/resolve.mjs.map +1 -0
- package/dist/dev/router/routeRegistry.mjs +78 -0
- package/dist/dev/router/routeRegistry.mjs.map +1 -0
- package/dist/dev/router/routeSync.mjs +72 -0
- package/dist/dev/router/routeSync.mjs.map +1 -0
- package/dist/dev/router/types.mjs +11 -0
- package/dist/dev/router/types.mjs.map +1 -0
- package/dist/dev/router/useRoute.mjs +106 -0
- package/dist/dev/router/useRoute.mjs.map +1 -0
- package/dist/dev/router/useRouter.mjs +15 -0
- package/dist/dev/router/useRouter.mjs.map +1 -0
- package/dist/dev/router.mjs +9 -1378
- package/dist/dev/routerInternal/location.mjs +68 -0
- package/dist/dev/routerInternal/location.mjs.map +1 -0
- package/dist/dev/routerInternal/matching.mjs +149 -0
- package/dist/dev/routerInternal/matching.mjs.map +1 -0
- package/dist/dev/routerInternal/params.mjs +95 -0
- package/dist/dev/routerInternal/params.mjs.map +1 -0
- package/dist/dev/routerInternal/path.mjs +42 -0
- package/dist/dev/routerInternal/path.mjs.map +1 -0
- package/dist/dev/routerInternal/query.mjs +113 -0
- package/dist/dev/routerInternal/query.mjs.map +1 -0
- package/dist/dev/routerInternal/records.mjs +173 -0
- package/dist/dev/routerInternal/records.mjs.map +1 -0
- package/dist/dev/routerInternal/recordsWarnings.mjs +49 -0
- package/dist/dev/routerInternal/recordsWarnings.mjs.map +1 -0
- package/dist/dev/routerInternal/snapshots.mjs +126 -0
- package/dist/dev/routerInternal/snapshots.mjs.map +1 -0
- package/dist/dev/runtime/app/computed.mjs +68 -0
- package/dist/dev/runtime/app/computed.mjs.map +1 -0
- package/dist/dev/runtime/app/context.mjs +275 -0
- package/dist/dev/runtime/app/context.mjs.map +1 -0
- package/dist/dev/runtime/app/diagnostics.mjs +34 -0
- package/dist/dev/runtime/app/diagnostics.mjs.map +1 -0
- package/dist/dev/runtime/app/mount.mjs +270 -0
- package/dist/dev/runtime/app/mount.mjs.map +1 -0
- package/dist/dev/runtime/app/pending.mjs +14 -0
- package/dist/dev/runtime/app/pending.mjs.map +1 -0
- package/dist/dev/runtime/app/setData/patchScheduler.mjs +158 -0
- package/dist/dev/runtime/app/setData/patchScheduler.mjs.map +1 -0
- package/dist/dev/runtime/app/setData/payload.mjs +161 -0
- package/dist/dev/runtime/app/setData/payload.mjs.map +1 -0
- package/dist/dev/runtime/app/setData/scheduler.mjs +313 -0
- package/dist/dev/runtime/app/setData/scheduler.mjs.map +1 -0
- package/dist/dev/runtime/app/setData/snapshot.mjs +129 -0
- package/dist/dev/runtime/app/setData/snapshot.mjs.map +1 -0
- package/dist/dev/runtime/app/setDataOptions.mjs +73 -0
- package/dist/dev/runtime/app/setDataOptions.mjs.map +1 -0
- package/dist/dev/runtime/app.mjs +93 -0
- package/dist/dev/runtime/app.mjs.map +1 -0
- package/dist/dev/runtime/bindModel.mjs +92 -0
- package/dist/dev/runtime/bindModel.mjs.map +1 -0
- package/dist/dev/runtime/defaults.mjs +61 -0
- package/dist/dev/runtime/defaults.mjs.map +1 -0
- package/dist/dev/runtime/define/initialComputed.mjs +125 -0
- package/dist/dev/runtime/define/initialComputed.mjs.map +1 -0
- package/dist/dev/runtime/define/options.mjs +169 -0
- package/dist/dev/runtime/define/options.mjs.map +1 -0
- package/dist/dev/runtime/define/optionsApi.mjs +48 -0
- package/dist/dev/runtime/define/optionsApi.mjs.map +1 -0
- package/dist/dev/runtime/define/props.mjs +194 -0
- package/dist/dev/runtime/define/props.mjs.map +1 -0
- package/dist/dev/runtime/define/scopedSlotOptions.mjs +316 -0
- package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -0
- package/dist/dev/runtime/define/setupResult.mjs +78 -0
- package/dist/dev/runtime/define/setupResult.mjs.map +1 -0
- package/dist/dev/runtime/define.mjs +142 -0
- package/dist/dev/runtime/define.mjs.map +1 -0
- package/dist/dev/runtime/diff.mjs +193 -0
- package/dist/dev/runtime/diff.mjs.map +1 -0
- package/dist/dev/runtime/disposables.mjs +81 -0
- package/dist/dev/runtime/disposables.mjs.map +1 -0
- package/dist/dev/runtime/elementIntersectionObserver.mjs +80 -0
- package/dist/dev/runtime/elementIntersectionObserver.mjs.map +1 -0
- package/dist/dev/runtime/emit.mjs +36 -0
- package/dist/dev/runtime/emit.mjs.map +1 -0
- package/dist/dev/{base-CYkvI7w8.mjs → runtime/hooks/base.mjs} +3 -140
- package/dist/dev/runtime/hooks/base.mjs.map +1 -0
- package/dist/dev/runtime/hooks/register.mjs +92 -0
- package/dist/dev/runtime/hooks/register.mjs.map +1 -0
- package/dist/dev/runtime/hooks/vue.mjs +81 -0
- package/dist/dev/runtime/hooks/vue.mjs.map +1 -0
- package/dist/dev/runtime/internal.mjs +18 -0
- package/dist/dev/runtime/internal.mjs.map +1 -0
- package/dist/dev/runtime/intersectionObserver.mjs +46 -0
- package/dist/dev/runtime/intersectionObserver.mjs.map +1 -0
- package/dist/dev/runtime/layoutBridge.mjs +303 -0
- package/dist/dev/runtime/layoutBridge.mjs.map +1 -0
- package/dist/dev/runtime/layoutComponentMatcher.mjs +11 -0
- package/dist/dev/runtime/layoutComponentMatcher.mjs.map +1 -0
- package/dist/dev/runtime/nativeBridge.mjs +21 -0
- package/dist/dev/runtime/nativeBridge.mjs.map +1 -0
- package/dist/dev/runtime/noSetData.mjs +18 -0
- package/dist/dev/runtime/noSetData.mjs.map +1 -0
- package/dist/dev/runtime/pageEnvironment.mjs +100 -0
- package/dist/dev/runtime/pageEnvironment.mjs.map +1 -0
- package/dist/dev/runtime/pageLayout.mjs +71 -0
- package/dist/dev/runtime/pageLayout.mjs.map +1 -0
- package/dist/dev/runtime/pageScroll.mjs +110 -0
- package/dist/dev/runtime/pageScroll.mjs.map +1 -0
- package/dist/dev/runtime/platform.mjs +79 -0
- package/dist/dev/runtime/platform.mjs.map +1 -0
- package/dist/dev/runtime/provide.mjs +71 -0
- package/dist/dev/runtime/provide.mjs.map +1 -0
- package/dist/dev/runtime/provideContext.mjs +101 -0
- package/dist/dev/runtime/provideContext.mjs.map +1 -0
- package/dist/dev/runtime/provideStore.mjs +18 -0
- package/dist/dev/runtime/provideStore.mjs.map +1 -0
- package/dist/dev/runtime/pullDownRefresh.mjs +24 -0
- package/dist/dev/runtime/pullDownRefresh.mjs.map +1 -0
- package/dist/dev/runtime/register/app.mjs +161 -0
- package/dist/dev/runtime/register/app.mjs.map +1 -0
- package/dist/dev/runtime/register/component/features.mjs +43 -0
- package/dist/dev/runtime/register/component/features.mjs.map +1 -0
- package/dist/dev/runtime/register/component/lifecycle/optionalHooks.mjs +64 -0
- package/dist/dev/runtime/register/component/lifecycle/optionalHooks.mjs.map +1 -0
- package/dist/dev/runtime/register/component/lifecycle/platform.mjs +96 -0
- package/dist/dev/runtime/register/component/lifecycle/platform.mjs.map +1 -0
- package/dist/dev/runtime/register/component/lifecycle.mjs +122 -0
- package/dist/dev/runtime/register/component/lifecycle.mjs.map +1 -0
- package/dist/dev/runtime/register/component/methods.mjs +82 -0
- package/dist/dev/runtime/register/component/methods.mjs.map +1 -0
- package/dist/dev/runtime/register/component/options.mjs +204 -0
- package/dist/dev/runtime/register/component/options.mjs.map +1 -0
- package/dist/dev/runtime/register/component/props.mjs +218 -0
- package/dist/dev/runtime/register/component/props.mjs.map +1 -0
- package/dist/dev/runtime/register/component/registerDefinition.mjs +290 -0
- package/dist/dev/runtime/register/component/registerDefinition.mjs.map +1 -0
- package/dist/dev/runtime/register/component.mjs +129 -0
- package/dist/dev/runtime/register/component.mjs.map +1 -0
- package/dist/dev/runtime/register/inline.mjs +145 -0
- package/dist/dev/runtime/register/inline.mjs.map +1 -0
- package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs +53 -0
- package/dist/dev/runtime/register/runtimeInstance/methodBridge.mjs.map +1 -0
- package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs +34 -0
- package/dist/dev/runtime/register/runtimeInstance/provideContext.mjs.map +1 -0
- package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs +230 -0
- package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs.map +1 -0
- package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs +166 -0
- package/dist/dev/runtime/register/runtimeInstance/setupPhase.mjs.map +1 -0
- package/dist/dev/runtime/register/runtimeInstance/utils.mjs +122 -0
- package/dist/dev/runtime/register/runtimeInstance/utils.mjs.map +1 -0
- package/dist/dev/runtime/register/runtimeInstance.mjs +441 -0
- package/dist/dev/runtime/register/runtimeInstance.mjs.map +1 -0
- package/dist/dev/runtime/register/setDataFrequencyWarning.mjs +95 -0
- package/dist/dev/runtime/register/setDataFrequencyWarning.mjs.map +1 -0
- package/dist/dev/runtime/register/setup.mjs +22 -0
- package/dist/dev/runtime/register/setup.mjs.map +1 -0
- package/dist/dev/runtime/register/snapshot.mjs +18 -0
- package/dist/dev/runtime/register/snapshot.mjs.map +1 -0
- package/dist/dev/runtime/register/watch.mjs +57 -0
- package/dist/dev/runtime/register/watch.mjs.map +1 -0
- package/dist/dev/runtime/scopedSlots.mjs +115 -0
- package/dist/dev/runtime/scopedSlots.mjs.map +1 -0
- package/dist/dev/runtime/selectorQuery.mjs +49 -0
- package/dist/dev/runtime/selectorQuery.mjs.map +1 -0
- package/dist/dev/runtime/setupTracking.mjs +59 -0
- package/dist/dev/runtime/setupTracking.mjs.map +1 -0
- package/dist/dev/{template-n_iVr0ey.mjs → runtime/template.mjs} +7 -4
- package/dist/dev/runtime/template.mjs.map +1 -0
- package/dist/dev/runtime/templateRefs/helpers.mjs +259 -0
- package/dist/dev/runtime/templateRefs/helpers.mjs.map +1 -0
- package/dist/dev/runtime/templateRefs.mjs +162 -0
- package/dist/dev/runtime/templateRefs.mjs.map +1 -0
- package/dist/dev/runtime/uniAppHost.mjs +119 -0
- package/dist/dev/runtime/uniAppHost.mjs.map +1 -0
- package/dist/dev/runtime/updatePerformance.mjs +41 -0
- package/dist/dev/runtime/updatePerformance.mjs.map +1 -0
- package/dist/dev/runtime/use.mjs +25 -0
- package/dist/dev/runtime/use.mjs.map +1 -0
- package/dist/dev/runtime/vueCompat/context.mjs +25 -0
- package/dist/dev/runtime/vueCompat/context.mjs.map +1 -0
- package/dist/dev/runtime/vueCompat/model.mjs +119 -0
- package/dist/dev/runtime/vueCompat/model.mjs.map +1 -0
- package/dist/dev/runtime/vueCompat/router.mjs +124 -0
- package/dist/dev/runtime/vueCompat/router.mjs.map +1 -0
- package/dist/dev/runtime/vueCompat/templateRef.mjs +37 -0
- package/dist/dev/runtime/vueCompat/templateRef.mjs.map +1 -0
- package/dist/dev/scheduler.mjs +75 -0
- package/dist/dev/scheduler.mjs.map +1 -0
- package/dist/dev/store/actions.mjs +40 -0
- package/dist/dev/store/actions.mjs.map +1 -0
- package/dist/dev/store/base.mjs +56 -0
- package/dist/dev/store/base.mjs.map +1 -0
- package/dist/dev/store/define/optionsStyle.mjs +125 -0
- package/dist/dev/store/define/optionsStyle.mjs.map +1 -0
- package/dist/dev/store/define/setupStyle.mjs +145 -0
- package/dist/dev/store/define/setupStyle.mjs.map +1 -0
- package/dist/dev/store/define/shared.mjs +38 -0
- package/dist/dev/store/define/shared.mjs.map +1 -0
- package/dist/dev/store/define.mjs +23 -0
- package/dist/dev/store/define.mjs.map +1 -0
- package/dist/dev/store/manager.mjs +21 -0
- package/dist/dev/store/manager.mjs.map +1 -0
- package/dist/dev/store/storeToRefs.mjs +29 -0
- package/dist/dev/store/storeToRefs.mjs.map +1 -0
- package/dist/dev/store/utils.mjs +49 -0
- package/dist/dev/store/utils.mjs.map +1 -0
- package/dist/dev/store.mjs +3 -1
- package/dist/dev/utils.mjs +16 -0
- package/dist/dev/utils.mjs.map +1 -0
- package/dist/dev/version.mjs +8 -0
- package/dist/dev/version.mjs.map +1 -0
- package/dist/dev/vue-demi.mjs +48 -168
- package/dist/dev/vue-demi.mjs.map +1 -1
- package/dist/index.d.mts +71 -7
- package/dist/index.mjs +1 -1
- package/dist/internal-reactivity.d.mts +16 -2
- package/dist/internal-reactivity.mjs +1 -1
- package/dist/internal-runtime.d.mts +35 -2
- package/dist/internal-runtime.mjs +1 -1
- package/dist/internal-template.d.mts +1 -1
- package/dist/internal-template.mjs +1 -1
- package/dist/jsx-runtime.d.mts +1 -1
- package/dist/macros/shared.d.mts +81 -0
- package/dist/macros.d.mts +70 -0
- package/dist/package.mjs +1 -0
- package/dist/reactivity/computed.d.mts +21 -0
- package/dist/reactivity/computed.mjs +1 -0
- package/dist/reactivity/core.d.mts +34 -0
- package/dist/reactivity/core.mjs +1 -0
- package/dist/reactivity/index.d.mts +15 -0
- package/dist/reactivity/reactive/mutation.d.mts +21 -0
- package/dist/reactivity/reactive/mutation.mjs +1 -0
- package/dist/reactivity/reactive/patch.d.mts +18 -0
- package/dist/reactivity/reactive/patch.mjs +1 -0
- package/dist/reactivity/reactive/patchState.mjs +1 -0
- package/dist/reactivity/reactive/shallow.d.mts +22 -0
- package/dist/reactivity/reactive/shallow.mjs +1 -0
- package/dist/reactivity/reactive/shared.d.mts +4 -0
- package/dist/reactivity/reactive/shared.mjs +1 -0
- package/dist/reactivity/reactive/state.mjs +1 -0
- package/dist/reactivity/reactive.d.mts +41 -0
- package/dist/reactivity/reactive.mjs +1 -0
- package/dist/reactivity/readonly.d.mts +27 -0
- package/dist/reactivity/readonly.mjs +1 -0
- package/dist/reactivity/ref.d.mts +27 -0
- package/dist/reactivity/ref.mjs +1 -0
- package/dist/reactivity/shallowRef.d.mts +19 -0
- package/dist/reactivity/shallowRef.mjs +1 -0
- package/dist/reactivity/toRefs.d.mts +43 -0
- package/dist/reactivity/toRefs.mjs +1 -0
- package/dist/reactivity/traverse.d.mts +8 -0
- package/dist/reactivity/traverse.mjs +1 -0
- package/dist/reactivity/watch/helpers.mjs +1 -0
- package/dist/reactivity/watch/types.d.mts +43 -0
- package/dist/reactivity/watch/types.mjs +1 -0
- package/dist/reactivity/watch.d.mts +21 -0
- package/dist/reactivity/watch.mjs +1 -0
- package/dist/router/backNavigation.mjs +1 -0
- package/dist/router/createRouter.d.mts +8 -0
- package/dist/router/createRouter.mjs +1 -0
- package/dist/router/instance.mjs +1 -0
- package/dist/router/navigationApi.mjs +1 -0
- package/dist/router/navigationCore.d.mts +6 -0
- package/dist/router/navigationCore.mjs +1 -0
- package/dist/router/navigationResult.mjs +1 -0
- package/dist/router/navigationTarget.mjs +1 -0
- package/dist/router/navigationTargetHelpers.mjs +1 -0
- package/dist/router/resolve.d.mts +6 -0
- package/dist/router/resolve.mjs +1 -0
- package/dist/router/routeRegistry.mjs +1 -0
- package/dist/router/routeSync.d.mts +1 -0
- package/dist/router/routeSync.mjs +1 -0
- package/dist/router/types.d.mts +163 -0
- package/dist/router/types.mjs +1 -0
- package/dist/router/useRoute.d.mts +19 -0
- package/dist/router/useRoute.mjs +1 -0
- package/dist/router/useRouter.d.mts +8 -0
- package/dist/router/useRouter.mjs +1 -0
- package/dist/router.d.mts +9 -204
- package/dist/router.mjs +1 -1
- package/dist/routerInternal/location.mjs +1 -0
- package/dist/routerInternal/matching.mjs +1 -0
- package/dist/routerInternal/params.mjs +1 -0
- package/dist/routerInternal/path.mjs +1 -0
- package/dist/routerInternal/query.d.mts +7 -0
- package/dist/routerInternal/query.mjs +1 -0
- package/dist/routerInternal/records.mjs +1 -0
- package/dist/routerInternal/recordsWarnings.mjs +1 -0
- package/dist/routerInternal/snapshots.mjs +1 -0
- package/dist/routerInternal/types.d.mts +9 -0
- package/dist/runtime/app/computed.mjs +1 -0
- package/dist/runtime/app/context.mjs +1 -0
- package/dist/runtime/app/diagnostics.mjs +1 -0
- package/dist/runtime/app/mount.mjs +1 -0
- package/dist/runtime/app/pending.d.mts +10 -0
- package/dist/runtime/app/pending.mjs +1 -0
- package/dist/runtime/app/setData/patchScheduler.mjs +1 -0
- package/dist/runtime/app/setData/payload.mjs +1 -0
- package/dist/runtime/app/setData/scheduler.mjs +1 -0
- package/dist/runtime/app/setData/snapshot.mjs +1 -0
- package/dist/runtime/app/setDataOptions.mjs +1 -0
- package/dist/runtime/app.d.mts +8 -0
- package/dist/runtime/app.mjs +1 -0
- package/dist/runtime/bindModel.mjs +1 -0
- package/dist/runtime/defaults.d.mts +11 -0
- package/dist/runtime/defaults.mjs +1 -0
- package/dist/runtime/define/initialComputed.mjs +1 -0
- package/dist/runtime/define/options.mjs +1 -0
- package/dist/runtime/define/optionsApi.mjs +1 -0
- package/dist/runtime/define/props.mjs +1 -0
- package/dist/runtime/define/scopedSlotOptions.mjs +1 -0
- package/dist/runtime/define/setupResult.mjs +1 -0
- package/dist/runtime/define.d.mts +105 -0
- package/dist/runtime/define.mjs +1 -0
- package/dist/runtime/diff.mjs +1 -0
- package/dist/runtime/disposables.d.mts +31 -0
- package/dist/runtime/disposables.mjs +1 -0
- package/dist/runtime/elementIntersectionObserver.d.mts +26 -0
- package/dist/runtime/elementIntersectionObserver.mjs +1 -0
- package/dist/runtime/emit.mjs +1 -0
- package/dist/runtime/hooks/base.d.mts +27 -0
- package/dist/runtime/hooks/base.mjs +1 -0
- package/dist/runtime/hooks/register.d.mts +30 -0
- package/dist/runtime/hooks/register.mjs +1 -0
- package/dist/runtime/hooks/vue.d.mts +53 -0
- package/dist/runtime/hooks/vue.mjs +1 -0
- package/dist/runtime/hooks.d.mts +4 -0
- package/dist/runtime/index.d.mts +47 -0
- package/dist/runtime/internal.mjs +1 -0
- package/dist/runtime/intersectionObserver.d.mts +14 -0
- package/dist/runtime/intersectionObserver.mjs +1 -0
- package/dist/runtime/layoutBridge.d.mts +59 -0
- package/dist/runtime/layoutBridge.mjs +1 -0
- package/dist/runtime/layoutComponentMatcher.mjs +1 -0
- package/dist/runtime/nativeBridge.mjs +1 -0
- package/dist/runtime/noSetData.d.mts +5 -0
- package/dist/runtime/noSetData.mjs +1 -0
- package/dist/runtime/pageEnvironment.d.mts +50 -0
- package/dist/runtime/pageEnvironment.mjs +1 -0
- package/dist/runtime/pageLayout.d.mts +26 -0
- package/dist/runtime/pageLayout.mjs +1 -0
- package/dist/runtime/pageScroll.d.mts +29 -0
- package/dist/runtime/pageScroll.mjs +1 -0
- package/dist/runtime/platform.mjs +1 -0
- package/dist/runtime/provide.d.mts +59 -0
- package/dist/runtime/provide.mjs +1 -0
- package/dist/runtime/provideContext.mjs +1 -0
- package/dist/runtime/provideStore.d.mts +7 -0
- package/dist/runtime/provideStore.mjs +1 -0
- package/dist/runtime/pullDownRefresh.d.mts +12 -0
- package/dist/runtime/pullDownRefresh.mjs +1 -0
- package/dist/runtime/register/app.d.mts +14 -0
- package/dist/runtime/register/app.mjs +1 -0
- package/dist/runtime/register/component/features.mjs +1 -0
- package/dist/runtime/register/component/lifecycle/optionalHooks.mjs +1 -0
- package/dist/runtime/register/component/lifecycle/platform.mjs +1 -0
- package/dist/runtime/register/component/lifecycle.mjs +1 -0
- package/dist/runtime/register/component/methods.mjs +1 -0
- package/dist/runtime/register/component/options.mjs +1 -0
- package/dist/runtime/register/component/props.mjs +1 -0
- package/dist/runtime/register/component/registerDefinition.mjs +1 -0
- package/dist/runtime/register/component.d.mts +15 -0
- package/dist/runtime/register/component.mjs +1 -0
- package/dist/runtime/register/inline.d.mts +15 -0
- package/dist/runtime/register/inline.mjs +1 -0
- package/dist/runtime/register/runtimeInstance/methodBridge.mjs +1 -0
- package/dist/runtime/register/runtimeInstance/provideContext.mjs +1 -0
- package/dist/runtime/register/runtimeInstance/setupContext.mjs +1 -0
- package/dist/runtime/register/runtimeInstance/setupPhase.mjs +1 -0
- package/dist/runtime/register/runtimeInstance/utils.mjs +1 -0
- package/dist/runtime/register/runtimeInstance.d.mts +26 -0
- package/dist/runtime/register/runtimeInstance.mjs +1 -0
- package/dist/runtime/register/setDataFrequencyWarning.mjs +1 -0
- package/dist/runtime/register/setup.d.mts +11 -0
- package/dist/runtime/register/setup.mjs +1 -0
- package/dist/runtime/register/snapshot.mjs +1 -0
- package/dist/runtime/register/watch.d.mts +12 -0
- package/dist/runtime/register/watch.mjs +1 -0
- package/dist/runtime/register.d.mts +5 -0
- package/dist/runtime/scopedSlots.mjs +1 -0
- package/dist/runtime/selectorQuery.d.mts +54 -0
- package/dist/runtime/selectorQuery.mjs +1 -0
- package/dist/runtime/setupTracking.mjs +1 -0
- package/dist/{template-DE8e5dj_.d.mts → runtime/template.d.mts} +1 -1
- package/dist/runtime/template.mjs +1 -0
- package/dist/runtime/templateRefTypes.d.mts +7 -0
- package/dist/runtime/templateRefs/helpers.mjs +1 -0
- package/dist/runtime/templateRefs.d.mts +11 -0
- package/dist/runtime/templateRefs.mjs +1 -0
- package/dist/runtime/types/core.d.mts +35 -0
- package/dist/runtime/types/miniprogram.d.mts +80 -0
- package/dist/runtime/types/miniprogramHost.d.mts +44 -0
- package/dist/runtime/types/miniprogramHostSources.d.mts +112 -0
- package/dist/runtime/types/options.d.mts +136 -0
- package/dist/runtime/types/props/propTypes.d.mts +79 -0
- package/dist/runtime/types/props/router.d.mts +51 -0
- package/dist/runtime/types/props/setup.d.mts +96 -0
- package/dist/runtime/types/props.d.mts +4 -0
- package/dist/runtime/types/runtime.d.mts +59 -0
- package/dist/runtime/types/setData.d.mts +220 -0
- package/dist/runtime/types.d.mts +28 -0
- package/dist/runtime/uniAppHost.d.mts +8 -0
- package/dist/runtime/uniAppHost.mjs +1 -0
- package/dist/runtime/updatePerformance.d.mts +13 -0
- package/dist/runtime/updatePerformance.mjs +1 -0
- package/dist/runtime/use.d.mts +13 -0
- package/dist/runtime/use.mjs +1 -0
- package/dist/runtime/vueCompat/context.d.mts +8 -0
- package/dist/runtime/vueCompat/context.mjs +1 -0
- package/dist/runtime/vueCompat/model.d.mts +30 -0
- package/dist/runtime/vueCompat/model.mjs +1 -0
- package/dist/runtime/vueCompat/router.d.mts +28 -0
- package/dist/runtime/vueCompat/router.mjs +1 -0
- package/dist/runtime/vueCompat/templateRef.d.mts +9 -0
- package/dist/runtime/vueCompat/templateRef.mjs +1 -0
- package/dist/runtime/vueCompat.d.mts +5 -0
- package/dist/scheduler.d.mts +4 -0
- package/dist/scheduler.mjs +1 -0
- package/dist/store/actions.mjs +1 -0
- package/dist/store/base.mjs +1 -0
- package/dist/store/define/optionsStyle.mjs +1 -0
- package/dist/store/define/setupStyle.mjs +1 -0
- package/dist/store/define/shared.mjs +1 -0
- package/dist/store/define.d.mts +26 -0
- package/dist/store/define.mjs +1 -0
- package/dist/store/manager.d.mts +8 -0
- package/dist/store/manager.mjs +1 -0
- package/dist/store/storeToRefs.d.mts +13 -0
- package/dist/store/storeToRefs.mjs +1 -0
- package/dist/store/types.d.mts +70 -0
- package/dist/store/utils.mjs +1 -0
- package/dist/store.d.mts +4 -1
- package/dist/store.mjs +1 -1
- package/dist/utils.mjs +1 -0
- package/dist/version.d.mts +4 -0
- package/dist/version.mjs +1 -0
- package/dist/vue-augment.d.mts +6 -0
- package/dist/vue-demi.d.mts +68 -10
- package/dist/vue-demi.mjs +1 -1
- package/dist/vue-types.d.mts +18 -0
- package/dist/weappIntrinsicElements/base.d.mts +22 -0
- package/dist/weappIntrinsicElements/elements/ad-custom.d.mts +13 -0
- package/dist/weappIntrinsicElements/elements/ad.d.mts +16 -0
- package/dist/weappIntrinsicElements/elements/audio.d.mts +20 -0
- package/dist/weappIntrinsicElements/elements/block.d.mts +8 -0
- package/dist/weappIntrinsicElements/elements/button.d.mts +40 -0
- package/dist/weappIntrinsicElements/elements/camera.d.mts +18 -0
- package/dist/weappIntrinsicElements/elements/canvas.d.mts +18 -0
- package/dist/weappIntrinsicElements/elements/checkbox-group.d.mts +13 -0
- package/dist/weappIntrinsicElements/elements/checkbox.d.mts +13 -0
- package/dist/weappIntrinsicElements/elements/cover-image.d.mts +10 -0
- package/dist/weappIntrinsicElements/elements/cover-view.d.mts +10 -0
- package/dist/weappIntrinsicElements/elements/editor.d.mts +22 -0
- package/dist/weappIntrinsicElements/elements/form.d.mts +16 -0
- package/dist/weappIntrinsicElements/elements/functional-page-navigator.d.mts +15 -0
- package/dist/weappIntrinsicElements/elements/icon.d.mts +12 -0
- package/dist/weappIntrinsicElements/elements/image.d.mts +18 -0
- package/dist/weappIntrinsicElements/elements/import.d.mts +10 -0
- package/dist/weappIntrinsicElements/elements/include.d.mts +10 -0
- package/dist/weappIntrinsicElements/elements/input.d.mts +47 -0
- package/dist/weappIntrinsicElements/elements/keyboard-accessory.d.mts +8 -0
- package/dist/weappIntrinsicElements/elements/label.d.mts +10 -0
- package/dist/weappIntrinsicElements/elements/live-player.d.mts +35 -0
- package/dist/weappIntrinsicElements/elements/live-pusher.d.mts +57 -0
- package/dist/weappIntrinsicElements/elements/map.d.mts +105 -0
- package/dist/weappIntrinsicElements/elements/match-media.d.mts +16 -0
- package/dist/weappIntrinsicElements/elements/movable-area.d.mts +26 -0
- package/dist/weappIntrinsicElements/elements/movable-view.d.mts +26 -0
- package/dist/weappIntrinsicElements/elements/navigation-bar.d.mts +15 -0
- package/dist/weappIntrinsicElements/elements/navigator.d.mts +25 -0
- package/dist/weappIntrinsicElements/elements/official-account.d.mts +13 -0
- package/dist/weappIntrinsicElements/elements/open-data.d.mts +15 -0
- package/dist/weappIntrinsicElements/elements/page-container.d.mts +25 -0
- package/dist/weappIntrinsicElements/elements/page-meta.d.mts +23 -0
- package/dist/weappIntrinsicElements/elements/picker-view-column.d.mts +18 -0
- package/dist/weappIntrinsicElements/elements/picker-view.d.mts +18 -0
- package/dist/weappIntrinsicElements/elements/picker.d.mts +23 -0
- package/dist/weappIntrinsicElements/elements/progress.d.mts +21 -0
- package/dist/weappIntrinsicElements/elements/radio-group.d.mts +13 -0
- package/dist/weappIntrinsicElements/elements/radio.d.mts +13 -0
- package/dist/weappIntrinsicElements/elements/rich-text.d.mts +17 -0
- package/dist/weappIntrinsicElements/elements/scroll-view.d.mts +68 -0
- package/dist/weappIntrinsicElements/elements/share-element.d.mts +18 -0
- package/dist/weappIntrinsicElements/elements/slider.d.mts +23 -0
- package/dist/weappIntrinsicElements/elements/slot.d.mts +10 -0
- package/dist/weappIntrinsicElements/elements/swiper-item.d.mts +42 -0
- package/dist/weappIntrinsicElements/elements/swiper.d.mts +42 -0
- package/dist/weappIntrinsicElements/elements/switch.d.mts +14 -0
- package/dist/weappIntrinsicElements/elements/template.d.mts +12 -0
- package/dist/weappIntrinsicElements/elements/text.d.mts +15 -0
- package/dist/weappIntrinsicElements/elements/textarea.d.mts +40 -0
- package/dist/weappIntrinsicElements/elements/video.d.mts +71 -0
- package/dist/weappIntrinsicElements/elements/view.d.mts +13 -0
- package/dist/weappIntrinsicElements/elements/voip-room.d.mts +14 -0
- package/dist/weappIntrinsicElements/elements/web-view.d.mts +13 -0
- package/dist/weappIntrinsicElements.d.mts +153 -0
- package/package.json +6 -6
- package/dist/base-BxKbbKVO.mjs +0 -1
- package/dist/computed-Xoi9XEUx.mjs +0 -1
- package/dist/dev/base-CYkvI7w8.mjs.map +0 -1
- package/dist/dev/computed-BxRsUJgi.mjs.map +0 -1
- package/dist/dev/ref-DRZC3Kc5.mjs +0 -695
- package/dist/dev/ref-DRZC3Kc5.mjs.map +0 -1
- package/dist/dev/rolldown-runtime-BUUfjzRC.mjs +0 -36
- package/dist/dev/router-D0JQfgyN.mjs +0 -754
- package/dist/dev/router-D0JQfgyN.mjs.map +0 -1
- package/dist/dev/router.mjs.map +0 -1
- package/dist/dev/store-HNsiQJ4d.mjs +0 -479
- package/dist/dev/store-HNsiQJ4d.mjs.map +0 -1
- package/dist/dev/template-n_iVr0ey.mjs.map +0 -1
- package/dist/dev/templateRef-BLnYcEH0.mjs +0 -6439
- package/dist/dev/templateRef-BLnYcEH0.mjs.map +0 -1
- package/dist/dev/toRefs-D06VmFK2.mjs.map +0 -1
- package/dist/dev/watch-jrgL5ald.mjs +0 -445
- package/dist/dev/watch-jrgL5ald.mjs.map +0 -1
- package/dist/index-BiHILcmb.d.mts +0 -1215
- package/dist/index-CCET_bCY.d.mts +0 -111
- package/dist/ref-D37CknuD.mjs +0 -1
- package/dist/rolldown-runtime-CenpyGzJ.mjs +0 -1
- package/dist/router-D4W4lEXM.mjs +0 -1
- package/dist/store-eHrHBQiv.mjs +0 -1
- package/dist/template-CNzlwH-E.mjs +0 -1
- package/dist/templateRef-DOTHWzZ5.mjs +0 -1
- package/dist/toRefs-CoytPyo0.mjs +0 -1
- package/dist/traverse-B4Ez44Gd.d.mts +0 -108
- package/dist/vue-types-B3N60cGV.d.mts +0 -757
- package/dist/watch-Bbd-gmEg.mjs +0 -1
- package/dist/weappIntrinsicElements-BgDtC53_.d.mts +0 -1257
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { getCurrentInstance } from "./hooks/base.mjs";
|
|
2
|
+
import { onDetached, onPageScroll, onUnload } from "./hooks/register.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/runtime/pageScroll.ts
|
|
5
|
+
function resolvePositiveInterval(interval) {
|
|
6
|
+
if (typeof interval !== "number" || !Number.isFinite(interval)) return 80;
|
|
7
|
+
return Math.max(0, interval);
|
|
8
|
+
}
|
|
9
|
+
function resolveMaxWait(maxWait) {
|
|
10
|
+
if (typeof maxWait !== "number" || !Number.isFinite(maxWait)) return;
|
|
11
|
+
return Math.max(0, maxWait);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 在 setup 中注册节流后的 onPageScroll 监听,并在卸载时自动清理。
|
|
15
|
+
*/
|
|
16
|
+
function usePageScrollThrottle(handler, options = {}) {
|
|
17
|
+
var _options$leading, _options$trailing;
|
|
18
|
+
if (!getCurrentInstance()) throw new Error("usePageScrollThrottle() 必须在 setup() 的同步阶段调用");
|
|
19
|
+
if (typeof handler !== "function") throw new TypeError("usePageScrollThrottle() 需要传入回调函数");
|
|
20
|
+
const interval = resolvePositiveInterval(options.interval);
|
|
21
|
+
const leading = (_options$leading = options.leading) !== null && _options$leading !== void 0 ? _options$leading : true;
|
|
22
|
+
const trailing = (_options$trailing = options.trailing) !== null && _options$trailing !== void 0 ? _options$trailing : true;
|
|
23
|
+
const maxWait = resolveMaxWait(options.maxWait);
|
|
24
|
+
let trailingTimer;
|
|
25
|
+
let maxWaitTimer;
|
|
26
|
+
let stopped = false;
|
|
27
|
+
let lastInvokeTime = 0;
|
|
28
|
+
let trailingEvent;
|
|
29
|
+
const clearTrailingTimer = () => {
|
|
30
|
+
if (!trailingTimer) return;
|
|
31
|
+
clearTimeout(trailingTimer);
|
|
32
|
+
trailingTimer = void 0;
|
|
33
|
+
};
|
|
34
|
+
const clearMaxWaitTimer = () => {
|
|
35
|
+
if (!maxWaitTimer) return;
|
|
36
|
+
clearTimeout(maxWaitTimer);
|
|
37
|
+
maxWaitTimer = void 0;
|
|
38
|
+
};
|
|
39
|
+
const invoke = (event) => {
|
|
40
|
+
clearTrailingTimer();
|
|
41
|
+
clearMaxWaitTimer();
|
|
42
|
+
trailingEvent = void 0;
|
|
43
|
+
lastInvokeTime = Date.now();
|
|
44
|
+
handler(event);
|
|
45
|
+
};
|
|
46
|
+
const flushTrailing = () => {
|
|
47
|
+
const event = trailingEvent;
|
|
48
|
+
trailingEvent = void 0;
|
|
49
|
+
trailingTimer = void 0;
|
|
50
|
+
if (!event || stopped) return;
|
|
51
|
+
invoke(event);
|
|
52
|
+
};
|
|
53
|
+
const flushMaxWait = () => {
|
|
54
|
+
const event = trailingEvent;
|
|
55
|
+
maxWaitTimer = void 0;
|
|
56
|
+
if (!event || stopped) return;
|
|
57
|
+
invoke(event);
|
|
58
|
+
};
|
|
59
|
+
const scheduleTrailing = (now) => {
|
|
60
|
+
if (!trailing || trailingTimer) return;
|
|
61
|
+
const remaining = Math.max(0, interval - (now - (lastInvokeTime === 0 ? now : lastInvokeTime)));
|
|
62
|
+
trailingTimer = setTimeout(flushTrailing, remaining);
|
|
63
|
+
};
|
|
64
|
+
const scheduleMaxWait = (now) => {
|
|
65
|
+
if (typeof maxWait !== "number" || maxWaitTimer) return;
|
|
66
|
+
const remaining = maxWait - (now - (lastInvokeTime === 0 ? now : lastInvokeTime));
|
|
67
|
+
if (remaining <= 0) {
|
|
68
|
+
flushMaxWait();
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
maxWaitTimer = setTimeout(flushMaxWait, remaining);
|
|
72
|
+
};
|
|
73
|
+
const register = (event) => {
|
|
74
|
+
if (stopped) return;
|
|
75
|
+
if (interval === 0) {
|
|
76
|
+
invoke(event);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const now = Date.now();
|
|
80
|
+
trailingEvent = event;
|
|
81
|
+
if (leading && (lastInvokeTime === 0 || now - lastInvokeTime >= interval)) {
|
|
82
|
+
invoke(event);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (typeof maxWait === "number") {
|
|
86
|
+
if (now - (lastInvokeTime === 0 ? now : lastInvokeTime) >= maxWait) {
|
|
87
|
+
invoke(event);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (!trailing && typeof maxWait !== "number") return;
|
|
92
|
+
scheduleTrailing(now);
|
|
93
|
+
scheduleMaxWait(now);
|
|
94
|
+
};
|
|
95
|
+
onPageScroll(register);
|
|
96
|
+
const stop = () => {
|
|
97
|
+
if (stopped) return;
|
|
98
|
+
stopped = true;
|
|
99
|
+
trailingEvent = void 0;
|
|
100
|
+
clearTrailingTimer();
|
|
101
|
+
clearMaxWaitTimer();
|
|
102
|
+
};
|
|
103
|
+
onUnload(stop);
|
|
104
|
+
onDetached(stop);
|
|
105
|
+
return stop;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
//#endregion
|
|
109
|
+
export { usePageScrollThrottle };
|
|
110
|
+
//# sourceMappingURL=pageScroll.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageScroll.mjs","names":[],"sources":["../../../src/runtime/pageScroll.ts"],"sourcesContent":["import type { MiniProgramPageScrollOption } from './types'\nimport { getCurrentInstance, onDetached, onPageScroll, onUnload } from './hooks'\n\nexport interface UsePageScrollThrottleOptions {\n /**\n * 节流间隔(毫秒),默认 80ms。\n */\n interval?: number\n /**\n * 是否在窗口起始边缘立即触发,默认 true。\n */\n leading?: boolean\n /**\n * 是否在窗口结束边缘补一次回调,默认 true。\n */\n trailing?: boolean\n /**\n * 持续滚动时的最大等待时间(毫秒)。\n * 当 trailing 为 false 时,可用于兜底触发一次回调。\n */\n maxWait?: number\n}\n\nexport type UsePageScrollThrottleStopHandle = () => void\n\nfunction resolvePositiveInterval(interval: number | undefined): number {\n if (typeof interval !== 'number' || !Number.isFinite(interval)) {\n return 80\n }\n return Math.max(0, interval)\n}\n\nfunction resolveMaxWait(maxWait: number | undefined): number | undefined {\n if (typeof maxWait !== 'number' || !Number.isFinite(maxWait)) {\n return undefined\n }\n return Math.max(0, maxWait)\n}\n\n/**\n * 在 setup 中注册节流后的 onPageScroll 监听,并在卸载时自动清理。\n */\nexport function usePageScrollThrottle(\n handler: (opt: MiniProgramPageScrollOption) => void,\n options: UsePageScrollThrottleOptions = {},\n): UsePageScrollThrottleStopHandle {\n if (!getCurrentInstance()) {\n throw new Error('usePageScrollThrottle() 必须在 setup() 的同步阶段调用')\n }\n if (typeof handler !== 'function') {\n throw new TypeError('usePageScrollThrottle() 需要传入回调函数')\n }\n\n const interval = resolvePositiveInterval(options.interval)\n const leading = options.leading ?? true\n const trailing = options.trailing ?? true\n const maxWait = resolveMaxWait(options.maxWait)\n\n let trailingTimer: ReturnType<typeof setTimeout> | undefined\n let maxWaitTimer: ReturnType<typeof setTimeout> | undefined\n let stopped = false\n let lastInvokeTime = 0\n let trailingEvent: MiniProgramPageScrollOption | undefined\n\n const clearTrailingTimer = () => {\n if (!trailingTimer) {\n return\n }\n clearTimeout(trailingTimer)\n trailingTimer = undefined\n }\n\n const clearMaxWaitTimer = () => {\n if (!maxWaitTimer) {\n return\n }\n clearTimeout(maxWaitTimer)\n maxWaitTimer = undefined\n }\n\n const invoke = (event: MiniProgramPageScrollOption) => {\n clearTrailingTimer()\n clearMaxWaitTimer()\n trailingEvent = undefined\n lastInvokeTime = Date.now()\n handler(event)\n }\n\n const flushTrailing = () => {\n const event = trailingEvent\n trailingEvent = undefined\n trailingTimer = undefined\n if (!event || stopped) {\n return\n }\n invoke(event)\n }\n\n const flushMaxWait = () => {\n const event = trailingEvent\n maxWaitTimer = undefined\n if (!event || stopped) {\n return\n }\n invoke(event)\n }\n\n const scheduleTrailing = (now: number) => {\n if (!trailing || trailingTimer) {\n return\n }\n const base = lastInvokeTime === 0 ? now : lastInvokeTime\n const remaining = Math.max(0, interval - (now - base))\n trailingTimer = setTimeout(flushTrailing, remaining)\n }\n\n const scheduleMaxWait = (now: number) => {\n if (typeof maxWait !== 'number' || maxWaitTimer) {\n return\n }\n const base = lastInvokeTime === 0 ? now : lastInvokeTime\n const remaining = maxWait - (now - base)\n if (remaining <= 0) {\n flushMaxWait()\n return\n }\n maxWaitTimer = setTimeout(flushMaxWait, remaining)\n }\n\n const register = (event: MiniProgramPageScrollOption) => {\n if (stopped) {\n return\n }\n\n if (interval === 0) {\n invoke(event)\n return\n }\n\n const now = Date.now()\n trailingEvent = event\n\n if (leading && (lastInvokeTime === 0 || now - lastInvokeTime >= interval)) {\n invoke(event)\n return\n }\n\n if (typeof maxWait === 'number') {\n const base = lastInvokeTime === 0 ? now : lastInvokeTime\n if (now - base >= maxWait) {\n invoke(event)\n return\n }\n }\n\n if (!trailing && typeof maxWait !== 'number') {\n return\n }\n\n scheduleTrailing(now)\n scheduleMaxWait(now)\n }\n\n onPageScroll(register)\n\n const stop = () => {\n if (stopped) {\n return\n }\n stopped = true\n trailingEvent = undefined\n clearTrailingTimer()\n clearMaxWaitTimer()\n }\n\n onUnload(stop)\n onDetached(stop)\n\n return stop\n}\n"],"mappings":";;;;AAyBA,SAAS,wBAAwB,UAAsC;CACrE,IAAI,OAAO,aAAa,YAAY,CAAC,OAAO,SAAS,QAAQ,GAC3D,OAAO;CAET,OAAO,KAAK,IAAI,GAAG,QAAQ;AAC7B;AAEA,SAAS,eAAe,SAAiD;CACvE,IAAI,OAAO,YAAY,YAAY,CAAC,OAAO,SAAS,OAAO,GACzD;CAEF,OAAO,KAAK,IAAI,GAAG,OAAO;AAC5B;;;;AAKA,SAAgB,sBACd,SACA,UAAwC,CAAC,GACR;;CACjC,IAAI,CAAC,mBAAmB,GACtB,MAAM,IAAI,MAAM,6CAA6C;CAE/D,IAAI,OAAO,YAAY,YACrB,MAAM,IAAI,UAAU,kCAAkC;CAGxD,MAAM,WAAW,wBAAwB,QAAQ,QAAQ;CACzD,MAAM,8BAAU,QAAQ,sEAAW;CACnC,MAAM,gCAAW,QAAQ,yEAAY;CACrC,MAAM,UAAU,eAAe,QAAQ,OAAO;CAE9C,IAAI;CACJ,IAAI;CACJ,IAAI,UAAU;CACd,IAAI,iBAAiB;CACrB,IAAI;CAEJ,MAAM,2BAA2B;EAC/B,IAAI,CAAC,eACH;EAEF,aAAa,aAAa;EAC1B,gBAAgB;CAClB;CAEA,MAAM,0BAA0B;EAC9B,IAAI,CAAC,cACH;EAEF,aAAa,YAAY;EACzB,eAAe;CACjB;CAEA,MAAM,UAAU,UAAuC;EACrD,mBAAmB;EACnB,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB,KAAK,IAAI;EAC1B,QAAQ,KAAK;CACf;CAEA,MAAM,sBAAsB;EAC1B,MAAM,QAAQ;EACd,gBAAgB;EAChB,gBAAgB;EAChB,IAAI,CAAC,SAAS,SACZ;EAEF,OAAO,KAAK;CACd;CAEA,MAAM,qBAAqB;EACzB,MAAM,QAAQ;EACd,eAAe;EACf,IAAI,CAAC,SAAS,SACZ;EAEF,OAAO,KAAK;CACd;CAEA,MAAM,oBAAoB,QAAgB;EACxC,IAAI,CAAC,YAAY,eACf;EAGF,MAAM,YAAY,KAAK,IAAI,GAAG,YAAY,OAD7B,mBAAmB,IAAI,MAAM,gBACW;EACrD,gBAAgB,WAAW,eAAe,SAAS;CACrD;CAEA,MAAM,mBAAmB,QAAgB;EACvC,IAAI,OAAO,YAAY,YAAY,cACjC;EAGF,MAAM,YAAY,WAAW,OADhB,mBAAmB,IAAI,MAAM;EAE1C,IAAI,aAAa,GAAG;GAClB,aAAa;GACb;EACF;EACA,eAAe,WAAW,cAAc,SAAS;CACnD;CAEA,MAAM,YAAY,UAAuC;EACvD,IAAI,SACF;EAGF,IAAI,aAAa,GAAG;GAClB,OAAO,KAAK;GACZ;EACF;EAEA,MAAM,MAAM,KAAK,IAAI;EACrB,gBAAgB;EAEhB,IAAI,YAAY,mBAAmB,KAAK,MAAM,kBAAkB,WAAW;GACzE,OAAO,KAAK;GACZ;EACF;EAEA,IAAI,OAAO,YAAY,UAErB;OAAI,OADS,mBAAmB,IAAI,MAAM,mBACxB,SAAS;IACzB,OAAO,KAAK;IACZ;GACF;;EAGF,IAAI,CAAC,YAAY,OAAO,YAAY,UAClC;EAGF,iBAAiB,GAAG;EACpB,gBAAgB,GAAG;CACrB;CAEA,aAAa,QAAQ;CAErB,MAAM,aAAa;EACjB,IAAI,SACF;EAEF,UAAU;EACV,gBAAgB;EAChB,mBAAmB;EACnB,kBAAkB;CACpB;CAEA,SAAS,IAAI;CACb,WAAW,IAAI;CAEf,OAAO;AACT"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { getMiniProgramPlatformByRuntimeGlobalKey, getMiniProgramRuntimeCapabilities, getMiniProgramRuntimeGlobalKey, getMiniProgramRuntimeGlobalKeys, getMiniProgramRuntimeHostConfigKey, resolveMiniProgramPlatform, supportsMiniProgramRuntimeCapability } from "@weapp-core/shared/platforms";
|
|
2
|
+
|
|
3
|
+
//#region src/runtime/platform.ts
|
|
4
|
+
const MINI_PROGRAM_GLOBAL_ROUTER_METHODS = [
|
|
5
|
+
"switchTab",
|
|
6
|
+
"reLaunch",
|
|
7
|
+
"redirectTo",
|
|
8
|
+
"navigateTo",
|
|
9
|
+
"navigateBack"
|
|
10
|
+
];
|
|
11
|
+
function getGlobalRuntime() {
|
|
12
|
+
if (typeof globalThis === "undefined") return;
|
|
13
|
+
return globalThis;
|
|
14
|
+
}
|
|
15
|
+
function resolveCurrentMiniProgramPlatform() {
|
|
16
|
+
var _env;
|
|
17
|
+
const globalRuntime = getGlobalRuntime();
|
|
18
|
+
const compiledPlatform = (_env = import.meta.env) === null || _env === void 0 ? void 0 : _env.PLATFORM;
|
|
19
|
+
const resolvedCompiledPlatform = resolveMiniProgramPlatform(compiledPlatform);
|
|
20
|
+
if (resolvedCompiledPlatform) return resolvedCompiledPlatform;
|
|
21
|
+
for (const globalKey of getMiniProgramRuntimeGlobalKeys()) if (globalRuntime === null || globalRuntime === void 0 ? void 0 : globalRuntime[globalKey]) return getMiniProgramPlatformByRuntimeGlobalKey(globalKey);
|
|
22
|
+
}
|
|
23
|
+
function getCurrentMiniProgramRuntimeCapabilities() {
|
|
24
|
+
return getMiniProgramRuntimeCapabilities(resolveCurrentMiniProgramPlatform());
|
|
25
|
+
}
|
|
26
|
+
function supportsCurrentMiniProgramRuntimeCapability(capabilityName) {
|
|
27
|
+
return supportsMiniProgramRuntimeCapability(resolveCurrentMiniProgramPlatform(), capabilityName);
|
|
28
|
+
}
|
|
29
|
+
function getCurrentMiniProgramPages() {
|
|
30
|
+
if (!supportsCurrentMiniProgramRuntimeCapability("globalPageStack")) return [];
|
|
31
|
+
const getCurrentPagesFn = globalThis.getCurrentPages;
|
|
32
|
+
if (typeof getCurrentPagesFn !== "function") return [];
|
|
33
|
+
try {
|
|
34
|
+
const pages = getCurrentPagesFn();
|
|
35
|
+
return Array.isArray(pages) ? pages : [];
|
|
36
|
+
} catch (_unused) {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function getCurrentMiniProgramHostConfig() {
|
|
41
|
+
const globalRuntime = getGlobalRuntime();
|
|
42
|
+
const hostConfigKey = getMiniProgramRuntimeHostConfigKey(resolveCurrentMiniProgramPlatform());
|
|
43
|
+
const hostConfig = globalRuntime === null || globalRuntime === void 0 ? void 0 : globalRuntime[hostConfigKey];
|
|
44
|
+
return hostConfig && typeof hostConfig === "object" ? hostConfig : void 0;
|
|
45
|
+
}
|
|
46
|
+
function getMiniProgramGlobalObject(platformInput) {
|
|
47
|
+
var _env2;
|
|
48
|
+
const globalRuntime = getGlobalRuntime();
|
|
49
|
+
const compiledPlatform = platformInput !== null && platformInput !== void 0 ? platformInput : (_env2 = import.meta.env) === null || _env2 === void 0 ? void 0 : _env2.PLATFORM;
|
|
50
|
+
const resolvedCompiledPlatform = resolveMiniProgramPlatform(compiledPlatform);
|
|
51
|
+
if (resolvedCompiledPlatform) {
|
|
52
|
+
const globalKey = getMiniProgramRuntimeGlobalKey(resolvedCompiledPlatform);
|
|
53
|
+
return globalRuntime === null || globalRuntime === void 0 ? void 0 : globalRuntime[globalKey];
|
|
54
|
+
}
|
|
55
|
+
for (const globalKey of getMiniProgramRuntimeGlobalKeys()) {
|
|
56
|
+
const candidate = globalRuntime === null || globalRuntime === void 0 ? void 0 : globalRuntime[globalKey];
|
|
57
|
+
if (candidate) return candidate;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function getCurrentMiniProgramGlobalRouter() {
|
|
61
|
+
if (!supportsCurrentMiniProgramRuntimeCapability("globalRouterApi")) return;
|
|
62
|
+
const miniProgramGlobal = getMiniProgramGlobalObject();
|
|
63
|
+
if (!miniProgramGlobal) return;
|
|
64
|
+
const routerMethods = Object.create(null);
|
|
65
|
+
for (const methodName of MINI_PROGRAM_GLOBAL_ROUTER_METHODS) {
|
|
66
|
+
const handler = miniProgramGlobal[methodName];
|
|
67
|
+
if (typeof handler !== "function") return;
|
|
68
|
+
routerMethods[methodName] = (...args) => handler.apply(miniProgramGlobal, args);
|
|
69
|
+
}
|
|
70
|
+
return routerMethods;
|
|
71
|
+
}
|
|
72
|
+
function getScopedSlotHostGlobalObject() {
|
|
73
|
+
var _getMiniProgramGlobal;
|
|
74
|
+
return (_getMiniProgramGlobal = getMiniProgramGlobalObject()) !== null && _getMiniProgramGlobal !== void 0 ? _getMiniProgramGlobal : getGlobalRuntime();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//#endregion
|
|
78
|
+
export { getCurrentMiniProgramGlobalRouter, getCurrentMiniProgramHostConfig, getCurrentMiniProgramPages, getCurrentMiniProgramRuntimeCapabilities, getMiniProgramGlobalObject, getScopedSlotHostGlobalObject, resolveCurrentMiniProgramPlatform, supportsCurrentMiniProgramRuntimeCapability };
|
|
79
|
+
//# sourceMappingURL=platform.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.mjs","names":[],"sources":["../../../src/runtime/platform.ts"],"sourcesContent":["import type { MiniProgramRuntimeCapabilities, MiniProgramRuntimeCapabilityName } from '@weapp-core/shared/platforms'\nimport {\n getMiniProgramPlatformByRuntimeGlobalKey,\n getMiniProgramRuntimeCapabilities,\n getMiniProgramRuntimeGlobalKey,\n getMiniProgramRuntimeGlobalKeys,\n getMiniProgramRuntimeHostConfigKey,\n resolveMiniProgramPlatform,\n supportsMiniProgramRuntimeCapability,\n} from '@weapp-core/shared/platforms'\n\ntype MiniProgramGlobal = Record<string, any>\ntype MiniProgramHostConfig = Record<string, any>\ntype MiniProgramGlobalRouterMethodName = 'switchTab' | 'reLaunch' | 'redirectTo' | 'navigateTo' | 'navigateBack'\ntype MiniProgramGlobalRouter = Record<MiniProgramGlobalRouterMethodName, (...args: any[]) => any>\ntype ImportMetaWithEnv = ImportMeta & {\n env?: {\n PLATFORM?: string\n }\n}\nconst MINI_PROGRAM_GLOBAL_ROUTER_METHODS: readonly MiniProgramGlobalRouterMethodName[] = [\n 'switchTab',\n 'reLaunch',\n 'redirectTo',\n 'navigateTo',\n 'navigateBack',\n]\n\nfunction getGlobalRuntime() {\n if (typeof globalThis === 'undefined') {\n return undefined\n }\n return globalThis as MiniProgramGlobal\n}\n\nexport function resolveCurrentMiniProgramPlatform() {\n const globalRuntime = getGlobalRuntime()\n const compiledPlatform = (import.meta as ImportMetaWithEnv).env?.PLATFORM\n\n // 优先命中编译期平台分支,便于构建阶段做 dead-code elimination。\n const resolvedCompiledPlatform = resolveMiniProgramPlatform(compiledPlatform)\n if (resolvedCompiledPlatform) {\n return resolvedCompiledPlatform\n }\n\n for (const globalKey of getMiniProgramRuntimeGlobalKeys()) {\n if (globalRuntime?.[globalKey]) {\n return getMiniProgramPlatformByRuntimeGlobalKey(globalKey)\n }\n }\n\n return undefined\n}\n\nexport function getCurrentMiniProgramRuntimeCapabilities(): MiniProgramRuntimeCapabilities {\n return getMiniProgramRuntimeCapabilities(resolveCurrentMiniProgramPlatform())\n}\n\nexport function supportsCurrentMiniProgramRuntimeCapability(capabilityName: MiniProgramRuntimeCapabilityName): boolean {\n return supportsMiniProgramRuntimeCapability(resolveCurrentMiniProgramPlatform(), capabilityName)\n}\n\nexport function getCurrentMiniProgramPages(): Array<Record<string, any>> {\n if (!supportsCurrentMiniProgramRuntimeCapability('globalPageStack')) {\n return []\n }\n const getCurrentPagesFn = (globalThis as Record<string, unknown>).getCurrentPages\n if (typeof getCurrentPagesFn !== 'function') {\n return []\n }\n try {\n const pages = getCurrentPagesFn()\n return Array.isArray(pages) ? pages as Array<Record<string, any>> : []\n }\n catch {\n return []\n }\n}\n\nexport function getCurrentMiniProgramHostConfig(): MiniProgramHostConfig | undefined {\n const globalRuntime = getGlobalRuntime()\n const hostConfigKey = getMiniProgramRuntimeHostConfigKey(resolveCurrentMiniProgramPlatform())\n const hostConfig = globalRuntime?.[hostConfigKey]\n return hostConfig && typeof hostConfig === 'object' ? hostConfig as MiniProgramHostConfig : undefined\n}\n\nexport function getMiniProgramGlobalObject(platformInput?: string): MiniProgramGlobal | undefined {\n const globalRuntime = getGlobalRuntime()\n const compiledPlatform = platformInput ?? (import.meta as ImportMetaWithEnv).env?.PLATFORM\n const resolvedCompiledPlatform = resolveMiniProgramPlatform(compiledPlatform)\n\n if (resolvedCompiledPlatform) {\n const globalKey = getMiniProgramRuntimeGlobalKey(resolvedCompiledPlatform)\n return globalRuntime?.[globalKey] as MiniProgramGlobal | undefined\n }\n\n for (const globalKey of getMiniProgramRuntimeGlobalKeys()) {\n const candidate = globalRuntime?.[globalKey]\n if (candidate) {\n return candidate as MiniProgramGlobal\n }\n }\n return undefined\n}\n\nexport function getCurrentMiniProgramGlobalRouter(): MiniProgramGlobalRouter | undefined {\n if (!supportsCurrentMiniProgramRuntimeCapability('globalRouterApi')) {\n return undefined\n }\n const miniProgramGlobal = getMiniProgramGlobalObject()\n if (!miniProgramGlobal) {\n return undefined\n }\n const routerMethods = Object.create(null) as Partial<MiniProgramGlobalRouter>\n for (const methodName of MINI_PROGRAM_GLOBAL_ROUTER_METHODS) {\n const handler = miniProgramGlobal[methodName]\n if (typeof handler !== 'function') {\n return undefined\n }\n routerMethods[methodName] = (...args: any[]) => handler.apply(miniProgramGlobal, args)\n }\n return routerMethods as MiniProgramGlobalRouter\n}\n\nexport function getScopedSlotHostGlobalObject(): MiniProgramGlobal | undefined {\n return getMiniProgramGlobalObject() ?? getGlobalRuntime()\n}\n"],"mappings":";;;AAoBA,MAAM,qCAAmF;CACvF;CACA;CACA;CACA;CACA;AACF;AAEA,SAAS,mBAAmB;CAC1B,IAAI,OAAO,eAAe,aACxB;CAEF,OAAO;AACT;AAEA,SAAgB,oCAAoC;;CAClD,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,2BAAoB,YAAkC,iDAAK;CAGjE,MAAM,2BAA2B,2BAA2B,gBAAgB;CAC5E,IAAI,0BACF,OAAO;CAGT,KAAK,MAAM,aAAa,gCAAgC,GACtD,kEAAI,cAAgB,YAClB,OAAO,yCAAyC,SAAS;AAK/D;AAEA,SAAgB,2CAA2E;CACzF,OAAO,kCAAkC,kCAAkC,CAAC;AAC9E;AAEA,SAAgB,4CAA4C,gBAA2D;CACrH,OAAO,qCAAqC,kCAAkC,GAAG,cAAc;AACjG;AAEA,SAAgB,6BAAyD;CACvE,IAAI,CAAC,4CAA4C,iBAAiB,GAChE,OAAO,CAAC;CAEV,MAAM,oBAAqB,WAAuC;CAClE,IAAI,OAAO,sBAAsB,YAC/B,OAAO,CAAC;CAEV,IAAI;EACF,MAAM,QAAQ,kBAAkB;EAChC,OAAO,MAAM,QAAQ,KAAK,IAAI,QAAsC,CAAC;CACvE,kBACM;EACJ,OAAO,CAAC;CACV;AACF;AAEA,SAAgB,kCAAqE;CACnF,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,gBAAgB,mCAAmC,kCAAkC,CAAC;CAC5F,MAAM,2EAAa,cAAgB;CACnC,OAAO,cAAc,OAAO,eAAe,WAAW,aAAsC;AAC9F;AAEA,SAAgB,2BAA2B,eAAuD;;CAChG,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,mBAAmB,8EAAkB,YAAkC,mDAAK;CAClF,MAAM,2BAA2B,2BAA2B,gBAAgB;CAE5E,IAAI,0BAA0B;EAC5B,MAAM,YAAY,+BAA+B,wBAAwB;EACzE,qEAAO,cAAgB;CACzB;CAEA,KAAK,MAAM,aAAa,gCAAgC,GAAG;EACzD,MAAM,0EAAY,cAAgB;EAClC,IAAI,WACF,OAAO;CAEX;AAEF;AAEA,SAAgB,oCAAyE;CACvF,IAAI,CAAC,4CAA4C,iBAAiB,GAChE;CAEF,MAAM,oBAAoB,2BAA2B;CACrD,IAAI,CAAC,mBACH;CAEF,MAAM,gBAAgB,OAAO,OAAO,IAAI;CACxC,KAAK,MAAM,cAAc,oCAAoC;EAC3D,MAAM,UAAU,kBAAkB;EAClC,IAAI,OAAO,YAAY,YACrB;EAEF,cAAc,eAAe,GAAG,SAAgB,QAAQ,MAAM,mBAAmB,IAAI;CACvF;CACA,OAAO;AACT;AAEA,SAAgB,gCAA+D;;CAC7E,gCAAO,2BAA2B,0EAAK,iBAAiB;AAC1D"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { getCurrentInstance } from "./hooks/base.mjs";
|
|
2
|
+
import { getGlobalProvidedValue, hasGlobalProvidedValue, setGlobalProvidedValue } from "./provideStore.mjs";
|
|
3
|
+
import { getInstanceProvides, isRuntimeAppInstance } from "./provideContext.mjs";
|
|
4
|
+
|
|
5
|
+
//#region src/runtime/provide.ts
|
|
6
|
+
/**
|
|
7
|
+
* 判断当前是否存在可用的注入上下文。
|
|
8
|
+
*
|
|
9
|
+
* wevu 的依赖注入上下文来自同步 `setup()` 阶段的当前实例。
|
|
10
|
+
*/
|
|
11
|
+
function hasInjectionContext() {
|
|
12
|
+
return Boolean(getCurrentInstance());
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 在组件上下文中向后代注入值(与 Vue 3 行为兼容),若没有当前实例则回落到全局存储。
|
|
16
|
+
*
|
|
17
|
+
* @param key 注入键,可为字符串、Symbol 或对象
|
|
18
|
+
* @param value 提供的值
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* defineComponent({
|
|
23
|
+
* setup() {
|
|
24
|
+
* provide(TOKEN_KEY, { data: 'value' })
|
|
25
|
+
* }
|
|
26
|
+
* })
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
function provide(key, value) {
|
|
30
|
+
const instance = getCurrentInstance();
|
|
31
|
+
if (instance) {
|
|
32
|
+
getInstanceProvides(instance)[key] = value;
|
|
33
|
+
if (isRuntimeAppInstance(instance)) setGlobalProvidedValue(key, value);
|
|
34
|
+
} else setGlobalProvidedValue(key, value);
|
|
35
|
+
}
|
|
36
|
+
function inject(key, defaultValue) {
|
|
37
|
+
var _globalThis$console;
|
|
38
|
+
const instance = getCurrentInstance();
|
|
39
|
+
if (instance) {
|
|
40
|
+
const provides = getInstanceProvides(instance);
|
|
41
|
+
if (key in provides) return provides[key];
|
|
42
|
+
}
|
|
43
|
+
if (hasGlobalProvidedValue(key)) return getGlobalProvidedValue(key);
|
|
44
|
+
if (arguments.length >= 2) return defaultValue;
|
|
45
|
+
const warn = (_globalThis$console = globalThis.console) === null || _globalThis$console === void 0 ? void 0 : _globalThis$console.warn;
|
|
46
|
+
if (typeof warn === "function") warn(`wevu.inject:未找到对应 key 的值:${String(key)}`);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 全局注入值,适用于历史兼容场景。
|
|
50
|
+
*
|
|
51
|
+
* @deprecated 已弃用,仅用于兼容/过渡。推荐优先使用 `provide()`,
|
|
52
|
+
* 在无实例上下文时 `provide()` 会自动回落到全局存储。
|
|
53
|
+
*/
|
|
54
|
+
function provideGlobal(key, value) {
|
|
55
|
+
setGlobalProvidedValue(key, value);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 从全局存储读取值,适用于历史兼容场景。
|
|
59
|
+
*
|
|
60
|
+
* @deprecated 已弃用,仅用于兼容/过渡。推荐优先使用 `inject()`,
|
|
61
|
+
* 在无实例上下文时 `inject()` 会自动从全局存储读取。
|
|
62
|
+
*/
|
|
63
|
+
function injectGlobal(key, defaultValue) {
|
|
64
|
+
if (hasGlobalProvidedValue(key)) return getGlobalProvidedValue(key);
|
|
65
|
+
if (arguments.length >= 2) return defaultValue;
|
|
66
|
+
throw new Error(`injectGlobal():未找到对应 key 的 provider:${String(key)}`);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
//#endregion
|
|
70
|
+
export { hasInjectionContext, inject, injectGlobal, provide, provideGlobal, setGlobalProvidedValue };
|
|
71
|
+
//# sourceMappingURL=provide.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provide.mjs","names":[],"sources":["../../../src/runtime/provide.ts"],"sourcesContent":["import { getCurrentInstance } from './hooks'\nimport {\n getInstanceProvides,\n isRuntimeAppInstance,\n} from './provideContext'\nimport {\n getGlobalProvidedValue,\n hasGlobalProvidedValue,\n setGlobalProvidedValue,\n} from './provideStore'\n\n// ============================================================================\n// 分层的 provide/inject 机制\n// 用于在组件树内维护依赖注入关系,支持组件与全局两种作用域\n// ============================================================================\n\nexport { setGlobalProvidedValue } from './provideStore'\n\n/**\n * 判断当前是否存在可用的注入上下文。\n *\n * wevu 的依赖注入上下文来自同步 `setup()` 阶段的当前实例。\n */\nexport function hasInjectionContext(): boolean {\n return Boolean(getCurrentInstance())\n}\n\n/**\n * 在组件上下文中向后代注入值(与 Vue 3 行为兼容),若没有当前实例则回落到全局存储。\n *\n * @param key 注入键,可为字符串、Symbol 或对象\n * @param value 提供的值\n *\n * @example\n * ```ts\n * defineComponent({\n * setup() {\n * provide(TOKEN_KEY, { data: 'value' })\n * }\n * })\n * ```\n */\nexport function provide<T>(key: any, value: T): void {\n const instance = getCurrentInstance()\n\n if (instance) {\n getInstanceProvides(instance)[key as PropertyKey] = value\n if (isRuntimeAppInstance(instance)) {\n setGlobalProvidedValue(key, value)\n }\n }\n else {\n // 全局模式:无组件实例时,兼容旧代码和纯函数场景\n setGlobalProvidedValue(key, value)\n }\n}\n\n/**\n * 从祖先组件(或全局存储)读取提供的值。\n *\n * @param key 注入键,需与 provide 使用的键保持一致\n * @param defaultValue 未找到提供者时的默认值\n * @returns 匹配到的值或默认值\n *\n * @example\n * ```ts\n * defineComponent({\n * setup() {\n * const data = inject(TOKEN_KEY)\n * const value = inject('key', 'default')\n * }\n * })\n * ```\n */\nexport function inject<T>(key: any, defaultValue: T): T\nexport function inject<T>(key: any): T | undefined\nexport function inject<T>(key: any, defaultValue?: T): T | undefined {\n const instance = getCurrentInstance()\n\n // 优先尝试基于实例的注入,找不到再回退全局\n if (instance) {\n const provides = getInstanceProvides(instance)\n if (key in provides) {\n return provides[key as PropertyKey] as T\n }\n }\n\n // 兼容性回退:尝试读取全局存储\n if (hasGlobalProvidedValue(key)) {\n return getGlobalProvidedValue(key)\n }\n\n // 使用默认值兜底\n if (arguments.length >= 2) {\n return defaultValue as T\n }\n\n const warn = globalThis.console?.warn\n if (typeof warn === 'function') {\n warn(`wevu.inject:未找到对应 key 的值:${String(key)}`)\n }\n\n return undefined\n}\n\n// ============================================================================\n// 显式的全局 provide/inject API\n// ============================================================================\n\n/**\n * 全局注入值,适用于历史兼容场景。\n *\n * @deprecated 已弃用,仅用于兼容/过渡。推荐优先使用 `provide()`,\n * 在无实例上下文时 `provide()` 会自动回落到全局存储。\n */\nexport function provideGlobal<T>(key: any, value: T): void {\n setGlobalProvidedValue(key, value)\n}\n\n/**\n * 从全局存储读取值,适用于历史兼容场景。\n *\n * @deprecated 已弃用,仅用于兼容/过渡。推荐优先使用 `inject()`,\n * 在无实例上下文时 `inject()` 会自动从全局存储读取。\n */\nexport function injectGlobal<T>(key: any, defaultValue?: T): T {\n if (hasGlobalProvidedValue(key)) {\n return getGlobalProvidedValue(key)\n }\n if (arguments.length >= 2) {\n return defaultValue as T\n }\n throw new Error(`injectGlobal():未找到对应 key 的 provider:${String(key)}`)\n}\n"],"mappings":";;;;;;;;;;AAuBA,SAAgB,sBAA+B;CAC7C,OAAO,QAAQ,mBAAmB,CAAC;AACrC;;;;;;;;;;;;;;;;AAiBA,SAAgB,QAAW,KAAU,OAAgB;CACnD,MAAM,WAAW,mBAAmB;CAEpC,IAAI,UAAU;EACZ,oBAAoB,QAAQ,CAAC,CAAC,OAAsB;EACpD,IAAI,qBAAqB,QAAQ,GAC/B,uBAAuB,KAAK,KAAK;CAErC,OAGE,uBAAuB,KAAK,KAAK;AAErC;AAqBA,SAAgB,OAAU,KAAU,cAAiC;;CACnE,MAAM,WAAW,mBAAmB;CAGpC,IAAI,UAAU;EACZ,MAAM,WAAW,oBAAoB,QAAQ;EAC7C,IAAI,OAAO,UACT,OAAO,SAAS;CAEpB;CAGA,IAAI,uBAAuB,GAAG,GAC5B,OAAO,uBAAuB,GAAG;CAInC,IAAI,UAAU,UAAU,GACtB,OAAO;CAGT,MAAM,8BAAO,WAAW,mFAAS;CACjC,IAAI,OAAO,SAAS,YAClB,KAAK,4BAA4B,OAAO,GAAG,GAAG;AAIlD;;;;;;;AAYA,SAAgB,cAAiB,KAAU,OAAgB;CACzD,uBAAuB,KAAK,KAAK;AACnC;;;;;;;AAQA,SAAgB,aAAgB,KAAU,cAAqB;CAC7D,IAAI,uBAAuB,GAAG,GAC5B,OAAO,uBAAuB,GAAG;CAEnC,IAAI,UAAU,UAAU,GACtB,OAAO;CAET,MAAM,IAAI,MAAM,uCAAuC,OAAO,GAAG,GAAG;AACtE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { setGlobalProvidedValue } from "./provideStore.mjs";
|
|
2
|
+
import { WEVU_APP_PROVIDES_KEY, WEVU_IS_APP_INSTANCE_KEY, WEVU_PARENT_INSTANCE_KEY, WEVU_PROVIDES_KEY, WEVU_RUNTIME_APP_KEY } from "@weapp-core/constants";
|
|
3
|
+
|
|
4
|
+
//#region src/runtime/provideContext.ts
|
|
5
|
+
function isRuntimeAppInstance(instance) {
|
|
6
|
+
return Boolean(instance && typeof instance === "object" && instance[WEVU_IS_APP_INSTANCE_KEY] === true);
|
|
7
|
+
}
|
|
8
|
+
function createProvides(parent) {
|
|
9
|
+
return Object.create(parent !== null && parent !== void 0 ? parent : null);
|
|
10
|
+
}
|
|
11
|
+
function getRuntimeAppProvides(runtimeApp) {
|
|
12
|
+
if (!runtimeApp) return createProvides();
|
|
13
|
+
const existing = runtimeApp[WEVU_APP_PROVIDES_KEY];
|
|
14
|
+
if (existing && typeof existing === "object") return existing;
|
|
15
|
+
const provides = createProvides();
|
|
16
|
+
try {
|
|
17
|
+
Object.defineProperty(runtimeApp, WEVU_APP_PROVIDES_KEY, {
|
|
18
|
+
value: provides,
|
|
19
|
+
configurable: true,
|
|
20
|
+
enumerable: false,
|
|
21
|
+
writable: false
|
|
22
|
+
});
|
|
23
|
+
} catch (_unused) {
|
|
24
|
+
runtimeApp[WEVU_APP_PROVIDES_KEY] = provides;
|
|
25
|
+
}
|
|
26
|
+
return provides;
|
|
27
|
+
}
|
|
28
|
+
function attachInstanceProvides(instance, provides) {
|
|
29
|
+
try {
|
|
30
|
+
Object.defineProperty(instance, WEVU_PROVIDES_KEY, {
|
|
31
|
+
value: provides,
|
|
32
|
+
configurable: true,
|
|
33
|
+
enumerable: false,
|
|
34
|
+
writable: true
|
|
35
|
+
});
|
|
36
|
+
} catch (_unused2) {
|
|
37
|
+
instance[WEVU_PROVIDES_KEY] = provides;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function getInstanceProvides(instance) {
|
|
41
|
+
var _instance$WEVU_PARENT, _instance$WEVU_PARENT2;
|
|
42
|
+
const existing = instance[WEVU_PROVIDES_KEY];
|
|
43
|
+
if (existing && typeof existing === "object") return existing;
|
|
44
|
+
const runtimeApp = instance[WEVU_RUNTIME_APP_KEY];
|
|
45
|
+
const parentProvides = (_instance$WEVU_PARENT = (_instance$WEVU_PARENT2 = instance[WEVU_PARENT_INSTANCE_KEY]) === null || _instance$WEVU_PARENT2 === void 0 ? void 0 : _instance$WEVU_PARENT2[WEVU_PROVIDES_KEY]) !== null && _instance$WEVU_PARENT !== void 0 ? _instance$WEVU_PARENT : getRuntimeAppProvides(runtimeApp);
|
|
46
|
+
const provides = isRuntimeAppInstance(instance) ? getRuntimeAppProvides(runtimeApp) : createProvides(parentProvides);
|
|
47
|
+
attachInstanceProvides(instance, provides);
|
|
48
|
+
return provides;
|
|
49
|
+
}
|
|
50
|
+
function ensureRuntimeAppProvides(runtimeApp) {
|
|
51
|
+
return getRuntimeAppProvides(runtimeApp);
|
|
52
|
+
}
|
|
53
|
+
function setRuntimeAppProvidedValue(runtimeApp, key, value) {
|
|
54
|
+
getRuntimeAppProvides(runtimeApp)[key] = value;
|
|
55
|
+
setGlobalProvidedValue(key, value);
|
|
56
|
+
}
|
|
57
|
+
function attachRuntimeProvideContext(instance, runtimeApp, parentInstance) {
|
|
58
|
+
var _parentInstance$WEVU_;
|
|
59
|
+
const appProvides = getRuntimeAppProvides(runtimeApp);
|
|
60
|
+
const parentProvides = (_parentInstance$WEVU_ = parentInstance === null || parentInstance === void 0 ? void 0 : parentInstance[WEVU_PROVIDES_KEY]) !== null && _parentInstance$WEVU_ !== void 0 ? _parentInstance$WEVU_ : appProvides;
|
|
61
|
+
const provides = isRuntimeAppInstance(instance) ? appProvides : createProvides(parentProvides);
|
|
62
|
+
if (parentInstance) try {
|
|
63
|
+
Object.defineProperty(instance, WEVU_PARENT_INSTANCE_KEY, {
|
|
64
|
+
value: parentInstance,
|
|
65
|
+
configurable: true,
|
|
66
|
+
enumerable: false,
|
|
67
|
+
writable: true
|
|
68
|
+
});
|
|
69
|
+
} catch (_unused3) {
|
|
70
|
+
instance[WEVU_PARENT_INSTANCE_KEY] = parentInstance;
|
|
71
|
+
}
|
|
72
|
+
attachInstanceProvides(instance, provides);
|
|
73
|
+
}
|
|
74
|
+
function isPrototypeInChain(target, candidate) {
|
|
75
|
+
let current = Object.getPrototypeOf(target);
|
|
76
|
+
while (current) {
|
|
77
|
+
if (current === candidate) return true;
|
|
78
|
+
current = Object.getPrototypeOf(current);
|
|
79
|
+
}
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
function attachRuntimeLayoutProvideContext(layoutInstance, pageInstance) {
|
|
83
|
+
const layoutProvides = getInstanceProvides(layoutInstance);
|
|
84
|
+
const pageProvides = getInstanceProvides(pageInstance);
|
|
85
|
+
if (layoutProvides === pageProvides || isPrototypeInChain(layoutProvides, pageProvides) || isPrototypeInChain(pageProvides, layoutProvides)) return;
|
|
86
|
+
Object.setPrototypeOf(pageProvides, layoutProvides);
|
|
87
|
+
try {
|
|
88
|
+
Object.defineProperty(pageInstance, WEVU_PARENT_INSTANCE_KEY, {
|
|
89
|
+
value: layoutInstance,
|
|
90
|
+
configurable: true,
|
|
91
|
+
enumerable: false,
|
|
92
|
+
writable: true
|
|
93
|
+
});
|
|
94
|
+
} catch (_unused4) {
|
|
95
|
+
pageInstance[WEVU_PARENT_INSTANCE_KEY] = layoutInstance;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
//#endregion
|
|
100
|
+
export { attachInstanceProvides, attachRuntimeLayoutProvideContext, attachRuntimeProvideContext, ensureRuntimeAppProvides, getInstanceProvides, isRuntimeAppInstance, setRuntimeAppProvidedValue };
|
|
101
|
+
//# sourceMappingURL=provideContext.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provideContext.mjs","names":[],"sources":["../../../src/runtime/provideContext.ts"],"sourcesContent":["import type { InternalRuntimeState, RuntimeApp } from './types'\nimport {\n WEVU_APP_PROVIDES_KEY,\n WEVU_IS_APP_INSTANCE_KEY,\n WEVU_PARENT_INSTANCE_KEY,\n WEVU_PROVIDES_KEY,\n WEVU_RUNTIME_APP_KEY,\n} from '@weapp-core/constants'\nimport { setGlobalProvidedValue } from './provideStore'\n\nexport function isRuntimeAppInstance(instance: unknown): boolean {\n return Boolean(\n instance\n && typeof instance === 'object'\n && (instance as { [WEVU_IS_APP_INSTANCE_KEY]?: boolean })[WEVU_IS_APP_INSTANCE_KEY] === true,\n )\n}\n\nfunction createProvides(parent?: Record<PropertyKey, any>) {\n return Object.create(parent ?? null) as Record<PropertyKey, any>\n}\n\nfunction getRuntimeAppProvides(runtimeApp: RuntimeApp<any, any, any> | undefined): Record<PropertyKey, any> {\n if (!runtimeApp) {\n return createProvides()\n }\n const existing = runtimeApp[WEVU_APP_PROVIDES_KEY]\n if (existing && typeof existing === 'object') {\n return existing\n }\n const provides = createProvides()\n try {\n Object.defineProperty(runtimeApp, WEVU_APP_PROVIDES_KEY, {\n value: provides,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n ;(runtimeApp as any)[WEVU_APP_PROVIDES_KEY] = provides\n }\n return provides\n}\n\nexport function attachInstanceProvides(\n instance: InternalRuntimeState,\n provides: Record<PropertyKey, any>,\n): void {\n try {\n Object.defineProperty(instance, WEVU_PROVIDES_KEY, {\n value: provides,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n ;(instance as any)[WEVU_PROVIDES_KEY] = provides\n }\n}\n\nexport function getInstanceProvides(instance: InternalRuntimeState): Record<PropertyKey, any> {\n const existing = instance[WEVU_PROVIDES_KEY]\n if (existing && typeof existing === 'object') {\n return existing\n }\n\n const runtimeApp = instance[WEVU_RUNTIME_APP_KEY]\n const parentProvides = instance[WEVU_PARENT_INSTANCE_KEY]?.[WEVU_PROVIDES_KEY]\n ?? getRuntimeAppProvides(runtimeApp)\n const provides = isRuntimeAppInstance(instance)\n ? getRuntimeAppProvides(runtimeApp)\n : createProvides(parentProvides)\n attachInstanceProvides(instance, provides)\n return provides\n}\n\nexport function ensureRuntimeAppProvides(runtimeApp: RuntimeApp<any, any, any>): Record<PropertyKey, any> {\n return getRuntimeAppProvides(runtimeApp)\n}\n\nexport function setRuntimeAppProvidedValue<T>(runtimeApp: RuntimeApp<any, any, any>, key: any, value: T): void {\n getRuntimeAppProvides(runtimeApp)[key as PropertyKey] = value\n setGlobalProvidedValue(key, value)\n}\n\nexport function attachRuntimeProvideContext(\n instance: InternalRuntimeState,\n runtimeApp: RuntimeApp<any, any, any>,\n parentInstance?: InternalRuntimeState,\n): void {\n const appProvides = getRuntimeAppProvides(runtimeApp)\n const parentProvides = parentInstance?.[WEVU_PROVIDES_KEY] ?? appProvides\n const provides = isRuntimeAppInstance(instance)\n ? appProvides\n : createProvides(parentProvides)\n\n if (parentInstance) {\n try {\n Object.defineProperty(instance, WEVU_PARENT_INSTANCE_KEY, {\n value: parentInstance,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n ;(instance as any)[WEVU_PARENT_INSTANCE_KEY] = parentInstance\n }\n }\n\n attachInstanceProvides(instance, provides)\n}\n\nfunction isPrototypeInChain(target: Record<PropertyKey, any>, candidate: Record<PropertyKey, any>) {\n let current = Object.getPrototypeOf(target)\n while (current) {\n if (current === candidate) {\n return true\n }\n current = Object.getPrototypeOf(current)\n }\n return false\n}\n\nexport function attachRuntimeLayoutProvideContext(\n layoutInstance: InternalRuntimeState,\n pageInstance: InternalRuntimeState,\n): void {\n const layoutProvides = getInstanceProvides(layoutInstance)\n const pageProvides = getInstanceProvides(pageInstance)\n if (\n layoutProvides === pageProvides\n || isPrototypeInChain(layoutProvides, pageProvides)\n || isPrototypeInChain(pageProvides, layoutProvides)\n ) {\n return\n }\n\n Object.setPrototypeOf(pageProvides, layoutProvides)\n\n try {\n Object.defineProperty(pageInstance, WEVU_PARENT_INSTANCE_KEY, {\n value: layoutInstance,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n ;(pageInstance as any)[WEVU_PARENT_INSTANCE_KEY] = layoutInstance\n }\n}\n"],"mappings":";;;;AAUA,SAAgB,qBAAqB,UAA4B;CAC/D,OAAO,QACL,YACG,OAAO,aAAa,YACnB,SAAsD,8BAA8B,IAC1F;AACF;AAEA,SAAS,eAAe,QAAmC;CACzD,OAAO,OAAO,OAAO,gDAAU,IAAI;AACrC;AAEA,SAAS,sBAAsB,YAA6E;CAC1G,IAAI,CAAC,YACH,OAAO,eAAe;CAExB,MAAM,WAAW,WAAW;CAC5B,IAAI,YAAY,OAAO,aAAa,UAClC,OAAO;CAET,MAAM,WAAW,eAAe;CAChC,IAAI;EACF,OAAO,eAAe,YAAY,uBAAuB;GACvD,OAAO;GACP,cAAc;GACd,YAAY;GACZ,UAAU;EACZ,CAAC;CACH,kBACM;EACH,AAAC,WAAmB,yBAAyB;CAChD;CACA,OAAO;AACT;AAEA,SAAgB,uBACd,UACA,UACM;CACN,IAAI;EACF,OAAO,eAAe,UAAU,mBAAmB;GACjD,OAAO;GACP,cAAc;GACd,YAAY;GACZ,UAAU;EACZ,CAAC;CACH,mBACM;EACH,AAAC,SAAiB,qBAAqB;CAC1C;AACF;AAEA,SAAgB,oBAAoB,UAA0D;;CAC5F,MAAM,WAAW,SAAS;CAC1B,IAAI,YAAY,OAAO,aAAa,UAClC,OAAO;CAGT,MAAM,aAAa,SAAS;CAC5B,MAAM,oEAAiB,SAAS,2GAA4B,2FACvD,sBAAsB,UAAU;CACrC,MAAM,WAAW,qBAAqB,QAAQ,IAC1C,sBAAsB,UAAU,IAChC,eAAe,cAAc;CACjC,uBAAuB,UAAU,QAAQ;CACzC,OAAO;AACT;AAEA,SAAgB,yBAAyB,YAAiE;CACxG,OAAO,sBAAsB,UAAU;AACzC;AAEA,SAAgB,2BAA8B,YAAuC,KAAU,OAAgB;CAC7G,sBAAsB,UAAU,CAAC,CAAC,OAAsB;CACxD,uBAAuB,KAAK,KAAK;AACnC;AAEA,SAAgB,4BACd,UACA,YACA,gBACM;;CACN,MAAM,cAAc,sBAAsB,UAAU;CACpD,MAAM,0GAAiB,eAAiB,2FAAsB;CAC9D,MAAM,WAAW,qBAAqB,QAAQ,IAC1C,cACA,eAAe,cAAc;CAEjC,IAAI,gBACF,IAAI;EACF,OAAO,eAAe,UAAU,0BAA0B;GACxD,OAAO;GACP,cAAc;GACd,YAAY;GACZ,UAAU;EACZ,CAAC;CACH,mBACM;EACH,AAAC,SAAiB,4BAA4B;CACjD;CAGF,uBAAuB,UAAU,QAAQ;AAC3C;AAEA,SAAS,mBAAmB,QAAkC,WAAqC;CACjG,IAAI,UAAU,OAAO,eAAe,MAAM;CAC1C,OAAO,SAAS;EACd,IAAI,YAAY,WACd,OAAO;EAET,UAAU,OAAO,eAAe,OAAO;CACzC;CACA,OAAO;AACT;AAEA,SAAgB,kCACd,gBACA,cACM;CACN,MAAM,iBAAiB,oBAAoB,cAAc;CACzD,MAAM,eAAe,oBAAoB,YAAY;CACrD,IACE,mBAAmB,gBAChB,mBAAmB,gBAAgB,YAAY,KAC/C,mBAAmB,cAAc,cAAc,GAElD;CAGF,OAAO,eAAe,cAAc,cAAc;CAElD,IAAI;EACF,OAAO,eAAe,cAAc,0BAA0B;GAC5D,OAAO;GACP,cAAc;GACd,YAAY;GACZ,UAAU;EACZ,CAAC;CACH,mBACM;EACH,AAAC,aAAqB,4BAA4B;CACrD;AACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/runtime/provideStore.ts
|
|
2
|
+
const wevuGlobalProvideStore = /* @__PURE__ */ new Map();
|
|
3
|
+
/**
|
|
4
|
+
* 写入全局 provide 存储,供运行时内部与兼容层复用。
|
|
5
|
+
*/
|
|
6
|
+
function setGlobalProvidedValue(key, value) {
|
|
7
|
+
wevuGlobalProvideStore.set(key, value);
|
|
8
|
+
}
|
|
9
|
+
function hasGlobalProvidedValue(key) {
|
|
10
|
+
return wevuGlobalProvideStore.has(key);
|
|
11
|
+
}
|
|
12
|
+
function getGlobalProvidedValue(key) {
|
|
13
|
+
return wevuGlobalProvideStore.get(key);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//#endregion
|
|
17
|
+
export { getGlobalProvidedValue, hasGlobalProvidedValue, setGlobalProvidedValue };
|
|
18
|
+
//# sourceMappingURL=provideStore.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provideStore.mjs","names":[],"sources":["../../../src/runtime/provideStore.ts"],"sourcesContent":["const wevuGlobalProvideStore = new Map<any, any>()\n\n/**\n * 写入全局 provide 存储,供运行时内部与兼容层复用。\n */\nexport function setGlobalProvidedValue<T>(key: any, value: T): void {\n wevuGlobalProvideStore.set(key, value)\n}\n\nexport function hasGlobalProvidedValue(key: any): boolean {\n return wevuGlobalProvideStore.has(key)\n}\n\nexport function getGlobalProvidedValue<T>(key: any): T {\n return wevuGlobalProvideStore.get(key) as T\n}\n"],"mappings":";AAAA,MAAM,yCAAyB,IAAI,IAAc;;;;AAKjD,SAAgB,uBAA0B,KAAU,OAAgB;CAClE,uBAAuB,IAAI,KAAK,KAAK;AACvC;AAEA,SAAgB,uBAAuB,KAAmB;CACxD,OAAO,uBAAuB,IAAI,GAAG;AACvC;AAEA,SAAgB,uBAA0B,KAAa;CACrD,OAAO,uBAAuB,IAAI,GAAG;AACvC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { onPullDownRefresh } from "./hooks/register.mjs";
|
|
2
|
+
import { wpi } from "@wevu/api";
|
|
3
|
+
|
|
4
|
+
//#region src/runtime/pullDownRefresh.ts
|
|
5
|
+
/**
|
|
6
|
+
* 注册下拉刷新回调,并在回调结束后自动停止宿主下拉刷新状态。
|
|
7
|
+
*/
|
|
8
|
+
function useAsyncPullDownRefresh(refresh, options = {}) {
|
|
9
|
+
onPullDownRefresh(async () => {
|
|
10
|
+
try {
|
|
11
|
+
await refresh();
|
|
12
|
+
} catch (error) {
|
|
13
|
+
var _options$onError;
|
|
14
|
+
await ((_options$onError = options.onError) === null || _options$onError === void 0 ? void 0 : _options$onError.call(options, error));
|
|
15
|
+
} finally {
|
|
16
|
+
var _options$stopPullDown;
|
|
17
|
+
await ((_options$stopPullDown = options.stopPullDownRefresh) !== null && _options$stopPullDown !== void 0 ? _options$stopPullDown : (() => wpi.stopPullDownRefresh()))();
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
//#endregion
|
|
23
|
+
export { useAsyncPullDownRefresh };
|
|
24
|
+
//# sourceMappingURL=pullDownRefresh.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pullDownRefresh.mjs","names":[],"sources":["../../../src/runtime/pullDownRefresh.ts"],"sourcesContent":["import { wpi } from '@wevu/api'\nimport { onPullDownRefresh } from './hooks'\n\nexport type PullDownRefreshHandler = () => void | Promise<void>\n\nexport interface UseAsyncPullDownRefreshOptions {\n onError?: (error: unknown) => void | Promise<void>\n stopPullDownRefresh?: () => unknown | Promise<unknown>\n}\n\n/**\n * 注册下拉刷新回调,并在回调结束后自动停止宿主下拉刷新状态。\n */\nexport function useAsyncPullDownRefresh(\n refresh: PullDownRefreshHandler,\n options: UseAsyncPullDownRefreshOptions = {},\n) {\n onPullDownRefresh(async () => {\n try {\n await refresh()\n }\n catch (error) {\n await options.onError?.(error)\n }\n finally {\n const stop = options.stopPullDownRefresh ?? (() => wpi.stopPullDownRefresh())\n await stop()\n }\n })\n}\n"],"mappings":";;;;;;;AAaA,SAAgB,wBACd,SACA,UAA0C,CAAC,GAC3C;CACA,kBAAkB,YAAY;EAC5B,IAAI;GACF,MAAM,QAAQ;EAChB,SACO,OAAO;;GACZ,2BAAM,QAAQ,2FAAU,KAAK;EAC/B,UACQ;;GAEN,gCADa,QAAQ,mGAA8B,IAAI,oBAAoB,GACjE,CAAC;EACb;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { getMiniProgramGlobalObject, supportsCurrentMiniProgramRuntimeCapability } from "../platform.mjs";
|
|
2
|
+
import { callHookList } from "../hooks/base.mjs";
|
|
3
|
+
import { runInlineExpression } from "./inline.mjs";
|
|
4
|
+
import { mountRuntimeInstance } from "./runtimeInstance.mjs";
|
|
5
|
+
import { WEVU_HOOKS_KEY, WEVU_INLINE_HANDLER, WEVU_INLINE_MAP_KEY, WEVU_IS_APP_INSTANCE_KEY } from "@weapp-core/constants";
|
|
6
|
+
|
|
7
|
+
//#region src/runtime/register/app.ts
|
|
8
|
+
const APP_GLOBAL_LISTENER_STORE_KEY = "__wevuAppGlobalListeners";
|
|
9
|
+
const MEMORY_WARNING_LISTENER_KEY = "__wevuOnMemoryWarningListener";
|
|
10
|
+
function bindMemoryWarningListener(target) {
|
|
11
|
+
const hooks = target[WEVU_HOOKS_KEY];
|
|
12
|
+
const hasMemoryWarningHook = Boolean(hooks === null || hooks === void 0 ? void 0 : hooks.onMemoryWarning);
|
|
13
|
+
if (!supportsCurrentMiniProgramRuntimeCapability("appMemoryWarningListener")) {
|
|
14
|
+
delete target[MEMORY_WARNING_LISTENER_KEY];
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const miniProgramGlobal = getMiniProgramGlobalObject();
|
|
18
|
+
const onMemoryWarning = miniProgramGlobal === null || miniProgramGlobal === void 0 ? void 0 : miniProgramGlobal.onMemoryWarning;
|
|
19
|
+
const offMemoryWarning = miniProgramGlobal === null || miniProgramGlobal === void 0 ? void 0 : miniProgramGlobal.offMemoryWarning;
|
|
20
|
+
if (typeof onMemoryWarning !== "function") return;
|
|
21
|
+
const existing = target[MEMORY_WARNING_LISTENER_KEY];
|
|
22
|
+
if (typeof existing === "function" && typeof offMemoryWarning === "function") try {
|
|
23
|
+
offMemoryWarning(existing);
|
|
24
|
+
} catch (_unused) {}
|
|
25
|
+
if (!hasMemoryWarningHook) {
|
|
26
|
+
delete target[MEMORY_WARNING_LISTENER_KEY];
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const listener = (result) => {
|
|
30
|
+
callHookList(target, "onMemoryWarning", [result]);
|
|
31
|
+
};
|
|
32
|
+
target[MEMORY_WARNING_LISTENER_KEY] = listener;
|
|
33
|
+
onMemoryWarning(listener);
|
|
34
|
+
}
|
|
35
|
+
function bindAppGlobalListener(target, options) {
|
|
36
|
+
var _ref, _ref$APP_GLOBAL_LISTE;
|
|
37
|
+
const { hookName, onApiName, offApiName, capabilityName, userHandler } = options;
|
|
38
|
+
const hooks = target[WEVU_HOOKS_KEY];
|
|
39
|
+
const hasHook = Boolean(hooks === null || hooks === void 0 ? void 0 : hooks[hookName]);
|
|
40
|
+
const store = (_ref$APP_GLOBAL_LISTE = (_ref = target)[APP_GLOBAL_LISTENER_STORE_KEY]) !== null && _ref$APP_GLOBAL_LISTE !== void 0 ? _ref$APP_GLOBAL_LISTE : _ref[APP_GLOBAL_LISTENER_STORE_KEY] = Object.create(null);
|
|
41
|
+
const existing = store[hookName];
|
|
42
|
+
if (!supportsCurrentMiniProgramRuntimeCapability(capabilityName)) {
|
|
43
|
+
delete store[hookName];
|
|
44
|
+
delete target[hookName];
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const miniProgramGlobal = getMiniProgramGlobalObject();
|
|
48
|
+
const onApi = miniProgramGlobal === null || miniProgramGlobal === void 0 ? void 0 : miniProgramGlobal[onApiName];
|
|
49
|
+
const offApi = miniProgramGlobal === null || miniProgramGlobal === void 0 ? void 0 : miniProgramGlobal[offApiName];
|
|
50
|
+
if (typeof existing === "function" && typeof offApi === "function") try {
|
|
51
|
+
offApi(existing);
|
|
52
|
+
} catch (_unused2) {}
|
|
53
|
+
if (!hasHook && typeof userHandler !== "function") {
|
|
54
|
+
delete store[hookName];
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const dispatch = (...args) => {
|
|
58
|
+
callHookList(target, hookName, args);
|
|
59
|
+
if (typeof userHandler === "function") userHandler.apply(target, args);
|
|
60
|
+
};
|
|
61
|
+
target[hookName] = dispatch;
|
|
62
|
+
store[hookName] = dispatch;
|
|
63
|
+
if (typeof onApi === "function") onApi(dispatch);
|
|
64
|
+
}
|
|
65
|
+
function bindAppGlobalListeners(target, handlers) {
|
|
66
|
+
bindAppGlobalListener(target, {
|
|
67
|
+
hookName: "onError",
|
|
68
|
+
onApiName: "onError",
|
|
69
|
+
offApiName: "offError",
|
|
70
|
+
capabilityName: "appErrorListener",
|
|
71
|
+
userHandler: handlers.onError
|
|
72
|
+
});
|
|
73
|
+
bindAppGlobalListener(target, {
|
|
74
|
+
hookName: "onPageNotFound",
|
|
75
|
+
onApiName: "onPageNotFound",
|
|
76
|
+
offApiName: "offPageNotFound",
|
|
77
|
+
capabilityName: "appPageNotFoundListener",
|
|
78
|
+
userHandler: handlers.onPageNotFound
|
|
79
|
+
});
|
|
80
|
+
bindAppGlobalListener(target, {
|
|
81
|
+
hookName: "onUnhandledRejection",
|
|
82
|
+
onApiName: "onUnhandledRejection",
|
|
83
|
+
offApiName: "offUnhandledRejection",
|
|
84
|
+
capabilityName: "appUnhandledRejectionListener",
|
|
85
|
+
userHandler: handlers.onUnhandledRejection
|
|
86
|
+
});
|
|
87
|
+
bindAppGlobalListener(target, {
|
|
88
|
+
hookName: "onThemeChange",
|
|
89
|
+
onApiName: "onThemeChange",
|
|
90
|
+
offApiName: "offThemeChange",
|
|
91
|
+
capabilityName: "appThemeChangeListener",
|
|
92
|
+
userHandler: handlers.onThemeChange
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 注册 App 入口(框架内部使用)。
|
|
97
|
+
* @internal
|
|
98
|
+
*/
|
|
99
|
+
function registerApp(runtimeApp, methods, watch, setup, mpOptions) {
|
|
100
|
+
var _appOptions$globalDat;
|
|
101
|
+
if (typeof App !== "function") throw new TypeError("createApp 需要全局 App 构造器可用");
|
|
102
|
+
const methodNames = Object.keys(methods !== null && methods !== void 0 ? methods : {});
|
|
103
|
+
const appOptions = { ...mpOptions };
|
|
104
|
+
appOptions.globalData = (_appOptions$globalDat = appOptions.globalData) !== null && _appOptions$globalDat !== void 0 ? _appOptions$globalDat : {};
|
|
105
|
+
if (!appOptions[WEVU_INLINE_HANDLER]) appOptions[WEVU_INLINE_HANDLER] = function __weapp_vite_inline(event) {
|
|
106
|
+
var _runtime$proxy, _runtime$methods;
|
|
107
|
+
const runtime = this.__wevu;
|
|
108
|
+
const ctx = (_runtime$proxy = runtime === null || runtime === void 0 ? void 0 : runtime.proxy) !== null && _runtime$proxy !== void 0 ? _runtime$proxy : this;
|
|
109
|
+
const inlineMap = runtime === null || runtime === void 0 || (_runtime$methods = runtime.methods) === null || _runtime$methods === void 0 ? void 0 : _runtime$methods[WEVU_INLINE_MAP_KEY];
|
|
110
|
+
return runInlineExpression(ctx, void 0, event, inlineMap);
|
|
111
|
+
};
|
|
112
|
+
const userOnLaunch = appOptions.onLaunch;
|
|
113
|
+
const userOnError = appOptions.onError;
|
|
114
|
+
const userOnPageNotFound = appOptions.onPageNotFound;
|
|
115
|
+
const userOnUnhandledRejection = appOptions.onUnhandledRejection;
|
|
116
|
+
const userOnThemeChange = appOptions.onThemeChange;
|
|
117
|
+
appOptions.onLaunch = function onLaunch(...args) {
|
|
118
|
+
this[WEVU_IS_APP_INSTANCE_KEY] = true;
|
|
119
|
+
mountRuntimeInstance(this, runtimeApp, watch, setup);
|
|
120
|
+
bindMemoryWarningListener(this);
|
|
121
|
+
bindAppGlobalListeners(this, {
|
|
122
|
+
onError: userOnError,
|
|
123
|
+
onPageNotFound: userOnPageNotFound,
|
|
124
|
+
onUnhandledRejection: userOnUnhandledRejection,
|
|
125
|
+
onThemeChange: userOnThemeChange
|
|
126
|
+
});
|
|
127
|
+
callHookList(this, "onLaunch", args);
|
|
128
|
+
if (typeof userOnLaunch === "function") userOnLaunch.apply(this, args);
|
|
129
|
+
};
|
|
130
|
+
const userOnShow = appOptions.onShow;
|
|
131
|
+
appOptions.onShow = function onShow(...args) {
|
|
132
|
+
callHookList(this, "onShow", args);
|
|
133
|
+
if (typeof userOnShow === "function") userOnShow.apply(this, args);
|
|
134
|
+
};
|
|
135
|
+
const userOnHide = appOptions.onHide;
|
|
136
|
+
appOptions.onHide = function onHide(...args) {
|
|
137
|
+
callHookList(this, "onHide", args);
|
|
138
|
+
if (typeof userOnHide === "function") userOnHide.apply(this, args);
|
|
139
|
+
};
|
|
140
|
+
delete appOptions.onError;
|
|
141
|
+
delete appOptions.onPageNotFound;
|
|
142
|
+
delete appOptions.onUnhandledRejection;
|
|
143
|
+
delete appOptions.onThemeChange;
|
|
144
|
+
for (const methodName of methodNames) {
|
|
145
|
+
const userMethod = appOptions[methodName];
|
|
146
|
+
appOptions[methodName] = function runtimeMethod(...args) {
|
|
147
|
+
var _runtime$methods2;
|
|
148
|
+
const runtime = this.__wevu;
|
|
149
|
+
let result;
|
|
150
|
+
const bound = runtime === null || runtime === void 0 || (_runtime$methods2 = runtime.methods) === null || _runtime$methods2 === void 0 ? void 0 : _runtime$methods2[methodName];
|
|
151
|
+
if (bound) result = bound.apply(runtime.proxy, args);
|
|
152
|
+
if (typeof userMethod === "function") return userMethod.apply(this, args);
|
|
153
|
+
return result;
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
App(appOptions);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
//#endregion
|
|
160
|
+
export { registerApp };
|
|
161
|
+
//# sourceMappingURL=app.mjs.map
|