annil 1.7.8 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/src/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.ts +1 -1
- package/src/api/DefineComponent/normalizeOptions/customEventsHandle.ts +23 -3
- package/src/api/DefineComponent/normalizeOptions/index.ts +5 -2
- package/src/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.ts +2 -1
- package/src/api/RootComponent/Computed/test/error.test.ts +13 -0
- package/src/api/RootComponent/CustomEvents/CustomEventConstraint.ts +22 -0
- package/src/api/RootComponent/CustomEvents/GetCustomEventDoc.ts +4 -2
- package/src/behaviors/BbeforeCreated.ts +1 -1
- package/src/behaviors/BthrottleDebounce.ts +28 -0
- package/src/index.ts +2 -0
- package/src/utils/_utils.ts +8 -0
- package/src/utils/debounce.ts +20 -0
- package/src/utils/deepEqual.ts +19 -65
- package/src/utils/throttle.ts +23 -0
- package/dist/api/DefineComponent/NameOrPage/NameOrPathOption.d.ts +0 -16
- package/dist/api/DefineComponent/NameOrPage/NameOrPathOption.js +0 -2
- package/dist/api/DefineComponent/NameOrPage/NameOrPathOption.js.map +0 -1
- package/dist/api/DefineComponent/ReturnType/ComponentType.d.ts +0 -18
- package/dist/api/DefineComponent/ReturnType/ComponentType.js +0 -2
- package/dist/api/DefineComponent/ReturnType/ComponentType.js.map +0 -1
- package/dist/api/DefineComponent/ReturnType/CreateComponentDoc.d.ts +0 -19
- package/dist/api/DefineComponent/ReturnType/CreateComponentDoc.js +0 -2
- package/dist/api/DefineComponent/ReturnType/CreateComponentDoc.js.map +0 -1
- package/dist/api/DefineComponent/ReturnType/CreatePageDoc.d.ts +0 -8
- package/dist/api/DefineComponent/ReturnType/CreatePageDoc.js +0 -2
- package/dist/api/DefineComponent/ReturnType/CreatePageDoc.js.map +0 -1
- package/dist/api/DefineComponent/ReturnType/GetCustomEventDocOfSubDoc.d.ts +0 -15
- package/dist/api/DefineComponent/ReturnType/GetCustomEventDocOfSubDoc.js +0 -2
- package/dist/api/DefineComponent/ReturnType/GetCustomEventDocOfSubDoc.js.map +0 -1
- package/dist/api/DefineComponent/ReturnType/PageDoc.d.ts +0 -17
- package/dist/api/DefineComponent/ReturnType/PageDoc.js +0 -2
- package/dist/api/DefineComponent/ReturnType/PageDoc.js.map +0 -1
- package/dist/api/DefineComponent/RootComponent/RootComponentOption.d.ts +0 -10
- package/dist/api/DefineComponent/RootComponent/RootComponentOption.js +0 -2
- package/dist/api/DefineComponent/RootComponent/RootComponentOption.js.map +0 -1
- package/dist/api/DefineComponent/SubComponents/SubComponentsOption.d.ts +0 -10
- package/dist/api/DefineComponent/SubComponents/SubComponentsOption.js +0 -2
- package/dist/api/DefineComponent/SubComponents/SubComponentsOption.js.map +0 -1
- package/dist/api/DefineComponent/index.d.ts +0 -23
- package/dist/api/DefineComponent/index.js +0 -11
- package/dist/api/DefineComponent/index.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.d.ts +0 -6
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.js +0 -34
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/computedUpdater.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.d.ts +0 -5
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.js +0 -40
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/data-tracer.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.js +0 -28
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/dependencesOptimize.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.d.ts +0 -7
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.js +0 -30
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPathsValue.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.d.ts +0 -2
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.js +0 -45
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/getPropertiesValue.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/index.d.ts +0 -2
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/index.js +0 -60
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/index.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.d.ts +0 -21
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.js +0 -57
- package/dist/api/DefineComponent/normalizeOptions/computedWatchHandle/initComputedAndGetCache.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.d.ts +0 -6
- package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.js +0 -23
- package/dist/api/DefineComponent/normalizeOptions/customEventsHandle.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.d.ts +0 -6
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.js +0 -16
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.d.ts +0 -5
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.js +0 -17
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/isPageCheck.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.d.ts +0 -7
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.js +0 -20
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/loadReceivedDataHandle.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.d.ts +0 -10
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.js +0 -26
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/onLoadReceivedDataHandle.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/index.d.ts +0 -51
- package/dist/api/DefineComponent/normalizeOptions/index.js +0 -77
- package/dist/api/DefineComponent/normalizeOptions/index.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/initStore/index.d.ts +0 -2
- package/dist/api/DefineComponent/normalizeOptions/initStore/index.js +0 -14
- package/dist/api/DefineComponent/normalizeOptions/initStore/index.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/injectInfoHandler.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/injectInfoHandler.js +0 -43
- package/dist/api/DefineComponent/normalizeOptions/injectInfoHandler.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.d.ts +0 -5
- package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js +0 -24
- package/dist/api/DefineComponent/normalizeOptions/internalFieldProtection.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.d.ts +0 -6
- package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.js +0 -24
- package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.d.ts +0 -9
- package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.js +0 -18
- package/dist/api/DefineComponent/normalizeOptions/rootComponentOptionHandle.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.d.ts +0 -7
- package/dist/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.js +0 -17
- package/dist/api/DefineComponent/normalizeOptions/sameFuncFieldsCollect.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.d.ts +0 -5
- package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.js +0 -34
- package/dist/api/DefineComponent/normalizeOptions/sameFuncOptionsHandle.js.map +0 -1
- package/dist/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.d.ts +0 -3
- package/dist/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.js +0 -11
- package/dist/api/DefineComponent/normalizeOptions/subComponentsOptionHandle.js.map +0 -1
- package/dist/api/InstanceInject/instanceConfig.d.ts +0 -31
- package/dist/api/InstanceInject/instanceConfig.js +0 -17
- package/dist/api/InstanceInject/instanceConfig.js.map +0 -1
- package/dist/api/RootComponent/Computed/ComputedConstraint.d.ts +0 -4
- package/dist/api/RootComponent/Computed/ComputedConstraint.js +0 -2
- package/dist/api/RootComponent/Computed/ComputedConstraint.js.map +0 -1
- package/dist/api/RootComponent/Computed/ComputedOption.d.ts +0 -28
- package/dist/api/RootComponent/Computed/ComputedOption.js +0 -2
- package/dist/api/RootComponent/Computed/ComputedOption.js.map +0 -1
- package/dist/api/RootComponent/Computed/GetComputedDoc.d.ts +0 -9
- package/dist/api/RootComponent/Computed/GetComputedDoc.js +0 -2
- package/dist/api/RootComponent/Computed/GetComputedDoc.js.map +0 -1
- package/dist/api/RootComponent/CustomEvents/CustomEventConstraint.d.ts +0 -39
- package/dist/api/RootComponent/CustomEvents/CustomEventConstraint.js +0 -2
- package/dist/api/RootComponent/CustomEvents/CustomEventConstraint.js.map +0 -1
- package/dist/api/RootComponent/CustomEvents/CustomEventsDoc.d.ts +0 -5
- package/dist/api/RootComponent/CustomEvents/CustomEventsDoc.js +0 -2
- package/dist/api/RootComponent/CustomEvents/CustomEventsDoc.js.map +0 -1
- package/dist/api/RootComponent/CustomEvents/CustomEventsOption.d.ts +0 -34
- package/dist/api/RootComponent/CustomEvents/CustomEventsOption.js +0 -2
- package/dist/api/RootComponent/CustomEvents/CustomEventsOption.js.map +0 -1
- package/dist/api/RootComponent/CustomEvents/CustomEventsTag.d.ts +0 -11
- package/dist/api/RootComponent/CustomEvents/CustomEventsTag.js +0 -2
- package/dist/api/RootComponent/CustomEvents/CustomEventsTag.js.map +0 -1
- package/dist/api/RootComponent/CustomEvents/GetCustomEventDoc.d.ts +0 -22
- package/dist/api/RootComponent/CustomEvents/GetCustomEventDoc.js +0 -2
- package/dist/api/RootComponent/CustomEvents/GetCustomEventDoc.js.map +0 -1
- package/dist/api/RootComponent/Data/DataConstraint.d.ts +0 -1
- package/dist/api/RootComponent/Data/DataConstraint.js +0 -2
- package/dist/api/RootComponent/Data/DataConstraint.js.map +0 -1
- package/dist/api/RootComponent/Data/DataOption.d.ts +0 -18
- package/dist/api/RootComponent/Data/DataOption.js +0 -2
- package/dist/api/RootComponent/Data/DataOption.js.map +0 -1
- package/dist/api/RootComponent/Events/EventsConstraint.d.ts +0 -20
- package/dist/api/RootComponent/Events/EventsConstraint.js +0 -2
- package/dist/api/RootComponent/Events/EventsConstraint.js.map +0 -1
- package/dist/api/RootComponent/Events/EventsOption.d.ts +0 -55
- package/dist/api/RootComponent/Events/EventsOption.js +0 -2
- package/dist/api/RootComponent/Events/EventsOption.js.map +0 -1
- package/dist/api/RootComponent/Instance/CustomEventMethods.d.ts +0 -5
- package/dist/api/RootComponent/Instance/CustomEventMethods.js +0 -2
- package/dist/api/RootComponent/Instance/CustomEventMethods.js.map +0 -1
- package/dist/api/RootComponent/Instance/CustomSetData.d.ts +0 -13
- package/dist/api/RootComponent/Instance/CustomSetData.js +0 -2
- package/dist/api/RootComponent/Instance/CustomSetData.js.map +0 -1
- package/dist/api/RootComponent/Instance/RootComponentInstance.d.ts +0 -27
- package/dist/api/RootComponent/Instance/RootComponentInstance.js +0 -2
- package/dist/api/RootComponent/Instance/RootComponentInstance.js.map +0 -1
- package/dist/api/RootComponent/IsPage/IsPageOption.d.ts +0 -6
- package/dist/api/RootComponent/IsPage/IsPageOption.js +0 -2
- package/dist/api/RootComponent/IsPage/IsPageOption.js.map +0 -1
- package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.d.ts +0 -9
- package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.js +0 -2
- package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.js.map +0 -1
- package/dist/api/RootComponent/Lifetimes/LifetimesOption.d.ts +0 -30
- package/dist/api/RootComponent/Lifetimes/LifetimesOption.js +0 -2
- package/dist/api/RootComponent/Lifetimes/LifetimesOption.js.map +0 -1
- package/dist/api/RootComponent/Methods/MethodsConstraint.d.ts +0 -2
- package/dist/api/RootComponent/Methods/MethodsConstraint.js +0 -2
- package/dist/api/RootComponent/Methods/MethodsConstraint.js.map +0 -1
- package/dist/api/RootComponent/Methods/MethodsOption.d.ts +0 -8
- package/dist/api/RootComponent/Methods/MethodsOption.js +0 -2
- package/dist/api/RootComponent/Methods/MethodsOption.js.map +0 -1
- package/dist/api/RootComponent/Observers/ObserversOption.d.ts +0 -23
- package/dist/api/RootComponent/Observers/ObserversOption.js +0 -2
- package/dist/api/RootComponent/Observers/ObserversOption.js.map +0 -1
- package/dist/api/RootComponent/PageLifetimes/PageLifetimesOption.d.ts +0 -25
- package/dist/api/RootComponent/PageLifetimes/PageLifetimesOption.js +0 -2
- package/dist/api/RootComponent/PageLifetimes/PageLifetimesOption.js.map +0 -1
- package/dist/api/RootComponent/Properties/GetOptionalDoc.d.ts +0 -10
- package/dist/api/RootComponent/Properties/GetOptionalDoc.js +0 -2
- package/dist/api/RootComponent/Properties/GetOptionalDoc.js.map +0 -1
- package/dist/api/RootComponent/Properties/GetPropertiesDoc.d.ts +0 -12
- package/dist/api/RootComponent/Properties/GetPropertiesDoc.js +0 -2
- package/dist/api/RootComponent/Properties/GetPropertiesDoc.js.map +0 -1
- package/dist/api/RootComponent/Properties/GetRequiredDoc.d.ts +0 -11
- package/dist/api/RootComponent/Properties/GetRequiredDoc.js +0 -2
- package/dist/api/RootComponent/Properties/GetRequiredDoc.js.map +0 -1
- package/dist/api/RootComponent/Properties/PropertiesConstraint.d.ts +0 -32
- package/dist/api/RootComponent/Properties/PropertiesConstraint.js +0 -2
- package/dist/api/RootComponent/Properties/PropertiesConstraint.js.map +0 -1
- package/dist/api/RootComponent/Properties/PropertiesOption.d.ts +0 -20
- package/dist/api/RootComponent/Properties/PropertiesOption.js +0 -2
- package/dist/api/RootComponent/Properties/PropertiesOption.js.map +0 -1
- package/dist/api/RootComponent/Properties/PropertiesValueValidator.d.ts +0 -15
- package/dist/api/RootComponent/Properties/PropertiesValueValidator.js +0 -2
- package/dist/api/RootComponent/Properties/PropertiesValueValidator.js.map +0 -1
- package/dist/api/RootComponent/RootComponentType.d.ts +0 -42
- package/dist/api/RootComponent/RootComponentType.js +0 -2
- package/dist/api/RootComponent/RootComponentType.js.map +0 -1
- package/dist/api/RootComponent/Store/GeTStoreDoc.d.ts +0 -4
- package/dist/api/RootComponent/Store/GeTStoreDoc.js +0 -2
- package/dist/api/RootComponent/Store/GeTStoreDoc.js.map +0 -1
- package/dist/api/RootComponent/Store/StoreConstraint.d.ts +0 -1
- package/dist/api/RootComponent/Store/StoreConstraint.js +0 -2
- package/dist/api/RootComponent/Store/StoreConstraint.js.map +0 -1
- package/dist/api/RootComponent/Store/StoreOption.d.ts +0 -17
- package/dist/api/RootComponent/Store/StoreOption.js +0 -2
- package/dist/api/RootComponent/Store/StoreOption.js.map +0 -1
- package/dist/api/RootComponent/Watch/WatchOption.d.ts +0 -23
- package/dist/api/RootComponent/Watch/WatchOption.js +0 -2
- package/dist/api/RootComponent/Watch/WatchOption.js.map +0 -1
- package/dist/api/RootComponent/index.d.ts +0 -71
- package/dist/api/RootComponent/index.js +0 -5
- package/dist/api/RootComponent/index.js.map +0 -1
- package/dist/api/SubComponent/SubComponentType.d.ts +0 -17
- package/dist/api/SubComponent/SubComponentType.js +0 -2
- package/dist/api/SubComponent/SubComponentType.js.map +0 -1
- package/dist/api/SubComponent/SubComputed/GetSubComputedDoc.d.ts +0 -3
- package/dist/api/SubComponent/SubComputed/GetSubComputedDoc.js +0 -2
- package/dist/api/SubComponent/SubComputed/GetSubComputedDoc.js.map +0 -1
- package/dist/api/SubComponent/SubComputed/SubComputedConstraint.d.ts +0 -3
- package/dist/api/SubComponent/SubComputed/SubComputedConstraint.js +0 -2
- package/dist/api/SubComponent/SubComputed/SubComputedConstraint.js.map +0 -1
- package/dist/api/SubComponent/SubComputed/SubComputedOption.d.ts +0 -4
- package/dist/api/SubComponent/SubComputed/SubComputedOption.js +0 -2
- package/dist/api/SubComponent/SubComputed/SubComputedOption.js.map +0 -1
- package/dist/api/SubComponent/SubData/SubDataConstraint.d.ts +0 -7
- package/dist/api/SubComponent/SubData/SubDataConstraint.js +0 -2
- package/dist/api/SubComponent/SubData/SubDataConstraint.js.map +0 -1
- package/dist/api/SubComponent/SubData/SubDataOption.d.ts +0 -8
- package/dist/api/SubComponent/SubData/SubDataOption.js +0 -2
- package/dist/api/SubComponent/SubData/SubDataOption.js.map +0 -1
- package/dist/api/SubComponent/SubEvents/SubEventsConstraint.d.ts +0 -11
- package/dist/api/SubComponent/SubEvents/SubEventsConstraint.js +0 -2
- package/dist/api/SubComponent/SubEvents/SubEventsConstraint.js.map +0 -1
- package/dist/api/SubComponent/SubEvents/SubEventsOptions.d.ts +0 -9
- package/dist/api/SubComponent/SubEvents/SubEventsOptions.js +0 -2
- package/dist/api/SubComponent/SubEvents/SubEventsOptions.js.map +0 -1
- package/dist/api/SubComponent/SubInherit/SubInheritConstraint.d.ts +0 -13
- package/dist/api/SubComponent/SubInherit/SubInheritConstraint.js +0 -2
- package/dist/api/SubComponent/SubInherit/SubInheritConstraint.js.map +0 -1
- package/dist/api/SubComponent/SubInherit/SubInheritOption.d.ts +0 -9
- package/dist/api/SubComponent/SubInherit/SubInheritOption.js +0 -2
- package/dist/api/SubComponent/SubInherit/SubInheritOption.js.map +0 -1
- package/dist/api/SubComponent/SubInstance/SubInstance.d.ts +0 -2
- package/dist/api/SubComponent/SubInstance/SubInstance.js +0 -2
- package/dist/api/SubComponent/SubInstance/SubInstance.js.map +0 -1
- package/dist/api/SubComponent/SubLifetimes/SubLifetimesOption.d.ts +0 -2
- package/dist/api/SubComponent/SubLifetimes/SubLifetimesOption.js +0 -2
- package/dist/api/SubComponent/SubLifetimes/SubLifetimesOption.js.map +0 -1
- package/dist/api/SubComponent/SubMethods/SubMethodsConstraint.d.ts +0 -2
- package/dist/api/SubComponent/SubMethods/SubMethodsConstraint.js +0 -2
- package/dist/api/SubComponent/SubMethods/SubMethodsConstraint.js.map +0 -1
- package/dist/api/SubComponent/SubMethods/SubMethodsOption.d.ts +0 -9
- package/dist/api/SubComponent/SubMethods/SubMethodsOption.js +0 -2
- package/dist/api/SubComponent/SubMethods/SubMethodsOption.js.map +0 -1
- package/dist/api/SubComponent/SubObservers/SubObserversOption.d.ts +0 -2
- package/dist/api/SubComponent/SubObservers/SubObserversOption.js +0 -2
- package/dist/api/SubComponent/SubObservers/SubObserversOption.js.map +0 -1
- package/dist/api/SubComponent/SubPageLifetimes/SubPageLifetimesOption.d.ts +0 -2
- package/dist/api/SubComponent/SubPageLifetimes/SubPageLifetimesOption.js +0 -2
- package/dist/api/SubComponent/SubPageLifetimes/SubPageLifetimesOption.js.map +0 -1
- package/dist/api/SubComponent/SubReturnType/CreateSubComponentDoc.d.ts +0 -12
- package/dist/api/SubComponent/SubReturnType/CreateSubComponentDoc.js +0 -2
- package/dist/api/SubComponent/SubReturnType/CreateSubComponentDoc.js.map +0 -1
- package/dist/api/SubComponent/SubStore/SubStoreConstraint.d.ts +0 -7
- package/dist/api/SubComponent/SubStore/SubStoreConstraint.js +0 -2
- package/dist/api/SubComponent/SubStore/SubStoreConstraint.js.map +0 -1
- package/dist/api/SubComponent/SubStore/SubStoreOption.d.ts +0 -18
- package/dist/api/SubComponent/SubStore/SubStoreOption.js +0 -2
- package/dist/api/SubComponent/SubStore/SubStoreOption.js.map +0 -1
- package/dist/api/SubComponent/SubWatch/SubWatchOption.d.ts +0 -2
- package/dist/api/SubComponent/SubWatch/SubWatchOption.js +0 -2
- package/dist/api/SubComponent/SubWatch/SubWatchOption.js.map +0 -1
- package/dist/api/SubComponent/index.d.ts +0 -63
- package/dist/api/SubComponent/index.js +0 -9
- package/dist/api/SubComponent/index.js.map +0 -1
- package/dist/api/navigateTo.d.ts +0 -20
- package/dist/api/navigateTo.js +0 -27
- package/dist/api/navigateTo.js.map +0 -1
- package/dist/behaviors/BStore.d.ts +0 -5
- package/dist/behaviors/BStore.js +0 -51
- package/dist/behaviors/BStore.js.map +0 -1
- package/dist/behaviors/BbeforeCreated.d.ts +0 -4
- package/dist/behaviors/BbeforeCreated.js +0 -14
- package/dist/behaviors/BbeforeCreated.js.map +0 -1
- package/dist/index.d.ts +0 -13
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/thirdLib/index.d.ts +0 -3
- package/dist/thirdLib/index.js +0 -2
- package/dist/thirdLib/index.js.map +0 -1
- package/dist/thirdLib/vant/Button.d.ts +0 -21
- package/dist/thirdLib/vant/Button.js +0 -2
- package/dist/thirdLib/vant/Button.js.map +0 -1
- package/dist/thirdLib/vant/NoticeBar.d.ts +0 -23
- package/dist/thirdLib/vant/NoticeBar.js +0 -2
- package/dist/thirdLib/vant/NoticeBar.js.map +0 -1
- package/dist/thirdLib/vant/Popup.d.ts +0 -65
- package/dist/thirdLib/vant/Popup.js +0 -2
- package/dist/thirdLib/vant/Popup.js.map +0 -1
- package/dist/thirdLib/vant/index.d.ts +0 -3
- package/dist/thirdLib/vant/index.js +0 -2
- package/dist/thirdLib/vant/index.js.map +0 -1
- package/dist/thirdLib/wm/Textarea.d.ts +0 -28
- package/dist/thirdLib/wm/Textarea.js +0 -2
- package/dist/thirdLib/wm/Textarea.js.map +0 -1
- package/dist/thirdLib/wm/baseEvents.d.ts +0 -53
- package/dist/thirdLib/wm/baseEvents.js +0 -2
- package/dist/thirdLib/wm/baseEvents.js.map +0 -1
- package/dist/thirdLib/wm/index.d.ts +0 -4
- package/dist/thirdLib/wm/index.js +0 -2
- package/dist/thirdLib/wm/index.js.map +0 -1
- package/dist/thirdLib/wm/scrollView.d.ts +0 -58
- package/dist/thirdLib/wm/scrollView.js +0 -8
- package/dist/thirdLib/wm/scrollView.js.map +0 -1
- package/dist/thirdLib/wm/swiper.d.ts +0 -109
- package/dist/thirdLib/wm/swiper.js +0 -2
- package/dist/thirdLib/wm/swiper.js.map +0 -1
- package/dist/thirdLib/wm/view.d.ts +0 -27
- package/dist/thirdLib/wm/view.js +0 -2
- package/dist/thirdLib/wm/view.js.map +0 -1
- package/dist/types/AddNullForObject.d.ts +0 -5
- package/dist/types/AddNullForObject.js +0 -2
- package/dist/types/AddNullForObject.js.map +0 -1
- package/dist/types/AddPrefix.d.ts +0 -10
- package/dist/types/AddPrefix.js +0 -2
- package/dist/types/AddPrefix.js.map +0 -1
- package/dist/types/Assign.d.ts +0 -1
- package/dist/types/Assign.js +0 -2
- package/dist/types/Assign.js.map +0 -1
- package/dist/types/ComputeObj.d.ts +0 -3
- package/dist/types/ComputeObj.js +0 -2
- package/dist/types/ComputeObj.js.map +0 -1
- package/dist/types/CreateComponentType.d.ts +0 -30
- package/dist/types/CreateComponentType.js +0 -2
- package/dist/types/CreateComponentType.js.map +0 -1
- package/dist/types/DetailedType.d.ts +0 -15
- package/dist/types/DetailedType.js +0 -2
- package/dist/types/DetailedType.js.map +0 -1
- package/dist/types/ExtendComponentType.d.ts +0 -34
- package/dist/types/ExtendComponentType.js +0 -6
- package/dist/types/ExtendComponentType.js.map +0 -1
- package/dist/types/GetComponentPrefix.d.ts +0 -7
- package/dist/types/GetComponentPrefix.js +0 -12
- package/dist/types/GetComponentPrefix.js.map +0 -1
- package/dist/types/InferDetailedType.d.ts +0 -5
- package/dist/types/InferDetailedType.js +0 -2
- package/dist/types/InferDetailedType.js.map +0 -1
- package/dist/types/InnerData.d.ts +0 -1
- package/dist/types/InnerData.js +0 -2
- package/dist/types/InnerData.js.map +0 -1
- package/dist/types/OfficialTypeAlias.d.ts +0 -33
- package/dist/types/OfficialTypeAlias.js +0 -32
- package/dist/types/OfficialTypeAlias.js.map +0 -1
- package/dist/types/RemoveInnerData.d.ts +0 -4
- package/dist/types/RemoveInnerData.js +0 -2
- package/dist/types/RemoveInnerData.js.map +0 -1
- package/dist/types/RemoveNullOfRequired.d.ts +0 -7
- package/dist/types/RemoveNullOfRequired.js +0 -2
- package/dist/types/RemoveNullOfRequired.js.map +0 -1
- package/dist/types/RemovePrefix.d.ts +0 -3
- package/dist/types/RemovePrefix.js +0 -2
- package/dist/types/RemovePrefix.js.map +0 -1
- package/dist/types/Replace.d.ts +0 -19
- package/dist/types/Replace.js +0 -2
- package/dist/types/Replace.js.map +0 -1
- package/dist/types/ReplacePrefix.d.ts +0 -16
- package/dist/types/ReplacePrefix.js +0 -11
- package/dist/types/ReplacePrefix.js.map +0 -1
- package/dist/types/RequiredKeys.d.ts +0 -7
- package/dist/types/RequiredKeys.js +0 -2
- package/dist/types/RequiredKeys.js.map +0 -1
- package/dist/types/TwoParamsEqual.d.ts +0 -2
- package/dist/types/TwoParamsEqual.js +0 -2
- package/dist/types/TwoParamsEqual.js.map +0 -1
- package/dist/types/UnionToComma.test.d.ts +0 -5
- package/dist/types/UnionToComma.test.js +0 -2
- package/dist/types/UnionToComma.test.js.map +0 -1
- package/dist/types/Validators.d.ts +0 -1
- package/dist/types/Validators.js +0 -9
- package/dist/types/Validators.js.map +0 -1
- package/dist/types/includes.d.ts +0 -1
- package/dist/types/includes.js +0 -2
- package/dist/types/includes.js.map +0 -1
- package/dist/utils/InnerMarker.d.ts +0 -3
- package/dist/utils/InnerMarker.js +0 -4
- package/dist/utils/InnerMarker.js.map +0 -1
- package/dist/utils/assertNonNullable.d.ts +0 -2
- package/dist/utils/assertNonNullable.js +0 -8
- package/dist/utils/assertNonNullable.js.map +0 -1
- package/dist/utils/deepClone.d.ts +0 -4
- package/dist/utils/deepClone.js +0 -17
- package/dist/utils/deepClone.js.map +0 -1
- package/dist/utils/deepEqual.d.ts +0 -7
- package/dist/utils/deepEqual.js +0 -69
- package/dist/utils/deepEqual.js.map +0 -1
- package/dist/utils/isEmptyObject.d.ts +0 -4
- package/dist/utils/isEmptyObject.js +0 -11
- package/dist/utils/isEmptyObject.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
* 解决DetailedType不接收接口类型的错误 ([ae8acbf](https://github.com/missannil/annil/commit/ae8acbfc2e62f99db565c448ad9253aa549e78bb))
|
|
6
6
|
|
|
7
|
+
## [1.8.0](https://github.com/missannil/annil/compare/v1.7.8...v1.8.0) (2024-09-06)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* customEvents字段增加debounce和throttle字段,配置后自定义函数变为节流或防抖函数 ([1599797](https://github.com/missannil/annil/commit/15997975291ecbf484dd22e50974a213ea5c9f35))
|
|
13
|
+
|
|
7
14
|
## [1.7.8](https://github.com/missannil/annil/compare/v1.7.7...v1.7.8) (2024-08-22)
|
|
8
15
|
|
|
9
16
|
|
package/package.json
CHANGED
|
@@ -14,7 +14,7 @@ export function computedUpdater(this: Instance, isUpdated = false): boolean {
|
|
|
14
14
|
// getPathsValue返回的是数组
|
|
15
15
|
const curVal = getPathsValue(this.data, dep.paths.join("."))[0];
|
|
16
16
|
|
|
17
|
-
//
|
|
17
|
+
// 检查依赖是否改变了
|
|
18
18
|
if (!deepEqual(curVal, dep.val)) {
|
|
19
19
|
changed = true;
|
|
20
20
|
|
|
@@ -4,7 +4,23 @@ import type {
|
|
|
4
4
|
FullCustomEvents,
|
|
5
5
|
} from "../../RootComponent/CustomEvents/CustomEventConstraint";
|
|
6
6
|
import type { Instance } from "../../RootComponent/Instance/RootComponentInstance";
|
|
7
|
-
import type { FinalOptionsOfComponent } from ".";
|
|
7
|
+
import type { FinalOptionsOfComponent, ThrottleDebounce } from ".";
|
|
8
|
+
function getThrottleDebounceConfig(
|
|
9
|
+
methodsName: string,
|
|
10
|
+
customEventOptions: FullCustomEvents,
|
|
11
|
+
__throttleDebounce__: ThrottleDebounce,
|
|
12
|
+
) {
|
|
13
|
+
const { debounce, throttle } = customEventOptions;
|
|
14
|
+
|
|
15
|
+
if (debounce) {
|
|
16
|
+
__throttleDebounce__.debounce ||= {};
|
|
17
|
+
__throttleDebounce__.debounce[methodsName] = debounce;
|
|
18
|
+
} else if (throttle) {
|
|
19
|
+
__throttleDebounce__.throttle ||= {};
|
|
20
|
+
__throttleDebounce__.throttle[methodsName] = throttle;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
8
24
|
// 类型守卫
|
|
9
25
|
function IsFullCustomEvents(
|
|
10
26
|
customEventOptions: CustomEvents,
|
|
@@ -15,16 +31,20 @@ function IsFullCustomEvents(
|
|
|
15
31
|
* 把customEvents字段配置变成函数放入到componentOptions.methods中
|
|
16
32
|
*/
|
|
17
33
|
export function customEventsHandle(
|
|
18
|
-
|
|
34
|
+
finalOptions: FinalOptionsOfComponent,
|
|
19
35
|
customEventsConfig: CustomEventConstraint,
|
|
20
36
|
) {
|
|
37
|
+
const methods = finalOptions.methods;
|
|
38
|
+
const data = finalOptions.data;
|
|
21
39
|
for (const key in customEventsConfig) {
|
|
22
40
|
const customEventOptions = customEventsConfig[key];
|
|
23
|
-
|
|
24
41
|
if (IsFullCustomEvents(customEventOptions)) {
|
|
25
42
|
methods[key] = function(this: Instance, detail: unknown) {
|
|
26
43
|
this.triggerEvent(key, detail, customEventOptions.options);
|
|
27
44
|
};
|
|
45
|
+
data.__throttleDebounce__ ||= {};
|
|
46
|
+
// 全配置允许设置防抖和节流,在这里保留配置到data.__throttleDebounce__中,以便后续使用
|
|
47
|
+
getThrottleDebounceConfig(key, customEventOptions, data.__throttleDebounce__);
|
|
28
48
|
} else {
|
|
29
49
|
methods[key] = function(this: Instance, detail: unknown) {
|
|
30
50
|
this.triggerEvent(key, detail);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Func } from "hry-types/src/Misc/_api";
|
|
2
2
|
import { BBeforeCreate } from "../../../behaviors/BbeforeCreated";
|
|
3
3
|
import { BStore } from "../../../behaviors/BStore";
|
|
4
|
+
import { BthrottleDebounce } from "../../../behaviors/BthrottleDebounce";
|
|
4
5
|
import { isEmptyObject } from "../../../utils/isEmptyObject";
|
|
5
6
|
import { instanceConfig } from "../../InstanceInject/instanceConfig";
|
|
6
7
|
import type { ComputedConstraint } from "../../RootComponent/Computed/ComputedConstraint";
|
|
@@ -25,12 +26,13 @@ import { sameFuncOptionsHandle } from "./sameFuncOptionsHandle";
|
|
|
25
26
|
import { subComponentsOptionHandle } from "./subComponentsOptionHandle";
|
|
26
27
|
|
|
27
28
|
export type WatchOldValue = Record<string, unknown[]>;
|
|
28
|
-
|
|
29
|
+
export type ThrottleDebounce = Partial<Record<"throttle" | "debounce", Record<string, number>>>;
|
|
29
30
|
export type OptionsInnerFields = {
|
|
30
31
|
data: {
|
|
31
32
|
__computedCache__?: ComputedCache;
|
|
32
33
|
__storeConfig__?: StoreConstraint;
|
|
33
34
|
__watchOldValue__?: WatchOldValue;
|
|
35
|
+
__throttleDebounce__?: ThrottleDebounce;
|
|
34
36
|
};
|
|
35
37
|
methods: {
|
|
36
38
|
disposer?: Record<string, Func>;
|
|
@@ -78,7 +80,7 @@ export function normalizeOptions(
|
|
|
78
80
|
data: {},
|
|
79
81
|
methods: {},
|
|
80
82
|
// 加入BStore,处理store字段的behavior
|
|
81
|
-
behaviors: [BStore],
|
|
83
|
+
behaviors: [BStore, BthrottleDebounce],
|
|
82
84
|
externalClasses: [],
|
|
83
85
|
pageLifetimes: {},
|
|
84
86
|
isPage: false,
|
|
@@ -134,6 +136,7 @@ export function normalizeOptions(
|
|
|
134
136
|
|
|
135
137
|
// 处理computed和watch配置
|
|
136
138
|
computedWatchHandle(finalOptionsForComponent);
|
|
139
|
+
// 在rootComponentOptionHandle中保留了防抖节流配置,这里处理后,删除data.__throttleDebounce__字段
|
|
137
140
|
|
|
138
141
|
// BBeforeCreate在最后面,让BeforeCreate生命周期运行在最终建立组件时。
|
|
139
142
|
finalOptionsForComponent.behaviors.push(BBeforeCreate);
|
|
@@ -15,7 +15,8 @@ export function rootComponentOptionHandle(
|
|
|
15
15
|
funcOptions: SameFuncOptions,
|
|
16
16
|
rootComponentOptions: RootComponentTrueOptions,
|
|
17
17
|
) {
|
|
18
|
-
|
|
18
|
+
// 自定义事件处理时,如果配置了防抖节流,则需要在data.__throttleDebounce__保留配置信息,以便后续使用
|
|
19
|
+
if (rootComponentOptions.customEvents) customEventsHandle(finalOptions, rootComponentOptions.customEvents);
|
|
19
20
|
|
|
20
21
|
if (rootComponentOptions.events) Object.assign(finalOptions.methods, rootComponentOptions.events);
|
|
21
22
|
|
|
@@ -35,3 +35,16 @@ RootComponent()({
|
|
|
35
35
|
},
|
|
36
36
|
},
|
|
37
37
|
});
|
|
38
|
+
// 3 、实例上不存在的字段应该报错
|
|
39
|
+
RootComponent()({
|
|
40
|
+
computed: {
|
|
41
|
+
str(): number {
|
|
42
|
+
// @ts-ignore 不存在的字段
|
|
43
|
+
return this.data.numd;
|
|
44
|
+
},
|
|
45
|
+
other(): string {
|
|
46
|
+
// @ts-ignore 不存在的字段
|
|
47
|
+
return this.func;
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
});
|
|
@@ -45,6 +45,28 @@ export type OptionsFieldsConfigOfCustomEvents =
|
|
|
45
45
|
export type FullCustomEvents = {
|
|
46
46
|
detail: ShortCustomeEvents;
|
|
47
47
|
options: OptionsFieldsConfigOfCustomEvents;
|
|
48
|
+
debounce?: never;
|
|
49
|
+
throttle?: never;
|
|
50
|
+
} | {
|
|
51
|
+
detail: ShortCustomeEvents;
|
|
52
|
+
options?: never;
|
|
53
|
+
debounce: number;
|
|
54
|
+
throttle?: never;
|
|
55
|
+
} | {
|
|
56
|
+
detail: ShortCustomeEvents;
|
|
57
|
+
options?: never;
|
|
58
|
+
debounce?: never;
|
|
59
|
+
throttle: number;
|
|
60
|
+
} | {
|
|
61
|
+
detail: ShortCustomeEvents;
|
|
62
|
+
options: OptionsFieldsConfigOfCustomEvents;
|
|
63
|
+
debounce?: never;
|
|
64
|
+
throttle: number;
|
|
65
|
+
} | {
|
|
66
|
+
detail: ShortCustomeEvents;
|
|
67
|
+
options: OptionsFieldsConfigOfCustomEvents;
|
|
68
|
+
debounce: number;
|
|
69
|
+
throttle?: never;
|
|
48
70
|
};
|
|
49
71
|
|
|
50
72
|
export type CustomEvents = FullCustomEvents | ShortCustomeEvents;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
1
2
|
import type { DetailedType } from "../../../types/DetailedType";
|
|
2
3
|
import type { InferDetailedType } from "../../../types/InferDetailedType";
|
|
3
4
|
import type {
|
|
@@ -16,7 +17,7 @@ export type GetShortCustomEventsDoc<T extends ShortCustomeEvents> = T extends De
|
|
|
16
17
|
|
|
17
18
|
export type GetFullCustomEventsDoc<T extends FullCustomEvents> =
|
|
18
19
|
| GetShortCustomEventsDoc<T["detail"]>
|
|
19
|
-
| AddTagForCustomEventsDoc<T["options"]
|
|
20
|
+
| IfExtends<unknown, T["options"], never, AddTagForCustomEventsDoc<T["options"] & {}>>;
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* 获取自定义事件的文档
|
|
@@ -40,6 +41,7 @@ export type GetCustomEventDoc<T extends CustomEventConstraint> =
|
|
|
40
41
|
| GetShortCustomEventsDoc<T[k]["detail"]>
|
|
41
42
|
// 为自定义事件模型加标记,方便识别
|
|
42
43
|
// @ts-ignore T[k] 一定为 FullCustomEvents 类型
|
|
43
|
-
| AddTagForCustomEventsDoc<T[k]["options"]>;
|
|
44
|
+
// | AddTagForCustomEventsDoc<T[k]["options"]>;
|
|
45
|
+
| IfExtends<unknown, T[k]["options"], never, AddTagForCustomEventsDoc<T[k]["options"] & {}>>;
|
|
44
46
|
}
|
|
45
47
|
;
|
|
@@ -8,7 +8,7 @@ export const BBeforeCreate = Behavior({
|
|
|
8
8
|
definitionFilter(
|
|
9
9
|
options: Omit<FinalOptionsOfComponent, "customEvents" | "store" | "events" | "computed">,
|
|
10
10
|
) {
|
|
11
|
-
// 触发beforeCreate生命周期函数
|
|
11
|
+
// 触发beforeCreate生命周期函数
|
|
12
12
|
const beforeCreateFunc = options.lifetimes.beforeCreate;
|
|
13
13
|
|
|
14
14
|
if (beforeCreateFunc) {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import type { Instance } from "../api/RootComponent/Instance/RootComponentInstance";
|
|
3
|
+
import { debounce } from "../utils/debounce";
|
|
4
|
+
import { throttle } from "../utils/throttle";
|
|
5
|
+
|
|
6
|
+
export const BthrottleDebounce = Behavior({
|
|
7
|
+
lifetimes: {
|
|
8
|
+
created(this: Instance) {
|
|
9
|
+
const __throttleDebounce__ = this.data.__throttleDebounce__;
|
|
10
|
+
if (!__throttleDebounce__) return;
|
|
11
|
+
const debounceConfig = __throttleDebounce__.debounce;
|
|
12
|
+
if (debounceConfig) {
|
|
13
|
+
for (const key in debounceConfig) {
|
|
14
|
+
const _this = this as any;
|
|
15
|
+
_this[key] = debounce(_this[key].bind(this), debounceConfig[key]);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const throttleConfig = __throttleDebounce__.throttle;
|
|
19
|
+
if (throttleConfig) {
|
|
20
|
+
for (const key in throttleConfig) {
|
|
21
|
+
const _this = this as any;
|
|
22
|
+
_this[key] = throttle(_this[key].bind(this), throttleConfig[key]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
delete this.data.__throttleDebounce__;
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
});
|
package/src/index.ts
CHANGED
|
@@ -7,6 +7,8 @@ import type { CreateComponentType } from "./types/CreateComponentType";
|
|
|
7
7
|
import type { DetailedType } from "./types/DetailedType";
|
|
8
8
|
import type { ExtendComponentType } from "./types/ExtendComponentType";
|
|
9
9
|
import type { ParamsEqual } from "./types/TwoParamsEqual";
|
|
10
|
+
export * from "./utils/_utils";
|
|
11
|
+
|
|
10
12
|
export type {
|
|
11
13
|
Bubbles,
|
|
12
14
|
BubblesCapture,
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { assertNonNullable } from "./assertNonNullable";
|
|
2
|
+
import { debounce } from "./debounce";
|
|
3
|
+
import { deepClone } from "./deepClone";
|
|
4
|
+
import { deepEqual } from "./deepEqual";
|
|
5
|
+
import { isEmptyObject } from "./isEmptyObject";
|
|
6
|
+
import { throttle } from "./throttle";
|
|
7
|
+
|
|
8
|
+
export { assertNonNullable, debounce, deepClone, deepEqual, isEmptyObject, throttle };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 防抖函数
|
|
5
|
+
* 应用在输入框输入时,只有在输入完成并delay后,才会触发搜索
|
|
6
|
+
* @param func
|
|
7
|
+
* @param delay
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export function debounce<F extends (...args: any[]) => any>(func: F, delay: number): (...args: Parameters<F>) => void {
|
|
11
|
+
let timeoutId: any = null; // NodeJS.Timeout | null
|
|
12
|
+
|
|
13
|
+
return (...args: Parameters<F>): void => {
|
|
14
|
+
if (timeoutId) {
|
|
15
|
+
clearTimeout(timeoutId);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
timeoutId = setTimeout(() => func(...args), delay);
|
|
19
|
+
};
|
|
20
|
+
}
|
package/src/utils/deepEqual.ts
CHANGED
|
@@ -1,79 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
type PlainObject = Record<string, unknown>;
|
|
2
|
+
// 非null的对象类型
|
|
3
|
+
function isNonNullObject(value: unknown): boolean {
|
|
4
|
+
return value !== null && typeof value === "object";
|
|
3
5
|
}
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// 定义一个辅助函数,用于判断两个函数的代码是否相同
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
12
|
-
function isSameCode(a: Function, b: Function) {
|
|
13
|
-
// 去除空格比较函数字符串
|
|
14
|
-
return a.toString().split(" ").join("") === b.toString().split(" ").join("");
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// 定义一个辅助函数,用于判断两个日期的时间戳是否相同
|
|
18
|
-
function isSameTime(a: Date, b: Date) {
|
|
19
|
-
return a.getTime() === b.getTime();
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// 定义一个辅助函数,用于判断两个正则表达式的模式和标志是否相同
|
|
23
|
-
function isSamePattern(a: RegExp, b: RegExp) {
|
|
24
|
-
return a.source === b.source && a.flags === b.flags;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* 深度判断两个值是否相等,有一个值为非对象类型即使用Object.is判断。
|
|
29
|
-
* 不支持原型上的属性
|
|
30
|
-
* 两个函数使用toString()比较
|
|
31
|
-
* 支持Date,RegExp
|
|
32
|
-
*/
|
|
33
|
-
export function deepEqual(a: unknown, b: unknown) {
|
|
34
|
-
// 如果两个值是原始类型或null,直接用Object.is比较
|
|
35
|
-
if (a === null || b === null || typeof a !== "object" || typeof b !== "object") {
|
|
36
|
-
if (typeof a !== "function" || typeof b !== "function") {
|
|
37
|
-
return Object.is(a, b);
|
|
38
|
-
}
|
|
7
|
+
export function deepEqual(value1: unknown, value2: unknown): boolean {
|
|
8
|
+
// 2个非对象类型相等或同引用对象的情况。
|
|
9
|
+
if (Object.is(value1, value2)) {
|
|
10
|
+
return true;
|
|
39
11
|
}
|
|
40
|
-
//
|
|
41
|
-
if (!
|
|
12
|
+
// 有一个不是非空对象,返回false。
|
|
13
|
+
if (!isNonNullObject(value1) || !isNonNullObject(value2)) {
|
|
42
14
|
return false;
|
|
43
15
|
}
|
|
16
|
+
// 到此,2个都是对象类型。
|
|
17
|
+
const _value1 = value1 as PlainObject;
|
|
18
|
+
const _value2 = value2 as PlainObject;
|
|
19
|
+
const value1Keys = Object.keys(_value1);
|
|
20
|
+
const value2Keys = Object.keys(_value2);
|
|
44
21
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
48
|
-
return isSameCode(a, b as Function);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// 如果两个值是日期类型,再判断它们的时间戳是否相同
|
|
52
|
-
if (a instanceof Date) {
|
|
53
|
-
return isSameTime(a, b as Date);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// // 如果两个值是正则表达式类型,再判断它们的模式和标志是否相同
|
|
57
|
-
if (a instanceof RegExp) {
|
|
58
|
-
return isSamePattern(a, b as RegExp);
|
|
22
|
+
if (value1Keys.length !== value2Keys.length) {
|
|
23
|
+
return false;
|
|
59
24
|
}
|
|
60
25
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
const keysB = Object.keys(b);
|
|
65
|
-
|
|
66
|
-
for (const key of keysA) {
|
|
67
|
-
if (keysB.includes(key)) {
|
|
68
|
-
// @ts-ignore
|
|
69
|
-
if (!deepEqual(a[key], b[key])) {
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
} else {
|
|
26
|
+
for (const key of value1Keys) {
|
|
27
|
+
if (!value2Keys.includes(key) || !deepEqual(_value1[key], _value2[key])) {
|
|
73
28
|
return false;
|
|
74
29
|
}
|
|
75
30
|
}
|
|
76
31
|
|
|
77
|
-
// 如果以上的条件都满足,说明两个值是深度相等的
|
|
78
32
|
return true;
|
|
79
33
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
type Callback = (...args: any[]) => any;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 节流函数
|
|
6
|
+
* 规定时间内只触发第一次 例如点击按钮
|
|
7
|
+
* @param callback 回调函数
|
|
8
|
+
* @param interval 单位毫秒
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export function throttle<F extends Callback>(callback: F, interval = 200): (...args: Parameters<F>) => void {
|
|
12
|
+
let lastCall = 0;
|
|
13
|
+
|
|
14
|
+
return function(...args: Parameters<F>) {
|
|
15
|
+
const now = Date.now();
|
|
16
|
+
|
|
17
|
+
if (now - lastCall >= interval) {
|
|
18
|
+
lastCall = now;
|
|
19
|
+
|
|
20
|
+
callback(...args);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
|
-
import type { Includes } from "../../../types/includes";
|
|
3
|
-
/**
|
|
4
|
-
* 根据IsPage,生成name或path字段
|
|
5
|
-
*/
|
|
6
|
-
export type NameOrPathOption<TName extends string, TPath extends `/${string}`, IsPage extends boolean> = IsPage extends true ? {
|
|
7
|
-
/**
|
|
8
|
-
* 页面路径已'/'开头
|
|
9
|
-
*/
|
|
10
|
-
path: TPath;
|
|
11
|
-
} : {
|
|
12
|
-
/**
|
|
13
|
-
* 组件名不可为空串和含有下划线
|
|
14
|
-
*/
|
|
15
|
-
name: TName & IfExtends<TName, "", () => "⚠️组件名不可为空⚠️", IfExtends<Includes<TName, "_">, true, () => "⚠️组件名不可包含下划线 _ ⚠️", unknown>>;
|
|
16
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NameOrPathOption.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/NameOrPage/NameOrPathOption.ts"],"names":[],"mappings":""}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
type PrefixKeys = `${string}_${string}`;
|
|
2
|
-
type _ComponentType = {
|
|
3
|
-
properties?: Record<PrefixKeys, unknown>;
|
|
4
|
-
customEvents?: Record<PrefixKeys, unknown>;
|
|
5
|
-
};
|
|
6
|
-
type Error = "{ properties?: Record<PrefixKeys, any>; customEvents?: Record<PrefixKeys, any>;}";
|
|
7
|
-
type _Validator<O> = keyof O extends keyof _ComponentType ? keyof (O["properties"] & O["customEvents"]) extends PrefixKeys ? _ComponentType : Error : Error;
|
|
8
|
-
/**
|
|
9
|
-
* RootComponent Api 返回的类型
|
|
10
|
-
* ```ts
|
|
11
|
-
* RootComponentDoc = {
|
|
12
|
-
* properties?: Record<PrefixKeys, any>;
|
|
13
|
-
* customEvents?: Record<PrefixKeys, any>;
|
|
14
|
-
* };
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export type ComponentType<O extends _Validator<O> = _ComponentType> = O;
|
|
18
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentType.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/ReturnType/ComponentType.ts"],"names":[],"mappings":""}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
|
-
import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersection";
|
|
3
|
-
import type { AddNullForObject } from "../../../types/AddNullForObject";
|
|
4
|
-
import type { RootComponentType } from "../../RootComponent/RootComponentType";
|
|
5
|
-
import type { SubComponentType } from "../../SubComponent/SubComponentType";
|
|
6
|
-
import type { GetCustomEventDocOfSubDoc } from "./GetCustomEventDocOfSubDoc";
|
|
7
|
-
type GetStopKeys<O> = {
|
|
8
|
-
[k in keyof O]: k extends `${string}_${infer Key}_${string}_catch` ? Key : never;
|
|
9
|
-
}[keyof O];
|
|
10
|
-
export type CreateComponentDoc<TRootDoc extends RootComponentType, TName extends string, TSubComponentTuple extends SubComponentType[], AllPropertiesDoc extends unknown | object = TRootDoc["properties"], AllCustomEventsDoc extends unknown | object = TRootDoc["customEvents"] & GetCustomEventDocOfSubDoc<TSubComponentTuple[number]>, StopKeys extends string = GetStopKeys<TRootDoc["events"]>, FinalCustomEventDoc extends object = Omit<AllCustomEventsDoc, StopKeys>> = ComputeIntersection<IfExtends<unknown, AllPropertiesDoc, {}, {
|
|
11
|
-
properties: {
|
|
12
|
-
[k in keyof AllPropertiesDoc as `${TName}_${k & string}`]: AddNullForObject<AllPropertiesDoc[k]>;
|
|
13
|
-
};
|
|
14
|
-
}> & IfExtends<{}, FinalCustomEventDoc, {}, {
|
|
15
|
-
customEvents: {
|
|
16
|
-
[k in keyof FinalCustomEventDoc as `${TName}_${k & string}`]: FinalCustomEventDoc[k];
|
|
17
|
-
};
|
|
18
|
-
}>>;
|
|
19
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateComponentDoc.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/ReturnType/CreateComponentDoc.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
|
-
import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersection";
|
|
3
|
-
import type { RootComponentType } from "../../RootComponent/RootComponentType";
|
|
4
|
-
export type CreatePageDoc<TRootDoc extends RootComponentType, TPath extends string> = ComputeIntersection<{
|
|
5
|
-
path: TPath;
|
|
6
|
-
} & IfExtends<unknown, TRootDoc["properties"], unknown, {
|
|
7
|
-
properties: TRootDoc["properties"];
|
|
8
|
-
}>>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreatePageDoc.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/ReturnType/CreatePageDoc.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { IsNever, IsUnion } from "hry-types/src/Any/_api";
|
|
2
|
-
import type { UnionTwoObject } from "hry-types/src/Object/UnionTwoObject";
|
|
3
|
-
import type { Last } from "hry-types/src/Union/Last";
|
|
4
|
-
import type { SubComponentType } from "../../SubComponent/SubComponentType";
|
|
5
|
-
/**
|
|
6
|
-
* 因为子组件文档customEvents字段有可能相同(无前缀),所以使用UnionTwoObject
|
|
7
|
-
* 由于SubComponentDoc为空时返回never而不`{}`,所以`Exclude<U, TLast>`不影响结果。
|
|
8
|
-
*/
|
|
9
|
-
type _GetCustomEventDocOfSubDoc<U extends SubComponentType, Result = {}, TLast = Last<U>> = IsNever<U> extends true ? Result : _GetCustomEventDocOfSubDoc<Exclude<U, TLast>, UnionTwoObject<Result, TLast>>;
|
|
10
|
-
/**
|
|
11
|
-
* 获取子组件自定义事件文档
|
|
12
|
-
* @remarks U 中 相同字段类型联合,所以使用元组推导不如Last性能好。
|
|
13
|
-
*/
|
|
14
|
-
export type GetCustomEventDocOfSubDoc<UnionSubDoc extends SubComponentType> = IsUnion<UnionSubDoc> extends true ? _GetCustomEventDocOfSubDoc<UnionSubDoc> : UnionSubDoc;
|
|
15
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GetCustomEventDocOfSubDoc.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/ReturnType/GetCustomEventDocOfSubDoc.ts"],"names":[],"mappings":""}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
type _PageDoc = {
|
|
2
|
-
path: `/${string}`;
|
|
3
|
-
properties?: object;
|
|
4
|
-
};
|
|
5
|
-
type Error = "{ path: `/${string}`; properties?: object;}";
|
|
6
|
-
type _Validator<O> = keyof O extends keyof _PageDoc ? _PageDoc : Error;
|
|
7
|
-
/**
|
|
8
|
-
* 页面文档类型
|
|
9
|
-
* ```ts
|
|
10
|
-
* PageDoc = {
|
|
11
|
-
* path: `/${string}`;
|
|
12
|
-
* properties?: object;
|
|
13
|
-
* };
|
|
14
|
-
* ```
|
|
15
|
-
*/
|
|
16
|
-
export type PageDoc<O extends _Validator<O> = _PageDoc> = O;
|
|
17
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PageDoc.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/ReturnType/PageDoc.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { RootComponentType } from "../../RootComponent/RootComponentType";
|
|
2
|
-
/**
|
|
3
|
-
* DefineComponent API`rootComponent`字段配置
|
|
4
|
-
*/
|
|
5
|
-
export type RootComponentOption<TRootComponent extends RootComponentType> = {
|
|
6
|
-
/**
|
|
7
|
-
* 根组件配置
|
|
8
|
-
*/
|
|
9
|
-
rootComponent?: TRootComponent;
|
|
10
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RootComponentOption.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/RootComponent/RootComponentOption.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { SubComponentType } from "../../SubComponent/SubComponentType";
|
|
2
|
-
/**
|
|
3
|
-
* RootComponent API 的`subComponents`字段配置
|
|
4
|
-
*/
|
|
5
|
-
export type SubComponentsOption<TSubComponentTuple extends SubComponentType[]> = {
|
|
6
|
-
/**
|
|
7
|
-
* 子组件列表
|
|
8
|
-
*/
|
|
9
|
-
subComponents?: [...TSubComponentTuple];
|
|
10
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SubComponentsOption.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/SubComponents/SubComponentsOption.ts"],"names":[],"mappings":""}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
|
-
import type { RootComponentTrueOptions } from "../RootComponent";
|
|
3
|
-
import type { RootComponentType } from "../RootComponent/RootComponentType";
|
|
4
|
-
import type { SubComponentType } from "../SubComponent/SubComponentType";
|
|
5
|
-
import type { NameOrPathOption } from "./NameOrPage/NameOrPathOption";
|
|
6
|
-
import type { CreateComponentDoc } from "./ReturnType/CreateComponentDoc";
|
|
7
|
-
import type { CreatePageDoc } from "./ReturnType/CreatePageDoc";
|
|
8
|
-
import type { RootComponentOption } from "./RootComponent/RootComponentOption";
|
|
9
|
-
import type { SubComponentsOption } from "./SubComponents/SubComponentsOption";
|
|
10
|
-
export type Path = `/${string}`;
|
|
11
|
-
type RootOptions<TRootComponentDoc extends RootComponentType, TSubComponentTuple extends SubComponentType[], TName extends string, TPath extends Path> = NameOrPathOption<TName, TPath, TRootComponentDoc["isPage"] & {}> & RootComponentOption<TRootComponentDoc> & SubComponentsOption<TSubComponentTuple>;
|
|
12
|
-
type DefineComponentConstructor = <TRootComponentDoc extends RootComponentType = {}, TSubComponentTuple extends SubComponentType[] = [], TName extends string = "", TPath extends Path = "/">(options: RootOptions<TRootComponentDoc, TSubComponentTuple, TName, TPath>) => IfExtends<"", TName, CreatePageDoc<TRootComponentDoc, TPath>, CreateComponentDoc<TRootComponentDoc, TName, TSubComponentTuple>>;
|
|
13
|
-
export type DefineComponentOption = {
|
|
14
|
-
name?: string;
|
|
15
|
-
path?: string;
|
|
16
|
-
rootComponent?: RootComponentTrueOptions;
|
|
17
|
-
subComponents?: SubComponentType[];
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* 把根组件选项和子组件选项转化为原生Component API选项并执行
|
|
21
|
-
*/
|
|
22
|
-
export declare const DefineComponent: DefineComponentConstructor;
|
|
23
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { normalizeOptions } from "./normalizeOptions";
|
|
2
|
-
/**
|
|
3
|
-
* 把根组件选项和子组件选项转化为原生Component API选项并执行
|
|
4
|
-
*/
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
|
-
export const DefineComponent = function (options) {
|
|
7
|
-
Component(
|
|
8
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
-
normalizeOptions(options));
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAyCtD;;GAEG;AACH,8DAA8D;AAC9D,MAAM,CAAC,MAAM,eAAe,GAA+B,UAAS,OAAO;IACzE,SAAS;IACP,8DAA8D;IAC9D,gBAAgB,CAAC,OAAgC,CAAQ,CAC1D,CAAC;AACJ,CAAC,CAAC"}
|