wevu 7.0.2 → 7.0.4
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/dev/package.mjs +1 -1
- package/dist/dev/router/initialNavigation.mjs +6 -3
- package/dist/dev/router/initialNavigation.mjs.map +1 -1
- package/dist/dev/router/routeSync.mjs +8 -2
- package/dist/dev/router/routeSync.mjs.map +1 -1
- package/dist/dev/router/useRoute.mjs +14 -7
- package/dist/dev/router/useRoute.mjs.map +1 -1
- package/dist/dev/runtime/define/scopedSlotOptions.mjs +3 -1
- package/dist/dev/runtime/define/scopedSlotOptions.mjs.map +1 -1
- package/dist/dev/runtime/emit.mjs +1 -1
- package/dist/dev/runtime/emit.mjs.map +1 -1
- package/dist/dev/runtime/jsxIsland.mjs +5 -1
- package/dist/dev/runtime/jsxIsland.mjs.map +1 -1
- package/dist/dev/runtime/register/component/options.mjs +3 -2
- package/dist/dev/runtime/register/component/options.mjs.map +1 -1
- package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs +15 -1
- package/dist/dev/runtime/register/runtimeInstance/setupContext.mjs.map +1 -1
- package/dist/fetch.d.mts +4 -4
- package/dist/jsx-runtime.d.mts +4 -5
- package/dist/macros/shared.d.mts +14 -15
- package/dist/macros.d.mts +22 -22
- package/dist/package.mjs +1 -1
- package/dist/reactivity/computed.d.mts +8 -9
- package/dist/reactivity/core.d.mts +14 -15
- package/dist/reactivity/reactive/mutation.d.mts +6 -7
- package/dist/reactivity/reactive/patch.d.mts +4 -5
- package/dist/reactivity/reactive/shallow.d.mts +3 -4
- package/dist/reactivity/reactive/shared.d.mts +2 -3
- package/dist/reactivity/reactive.d.mts +6 -6
- package/dist/reactivity/readonly.d.mts +7 -8
- package/dist/reactivity/ref.d.mts +14 -15
- package/dist/reactivity/shallowRef.d.mts +5 -6
- package/dist/reactivity/toRefs.d.mts +5 -6
- package/dist/reactivity/traverse.d.mts +2 -3
- package/dist/reactivity/watch/types.d.mts +18 -19
- package/dist/reactivity/watch.d.mts +8 -8
- package/dist/router/createRouter.d.mts +2 -3
- package/dist/router/initialNavigation.mjs +1 -1
- package/dist/router/navigationCore.d.mts +3 -4
- package/dist/router/resolve.d.mts +2 -3
- package/dist/router/routeSync.mjs +1 -1
- package/dist/router/types.d.mts +38 -39
- package/dist/router/useRoute.d.mts +5 -6
- package/dist/router/useRoute.mjs +1 -1
- package/dist/router/useRouter.d.mts +2 -3
- package/dist/routerInternal/query.d.mts +3 -4
- package/dist/routerInternal/types.d.mts +2 -3
- package/dist/runtime/app/pending.d.mts +3 -4
- package/dist/runtime/app.d.mts +2 -3
- package/dist/runtime/css.d.mts +3 -4
- package/dist/runtime/defaults.d.mts +5 -6
- package/dist/runtime/define/scopedSlotOptions.mjs +1 -1
- package/dist/runtime/define.d.mts +15 -16
- package/dist/runtime/disposables.d.mts +6 -7
- package/dist/runtime/elementIntersectionObserver.d.mts +5 -6
- package/dist/runtime/emit.mjs +1 -1
- package/dist/runtime/hooks/base.d.mts +7 -8
- package/dist/runtime/hooks/register.d.mts +26 -27
- package/dist/runtime/hooks/vue.d.mts +12 -13
- package/dist/runtime/intersectionObserver.d.mts +4 -5
- package/dist/runtime/jsxIsland.d.mts +19 -20
- package/dist/runtime/jsxIsland.mjs +1 -1
- package/dist/runtime/layoutBridge.d.mts +12 -13
- package/dist/runtime/noSetData.d.mts +3 -4
- package/dist/runtime/pageEnvironment.d.mts +9 -10
- package/dist/runtime/pageLayout.d.mts +9 -10
- package/dist/runtime/pageScroll.d.mts +4 -5
- package/dist/runtime/provide.d.mts +7 -7
- package/dist/runtime/provideStore.d.mts +2 -3
- package/dist/runtime/pullDownRefresh.d.mts +4 -5
- package/dist/runtime/register/app.d.mts +2 -3
- package/dist/runtime/register/component/options.mjs +1 -1
- package/dist/runtime/register/component.d.mts +2 -3
- package/dist/runtime/register/inline.d.mts +3 -4
- package/dist/runtime/register/runtimeInstance/setupContext.mjs +1 -1
- package/dist/runtime/register/runtimeInstance.d.mts +4 -5
- package/dist/runtime/register/setup.d.mts +2 -3
- package/dist/runtime/register/watch.d.mts +3 -4
- package/dist/runtime/selectorQuery.d.mts +15 -16
- package/dist/runtime/template.d.mts +4 -5
- package/dist/runtime/templateRefTypes.d.mts +2 -1
- package/dist/runtime/templateRefs.d.mts +2 -3
- package/dist/runtime/types/core.d.mts +9 -10
- package/dist/runtime/types/miniprogram.d.mts +10 -10
- package/dist/runtime/types/miniprogramHost.d.mts +41 -41
- package/dist/runtime/types/miniprogramHostSources.d.mts +21 -22
- package/dist/runtime/types/options.d.mts +6 -7
- package/dist/runtime/types/props/propTypes.d.mts +16 -17
- package/dist/runtime/types/props/router.d.mts +13 -14
- package/dist/runtime/types/props/setup.d.mts +7 -8
- package/dist/runtime/types/runtime.d.mts +7 -8
- package/dist/runtime/types/setData.d.mts +3 -4
- package/dist/runtime/types.d.mts +8 -8
- package/dist/runtime/uniAppHost.d.mts +2 -3
- package/dist/runtime/updatePerformance.d.mts +5 -6
- package/dist/runtime/use.d.mts +3 -4
- package/dist/runtime/vueCompat/context.d.mts +4 -5
- package/dist/runtime/vueCompat/model.d.mts +9 -10
- package/dist/runtime/vueCompat/router.d.mts +3 -4
- package/dist/runtime/vueCompat/templateRef.d.mts +4 -5
- package/dist/scheduler.d.mts +2 -3
- package/dist/store/define.d.mts +3 -4
- package/dist/store/manager.d.mts +2 -3
- package/dist/store/storeToRefs.d.mts +3 -4
- package/dist/store/types.d.mts +10 -11
- package/dist/version.d.mts +2 -3
- package/dist/vue-augment.d.mts +2 -1
- package/dist/vue-demi.d.mts +5 -5
- package/dist/vue-types.d.mts +2 -2
- package/dist/weappIntrinsicElements/base.d.mts +12 -13
- package/dist/weappIntrinsicElements/elements/ad-custom.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/ad.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/audio.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/block.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/button.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/camera.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/canvas.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/checkbox-group.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/checkbox.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/cover-image.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/cover-view.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/editor.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/form.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/functional-page-navigator.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/icon.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/image.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/import.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/include.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/input.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/keyboard-accessory.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/label.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/live-player.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/live-pusher.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/map.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/match-media.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/movable-area.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/movable-view.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/navigation-bar.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/navigator.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/official-account.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/open-data.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/page-container.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/page-meta.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/picker-view-column.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/picker-view.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/picker.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/progress.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/radio-group.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/radio.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/rich-text.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/scroll-view.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/share-element.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/slider.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/slot.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/swiper-item.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/swiper.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/switch.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/template.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/text.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/textarea.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/video.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/view.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/voip-room.d.mts +2 -3
- package/dist/weappIntrinsicElements/elements/web-view.d.mts +2 -3
- package/dist/weappIntrinsicElements.d.mts +5 -5
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.mjs","names":[],"sources":["../../../../../src/runtime/register/component/options.ts"],"sourcesContent":["import type { LayoutHostBinding } from '../../layoutBridge'\nimport type { TemplateRefBinding } from '../../templateRefs'\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 = Object.fromEntries(\n [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUnmount',\n 'beforeDestroy',\n 'unmounted',\n 'destroyed',\n ].map(key => [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 } from '../../layoutBridge'\nimport type { TemplateRefBinding } from '../../templateRefs'\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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"}
|
|
@@ -120,6 +120,20 @@ function ensureSetupContextInstance(target, runtime) {
|
|
|
120
120
|
const maybeCached = target[WEVU_SETUP_CONTEXT_INSTANCE_KEY];
|
|
121
121
|
if (maybeCached && typeof maybeCached === "object") return maybeCached;
|
|
122
122
|
const setupInstanceBridge = Object.create(null);
|
|
123
|
+
try {
|
|
124
|
+
Object.defineProperty(setupInstanceBridge, WEVU_NATIVE_INSTANCE_KEY, {
|
|
125
|
+
configurable: true,
|
|
126
|
+
enumerable: false,
|
|
127
|
+
get() {
|
|
128
|
+
const runtimeState = runtime === null || runtime === void 0 ? void 0 : runtime.state;
|
|
129
|
+
const rawRuntimeState = runtimeState && typeof runtimeState === "object" ? toRaw(runtimeState) : void 0;
|
|
130
|
+
const nativeInstance = rawRuntimeState === null || rawRuntimeState === void 0 ? void 0 : rawRuntimeState[WEVU_NATIVE_INSTANCE_KEY];
|
|
131
|
+
return nativeInstance && typeof nativeInstance === "object" ? nativeInstance : target;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
} catch (_unused4) {
|
|
135
|
+
setupInstanceBridge[WEVU_NATIVE_INSTANCE_KEY] = target;
|
|
136
|
+
}
|
|
123
137
|
const resolvePublicValue = (key) => {
|
|
124
138
|
var _WEVU_PROPS_KEY, _ref;
|
|
125
139
|
const runtimeProxy = runtime === null || runtime === void 0 ? void 0 : runtime.proxy;
|
|
@@ -221,7 +235,7 @@ function ensureSetupContextInstance(target, runtime) {
|
|
|
221
235
|
enumerable: false,
|
|
222
236
|
writable: true
|
|
223
237
|
});
|
|
224
|
-
} catch (
|
|
238
|
+
} catch (_unused5) {
|
|
225
239
|
target[WEVU_SETUP_CONTEXT_INSTANCE_KEY] = setupInstance;
|
|
226
240
|
}
|
|
227
241
|
return setupInstance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupContext.mjs","names":[],"sources":["../../../../../src/runtime/register/runtimeInstance/setupContext.ts"],"sourcesContent":["import type { WatchStopHandle } from '../../../reactivity'\nimport type {\n InternalRuntimeState,\n MiniProgramAdapter,\n MiniProgramIntersectionObserverOptions,\n RuntimeInstance,\n SetupContextNativeInstance,\n TriggerEventOptions,\n} from '../../types'\nimport {\n WEVU_NATIVE_INSTANCE_KEY,\n WEVU_PROPS_KEY,\n WEVU_SETUP_CONTEXT_INSTANCE_KEY,\n WEVU_SLOT_NAMES_PROP,\n} from '@weapp-core/constants'\nimport { toRaw } from '../../../reactivity'\nimport { hasOwn } from '../../../utils'\nimport { isNativeBridgeMethod, markNativeBridgeMethod } from '../../nativeBridge'\nimport { markNoSetData } from '../../noSetData'\nimport { getCurrentMiniProgramRuntimeCapabilities, getMiniProgramGlobalObject, supportsCurrentMiniProgramRuntimeCapability } from '../../platform'\n\nexport { normalizeEmitPayload } from '../../emit'\n\ntype AdapterWithSetData = Required<MiniProgramAdapter> & {\n __wevu_enableSetData?: () => void\n __wevu_setVisibility?: (visible: boolean) => void\n}\n\nexport type SetupInstanceMethodName = 'triggerEvent' | 'createSelectorQuery' | 'createIntersectionObserver' | 'setData' | 'setUpdatePerformanceListener'\n\nexport const setupInstanceMethodNames: SetupInstanceMethodName[] = [\n 'triggerEvent',\n 'createSelectorQuery',\n 'createIntersectionObserver',\n 'setData',\n 'setUpdatePerformanceListener',\n]\n\nexport function createSetupSlotsFallback() {\n return Object.freeze(Object.create(null)) as Record<string, never>\n}\n\nconst SLOT_RENDER_FN = () => []\n\nfunction normalizeSlotNames(value: unknown): string[] {\n if (Array.isArray(value)) {\n return [...new Set(value.filter((item): item is string => typeof item === 'string' && item.length > 0))]\n }\n if (!value || typeof value !== 'object') {\n return []\n }\n return Object.entries(value as Record<string, unknown>)\n .filter(([, enabled]) => Boolean(enabled))\n .map(([name]) => name)\n}\n\nexport function createSetupSlotsProxy(props: Record<string, any>) {\n if (!hasOwn(props, WEVU_SLOT_NAMES_PROP)) {\n return createSetupSlotsFallback()\n }\n\n const resolveNames = () => normalizeSlotNames(props[WEVU_SLOT_NAMES_PROP])\n const isEnabled = (key: PropertyKey) => typeof key === 'string' && resolveNames().includes(key)\n\n return new Proxy(Object.create(null), {\n get(_target, key) {\n if (isEnabled(key)) {\n return SLOT_RENDER_FN\n }\n return undefined\n },\n has(_target, key) {\n return isEnabled(key)\n },\n ownKeys() {\n return resolveNames()\n },\n getOwnPropertyDescriptor(_target, key) {\n if (!isEnabled(key)) {\n return undefined\n }\n return {\n configurable: true,\n enumerable: true,\n value: SLOT_RENDER_FN,\n }\n },\n set() {\n return false\n },\n deleteProperty() {\n return false\n },\n }) as Record<string, any>\n}\n\nexport function attachRuntimeSlots(runtimeState: Record<string, any>, props: Record<string, any>) {\n const slots = createSetupSlotsProxy(props)\n try {\n Object.defineProperty(runtimeState, '$slots', {\n value: slots,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n runtimeState.$slots = slots\n }\n return slots\n}\n\nexport function createNoopWatchStopHandle(): WatchStopHandle {\n const stopHandle = (() => {}) as WatchStopHandle\n stopHandle.stop = () => {}\n stopHandle.pause = () => {}\n stopHandle.resume = () => {}\n return stopHandle\n}\n\nexport function safeMarkNoSetData<T extends object>(value: T): T {\n try {\n return markNoSetData(value)\n }\n catch {\n return value\n }\n}\n\nfunction resolveRuntimeNativeMethodOwner(\n runtime: RuntimeInstance<any, any, any>,\n target: InternalRuntimeState,\n methodName: SetupInstanceMethodName,\n) {\n const runtimeState = runtime?.state\n const runtimeRawState = runtimeState && typeof runtimeState === 'object'\n ? toRaw(runtimeState as any)\n : undefined\n const runtimeProxy = runtime?.proxy as object | undefined\n const isBridgeMethod = (candidate: object) => {\n const candidateMethod = (candidate as any)[methodName]\n if (typeof candidateMethod !== 'function') {\n return false\n }\n if (isNativeBridgeMethod(candidateMethod)) {\n return true\n }\n const targetMethod = (target as any)[methodName]\n return typeof targetMethod === 'function' && candidateMethod === targetMethod\n }\n const isValidNativeCandidate = (candidate: unknown) => {\n if (!candidate || typeof candidate !== 'object') {\n return false\n }\n if (candidate === target || candidate === runtimeProxy) {\n return false\n }\n if (isBridgeMethod(candidate)) {\n return false\n }\n return typeof (candidate as any)[methodName] === 'function'\n }\n const nativeFromState = runtimeRawState ? (runtimeRawState as any)[WEVU_NATIVE_INSTANCE_KEY] : undefined\n if (isValidNativeCandidate(nativeFromState)) {\n return nativeFromState as InternalRuntimeState\n }\n\n const runtimeInstance = (runtime as any)?.instance\n if (isValidNativeCandidate(runtimeInstance)) {\n return runtimeInstance as InternalRuntimeState\n }\n return undefined\n}\n\nfunction defineSetupInstanceMethod(\n target: Record<string, any>,\n methodName: SetupInstanceMethodName,\n handler: (...args: any[]) => any,\n) {\n markNativeBridgeMethod(handler)\n try {\n Object.defineProperty(target, methodName, {\n value: handler,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n ;(target as any)[methodName] = handler\n }\n}\n\nexport function ensureSetupContextInstance(\n target: InternalRuntimeState,\n runtime: RuntimeInstance<any, any, any>,\n) {\n const maybeCached = (target as any)[WEVU_SETUP_CONTEXT_INSTANCE_KEY]\n if (maybeCached && typeof maybeCached === 'object') {\n return maybeCached as SetupContextNativeInstance\n }\n\n const setupInstanceBridge: Record<string, any> = Object.create(null)\n const resolvePublicValue = (key: PropertyKey) => {\n const runtimeProxy = runtime?.proxy as Record<PropertyKey, any> | undefined\n if (runtimeProxy && Reflect.has(runtimeProxy, key)) {\n return {\n found: true,\n value: Reflect.get(runtimeProxy, key),\n }\n }\n const runtimeProps = (runtime?.state as any)?.[WEVU_PROPS_KEY]\n ?? (target as any)[WEVU_PROPS_KEY]\n if (runtimeProps && typeof runtimeProps === 'object' && hasOwn(runtimeProps, key)) {\n return {\n found: true,\n value: Reflect.get(runtimeProps, key),\n }\n }\n return { found: false, value: undefined }\n }\n const resolveSetupBridgeOwner = (methodName: SetupInstanceMethodName) => {\n const owner = resolveRuntimeNativeMethodOwner(runtime, target, methodName)\n if (owner) {\n return owner\n }\n const fallbackMethod = (target as any)[methodName]\n if (typeof fallbackMethod === 'function' && !isNativeBridgeMethod(fallbackMethod)) {\n return target\n }\n return undefined\n }\n\n defineSetupInstanceMethod(setupInstanceBridge, 'triggerEvent', (...args: [string, any?, TriggerEventOptions?]) => {\n const [eventName, detail, options] = args\n const nativeOwner = resolveSetupBridgeOwner('triggerEvent')\n if (nativeOwner && typeof (nativeOwner as any).triggerEvent === 'function') {\n if (args.length >= 3) {\n ;(nativeOwner as any).triggerEvent(eventName, detail, options)\n }\n else {\n ;(nativeOwner as any).triggerEvent(eventName, detail)\n }\n }\n })\n\n defineSetupInstanceMethod(setupInstanceBridge, 'createSelectorQuery', () => {\n const nativeOwner = resolveSetupBridgeOwner('createSelectorQuery')\n if (nativeOwner && typeof (nativeOwner as any).createSelectorQuery === 'function') {\n return (nativeOwner as any).createSelectorQuery()\n }\n\n const miniProgramGlobal = getMiniProgramGlobalObject()\n if (\n !supportsCurrentMiniProgramRuntimeCapability('globalCreateSelectorQuery')\n || !miniProgramGlobal\n || typeof miniProgramGlobal.createSelectorQuery !== 'function'\n ) {\n return undefined\n }\n\n const query = miniProgramGlobal.createSelectorQuery()\n if (!query) {\n return query\n }\n if (\n !getCurrentMiniProgramRuntimeCapabilities().selectorQueryScopeByIn\n || typeof query.in !== 'function'\n ) {\n return query\n }\n\n const scopedOwner = resolveRuntimeNativeMethodOwner(runtime, target, 'setData') ?? target\n return query.in(scopedOwner as any)\n })\n\n defineSetupInstanceMethod(\n setupInstanceBridge,\n 'createIntersectionObserver',\n (options?: MiniProgramIntersectionObserverOptions) => {\n const nativeOwner = resolveSetupBridgeOwner('createIntersectionObserver')\n if (nativeOwner && typeof (nativeOwner as any).createIntersectionObserver === 'function') {\n return (nativeOwner as any).createIntersectionObserver(options ?? {})\n }\n\n const miniProgramGlobal = getMiniProgramGlobalObject()\n if (\n !supportsCurrentMiniProgramRuntimeCapability('globalCreateIntersectionObserver')\n || !miniProgramGlobal\n || typeof miniProgramGlobal.createIntersectionObserver !== 'function'\n ) {\n return undefined\n }\n\n const scopedOwner = resolveRuntimeNativeMethodOwner(runtime, target, 'setData') ?? target\n if (getCurrentMiniProgramRuntimeCapabilities().intersectionObserverScopeByParameter) {\n return miniProgramGlobal.createIntersectionObserver(scopedOwner as any, options ?? {})\n }\n return miniProgramGlobal.createIntersectionObserver(options ?? {})\n },\n )\n\n defineSetupInstanceMethod(setupInstanceBridge, 'setData', (payload: Record<string, any>, callback?: () => void) => {\n const nativeOwner = resolveSetupBridgeOwner('setData')\n if (nativeOwner && typeof (nativeOwner as any).setData === 'function') {\n return (nativeOwner as any).setData(payload, callback)\n }\n\n const adapter = runtime?.adapter as AdapterWithSetData | undefined\n const result = typeof adapter?.setData === 'function'\n ? adapter.setData(payload)\n : undefined\n if (typeof callback === 'function') {\n callback()\n }\n return result\n })\n\n defineSetupInstanceMethod(\n setupInstanceBridge,\n 'setUpdatePerformanceListener',\n (listener?: ((result: Record<string, any>) => void)) => {\n const nativeOwner = resolveSetupBridgeOwner('setUpdatePerformanceListener')\n if (nativeOwner && typeof (nativeOwner as any).setUpdatePerformanceListener === 'function') {\n return (nativeOwner as any).setUpdatePerformanceListener(listener)\n }\n return undefined\n },\n )\n\n const setupInstance = safeMarkNoSetData(new Proxy(setupInstanceBridge, {\n get(bridgeTarget, key, receiver) {\n if (Reflect.has(bridgeTarget, key)) {\n return Reflect.get(bridgeTarget, key, receiver)\n }\n if (key === '$el') {\n return resolveRuntimeNativeMethodOwner(runtime, target, 'setData') ?? target\n }\n if (key === 'renderRoot' || key === 'shadowRoot') {\n const nativeOwner = resolveRuntimeNativeMethodOwner(runtime, target, 'setData') ?? target\n return (nativeOwner as any)[key]\n }\n const publicValue = resolvePublicValue(key)\n if (publicValue.found) {\n return publicValue.value\n }\n const value = (target as any)[key as any]\n if (typeof value === 'function') {\n return value.bind(target)\n }\n return value\n },\n has(bridgeTarget, key) {\n return Reflect.has(bridgeTarget, key) || resolvePublicValue(key).found || key in (target as any)\n },\n set(bridgeTarget, key, value) {\n if (Reflect.has(bridgeTarget, key)) {\n // 仅覆写 setup 暴露的 bridge 方法,避免回写原生实例引发递归调用。\n ;(bridgeTarget as any)[key as any] = value\n return true\n }\n ;(target as any)[key as any] = value\n return true\n },\n }) as SetupContextNativeInstance)\n\n try {\n Object.defineProperty(target as Record<string, any>, WEVU_SETUP_CONTEXT_INSTANCE_KEY, {\n value: setupInstance,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n ;(target as any)[WEVU_SETUP_CONTEXT_INSTANCE_KEY] = setupInstance\n }\n\n return setupInstance\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setupContext.mjs","names":[],"sources":["../../../../../src/runtime/register/runtimeInstance/setupContext.ts"],"sourcesContent":["import type { WatchStopHandle } from '../../../reactivity'\nimport type {\n InternalRuntimeState,\n MiniProgramAdapter,\n MiniProgramIntersectionObserverOptions,\n RuntimeInstance,\n SetupContextNativeInstance,\n TriggerEventOptions,\n} from '../../types'\nimport {\n WEVU_NATIVE_INSTANCE_KEY,\n WEVU_PROPS_KEY,\n WEVU_SETUP_CONTEXT_INSTANCE_KEY,\n WEVU_SLOT_NAMES_PROP,\n} from '@weapp-core/constants'\nimport { toRaw } from '../../../reactivity'\nimport { hasOwn } from '../../../utils'\nimport { isNativeBridgeMethod, markNativeBridgeMethod } from '../../nativeBridge'\nimport { markNoSetData } from '../../noSetData'\nimport { getCurrentMiniProgramRuntimeCapabilities, getMiniProgramGlobalObject, supportsCurrentMiniProgramRuntimeCapability } from '../../platform'\n\nexport { normalizeEmitPayload } from '../../emit'\n\ntype AdapterWithSetData = Required<MiniProgramAdapter> & {\n __wevu_enableSetData?: () => void\n __wevu_setVisibility?: (visible: boolean) => void\n}\n\nexport type SetupInstanceMethodName = 'triggerEvent' | 'createSelectorQuery' | 'createIntersectionObserver' | 'setData' | 'setUpdatePerformanceListener'\n\nexport const setupInstanceMethodNames: SetupInstanceMethodName[] = [\n 'triggerEvent',\n 'createSelectorQuery',\n 'createIntersectionObserver',\n 'setData',\n 'setUpdatePerformanceListener',\n]\n\nexport function createSetupSlotsFallback() {\n return Object.freeze(Object.create(null)) as Record<string, never>\n}\n\nconst SLOT_RENDER_FN = () => []\n\nfunction normalizeSlotNames(value: unknown): string[] {\n if (Array.isArray(value)) {\n return [...new Set(value.filter((item): item is string => typeof item === 'string' && item.length > 0))]\n }\n if (!value || typeof value !== 'object') {\n return []\n }\n return Object.entries(value as Record<string, unknown>)\n .filter(([, enabled]) => Boolean(enabled))\n .map(([name]) => name)\n}\n\nexport function createSetupSlotsProxy(props: Record<string, any>) {\n if (!hasOwn(props, WEVU_SLOT_NAMES_PROP)) {\n return createSetupSlotsFallback()\n }\n\n const resolveNames = () => normalizeSlotNames(props[WEVU_SLOT_NAMES_PROP])\n const isEnabled = (key: PropertyKey) => typeof key === 'string' && resolveNames().includes(key)\n\n return new Proxy(Object.create(null), {\n get(_target, key) {\n if (isEnabled(key)) {\n return SLOT_RENDER_FN\n }\n return undefined\n },\n has(_target, key) {\n return isEnabled(key)\n },\n ownKeys() {\n return resolveNames()\n },\n getOwnPropertyDescriptor(_target, key) {\n if (!isEnabled(key)) {\n return undefined\n }\n return {\n configurable: true,\n enumerable: true,\n value: SLOT_RENDER_FN,\n }\n },\n set() {\n return false\n },\n deleteProperty() {\n return false\n },\n }) as Record<string, any>\n}\n\nexport function attachRuntimeSlots(runtimeState: Record<string, any>, props: Record<string, any>) {\n const slots = createSetupSlotsProxy(props)\n try {\n Object.defineProperty(runtimeState, '$slots', {\n value: slots,\n configurable: true,\n enumerable: false,\n writable: false,\n })\n }\n catch {\n runtimeState.$slots = slots\n }\n return slots\n}\n\nexport function createNoopWatchStopHandle(): WatchStopHandle {\n const stopHandle = (() => {}) as WatchStopHandle\n stopHandle.stop = () => {}\n stopHandle.pause = () => {}\n stopHandle.resume = () => {}\n return stopHandle\n}\n\nexport function safeMarkNoSetData<T extends object>(value: T): T {\n try {\n return markNoSetData(value)\n }\n catch {\n return value\n }\n}\n\nfunction resolveRuntimeNativeMethodOwner(\n runtime: RuntimeInstance<any, any, any>,\n target: InternalRuntimeState,\n methodName: SetupInstanceMethodName,\n) {\n const runtimeState = runtime?.state\n const runtimeRawState = runtimeState && typeof runtimeState === 'object'\n ? toRaw(runtimeState as any)\n : undefined\n const runtimeProxy = runtime?.proxy as object | undefined\n const isBridgeMethod = (candidate: object) => {\n const candidateMethod = (candidate as any)[methodName]\n if (typeof candidateMethod !== 'function') {\n return false\n }\n if (isNativeBridgeMethod(candidateMethod)) {\n return true\n }\n const targetMethod = (target as any)[methodName]\n return typeof targetMethod === 'function' && candidateMethod === targetMethod\n }\n const isValidNativeCandidate = (candidate: unknown) => {\n if (!candidate || typeof candidate !== 'object') {\n return false\n }\n if (candidate === target || candidate === runtimeProxy) {\n return false\n }\n if (isBridgeMethod(candidate)) {\n return false\n }\n return typeof (candidate as any)[methodName] === 'function'\n }\n const nativeFromState = runtimeRawState ? (runtimeRawState as any)[WEVU_NATIVE_INSTANCE_KEY] : undefined\n if (isValidNativeCandidate(nativeFromState)) {\n return nativeFromState as InternalRuntimeState\n }\n\n const runtimeInstance = (runtime as any)?.instance\n if (isValidNativeCandidate(runtimeInstance)) {\n return runtimeInstance as InternalRuntimeState\n }\n return undefined\n}\n\nfunction defineSetupInstanceMethod(\n target: Record<string, any>,\n methodName: SetupInstanceMethodName,\n handler: (...args: any[]) => any,\n) {\n markNativeBridgeMethod(handler)\n try {\n Object.defineProperty(target, methodName, {\n value: handler,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n ;(target as any)[methodName] = handler\n }\n}\n\nexport function ensureSetupContextInstance(\n target: InternalRuntimeState,\n runtime: RuntimeInstance<any, any, any>,\n) {\n const maybeCached = (target as any)[WEVU_SETUP_CONTEXT_INSTANCE_KEY]\n if (maybeCached && typeof maybeCached === 'object') {\n return maybeCached as SetupContextNativeInstance\n }\n\n const setupInstanceBridge: Record<string, any> = Object.create(null)\n try {\n Object.defineProperty(setupInstanceBridge, WEVU_NATIVE_INSTANCE_KEY, {\n configurable: true,\n enumerable: false,\n get() {\n const runtimeState = runtime?.state\n const rawRuntimeState = runtimeState && typeof runtimeState === 'object'\n ? toRaw(runtimeState as any)\n : undefined\n const nativeInstance = rawRuntimeState?.[WEVU_NATIVE_INSTANCE_KEY]\n return nativeInstance && typeof nativeInstance === 'object'\n ? nativeInstance\n : target\n },\n })\n }\n catch {\n setupInstanceBridge[WEVU_NATIVE_INSTANCE_KEY] = target\n }\n const resolvePublicValue = (key: PropertyKey) => {\n const runtimeProxy = runtime?.proxy as Record<PropertyKey, any> | undefined\n if (runtimeProxy && Reflect.has(runtimeProxy, key)) {\n return {\n found: true,\n value: Reflect.get(runtimeProxy, key),\n }\n }\n const runtimeProps = (runtime?.state as any)?.[WEVU_PROPS_KEY]\n ?? (target as any)[WEVU_PROPS_KEY]\n if (runtimeProps && typeof runtimeProps === 'object' && hasOwn(runtimeProps, key)) {\n return {\n found: true,\n value: Reflect.get(runtimeProps, key),\n }\n }\n return { found: false, value: undefined }\n }\n const resolveSetupBridgeOwner = (methodName: SetupInstanceMethodName) => {\n const owner = resolveRuntimeNativeMethodOwner(runtime, target, methodName)\n if (owner) {\n return owner\n }\n const fallbackMethod = (target as any)[methodName]\n if (typeof fallbackMethod === 'function' && !isNativeBridgeMethod(fallbackMethod)) {\n return target\n }\n return undefined\n }\n\n defineSetupInstanceMethod(setupInstanceBridge, 'triggerEvent', (...args: [string, any?, TriggerEventOptions?]) => {\n const [eventName, detail, options] = args\n const nativeOwner = resolveSetupBridgeOwner('triggerEvent')\n if (nativeOwner && typeof (nativeOwner as any).triggerEvent === 'function') {\n if (args.length >= 3) {\n ;(nativeOwner as any).triggerEvent(eventName, detail, options)\n }\n else {\n ;(nativeOwner as any).triggerEvent(eventName, detail)\n }\n }\n })\n\n defineSetupInstanceMethod(setupInstanceBridge, 'createSelectorQuery', () => {\n const nativeOwner = resolveSetupBridgeOwner('createSelectorQuery')\n if (nativeOwner && typeof (nativeOwner as any).createSelectorQuery === 'function') {\n return (nativeOwner as any).createSelectorQuery()\n }\n\n const miniProgramGlobal = getMiniProgramGlobalObject()\n if (\n !supportsCurrentMiniProgramRuntimeCapability('globalCreateSelectorQuery')\n || !miniProgramGlobal\n || typeof miniProgramGlobal.createSelectorQuery !== 'function'\n ) {\n return undefined\n }\n\n const query = miniProgramGlobal.createSelectorQuery()\n if (!query) {\n return query\n }\n if (\n !getCurrentMiniProgramRuntimeCapabilities().selectorQueryScopeByIn\n || typeof query.in !== 'function'\n ) {\n return query\n }\n\n const scopedOwner = resolveRuntimeNativeMethodOwner(runtime, target, 'setData') ?? target\n return query.in(scopedOwner as any)\n })\n\n defineSetupInstanceMethod(\n setupInstanceBridge,\n 'createIntersectionObserver',\n (options?: MiniProgramIntersectionObserverOptions) => {\n const nativeOwner = resolveSetupBridgeOwner('createIntersectionObserver')\n if (nativeOwner && typeof (nativeOwner as any).createIntersectionObserver === 'function') {\n return (nativeOwner as any).createIntersectionObserver(options ?? {})\n }\n\n const miniProgramGlobal = getMiniProgramGlobalObject()\n if (\n !supportsCurrentMiniProgramRuntimeCapability('globalCreateIntersectionObserver')\n || !miniProgramGlobal\n || typeof miniProgramGlobal.createIntersectionObserver !== 'function'\n ) {\n return undefined\n }\n\n const scopedOwner = resolveRuntimeNativeMethodOwner(runtime, target, 'setData') ?? target\n if (getCurrentMiniProgramRuntimeCapabilities().intersectionObserverScopeByParameter) {\n return miniProgramGlobal.createIntersectionObserver(scopedOwner as any, options ?? {})\n }\n return miniProgramGlobal.createIntersectionObserver(options ?? {})\n },\n )\n\n defineSetupInstanceMethod(setupInstanceBridge, 'setData', (payload: Record<string, any>, callback?: () => void) => {\n const nativeOwner = resolveSetupBridgeOwner('setData')\n if (nativeOwner && typeof (nativeOwner as any).setData === 'function') {\n return (nativeOwner as any).setData(payload, callback)\n }\n\n const adapter = runtime?.adapter as AdapterWithSetData | undefined\n const result = typeof adapter?.setData === 'function'\n ? adapter.setData(payload)\n : undefined\n if (typeof callback === 'function') {\n callback()\n }\n return result\n })\n\n defineSetupInstanceMethod(\n setupInstanceBridge,\n 'setUpdatePerformanceListener',\n (listener?: ((result: Record<string, any>) => void)) => {\n const nativeOwner = resolveSetupBridgeOwner('setUpdatePerformanceListener')\n if (nativeOwner && typeof (nativeOwner as any).setUpdatePerformanceListener === 'function') {\n return (nativeOwner as any).setUpdatePerformanceListener(listener)\n }\n return undefined\n },\n )\n\n const setupInstance = safeMarkNoSetData(new Proxy(setupInstanceBridge, {\n get(bridgeTarget, key, receiver) {\n if (Reflect.has(bridgeTarget, key)) {\n return Reflect.get(bridgeTarget, key, receiver)\n }\n if (key === '$el') {\n return resolveRuntimeNativeMethodOwner(runtime, target, 'setData') ?? target\n }\n if (key === 'renderRoot' || key === 'shadowRoot') {\n const nativeOwner = resolveRuntimeNativeMethodOwner(runtime, target, 'setData') ?? target\n return (nativeOwner as any)[key]\n }\n const publicValue = resolvePublicValue(key)\n if (publicValue.found) {\n return publicValue.value\n }\n const value = (target as any)[key as any]\n if (typeof value === 'function') {\n return value.bind(target)\n }\n return value\n },\n has(bridgeTarget, key) {\n return Reflect.has(bridgeTarget, key) || resolvePublicValue(key).found || key in (target as any)\n },\n set(bridgeTarget, key, value) {\n if (Reflect.has(bridgeTarget, key)) {\n // 仅覆写 setup 暴露的 bridge 方法,避免回写原生实例引发递归调用。\n ;(bridgeTarget as any)[key as any] = value\n return true\n }\n ;(target as any)[key as any] = value\n return true\n },\n }) as SetupContextNativeInstance)\n\n try {\n Object.defineProperty(target as Record<string, any>, WEVU_SETUP_CONTEXT_INSTANCE_KEY, {\n value: setupInstance,\n configurable: true,\n enumerable: false,\n writable: true,\n })\n }\n catch {\n ;(target as any)[WEVU_SETUP_CONTEXT_INSTANCE_KEY] = setupInstance\n }\n\n return setupInstance\n}\n"],"mappings":"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"}
|
package/dist/fetch.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { WeapiMiniProgramRequestMethod } from "@wevu/api";
|
|
2
2
|
import { RequestGlobalsFetchInit as WevuFetchInit, fetch } from "@wevu/web-apis/fetch";
|
|
3
3
|
//#region src/fetch.d.ts
|
|
4
|
-
type WevuFetchInput = Parameters<typeof import('@wevu/web-apis/fetch').fetch>[0];
|
|
5
|
-
type MiniProgramRequestMethod = WeapiMiniProgramRequestMethod;
|
|
6
|
-
type WxRequestMethod = MiniProgramRequestMethod;
|
|
4
|
+
export type WevuFetchInput = Parameters<typeof import('@wevu/web-apis/fetch').fetch>[0];
|
|
5
|
+
export type MiniProgramRequestMethod = WeapiMiniProgramRequestMethod;
|
|
6
|
+
export type WxRequestMethod = MiniProgramRequestMethod;
|
|
7
7
|
//#endregion
|
|
8
|
-
export {
|
|
8
|
+
export { type WevuFetchInit, fetch };
|
package/dist/jsx-runtime.d.mts
CHANGED
|
@@ -2,9 +2,9 @@ import { MiniProgramIntrinsicElements } from "./weappIntrinsicElements.mjs";
|
|
|
2
2
|
import { WevuJsxVNode } from "./runtime/jsxIsland.mjs";
|
|
3
3
|
import { GlobalComponents } from "wevu";
|
|
4
4
|
//#region src/jsx-runtime.d.ts
|
|
5
|
-
type WevuJsxChild = WevuJsxElement | WevuJsxElement[];
|
|
6
|
-
type WevuJsxElement = WevuJsxVNode | boolean | null | number | string | undefined;
|
|
7
|
-
declare namespace JSX {
|
|
5
|
+
export type WevuJsxChild = WevuJsxElement | WevuJsxElement[];
|
|
6
|
+
export type WevuJsxElement = WevuJsxVNode | boolean | null | number | string | undefined;
|
|
7
|
+
export declare namespace JSX {
|
|
8
8
|
type Element = WevuJsxElement;
|
|
9
9
|
interface ElementClass {
|
|
10
10
|
$props: Record<string, any>;
|
|
@@ -17,5 +17,4 @@ declare namespace JSX {
|
|
|
17
17
|
}
|
|
18
18
|
interface IntrinsicElements extends GlobalComponents, MiniProgramIntrinsicElements {}
|
|
19
19
|
}
|
|
20
|
-
//#endregion
|
|
21
|
-
export { JSX, WevuJsxChild, WevuJsxElement };
|
|
20
|
+
//#endregion
|
package/dist/macros/shared.d.mts
CHANGED
|
@@ -5,29 +5,29 @@ import { ComputedDefinitions, MethodDefinitions } from "../runtime/types/core.mj
|
|
|
5
5
|
import { DefineComponentOptions } from "../runtime/types/options.mjs";
|
|
6
6
|
import "../runtime/index.mjs";
|
|
7
7
|
//#region src/macros/shared.d.ts
|
|
8
|
-
type Prettify<T> = { [K in keyof T]: T[K]; } & {};
|
|
8
|
+
export type Prettify<T> = { [K in keyof T]: T[K]; } & {};
|
|
9
9
|
type IfAny<T, Y, N> = 0 extends 1 & T ? Y : N;
|
|
10
10
|
type ComponentObjectPropsOptions = ComponentPropsOptions;
|
|
11
11
|
type ExtractPropTypes<P extends ComponentObjectPropsOptions> = InferProps<P>;
|
|
12
|
-
type DefineProps<T, BKeys extends keyof T> = Readonly<T> & { readonly [K in BKeys]-?: boolean; };
|
|
13
|
-
type BooleanKey<T, K extends keyof T = keyof T> = K extends any ? T[K] extends boolean | undefined ? T[K] extends never | undefined ? never : K : never : never;
|
|
14
|
-
type DefinePropsFromArray<PropNames extends string = string> = Prettify<Readonly<{ [key in PropNames]?: any; }>>;
|
|
15
|
-
type DefinePropsFromOptions<PP extends ComponentObjectPropsOptions = ComponentObjectPropsOptions> = Prettify<Readonly<ExtractPropTypes<PP>>>;
|
|
12
|
+
export type DefineProps<T, BKeys extends keyof T> = Readonly<T> & { readonly [K in BKeys]-?: boolean; };
|
|
13
|
+
export type BooleanKey<T, K extends keyof T = keyof T> = K extends any ? T[K] extends boolean | undefined ? T[K] extends never | undefined ? never : K : never : never;
|
|
14
|
+
export type DefinePropsFromArray<PropNames extends string = string> = Prettify<Readonly<{ [key in PropNames]?: any; }>>;
|
|
15
|
+
export type DefinePropsFromOptions<PP extends ComponentObjectPropsOptions = ComponentObjectPropsOptions> = Prettify<Readonly<ExtractPropTypes<PP>>>;
|
|
16
16
|
type NotUndefined<T> = T extends undefined ? never : T;
|
|
17
17
|
type MappedOmit<T, K extends keyof any> = { [P in keyof T as P extends K ? never : P]: T[P]; };
|
|
18
|
-
type InferDefaults<T> = { [K in keyof T]?: InferDefault<T, T[K]>; };
|
|
18
|
+
export type InferDefaults<T> = { [K in keyof T]?: InferDefault<T, T[K]>; };
|
|
19
19
|
type NativeType = null | undefined | number | string | boolean | symbol | ((...args: any[]) => any);
|
|
20
20
|
type InferDefault<P, T> = ((props: P) => T & {}) | (T extends NativeType ? T : never);
|
|
21
|
-
type PropsWithDefaults<T, Defaults extends InferDefaults<T>, BKeys extends keyof T> = T extends unknown ? Readonly<MappedOmit<T, keyof Defaults>> & { readonly [K in keyof Defaults as K extends keyof T ? K : never]-?: K extends keyof T ? Defaults[K] extends undefined ? IfAny<Defaults[K], NotUndefined<T[K]>, T[K]> : NotUndefined<T[K]> : never; } & { readonly [K in BKeys]-?: K extends keyof Defaults ? Defaults[K] extends undefined ? boolean | undefined : boolean : boolean; } : never;
|
|
22
|
-
type UnionToIntersection<U> = (U extends any ? (arg: U) => any : never) extends ((arg: infer I) => any) ? I : never;
|
|
21
|
+
export type PropsWithDefaults<T, Defaults extends InferDefaults<T>, BKeys extends keyof T> = T extends unknown ? Readonly<MappedOmit<T, keyof Defaults>> & { readonly [K in keyof Defaults as K extends keyof T ? K : never]-?: K extends keyof T ? Defaults[K] extends undefined ? IfAny<Defaults[K], NotUndefined<T[K]>, T[K]> : NotUndefined<T[K]> : never; } & { readonly [K in BKeys]-?: K extends keyof Defaults ? Defaults[K] extends undefined ? boolean | undefined : boolean : boolean; } : never;
|
|
22
|
+
export type UnionToIntersection<U> = (U extends any ? (arg: U) => any : never) extends ((arg: infer I) => any) ? I : never;
|
|
23
23
|
type ScriptSetupTriggerEventOptions = HostMiniProgramTriggerEventOptions;
|
|
24
24
|
type EmitArgsWithTriggerEventOptions<Args extends any[]> = Args extends [] ? [] | [detail: undefined, options: ScriptSetupTriggerEventOptions] : Args | [...args: Args, options: ScriptSetupTriggerEventOptions];
|
|
25
25
|
type ObjectEmitsOptions = Record<string, ((...args: any[]) => any) | null>;
|
|
26
|
-
type EmitsOptions = ObjectEmitsOptions | string[];
|
|
27
|
-
type EmitFn<Options = ObjectEmitsOptions, Event extends keyof Options = keyof Options> = Options extends Array<infer V> ? (event: V, ...args: any[]) => void : {} extends Options ? (event: string, ...args: any[]) => void : UnionToIntersection<{ [K in Event]: Options[K] extends ((...args: infer Args) => any) ? (event: K, ...args: EmitArgsWithTriggerEventOptions<Args>) => void : Options[K] extends any[] ? (event: K, ...args: EmitArgsWithTriggerEventOptions<Options[K]>) => void : (event: K, ...args: any[]) => void; }[Event]>;
|
|
28
|
-
type ComponentTypeEmits = ((...args: any[]) => any) | Record<string, any>;
|
|
26
|
+
export type EmitsOptions = ObjectEmitsOptions | string[];
|
|
27
|
+
export type EmitFn<Options = ObjectEmitsOptions, Event extends keyof Options = keyof Options> = Options extends Array<infer V> ? (event: V, ...args: any[]) => void : {} extends Options ? (event: string, ...args: any[]) => void : UnionToIntersection<{ [K in Event]: Options[K] extends ((...args: infer Args) => any) ? (event: K, ...args: EmitArgsWithTriggerEventOptions<Args>) => void : Options[K] extends any[] ? (event: K, ...args: EmitArgsWithTriggerEventOptions<Options[K]>) => void : (event: K, ...args: any[]) => void; }[Event]>;
|
|
28
|
+
export type ComponentTypeEmits = ((...args: any[]) => any) | Record<string, any>;
|
|
29
29
|
type RecordToUnion<T extends Record<string, any>> = T[keyof T];
|
|
30
|
-
type ShortEmits<T extends Record<string, any>> = UnionToIntersection<RecordToUnion<{ [K in keyof T]: (evt: K, ...args: EmitArgsWithTriggerEventOptions<T[K]>) => void; }>>;
|
|
30
|
+
export type ShortEmits<T extends Record<string, any>> = UnionToIntersection<RecordToUnion<{ [K in keyof T]: (evt: K, ...args: EmitArgsWithTriggerEventOptions<T[K]>) => void; }>>;
|
|
31
31
|
type ScriptSetupNativePropertyOption = HostMiniProgramComponentPropertyOption;
|
|
32
32
|
type ScriptSetupNativeMethodOption = HostMiniProgramComponentMethodOption;
|
|
33
33
|
type ScriptSetupNativeBehaviorOption = HostMiniProgramComponentEmptyArray;
|
|
@@ -39,7 +39,7 @@ type ScriptSetupPropertyObserver<TProperty extends HostMiniProgramComponentAllPr
|
|
|
39
39
|
type ScriptSetupNativeProperties<D extends object, P extends ScriptSetupNativePropertyOption, M extends ScriptSetupNativeMethodOption> = { [K in keyof P]: ScriptSetupPropertyObserver<P[K], ScriptSetupNativeInstance<D, P, M>>; };
|
|
40
40
|
type ScriptSetupNativeMethods<D extends object, P extends ScriptSetupNativePropertyOption, M extends ScriptSetupNativeMethodOption> = M & ThisType<ScriptSetupNativeInstance<D, P, M>>;
|
|
41
41
|
type RemoveIndexSignature<T> = { [K in keyof T as string extends K ? never : number extends K ? never : symbol extends K ? never : K]: T[K]; };
|
|
42
|
-
type ScriptSetupDefineOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, P extends ScriptSetupNativePropertyOption = ScriptSetupNativePropertyOption> = Omit<RemoveIndexSignature<DefineComponentOptions<ComponentPropsOptions, D, C, M>>, 'props' | 'options' | 'data' | 'methods'> & {
|
|
42
|
+
export type ScriptSetupDefineOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, P extends ScriptSetupNativePropertyOption = ScriptSetupNativePropertyOption> = Omit<RemoveIndexSignature<DefineComponentOptions<ComponentPropsOptions, D, C, M>>, 'props' | 'options' | 'data' | 'methods'> & {
|
|
43
43
|
/**
|
|
44
44
|
* props 必须通过 defineProps() 声明。
|
|
45
45
|
*/
|
|
@@ -77,5 +77,4 @@ type ScriptSetupDefineOptions<D extends object = Record<string, any>, C extends
|
|
|
77
77
|
*/
|
|
78
78
|
setupLifecycle?: 'created' | 'attached';
|
|
79
79
|
};
|
|
80
|
-
//#endregion
|
|
81
|
-
export { BooleanKey, ComponentTypeEmits, DefineProps, DefinePropsFromArray, DefinePropsFromOptions, EmitFn, EmitsOptions, InferDefaults, Prettify, PropsWithDefaults, ScriptSetupDefineOptions, ShortEmits, UnionToIntersection };
|
|
80
|
+
//#endregion
|
package/dist/macros.d.mts
CHANGED
|
@@ -9,50 +9,50 @@ import { BooleanKey, ComponentTypeEmits, DefineProps, DefinePropsFromArray, Defi
|
|
|
9
9
|
/**
|
|
10
10
|
* defineProps 声明(类型层宏)。
|
|
11
11
|
*/
|
|
12
|
-
declare function defineProps<PropNames extends string = string>(props: PropNames[]): DefinePropsFromArray<PropNames>;
|
|
13
|
-
declare function defineProps<PP extends ComponentPropsOptions = ComponentPropsOptions>(props: PP): DefinePropsFromOptions<PP>;
|
|
14
|
-
declare function defineProps<TypeProps>(): DefineProps<TypeProps, BooleanKey<TypeProps>>;
|
|
12
|
+
export declare function defineProps<PropNames extends string = string>(props: PropNames[]): DefinePropsFromArray<PropNames>;
|
|
13
|
+
export declare function defineProps<PP extends ComponentPropsOptions = ComponentPropsOptions>(props: PP): DefinePropsFromOptions<PP>;
|
|
14
|
+
export declare function defineProps<TypeProps>(): DefineProps<TypeProps, BooleanKey<TypeProps>>;
|
|
15
15
|
/**
|
|
16
16
|
* withDefaults 为 defineProps 声明默认值(类型层)。
|
|
17
17
|
*/
|
|
18
|
-
declare function withDefaults<T, BKeys extends keyof T, Defaults extends InferDefaults<T>>(props: DefineProps<T, BKeys>, defaults: Defaults): PropsWithDefaults<T, Defaults, BKeys>;
|
|
18
|
+
export declare function withDefaults<T, BKeys extends keyof T, Defaults extends InferDefaults<T>>(props: DefineProps<T, BKeys>, defaults: Defaults): PropsWithDefaults<T, Defaults, BKeys>;
|
|
19
19
|
/**
|
|
20
20
|
* defineEmits 声明(类型层宏)。
|
|
21
21
|
*/
|
|
22
|
-
declare function defineEmits<EE extends string = string>(emits?: EE[]): EmitFn<EE[]>;
|
|
23
|
-
declare function defineEmits<E extends EmitsOptions = EmitsOptions>(emits?: E): EmitFn<E>;
|
|
24
|
-
declare function defineEmits<T extends ComponentTypeEmits>(): T extends ((...args: any[]) => any) ? T : ShortEmits<T>;
|
|
22
|
+
export declare function defineEmits<EE extends string = string>(emits?: EE[]): EmitFn<EE[]>;
|
|
23
|
+
export declare function defineEmits<E extends EmitsOptions = EmitsOptions>(emits?: E): EmitFn<E>;
|
|
24
|
+
export declare function defineEmits<T extends ComponentTypeEmits>(): T extends ((...args: any[]) => any) ? T : ShortEmits<T>;
|
|
25
25
|
/**
|
|
26
26
|
* defineExpose 向父级 ref 暴露成员(仅类型层)。
|
|
27
27
|
*/
|
|
28
|
-
declare function defineExpose<T extends Record<string, any> = Record<string, any>>(exposed?: T): void;
|
|
28
|
+
export declare function defineExpose<T extends Record<string, any> = Record<string, any>>(exposed?: T): void;
|
|
29
29
|
/**
|
|
30
30
|
* defineOptions 设置 `<script setup>` 组件选项(仅类型层)。
|
|
31
31
|
*/
|
|
32
|
-
declare function defineOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, P extends HostMiniProgramComponentPropertyOption = HostMiniProgramComponentPropertyOption>(options?: ScriptSetupDefineOptions<D, C, M, P>): void;
|
|
33
|
-
declare function defineOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, P extends HostMiniProgramComponentPropertyOption = HostMiniProgramComponentPropertyOption>(options?: () => ScriptSetupDefineOptions<D, C, M, P> | Promise<ScriptSetupDefineOptions<D, C, M, P>>): void;
|
|
32
|
+
export declare function defineOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, P extends HostMiniProgramComponentPropertyOption = HostMiniProgramComponentPropertyOption>(options?: ScriptSetupDefineOptions<D, C, M, P>): void;
|
|
33
|
+
export declare function defineOptions<D extends object = Record<string, any>, C extends ComputedDefinitions = ComputedDefinitions, M extends MethodDefinitions = MethodDefinitions, P extends HostMiniProgramComponentPropertyOption = HostMiniProgramComponentPropertyOption>(options?: () => ScriptSetupDefineOptions<D, C, M, P> | Promise<ScriptSetupDefineOptions<D, C, M, P>>): void;
|
|
34
34
|
/**
|
|
35
35
|
* defineSlots 声明 slots 类型(仅类型层)。
|
|
36
36
|
*/
|
|
37
|
-
declare function defineSlots<T extends Record<string, any> = Record<string, any>>(): T;
|
|
38
|
-
type PageLayoutMeta = string | false | {
|
|
37
|
+
export declare function defineSlots<T extends Record<string, any> = Record<string, any>>(): T;
|
|
38
|
+
export type PageLayoutMeta = string | false | {
|
|
39
39
|
name: string;
|
|
40
40
|
props?: Record<string, unknown>;
|
|
41
41
|
};
|
|
42
|
-
interface PageMeta {
|
|
42
|
+
export interface PageMeta {
|
|
43
43
|
layout?: PageLayoutMeta;
|
|
44
44
|
[key: string]: unknown;
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* definePageMeta 声明页面级元信息(仅类型层)。
|
|
48
48
|
*/
|
|
49
|
-
declare function definePageMeta(meta: PageMeta): void;
|
|
49
|
+
export declare function definePageMeta(meta: PageMeta): void;
|
|
50
50
|
/**
|
|
51
51
|
* defineModel 声明 v-model 绑定(类型层宏)。
|
|
52
52
|
*/
|
|
53
|
-
type DefineModelModifiers<M extends PropertyKey = string> = Record<M, true | undefined>;
|
|
54
|
-
type ModelRef<T, M extends PropertyKey = string, G = T, S = T> = Ref<G, S> & [ModelRef<T, M, G, S>, DefineModelModifiers<M>];
|
|
55
|
-
interface DefineModelTransformOptions<T, M extends PropertyKey = string, G = T, S = T> {
|
|
53
|
+
export type DefineModelModifiers<M extends PropertyKey = string> = Record<M, true | undefined>;
|
|
54
|
+
export type ModelRef<T, M extends PropertyKey = string, G = T, S = T> = Ref<G, S> & [ModelRef<T, M, G, S>, DefineModelModifiers<M>];
|
|
55
|
+
export interface DefineModelTransformOptions<T, M extends PropertyKey = string, G = T, S = T> {
|
|
56
56
|
get?: (value: T, modifiers: DefineModelModifiers<M>) => G;
|
|
57
57
|
set?: (value: S, modifiers: DefineModelModifiers<M>) => T;
|
|
58
58
|
}
|
|
@@ -62,9 +62,9 @@ type DefineModelRequiredOptions<T> = {
|
|
|
62
62
|
} | {
|
|
63
63
|
required: true;
|
|
64
64
|
};
|
|
65
|
-
declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(options: DefineModelBaseOptions<T, M, G, S> & DefineModelRequiredOptions<T>): ModelRef<T, M, G, S>;
|
|
66
|
-
declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(name: string, options: DefineModelBaseOptions<T, M, G, S> & DefineModelRequiredOptions<T>): ModelRef<T, M, G, S>;
|
|
67
|
-
declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(options?: DefineModelBaseOptions<T | undefined, M, G | undefined, S | undefined>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
|
|
68
|
-
declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(name?: string, options?: DefineModelBaseOptions<T | undefined, M, G | undefined, S | undefined>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
|
|
65
|
+
export declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(options: DefineModelBaseOptions<T, M, G, S> & DefineModelRequiredOptions<T>): ModelRef<T, M, G, S>;
|
|
66
|
+
export declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(name: string, options: DefineModelBaseOptions<T, M, G, S> & DefineModelRequiredOptions<T>): ModelRef<T, M, G, S>;
|
|
67
|
+
export declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(options?: DefineModelBaseOptions<T | undefined, M, G | undefined, S | undefined>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
|
|
68
|
+
export declare function defineModel<T = any, M extends PropertyKey = string, G = T, S = T>(name?: string, options?: DefineModelBaseOptions<T | undefined, M, G | undefined, S | undefined>): ModelRef<T | undefined, M, G | undefined, S | undefined>;
|
|
69
69
|
//#endregion
|
|
70
|
-
export {
|
|
70
|
+
export type { ComponentTypeEmits, EmitFn, EmitsOptions };
|
package/dist/package.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=`7.0.
|
|
1
|
+
var e=`7.0.4`;export{e as version};
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import { Ref } from "./ref.mjs";
|
|
2
2
|
//#region src/reactivity/computed.d.ts
|
|
3
|
-
type ComputedGetter<T> = () => T;
|
|
4
|
-
type ComputedSetter<T> = (value: T) => void;
|
|
3
|
+
export type ComputedGetter<T> = () => T;
|
|
4
|
+
export type ComputedSetter<T> = (value: T) => void;
|
|
5
5
|
interface BaseComputedRef<T, S = T> extends Ref<T, S> {
|
|
6
6
|
[key: symbol]: any;
|
|
7
7
|
}
|
|
8
|
-
interface ComputedRef<T = any> extends BaseComputedRef<T> {
|
|
8
|
+
export interface ComputedRef<T = any> extends BaseComputedRef<T> {
|
|
9
9
|
readonly value: T;
|
|
10
10
|
}
|
|
11
|
-
interface WritableComputedRef<T, S = T> extends BaseComputedRef<T, S> {
|
|
11
|
+
export interface WritableComputedRef<T, S = T> extends BaseComputedRef<T, S> {
|
|
12
12
|
value: T;
|
|
13
13
|
}
|
|
14
|
-
interface WritableComputedOptions<T> {
|
|
14
|
+
export interface WritableComputedOptions<T> {
|
|
15
15
|
get: ComputedGetter<T>;
|
|
16
16
|
set: ComputedSetter<T>;
|
|
17
17
|
}
|
|
18
|
-
declare function computed<T>(getter: ComputedGetter<T>): ComputedRef<T>;
|
|
19
|
-
declare function computed<T>(options: WritableComputedOptions<T>): WritableComputedRef<T>;
|
|
20
|
-
//#endregion
|
|
21
|
-
export { ComputedGetter, ComputedRef, ComputedSetter, WritableComputedOptions, WritableComputedRef, computed };
|
|
18
|
+
export declare function computed<T>(getter: ComputedGetter<T>): ComputedRef<T>;
|
|
19
|
+
export declare function computed<T>(options: WritableComputedOptions<T>): WritableComputedRef<T>;
|
|
20
|
+
//#endregion
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/reactivity/core.d.ts
|
|
2
|
-
type EffectScheduler = () => void;
|
|
3
|
-
type Dep = Set<ReactiveEffect>;
|
|
4
|
-
interface ReactiveEffect<T = any> {
|
|
2
|
+
export type EffectScheduler = () => void;
|
|
3
|
+
export type Dep = Set<ReactiveEffect>;
|
|
4
|
+
export interface ReactiveEffect<T = any> {
|
|
5
5
|
(): T;
|
|
6
6
|
deps: Dep[];
|
|
7
7
|
scheduler?: EffectScheduler;
|
|
@@ -10,25 +10,24 @@ interface ReactiveEffect<T = any> {
|
|
|
10
10
|
_fn: () => T;
|
|
11
11
|
onStop?: () => void;
|
|
12
12
|
}
|
|
13
|
-
declare function startBatch(): void;
|
|
14
|
-
declare function endBatch(): void;
|
|
15
|
-
declare function batch<T>(fn: () => T): T;
|
|
16
|
-
declare function stop(runner: ReactiveEffect): void;
|
|
17
|
-
interface EffectScope {
|
|
13
|
+
export declare function startBatch(): void;
|
|
14
|
+
export declare function endBatch(): void;
|
|
15
|
+
export declare function batch<T>(fn: () => T): T;
|
|
16
|
+
export declare function stop(runner: ReactiveEffect): void;
|
|
17
|
+
export interface EffectScope {
|
|
18
18
|
active: boolean;
|
|
19
19
|
effects: ReactiveEffect[];
|
|
20
20
|
cleanups: (() => void)[];
|
|
21
21
|
run: <T>(fn: () => T) => T | undefined;
|
|
22
22
|
stop: () => void;
|
|
23
23
|
}
|
|
24
|
-
declare function effectScope(detached?: boolean): EffectScope;
|
|
25
|
-
declare function getCurrentScope(): EffectScope | undefined;
|
|
26
|
-
declare function onScopeDispose(fn: () => void): void;
|
|
27
|
-
interface EffectOptions {
|
|
24
|
+
export declare function effectScope(detached?: boolean): EffectScope;
|
|
25
|
+
export declare function getCurrentScope(): EffectScope | undefined;
|
|
26
|
+
export declare function onScopeDispose(fn: () => void): void;
|
|
27
|
+
export interface EffectOptions {
|
|
28
28
|
scheduler?: EffectScheduler;
|
|
29
29
|
lazy?: boolean;
|
|
30
30
|
onStop?: () => void;
|
|
31
31
|
}
|
|
32
|
-
declare function effect<T = any>(fn: () => T, options?: EffectOptions): ReactiveEffect<T>;
|
|
33
|
-
//#endregion
|
|
34
|
-
export { Dep, EffectOptions, EffectScheduler, EffectScope, ReactiveEffect, batch, effect, effectScope, endBatch, getCurrentScope, onScopeDispose, startBatch, stop };
|
|
32
|
+
export declare function effect<T = any>(fn: () => T, options?: EffectOptions): ReactiveEffect<T>;
|
|
33
|
+
//#endregion
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/reactivity/reactive/mutation.d.ts
|
|
2
|
-
type MutationOp = 'set' | 'delete';
|
|
3
|
-
type MutationKind = 'property' | 'array';
|
|
4
|
-
interface MutationRecord {
|
|
2
|
+
export type MutationOp = 'set' | 'delete';
|
|
3
|
+
export type MutationKind = 'property' | 'array';
|
|
4
|
+
export interface MutationRecord {
|
|
5
5
|
root: object;
|
|
6
6
|
kind: MutationKind;
|
|
7
7
|
op: MutationOp;
|
|
@@ -15,7 +15,6 @@ interface MutationRecord {
|
|
|
15
15
|
fallbackTopKeys?: string[];
|
|
16
16
|
}
|
|
17
17
|
type MutationRecorder = (record: MutationRecord) => void;
|
|
18
|
-
declare function addMutationRecorder(recorder: MutationRecorder): void;
|
|
19
|
-
declare function removeMutationRecorder(recorder: MutationRecorder): void;
|
|
20
|
-
//#endregion
|
|
21
|
-
export { MutationKind, MutationOp, MutationRecord, addMutationRecorder, removeMutationRecorder };
|
|
18
|
+
export declare function addMutationRecorder(recorder: MutationRecorder): void;
|
|
19
|
+
export declare function removeMutationRecorder(recorder: MutationRecorder): void;
|
|
20
|
+
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/reactivity/reactive/patch.d.ts
|
|
2
|
-
interface PrelinkReactiveTreeOptions {
|
|
2
|
+
export interface PrelinkReactiveTreeOptions {
|
|
3
3
|
shouldIncludeTopKey?: (key: string) => boolean;
|
|
4
4
|
maxDepth?: number;
|
|
5
5
|
maxKeys?: number;
|
|
@@ -8,11 +8,10 @@ interface PrelinkReactiveTreeOptions {
|
|
|
8
8
|
* 预链接响应式树结构,供运行时差量路径追踪使用。
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
|
-
declare function prelinkReactiveTree(root: object, options?: PrelinkReactiveTreeOptions): void;
|
|
11
|
+
export declare function prelinkReactiveTree(root: object, options?: PrelinkReactiveTreeOptions): void;
|
|
12
12
|
/**
|
|
13
13
|
* 让 effect 订阅整个对象的“版本号”,无需深度遍历即可对任何字段变化做出响应。
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
|
-
declare function touchReactive(target: object): void;
|
|
17
|
-
//#endregion
|
|
18
|
-
export { PrelinkReactiveTreeOptions, prelinkReactiveTree, touchReactive };
|
|
16
|
+
export declare function touchReactive(target: object): void;
|
|
17
|
+
//#endregion
|
|
@@ -13,10 +13,9 @@
|
|
|
13
13
|
* state.nested = { count: 1 } // 会触发 effect(顶层属性变更)
|
|
14
14
|
* ```
|
|
15
15
|
*/
|
|
16
|
-
declare function shallowReactive<T extends object>(target: T): T;
|
|
16
|
+
export declare function shallowReactive<T extends object>(target: T): T;
|
|
17
17
|
/**
|
|
18
18
|
* 判断一个值是否为 shallowReactive 创建的浅层响应式对象
|
|
19
19
|
*/
|
|
20
|
-
declare function isShallowReactive(value: unknown): boolean;
|
|
21
|
-
//#endregion
|
|
22
|
-
export { isShallowReactive, shallowReactive };
|
|
20
|
+
export declare function isShallowReactive(value: unknown): boolean;
|
|
21
|
+
//#endregion
|
|
@@ -7,9 +7,9 @@ import { toRaw } from "./reactive/shared.mjs";
|
|
|
7
7
|
* 读取响应式版本号(框架内部调试能力)。
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
|
-
declare function getReactiveVersion(target: object): number;
|
|
11
|
-
declare function reactive<T extends object>(target: T): T;
|
|
12
|
-
declare function isReactive(value: unknown): boolean;
|
|
10
|
+
export declare function getReactiveVersion(target: object): number;
|
|
11
|
+
export declare function reactive<T extends object>(target: T): T;
|
|
12
|
+
export declare function isReactive(value: unknown): boolean;
|
|
13
13
|
/**
|
|
14
14
|
* 标记对象为“原始”状态,后续不会被转换为响应式,返回原对象本身。
|
|
15
15
|
*
|
|
@@ -29,13 +29,13 @@ declare function isReactive(value: unknown): boolean;
|
|
|
29
29
|
* state.foo // 不是响应式对象
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
-
declare function markRaw<T extends object>(value: T): T;
|
|
32
|
+
export declare function markRaw<T extends object>(value: T): T;
|
|
33
33
|
/**
|
|
34
34
|
* 判断某个值是否被标记为原始(即不应转换为响应式)。
|
|
35
35
|
*
|
|
36
36
|
* @param value 待检测的值
|
|
37
37
|
* @returns 若含有跳过标记则返回 true
|
|
38
38
|
*/
|
|
39
|
-
declare function isRaw(value: unknown): boolean;
|
|
39
|
+
export declare function isRaw(value: unknown): boolean;
|
|
40
40
|
//#endregion
|
|
41
|
-
export { type MutationKind, type MutationOp, type MutationRecord, type PrelinkReactiveTreeOptions, addMutationRecorder,
|
|
41
|
+
export { type MutationKind, type MutationOp, type MutationRecord, type PrelinkReactiveTreeOptions, addMutationRecorder, isShallowReactive, prelinkReactiveTree, removeMutationRecorder, shallowReactive, toRaw, touchReactive };
|
|
@@ -5,23 +5,22 @@ import { Ref } from "./ref.mjs";
|
|
|
5
5
|
* 选择浅层而非深层递归,是为了在小程序环境中保持实现和运行时开销最小,
|
|
6
6
|
* 仅阻止直接属性写入/删除,嵌套对象仍按原样透传。
|
|
7
7
|
*/
|
|
8
|
-
declare function readonly<T extends object>(target: T): T;
|
|
9
|
-
declare function readonly<T>(target: Ref<T>): Readonly<Ref<T>>;
|
|
8
|
+
export declare function readonly<T extends object>(target: T): T;
|
|
9
|
+
export declare function readonly<T>(target: Ref<T>): Readonly<Ref<T>>;
|
|
10
10
|
/**
|
|
11
11
|
* 与 Vue 3 的 `shallowReadonly()` 对齐。
|
|
12
12
|
*
|
|
13
13
|
* 当前 wevu 的只读语义本身就是浅层只读,因此这里直接复用同一套实现,
|
|
14
14
|
* 让依赖 Vue 兼容 API 的代码可以无缝迁移。
|
|
15
15
|
*/
|
|
16
|
-
declare function shallowReadonly<T extends object>(target: T): Readonly<T>;
|
|
17
|
-
declare function shallowReadonly<T>(target: Ref<T>): Readonly<Ref<T>>;
|
|
16
|
+
export declare function shallowReadonly<T extends object>(target: T): Readonly<T>;
|
|
17
|
+
export declare function shallowReadonly<T>(target: Ref<T>): Readonly<Ref<T>>;
|
|
18
18
|
/**
|
|
19
19
|
* 判断值是否为只读代理或只读 ref 包装。
|
|
20
20
|
*/
|
|
21
|
-
declare function isReadonly(value: unknown): boolean;
|
|
21
|
+
export declare function isReadonly(value: unknown): boolean;
|
|
22
22
|
/**
|
|
23
23
|
* 判断值是否为响应式代理或只读代理。
|
|
24
24
|
*/
|
|
25
|
-
declare function isProxy(value: unknown): boolean;
|
|
26
|
-
//#endregion
|
|
27
|
-
export { isProxy, isReadonly, readonly, shallowReadonly };
|
|
25
|
+
export declare function isProxy(value: unknown): boolean;
|
|
26
|
+
//#endregion
|