annil 1.12.0-alpha.7 → 1.12.0-alpha.8
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/dist/api/ChunkComponent/ChunkStore/ChunkStoreConstraint.d.ts +2 -1
- package/dist/api/ChunkComponent/ChunkStore/ChunkStoreOption.d.ts +4 -3
- package/dist/api/ChunkComponent/index.d.ts +1 -1
- package/dist/api/CustomComponent/CustomStore/CustomStoreConstraint.d.ts +3 -2
- package/dist/api/CustomComponent/CustomStore/CustomStoreOption.d.ts +6 -1
- package/dist/api/CustomComponent/index.d.ts +3 -5
- package/dist/api/CustomComponent/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.d.ts +2 -1
- package/dist/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.js +22 -2
- package/dist/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/addDetachedData.js +0 -2
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/addDetachedData.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.js +9 -0
- package/dist/api/DefineComponent/normalizeOptions/hijackHandle/index.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/index.d.ts +1 -1
- package/dist/api/DefineComponent/normalizeOptions/initComputed/computedUpdater.js +17 -4
- package/dist/api/DefineComponent/normalizeOptions/initComputed/computedUpdater.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/initComputed/initComputedAndGetCache.js +11 -1
- package/dist/api/DefineComponent/normalizeOptions/initComputed/initComputedAndGetCache.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.js +0 -1
- package/dist/api/DefineComponent/normalizeOptions/otherFieldsHandle.js.map +1 -1
- package/dist/api/DefineComponent/normalizeOptions/watchHandler/index.js +16 -9
- package/dist/api/DefineComponent/normalizeOptions/watchHandler/index.js.map +1 -1
- package/dist/api/RootComponent/Instance/RootComponentInstance.d.ts +2 -1
- package/dist/api/RootComponent/Observers/ObserversOption.d.ts +2 -2
- package/dist/api/RootComponent/Store/GeTStoreDoc.d.ts +8 -3
- package/dist/api/RootComponent/Store/StoreConstraint.d.ts +6 -1
- package/dist/api/RootComponent/Store/StoreOption.d.ts +22 -1
- package/dist/api/RootComponent/Watch/WatchOption.d.ts +2 -2
- package/dist/api/RootComponent/index.d.ts +1 -1
- package/dist/api/RootComponent/index.js.map +1 -1
- package/package.json +2 -2
- package/src/api/ChunkComponent/ChunkStore/ChunkStoreConstraint.ts +3 -1
- package/src/api/ChunkComponent/ChunkStore/ChunkStoreOption.ts +3 -2
- package/src/api/ChunkComponent/ChunkStore/test/error.test.ts +36 -0
- package/src/api/ChunkComponent/ChunkStore/test/normal.test.ts +43 -0
- package/src/api/ChunkComponent/index.ts +3 -3
- package/src/api/CustomComponent/CustomComputed/test/normal.test.ts +2 -2
- package/src/api/CustomComponent/CustomData/test/normal.test.ts +4 -4
- package/src/api/CustomComponent/CustomInstance/test/normal.test.ts +1 -1
- package/src/api/CustomComponent/CustomStore/CustomStoreConstraint.ts +4 -1
- package/src/api/CustomComponent/CustomStore/CustomStoreOption.ts +13 -7
- package/src/api/CustomComponent/CustomStore/test/error.test.ts +53 -2
- package/src/api/CustomComponent/CustomStore/test/normal.test.ts +45 -0
- package/src/api/CustomComponent/index.ts +8 -4
- package/src/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.ts +24 -3
- package/src/api/DefineComponent/normalizeOptions/hijackHandle/addDetachedData.ts +0 -2
- package/src/api/DefineComponent/normalizeOptions/hijackHandle/index.ts +11 -0
- package/src/api/DefineComponent/normalizeOptions/index.ts +2 -2
- package/src/api/DefineComponent/normalizeOptions/initComputed/computedUpdater.ts +18 -8
- package/src/api/DefineComponent/normalizeOptions/initComputed/initComputedAndGetCache.ts +12 -1
- package/src/api/DefineComponent/normalizeOptions/otherFieldsHandle.ts +0 -1
- package/src/api/DefineComponent/normalizeOptions/watchHandler/index.ts +21 -8
- package/src/api/RootComponent/Instance/RootComponentInstance.ts +2 -1
- package/src/api/RootComponent/Observers/ObserversOption.ts +2 -2
- package/src/api/RootComponent/Store/GeTStoreDoc.ts +33 -2
- package/src/api/RootComponent/Store/StoreConstraint.ts +8 -1
- package/src/api/RootComponent/Store/StoreOption.ts +70 -3
- package/src/api/RootComponent/Store/test/error.test.ts +42 -0
- package/src/api/RootComponent/Store/test/normal.test.ts +46 -0
- package/src/api/RootComponent/Watch/WatchOption.ts +2 -2
- package/src/api/RootComponent/index.ts +2 -3
- package/dist/types/Replace.d.ts +0 -8
- package/dist/types/Replace.js +0 -2
- package/dist/types/Replace.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.12.0-alpha.8](https://github.com/missannil/annil/compare/v1.12.0-alpha.7...v1.12.0-alpha.8) (2025-05-22)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Miscellaneous Chores
|
|
11
|
+
|
|
12
|
+
* release 1.12.0-alpha.8 ([#245](https://github.com/missannil/annil/issues/245)) ([7a5d842](https://github.com/missannil/annil/commit/7a5d8422ed871e1fcd794efdc2a0250cd62a086f))
|
|
13
|
+
|
|
7
14
|
## [1.12.0-alpha.7](https://github.com/missannil/annil/compare/v1.12.0-alpha.6...v1.12.0-alpha.7) (2025-04-12)
|
|
8
15
|
|
|
9
16
|
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { StoreConstraint } from "../../RootComponent/Store/StoreConstraint";
|
|
2
|
+
export type ChunkStoreConstraint<T extends object = object> = StoreConstraint<T>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { G } from "hry-types";
|
|
2
2
|
import type { Validators } from "../../../types/Validators";
|
|
3
|
+
import type { TypeValidator } from "../../RootComponent/Store/StoreOption";
|
|
3
4
|
import type { ValidatorPrefix } from "../ChunkData/validatePrefix";
|
|
4
|
-
|
|
5
|
-
export type ChunkStoreOption<TStore extends ChunkStoreConstraint, TDuplicateKeys extends PropertyKey, Prefix extends string> = {
|
|
5
|
+
export type ChunkStoreOption<TStore extends object, TDuplicateKeys extends PropertyKey, Prefix extends string> = {
|
|
6
6
|
store?: TStore & Validators<[
|
|
7
7
|
G.DuplicateFieldValidator<TStore, TDuplicateKeys, "字段重复">,
|
|
8
|
-
ValidatorPrefix<TStore, Prefix
|
|
8
|
+
ValidatorPrefix<TStore, Prefix>,
|
|
9
|
+
TypeValidator<TStore>
|
|
9
10
|
]>;
|
|
10
11
|
};
|
|
@@ -19,6 +19,6 @@ import type { ChunkMethodsOption } from "./ChunkMethods/ChunkMethodsOption";
|
|
|
19
19
|
import type { ChunkStoreConstraint } from "./ChunkStore/ChunkStoreConstraint";
|
|
20
20
|
import type { ChunkStoreOption } from "./ChunkStore/ChunkStoreOption";
|
|
21
21
|
type ChunkComponentOptions<TIsPage extends boolean, Prefix extends string, RootDatas extends object, TEvents extends ChunkEventsConstraint, TData extends object, TStore extends ChunkStoreConstraint, StoreDoc extends object, TComputed extends ChunkComputedConstraint, ComputedDoc extends object, RootMethods extends object, RootEvents extends object, TMethods extends MethodsConstraint, EventsDoc extends object, PropertiesDoc extends object> = ChunkDataOption<TData, keyof (RootDatas & IInjectAllData), Prefix> & ChunkStoreOption<TStore, keyof (TData & RootDatas & IInjectAllData), Prefix> & ChunkComputedOption<TComputed, keyof (TData & StoreDoc & RootDatas & IInjectAllData), Prefix> & ChunkEventsOption<TEvents, keyof (RootMethods & RootEvents & IInjectMethods), Prefix> & ChunkMethodsOption<TMethods, keyof (RootMethods & RootEvents & EventsDoc & IInjectMethods), Prefix> & ThisType<RootComponentInstance<TIsPage, TMethods & RootMethods, TData, TData & StoreDoc & ComputedDoc & RootDatas & IInjectAllData, {}, StoreDoc>> & PageLifetimesOption<TIsPage, PropertiesDoc> & LifetimesOption & WatchOption<ComputedDoc & Required<RootDatas> & TData & StoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "observers">> & ObserversOption<ComputedDoc & Required<RootDatas> & TData & StoreDoc & IInjectStore>;
|
|
22
|
-
type ChunkComponentConstructor<RootDoc extends RootComponentType, Prefix extends string, IsPage extends boolean = RootDoc["isPage"] extends true ? true : false, RootDatas extends object = Required<RootDoc["properties"]> & RootDoc["data"] & RootDoc["computed"] & RootDoc["store"], RootMethods extends object = RootDoc["methods"] & {}, RootEvents extends object = RootDoc["events"] & {}> = <TEvents extends ChunkEventsConstraint, TMethods extends MethodsConstraint = {}, TData extends object = {},
|
|
22
|
+
type ChunkComponentConstructor<RootDoc extends RootComponentType, Prefix extends string, IsPage extends boolean = RootDoc["isPage"] extends true ? true : false, RootDatas extends object = Required<RootDoc["properties"]> & RootDoc["data"] & RootDoc["computed"] & RootDoc["store"], RootMethods extends object = RootDoc["methods"] & {}, RootEvents extends object = RootDoc["events"] & {}> = <TEvents extends ChunkEventsConstraint, TStore extends ChunkStoreConstraint<Required<RootDoc["properties"]>>, TMethods extends MethodsConstraint = {}, TData extends object = {}, StoreDoc extends object = ChunkStoreConstraint<Required<RootDoc["properties"]>> extends TStore ? {} : GetStoreDoc<TStore>, TComputed extends ChunkComputedConstraint = {}, ComputedDoc extends object = GetComputedDoc<TComputed>, EventsDoc extends object = IfExtends<ChunkEventsConstraint, TEvents, {}, TEvents>, PropertiesDoc extends object = RootDoc["properties"] & {}>(options: ChunkComponentOptions<IsPage, Prefix, RootDatas, TEvents, TData, TStore, StoreDoc, TComputed, ComputedDoc, RootMethods, RootEvents, TMethods, EventsDoc, PropertiesDoc>) => never;
|
|
23
23
|
export declare function ChunkComponent<RootDoc extends RootComponentType, Prefix extends string = "">(): ChunkComponentConstructor<RootDoc, Prefix>;
|
|
24
24
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { Getter, WithDefault } from "../../RootComponent/Store/StoreConstraint";
|
|
2
|
+
export type CustomStoreConstraint<PropertyDoc extends object, legal extends object> = {
|
|
3
|
+
[k in keyof legal]?: Getter<PropertyDoc, legal[k]> | WithDefault<PropertyDoc, legal[k]>;
|
|
3
4
|
};
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { G } from "hry-types";
|
|
2
|
+
import type { Validators } from "../../../types/Validators";
|
|
3
|
+
import type { TypeValidator } from "../../RootComponent/Store/StoreOption";
|
|
2
4
|
export type CustomStoreOption<TStore extends object, legalKeys extends PropertyKey> = {
|
|
3
|
-
store?: TStore &
|
|
5
|
+
store?: TStore & Validators<[
|
|
6
|
+
G.IllegalFieldValidator<TStore, legalKeys, 0, "", "与inherit和data字段重复或前缀错误">,
|
|
7
|
+
TypeValidator<TStore>
|
|
8
|
+
]>;
|
|
4
9
|
};
|
|
@@ -6,7 +6,6 @@ import type { Extra } from "../../types/Extra";
|
|
|
6
6
|
import type { GetComponentPrefix } from "../../types/GetComponentPrefix";
|
|
7
7
|
import type { InnerFields } from "../../types/InnerData";
|
|
8
8
|
import type { WMCompOtherOption } from "../../types/OfficialTypeAlias";
|
|
9
|
-
import type { Replace } from "../../types/Replace";
|
|
10
9
|
import type { ReplacePrefix } from "../../types/ReplacePrefix";
|
|
11
10
|
import type { UnionToComma } from "../../types/UnionToComma.test";
|
|
12
11
|
import type { ComponentType } from "../DefineComponent/ReturnType/ComponentType";
|
|
@@ -18,6 +17,7 @@ import type { LifetimesConstraint } from "../RootComponent/Lifetimes/LifetimesCo
|
|
|
18
17
|
import type { MethodsConstraint } from "../RootComponent/Methods/MethodsConstraint";
|
|
19
18
|
import type { PageLifetimesOption } from "../RootComponent/PageLifetimes/PageLifetimesOption";
|
|
20
19
|
import type { RootComponentType } from "../RootComponent/RootComponentType";
|
|
20
|
+
import type { GetStoreDoc } from "../RootComponent/Store/GeTStoreDoc";
|
|
21
21
|
import type { StoreConstraint } from "../RootComponent/Store/StoreConstraint";
|
|
22
22
|
import type { CustomComputedConstraint } from "./CustomComputed/CustomComputedConstraint";
|
|
23
23
|
import type { CustomComputedOption } from "./CustomComputed/CustomComputedOption";
|
|
@@ -46,14 +46,12 @@ type Options<RootDoc extends RootComponentType, IsPage extends boolean, CurrentC
|
|
|
46
46
|
[k in keyof NoInfer<TSubStore>]: k extends keyof (AllRootDataDoc & SubDataDoc) ? never : k extends Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc))> ? k : k extends InnerFields<Prefix> ? k : never;
|
|
47
47
|
}[keyof NoInfer<TSubStore>]> & CustomComputedOption<TSubComputed, {
|
|
48
48
|
[k in keyof NoInfer<TSubComputed>]: k extends keyof (AllRootDataDoc & SubDataDoc & SubStoreDoc) ? never : k extends Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc & SubStoreDoc))> ? k : k extends InnerFields<Prefix> ? k : never;
|
|
49
|
-
}[keyof NoInfer<TSubComputed>]> & CustomEventsOption<TEvents, SubEventsDoc, keyof CustomEventsConstraint<CurrentCompDoc>> & CustomMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)> & CustomPageLifetimesOption<IsPage, NonNullable<RootDoc["properties"]>> & CustomLifetimesOption & CustomWatchOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers" | "relations">> & CustomObserversOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & ThisType<CustomInstance<SubMethodsDoc & RootDoc["methods"],
|
|
49
|
+
}[keyof NoInfer<TSubComputed>]> & CustomEventsOption<TEvents, SubEventsDoc, keyof CustomEventsConstraint<CurrentCompDoc>> & CustomMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)> & CustomPageLifetimesOption<IsPage, NonNullable<RootDoc["properties"]>> & CustomLifetimesOption & CustomWatchOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers" | "relations">> & CustomObserversOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & ThisType<CustomInstance<SubMethodsDoc & RootDoc["methods"], SubDataDoc, AllRootDataDoc & SubDataDoc & SubComputedDoc & SubStoreDoc, NonNullable<RootDoc["customEvents"]>, SubStoreDoc>>;
|
|
50
50
|
type CusotmComponentConstructor<TRootDoc extends RootComponentType, TOriginalCompDoc extends ComponentType, TSupplementalPrefix extends string = "", IsPage extends boolean = TRootDoc["isPage"] extends true ? true : false, CurrentPrefix extends string = `${GetComponentPrefix<TOriginalCompDoc>}${Capitalize<TSupplementalPrefix>}`, CurrentCompDoc extends ComponentType = IfExtends<TSupplementalPrefix, "", TOriginalCompDoc & {
|
|
51
51
|
properties: Extra<CurrentPrefix>;
|
|
52
52
|
}, ReplacePrefix<TOriginalCompDoc & {
|
|
53
53
|
properties: Extra<CurrentPrefix>;
|
|
54
|
-
}, CurrentPrefix>>, AllRootDataDoc extends object = Required<TRootDoc["properties"]> & TRootDoc["data"] & TRootDoc["computed"] & TRootDoc["store"]> = <TInherit extends CustomInheritConstraint<AllRootDataDoc, CurrentCompDoc>, TData extends CustomDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TStore extends CustomStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TEvents extends CustomEventsConstraint<CurrentCompDoc>, TComputed extends CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TMethods extends CustomMethodsConstraint = {}, InheritDoc extends object = IfExtends<CustomInheritConstraint<AllRootDataDoc, CurrentCompDoc>, TInherit, {}, TInherit>, DataDoc extends object = IfExtends<CustomDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TData, {}, TData>, StoreDoc extends object = IfExtends<CustomStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TStore, {}, {
|
|
55
|
-
[k in keyof TStore]: ReturnType<NonNullable<TStore[k]>>;
|
|
56
|
-
}>, ComputedDoc extends object = IfExtends<CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TComputed, {}, GetCustomComputedDoc<TComputed>>, EventsDoc extends object = IfExtends<CustomEventsConstraint<CurrentCompDoc>, TEvents, {}, TEvents>, MethodsDoc extends object = TMethods, MissingRequiredField extends PropertyKey = Exclude<RequiredKeys<NonNullable<CurrentCompDoc["properties"]>>, keyof (InheritDoc & DataDoc & StoreDoc & IfExtends<CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)>>, TComputed, {}, GetCustomComputedDoc<TComputed>>)>>(options: Options<TRootDoc, IsPage, CurrentCompDoc, CurrentPrefix, AllRootDataDoc, TInherit, TData, TStore, TComputed, TEvents, TMethods, InheritDoc, DataDoc, StoreDoc, ComputedDoc, EventsDoc, MethodsDoc>) => IfExtends<MissingRequiredField, never, CreatCustomComponentDoc<NonNullable<CurrentCompDoc["customEvents"]>, EventsDoc>, `缺少必传的字段${UnionToComma<MissingRequiredField & string>}`>;
|
|
54
|
+
}, CurrentPrefix>>, AllRootDataDoc extends object = Required<TRootDoc["properties"]> & TRootDoc["data"] & TRootDoc["computed"] & TRootDoc["store"]> = <TInherit extends CustomInheritConstraint<AllRootDataDoc, CurrentCompDoc>, TData extends CustomDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TStore extends CustomStoreConstraint<Required<TRootDoc["properties"]>, Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TEvents extends CustomEventsConstraint<CurrentCompDoc>, TComputed extends CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TMethods extends CustomMethodsConstraint = {}, InheritDoc extends object = IfExtends<CustomInheritConstraint<AllRootDataDoc, CurrentCompDoc>, TInherit, {}, TInherit>, DataDoc extends object = IfExtends<CustomDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TData, {}, TData>, StoreDoc extends object = IfExtends<CustomStoreConstraint<Required<TRootDoc["properties"]>, Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TStore, {}, GetStoreDoc<TStore>>, ComputedDoc extends object = IfExtends<CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TComputed, {}, GetCustomComputedDoc<TComputed>>, EventsDoc extends object = IfExtends<CustomEventsConstraint<CurrentCompDoc>, TEvents, {}, TEvents>, MethodsDoc extends object = TMethods, MissingRequiredField extends PropertyKey = Exclude<RequiredKeys<NonNullable<CurrentCompDoc["properties"]>>, keyof (InheritDoc & DataDoc & StoreDoc & IfExtends<CustomComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & DataDoc & StoreDoc)>>, TComputed, {}, GetCustomComputedDoc<TComputed>>)>>(options: Options<TRootDoc, IsPage, CurrentCompDoc, CurrentPrefix, AllRootDataDoc, TInherit, TData, TStore, TComputed, TEvents, TMethods, InheritDoc, DataDoc, StoreDoc, ComputedDoc, EventsDoc, MethodsDoc>) => IfExtends<MissingRequiredField, never, CreatCustomComponentDoc<NonNullable<CurrentCompDoc["customEvents"]>, EventsDoc>, `缺少必传的字段${UnionToComma<MissingRequiredField & string>}`>;
|
|
57
55
|
export declare function CustomComponent<RootDoc extends RootComponentType, CompDoc extends ComponentType, Prefix extends string = "">(): IfExtends<EmptyObject, CompDoc, (opt: EmptyObject) => never, CusotmComponentConstructor<RootDoc, CompDoc, Prefix>>;
|
|
58
56
|
export type CustomComponentTrueOptions = {
|
|
59
57
|
inhrit?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/CustomComponent/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/CustomComponent/index.ts"],"names":[],"mappings":"AAmTA,MAAM,UAAU,eAAe;IAW7B,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAqC,CAAQ,CAAC;AAC1E,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { Instance } from "../../../RootComponent/Instance/RootComponentInstance";
|
|
2
|
-
|
|
2
|
+
import type { StoreConstraint } from "../../../RootComponent/Store/StoreConstraint";
|
|
3
|
+
export declare function reactionRegister(this: Instance, storeConfig: StoreConstraint): void;
|
|
@@ -1,10 +1,30 @@
|
|
|
1
|
+
function isGetter(value) {
|
|
2
|
+
return typeof value === "function";
|
|
3
|
+
}
|
|
1
4
|
export function reactionRegister(storeConfig) {
|
|
2
5
|
const { comparer, reaction, toJS } = require("mobx");
|
|
3
6
|
this.disposer = {};
|
|
4
7
|
const peddingSetData = {};
|
|
5
8
|
for (const key in storeConfig) {
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
let value;
|
|
10
|
+
let getter;
|
|
11
|
+
const itemConfig = storeConfig[key];
|
|
12
|
+
if (isGetter(itemConfig)) {
|
|
13
|
+
value = itemConfig(this.data);
|
|
14
|
+
if (value === undefined) {
|
|
15
|
+
throw new Error(`store配置中 ${key} 字段的 函数值不可为undefined`);
|
|
16
|
+
}
|
|
17
|
+
getter = itemConfig;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
if (itemConfig.getter(this.data) !== undefined) {
|
|
21
|
+
throw new Error(`store配置中 ${key}字段的配置对象中getter函数值不为undefined`);
|
|
22
|
+
}
|
|
23
|
+
getter = itemConfig.getter;
|
|
24
|
+
value = itemConfig.default;
|
|
25
|
+
}
|
|
26
|
+
peddingSetData[key] = toJS(value);
|
|
27
|
+
this.disposer[key] = reaction(() => getter(this.data), (value) => {
|
|
8
28
|
this.setData({
|
|
9
29
|
[key]: toJS(value),
|
|
10
30
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactionRegister.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reactionRegister.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/handleStore/reactionRegister.ts"],"names":[],"mappings":"AAGA,SAAS,QAAQ,CAAC,KAA2B;IAC3C,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AACD,MAAM,UAAU,gBAAgB,CAAiB,WAA4B;IAE3E,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAgB,CAAC;IAEpE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACnB,MAAM,cAAc,GAA4B,EAAE,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC;QACV,IAAI,MAAM,CAAC;QACX,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzB,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,sBAAsB,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,GAAG,UAAU,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,aAAa,GAAG,8BAA8B,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAC3B,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC;QAC7B,CAAC;QAGD,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAC3B,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,CAAC,KAAc,EAAE,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC;gBACX,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;aACnB,CAAC,CAAC;QACL,CAAC,EACD;YACE,MAAM,EAAE,QAAQ,CAAC,UAAU;SAC5B,CACF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
export function addDetachedData() {
|
|
2
2
|
if (this.data.attached !== undefined)
|
|
3
3
|
return;
|
|
4
|
-
this.data.__notUpdateComputed__ = true;
|
|
5
4
|
this.setData({
|
|
6
5
|
attached: true,
|
|
7
6
|
});
|
|
8
|
-
this.data.__notUpdateComputed__ = false;
|
|
9
7
|
}
|
|
10
8
|
//# sourceMappingURL=addDetachedData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addDetachedData.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/addDetachedData.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe;IAE7B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO;IAC7C,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"addDetachedData.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/addDetachedData.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe;IAE7B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO;IAC7C,IAAI,CAAC,OAAO,CAAC;QAEX,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -21,6 +21,15 @@ export function hijackHandle(finalOptionsForComponent, isPage, path) {
|
|
|
21
21
|
pagePathCheck(path),
|
|
22
22
|
initStore(finalOptionsForComponent.store),
|
|
23
23
|
initComputed(finalOptionsForComponent.computed, finalOptionsForComponent.watch),
|
|
24
|
+
function () {
|
|
25
|
+
const observerhandlers = this.data.__oberverHandler__;
|
|
26
|
+
if (observerhandlers) {
|
|
27
|
+
for (const observerhandler of observerhandlers) {
|
|
28
|
+
observerhandler.call(this);
|
|
29
|
+
}
|
|
30
|
+
Reflect.deleteProperty(this.data, "__oberverHandler__");
|
|
31
|
+
}
|
|
32
|
+
},
|
|
24
33
|
], [addDetachedData]);
|
|
25
34
|
hijack(finalOptionsForComponent.lifetimes, "detached", [disposeStore]);
|
|
26
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/hijackHandle/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,UAAU,YAAY,CAC1B,wBAAiD,EACjD,MAA2B,EAC3B,IAAwB;IAGxB,IAAI,wBAAwB,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,CAAC,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC/E,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,EAAE;QAC/C,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,CACJ,wBAAwB,CAAC,SAAS,EAClC,UAAU,EACV;QAEE,WAAW,CAAC,MAAM,CAAC;QAEnB,aAAa,CAAC,IAAI,CAAC;QACnB,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC;QAEzC,YAAY,CAAC,wBAAwB,CAAC,QAAQ,EAAE,wBAAwB,CAAC,KAAK,CAAC;QAC/E;YACE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACtD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;oBAC/C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;gBACD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;KACF,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,MAAM,CACJ,wBAAwB,CAAC,SAAS,EAClC,UAAU,EACV,CAAC,YAAY,CAAC,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -14,8 +14,8 @@ export type OptionsInnerFields = {
|
|
|
14
14
|
data: {
|
|
15
15
|
__storeInited__?: boolean;
|
|
16
16
|
attached?: boolean;
|
|
17
|
-
__notUpdateComputed__?: boolean;
|
|
18
17
|
__computedInited__?: boolean;
|
|
18
|
+
__oberverHandler__?: Func[];
|
|
19
19
|
__computedCache__?: ComputedCache;
|
|
20
20
|
__watchOldValue__?: WatchOldValue;
|
|
21
21
|
__throttleDebounce__?: ThrottleDebounce;
|
|
@@ -2,14 +2,16 @@ import { deepEqual } from "../../../../utils/deepEqual";
|
|
|
2
2
|
import { deepProxy, getOriginalValue } from "./data-tracer";
|
|
3
3
|
import { removeSubDependences } from "./dependencesOptimize";
|
|
4
4
|
export function computedUpdater() {
|
|
5
|
-
if (this.data.__notUpdateComputed__)
|
|
6
|
-
return;
|
|
7
5
|
for (const key in this.data.__computedCache__) {
|
|
8
6
|
const itemCache = this.data.__computedCache__[key];
|
|
9
7
|
let changed = false;
|
|
10
|
-
for (const dep of itemCache.dependences) {
|
|
8
|
+
outLook: for (const dep of itemCache.dependences) {
|
|
11
9
|
let curdepVal = this.data;
|
|
12
10
|
for (const path of dep.paths) {
|
|
11
|
+
if (curdepVal === null) {
|
|
12
|
+
changed = true;
|
|
13
|
+
break outLook;
|
|
14
|
+
}
|
|
13
15
|
curdepVal = curdepVal[path];
|
|
14
16
|
}
|
|
15
17
|
if (!deepEqual(curdepVal, dep.val)) {
|
|
@@ -19,7 +21,18 @@ export function computedUpdater() {
|
|
|
19
21
|
}
|
|
20
22
|
if (changed) {
|
|
21
23
|
const newDependences = [];
|
|
22
|
-
const
|
|
24
|
+
const proxyThis = new Proxy(this, {
|
|
25
|
+
get(target, prop, receiver) {
|
|
26
|
+
if (prop === "data") {
|
|
27
|
+
return deepProxy(target.data, newDependences);
|
|
28
|
+
}
|
|
29
|
+
return Reflect.get(target, prop, receiver);
|
|
30
|
+
},
|
|
31
|
+
set() {
|
|
32
|
+
throw "不可以在计算属性中修改实例的属性";
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
const newValue = itemCache.method.call(proxyThis);
|
|
23
36
|
this.setData({
|
|
24
37
|
[key]: getOriginalValue(newValue),
|
|
25
38
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computedUpdater.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/initComputed/computedUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,MAAM,UAAU,eAAe;IAC7B,
|
|
1
|
+
{"version":3,"file":"computedUpdater.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/initComputed/computedUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,MAAM,UAAU,eAAe;IAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,OAAO,EAAE,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,SAAS,GAAY,IAAI,CAAC,IAAI,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAE7B,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;oBACvB,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,OAAO,CAAC;gBAChB,CAAC;gBACD,SAAS,GAAI,SAAqC,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,GAAyB,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;gBAChC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;oBACxB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;wBACpB,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;oBAChD,CAAC;oBACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC7C,CAAC;gBACD,GAAG;oBACD,MAAM,kBAAkB,CAAC;gBAC3B,CAAC;aACF,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAElD,IAAI,CAAC,OAAO,CAAC;gBACX,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;YAEpF,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -23,9 +23,19 @@ export function _initComputedAndGetCache(computedConfig, uninitedkeys, computedC
|
|
|
23
23
|
throw "不可以在计算属性中修改实例的属性";
|
|
24
24
|
},
|
|
25
25
|
});
|
|
26
|
-
let initValue
|
|
26
|
+
let initValue;
|
|
27
|
+
let errMsg;
|
|
28
|
+
try {
|
|
29
|
+
initValue = computedFunc.call(proxyThis);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
errMsg = e;
|
|
33
|
+
}
|
|
27
34
|
uninitedkeys = uninitedkeys.filter(ele => ele !== key);
|
|
28
35
|
if (isValidDependences(dependences, uninitedkeys)) {
|
|
36
|
+
if (errMsg) {
|
|
37
|
+
throw errMsg;
|
|
38
|
+
}
|
|
29
39
|
initValue = getOriginalValue(initValue);
|
|
30
40
|
this.setData({
|
|
31
41
|
[key]: initValue,
|
package/dist/api/DefineComponent/normalizeOptions/initComputed/initComputedAndGetCache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initComputedAndGetCache.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/initComputed/initComputedAndGetCache.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAgB7D,SAAS,kBAAkB,CAAC,WAAiC,EAAE,YAAsB;IACnF,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGD,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,UAAU,wBAAwB,CAEtC,cAAoC,EACpC,YAAsB,EACtB,aAA4B;IAE5B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,GAAyB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;YAChC,GAAG,CAAC,MAAM,EAAE,IAAY,EAAE,QAAQ;gBAChC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC7C,CAAC;gBACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YACD,GAAG;gBACD,MAAM,kBAAkB,CAAC;YAC3B,CAAC;SACF,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"initComputedAndGetCache.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/initComputed/initComputedAndGetCache.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAgB7D,SAAS,kBAAkB,CAAC,WAAiC,EAAE,YAAsB;IACnF,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGD,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,UAAU,wBAAwB,CAEtC,cAAoC,EACpC,YAAsB,EACtB,aAA4B;IAE5B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,WAAW,GAAyB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;YAChC,GAAG,CAAC,MAAM,EAAE,IAAY,EAAE,QAAQ;gBAChC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC7C,CAAC;gBACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC7C,CAAC;YACD,GAAG;gBACD,MAAM,kBAAkB,CAAC;YAC3B,CAAC;SACF,CAAC,CAAC;QAGH,IAAI,SAAS,CAAC;QACd,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;QAGD,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAGvD,IAAI,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;YAElD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,CAAC;YACf,CAAC;YACD,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAExC,IAAI,CAAC,OAAO,CAAC;gBACX,CAAC,GAAG,CAAC,EAAE,SAAS;aACjB,CAAC,CAAC;YACH,aAAa,CAAC,GAAG,CAAC,GAAG;gBACnB,WAAW,EAAE,oBAAoB,CAAC,WAAW,CAAC;gBAC9C,MAAM,EAAE,YAAY;gBACpB,KAAK,EAAE,SAAS;aACjB,CAAC;QACJ,CAAC;aAAM,CAAC;YAEN,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,aAAa,CAAC;IACvB,CAAC;IAGD,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAC1F,CAAC;AAOD,MAAM,UAAU,uBAAuB,CAErC,cAAoC;IAEpC,OAAO,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9F,CAAC"}
|
|
@@ -2,7 +2,6 @@ export function otherFieldsHandle(finalOptions, rootComponentOptions) {
|
|
|
2
2
|
let key;
|
|
3
3
|
for (key in rootComponentOptions) {
|
|
4
4
|
const config = rootComponentOptions[key];
|
|
5
|
-
console.log("hry 1", key, config);
|
|
6
5
|
if (config === undefined)
|
|
7
6
|
continue;
|
|
8
7
|
if (key === "behaviors") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otherFieldsHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/otherFieldsHandle.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,iBAAiB,CAC/B,YAAqC,EACrC,oBAA+E;IAE/E,IAAI,GAAoE,CAAC;IACzE,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACzC,
|
|
1
|
+
{"version":3,"file":"otherFieldsHandle.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/normalizeOptions/otherFieldsHandle.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,iBAAiB,CAC/B,YAAqC,EACrC,oBAA+E;IAE/E,IAAI,GAAoE,CAAC;IACzE,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS;QACnC,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAkB,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAEtC,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAE5C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;YACvC,YAAY,CAAC,GAAe,CAAC,GAAG,MAAM,CAAC;QACzC,CAAC;aAAM,CAAC;YAEN,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -11,6 +11,15 @@ function initWatchOldValue(data, watchConfig, computedKeys) {
|
|
|
11
11
|
}
|
|
12
12
|
return watchOldValue;
|
|
13
13
|
}
|
|
14
|
+
function observerHandler(key, originObserversHandle, watchHadle, ...newValue) {
|
|
15
|
+
originObserversHandle === null || originObserversHandle === void 0 ? void 0 : originObserversHandle.call(this, ...newValue);
|
|
16
|
+
const watchOldValue = nonNullable(this.data.__watchOldValue__);
|
|
17
|
+
const oldValue = watchOldValue[key];
|
|
18
|
+
if (deepEqual(newValue, oldValue))
|
|
19
|
+
return;
|
|
20
|
+
watchOldValue[key] = deepClone(newValue);
|
|
21
|
+
watchHadle.call(this, ...newValue, ...oldValue);
|
|
22
|
+
}
|
|
14
23
|
export function watchHandler(finalOptionsForComponent) {
|
|
15
24
|
const { observers: observersConfig, watch: watchConfig, data, properties, computed: computedConfig } = finalOptionsForComponent;
|
|
16
25
|
if (!isEmptyObject(watchConfig)) {
|
|
@@ -21,15 +30,13 @@ export function watchHandler(finalOptionsForComponent) {
|
|
|
21
30
|
const watchHadle = watchConfig[key];
|
|
22
31
|
const originObserversHandle = observersConfig[key];
|
|
23
32
|
observersConfig[key] = function (...newValue) {
|
|
24
|
-
|
|
25
|
-
if (
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
watchOldValue[key] = deepClone(newValue);
|
|
32
|
-
watchHadle.call(this, ...newValue, ...oldValue);
|
|
33
|
+
var _a;
|
|
34
|
+
if (this.data.__computedInited__) {
|
|
35
|
+
observerHandler.call(this, key, originObserversHandle, watchHadle, ...newValue);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
((_a = this.data).__oberverHandler__ || (_a.__oberverHandler__ = [])).push(observerHandler.bind(this, key, originObserversHandle, watchHadle, ...newValue));
|
|
39
|
+
}
|
|
33
40
|
};
|
|
34
41
|
}
|
|
35
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/watchHandler/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,SAAS,iBAAiB,CACxB,IAAqC,EACrC,WAAmB,EACnB,YAAsB;IAEtB,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAE/B,IAAI,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC;YAAE,SAAS;QAClD,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AACD,MAAM,UAAU,YAAY,CAC1B,wBAAiD;IAEjD,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,GAClG,wBAAwB,CAAC;IAC3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,iCAAM,IAAI,GAAK,kBAAkB,GAAI,WAAW,EAAE,YAAY,CAAC,CAAC;QAC1G,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,qBAAqB,GAAG,eAAe,CAAC,GAAG,CAAqB,CAAC;YAEvE,eAAe,CAAC,GAAG,CAAC,GAAG,UAAyB,GAAG,QAAmB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/normalizeOptions/watchHandler/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,SAAS,iBAAiB,CACxB,IAAqC,EACrC,WAAmB,EACnB,YAAsB;IAEtB,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAE/B,IAAI,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC;YAAE,SAAS;QAClD,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AACD,SAAS,eAAe,CAEtB,GAAW,EACX,qBAAuC,EACvC,UAAgB,EAChB,GAAG,QAAmB;IAEtB,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAAE,OAAO;IAC1C,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC;AAClD,CAAC;AACD,MAAM,UAAU,YAAY,CAC1B,wBAAiD;IAEjD,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,GAClG,wBAAwB,CAAC;IAC3B,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,iCAAM,IAAI,GAAK,kBAAkB,GAAI,WAAW,EAAE,YAAY,CAAC,CAAC;QAC1G,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,qBAAqB,GAAG,eAAe,CAAC,GAAG,CAAqB,CAAC;YAEvE,eAAe,CAAC,GAAG,CAAC,GAAG,UAAyB,GAAG,QAAmB;;gBACpE,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACjC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,qBAAqB,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC;gBAClF,CAAC;qBAAM,CAAC;oBACN,OAAC,IAAI,CAAC,IAAI,EAAC,kBAAkB,QAAlB,kBAAkB,GAAK,EAAE,EAAC,CAAC,IAAI,CACxC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,qBAAqB,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,CAChF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
2
|
import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersection";
|
|
3
3
|
import type { IReactionDisposer } from "mobx";
|
|
4
|
+
import type { EmptyObject } from "hry-types/src/Misc/EmptyObject";
|
|
4
5
|
import type { Func } from "hry-types/src/Misc/Func";
|
|
5
6
|
import type { Assign } from "../../../types/Assign";
|
|
6
7
|
import type { ComputeObject } from "../../../types/ComputeObj";
|
|
@@ -9,7 +10,7 @@ import type { OptionsInnerFields } from "../../DefineComponent/normalizeOptions"
|
|
|
9
10
|
import type { IInjectAllData, IInjectMethods } from "../../InstanceInject/instanceConfig";
|
|
10
11
|
import type { CustomEventMethods } from "./CustomEventMethods";
|
|
11
12
|
import type { CustomSetData } from "./CustomSetData";
|
|
12
|
-
export type RootComponentInstance<TIsPage extends boolean, TMethods extends object, TDataForSetData extends object, AllData extends object, CustomEventsDoc extends object, StoreDoc extends object, instanceData = ComputeObject<Assign<IInjectAllData, ComputeIntersection<AllData>>>> = IfExtends<false, TIsPage, WMComponentInstance, WMPageInstance> & Omit<WMInstanceMethods<{}>, "setData"> & CustomSetData<TDataForSetData> & IfExtends<
|
|
13
|
+
export type RootComponentInstance<TIsPage extends boolean, TMethods extends object, TDataForSetData extends object, AllData extends object, CustomEventsDoc extends object, StoreDoc extends object, instanceData = ComputeObject<Assign<IInjectAllData, ComputeIntersection<AllData>>>> = IfExtends<false, TIsPage, WMComponentInstance, WMPageInstance> & Omit<WMInstanceMethods<{}>, "setData"> & CustomSetData<TDataForSetData> & IfExtends<EmptyObject, StoreDoc, unknown, {
|
|
13
14
|
disposer: {
|
|
14
15
|
[k in keyof StoreDoc]: IReactionDisposer;
|
|
15
16
|
};
|
|
@@ -7,11 +7,11 @@ type getLastKeys<T extends string> = T extends `${string}.${infer L}` ? L : neve
|
|
|
7
7
|
type AddFieldsOfObject<TWatchData extends object, _WatchKeys extends keyof TWatchData, secondKeys extends string = {
|
|
8
8
|
[k in _WatchKeys]: IsPureObject<Exclude<TWatchData[k], null>> extends true ? `${k & string}.${(keyof Exclude<TWatchData[k], null>) & string}` | `${k & string}.**` : never;
|
|
9
9
|
}[_WatchKeys]> = {
|
|
10
|
-
[k in secondKeys]?: (newValue: IfExtends<getLastKeys<k>, "**", TWatchData[getFirstKeys<k>], NonNullable<(Exclude<TWatchData[getFirstKeys<k>], null>)[getLastKeys<k>]>>) => void
|
|
10
|
+
[k in secondKeys]?: (newValue: IfExtends<getLastKeys<k>, "**", TWatchData[getFirstKeys<k>], NonNullable<(Exclude<TWatchData[getFirstKeys<k>], null>)[getLastKeys<k>]>>) => void | Promise<void>;
|
|
11
11
|
};
|
|
12
12
|
export type ObserversOption<TWatchData extends object, _WatchKeys extends keyof TWatchData = keyof TWatchData> = {
|
|
13
13
|
observers?: IfExtends<{}, TWatchData, EmptyObject, NoInfer<{
|
|
14
|
-
[k in _WatchKeys | "**"]?: (newValue: k extends keyof TWatchData ? TWatchData[k] : unknown) => void
|
|
14
|
+
[k in _WatchKeys | "**"]?: (newValue: k extends keyof TWatchData ? TWatchData[k] : unknown) => void | Promise<void>;
|
|
15
15
|
} & {
|
|
16
16
|
[k in _WatchKeys as never]: unknown;
|
|
17
17
|
} & AddFieldsOfObject<TWatchData, _WatchKeys>>>;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { Getter } from "./StoreConstraint";
|
|
2
|
+
type UndefinedToNull<T> = T extends undefined ? null : T;
|
|
3
|
+
export type GetStoreDoc<TStore extends object> = {
|
|
4
|
+
[k in keyof TStore]: TStore[k] extends Getter ? UndefinedToNull<ReturnType<TStore[k]>> : TStore[k] extends {
|
|
5
|
+
getter: () => infer R;
|
|
6
|
+
default: infer D;
|
|
7
|
+
} ? Exclude<R, undefined> | D : never;
|
|
4
8
|
};
|
|
9
|
+
export {};
|
|
@@ -1 +1,6 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type Getter<T extends object = object, R = unknown> = (data: T) => R;
|
|
2
|
+
export type WithDefault<T extends object = object, R = unknown> = {
|
|
3
|
+
getter: Getter<T, R | undefined>;
|
|
4
|
+
default: unknown;
|
|
5
|
+
};
|
|
6
|
+
export type StoreConstraint<T extends object = object> = Record<string, Getter<T> | WithDefault<T>>;
|
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
import type { G } from "hry-types";
|
|
2
|
+
import type { As } from "hry-types/src/Any/As";
|
|
3
|
+
import type { IfContains } from "hry-types/src/Any/IfContains";
|
|
4
|
+
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
5
|
+
import type { IsPureObject } from "hry-types/src/Any/IsPureObject";
|
|
6
|
+
import type { Func } from "hry-types/src/Misc/Func";
|
|
7
|
+
import type { Validators } from "../../../types/Validators";
|
|
2
8
|
import type { StoreConstraint } from "./StoreConstraint";
|
|
3
9
|
export type StoreOption<TStore extends StoreConstraint, TDuplicateKeys extends PropertyKey> = {
|
|
4
|
-
store?: TStore &
|
|
10
|
+
store?: TStore & Validators<[
|
|
11
|
+
G.DuplicateFieldValidator<TStore, TDuplicateKeys, "字段重复">,
|
|
12
|
+
TypeValidator<TStore>
|
|
13
|
+
]>;
|
|
5
14
|
};
|
|
15
|
+
export type TypeValidator<TStore, Result = {
|
|
16
|
+
[k in keyof TStore]: TStore[k] extends {
|
|
17
|
+
getter: (...arg: unknown[]) => infer R;
|
|
18
|
+
default: infer D;
|
|
19
|
+
} ? IfContains<R, undefined, IfExtends<IsPureObject<Exclude<R, undefined>>, true, IfExtends<D, Exclude<R, undefined> | null, unknown, {
|
|
20
|
+
default: () => "⚠️类型错误⚠️";
|
|
21
|
+
}>, IfExtends<D, Exclude<R, undefined>, unknown, {
|
|
22
|
+
default: () => "⚠️类型错误⚠️";
|
|
23
|
+
}>>, {
|
|
24
|
+
getter: () => "⚠️类型不包含undefined⚠️ ";
|
|
25
|
+
}> : IfContains<ReturnType<As<TStore[k], Func>>, undefined, () => "⚠️类型包含undefined,应写成对象形式⚠️", unknown>;
|
|
26
|
+
}> = Record<keyof TStore, unknown> extends Result ? unknown : Result;
|
|
@@ -7,11 +7,11 @@ type getLastKeys<T extends string> = T extends `${string}.${infer L}` ? L : neve
|
|
|
7
7
|
type AddFieldsOfObject<TWatchData extends object, _WatchKeys extends keyof TWatchData, secondKeys extends string = {
|
|
8
8
|
[k in _WatchKeys]: IsPureObject<TWatchData[k]> extends true ? `${k & string}.${(keyof TWatchData[k]) & string}` | `${k & string}.**` : never;
|
|
9
9
|
}[_WatchKeys]> = {
|
|
10
|
-
[k in secondKeys]?: (newValue: IfExtends<getLastKeys<k>, "**", Exclude<TWatchData[getFirstKeys<k>], null>, NonNullable<(Exclude<TWatchData[getFirstKeys<k>], null>)[getLastKeys<k>]>>, oldValue: IfExtends<getLastKeys<k>, "**", TWatchData[getFirstKeys<k>], (Exclude<TWatchData[getFirstKeys<k>], null>)[getLastKeys<k>]>) => void
|
|
10
|
+
[k in secondKeys]?: (newValue: IfExtends<getLastKeys<k>, "**", Exclude<TWatchData[getFirstKeys<k>], null>, NonNullable<(Exclude<TWatchData[getFirstKeys<k>], null>)[getLastKeys<k>]>>, oldValue: IfExtends<getLastKeys<k>, "**", TWatchData[getFirstKeys<k>], (Exclude<TWatchData[getFirstKeys<k>], null>)[getLastKeys<k>]>) => void | Promise<void>;
|
|
11
11
|
};
|
|
12
12
|
export type WatchOption<TWatchData extends object, _WatchKeys extends keyof TWatchData = keyof TWatchData> = {
|
|
13
13
|
watch?: IfExtends<{}, TWatchData, EmptyObject, NoInfer<{
|
|
14
|
-
[k in _WatchKeys]?: (newValue: TWatchData[k], oldValue: TWatchData[k]) => void
|
|
14
|
+
[k in _WatchKeys]?: (newValue: TWatchData[k], oldValue: TWatchData[k]) => void | Promise<void>;
|
|
15
15
|
} & {
|
|
16
16
|
[k in _WatchKeys as never]: unknown;
|
|
17
17
|
} & AddFieldsOfObject<TWatchData, _WatchKeys>>>;
|
|
@@ -33,7 +33,7 @@ import type { StoreConstraint } from "./Store/StoreConstraint";
|
|
|
33
33
|
import type { StoreOption } from "./Store/StoreOption";
|
|
34
34
|
import type { WatchOption } from "./Watch/WatchOption";
|
|
35
35
|
type RootComponentOptions<TEvents extends object, TIsPage extends boolean, TCustomEvents extends CustomEventConstraint, TMethods extends MethodsConstraint, TProperties extends PropertiesConstraint, TData extends object, TStore extends StoreConstraint, TComputed extends Record<string, Func>, EventsDoc extends object, CustomEventsDoc extends object, PropertiesDoc extends object, DataDoc extends object, StoreDoc extends object, ComputedDoc extends object> = MethodsOption<TMethods, keyof (EventsDoc & CustomEventsDoc)> & PropertiesOption<TProperties> & IsPageOption<TIsPage> & EventsOption<TEvents> & CustomEventsOption<TCustomEvents, keyof EventsDoc> & DataOption<TData, keyof PropertiesDoc> & StoreOption<TStore, keyof (PropertiesDoc & DataDoc)> & ComputedOption<TComputed, keyof (PropertiesDoc & DataDoc & StoreDoc)> & PageLifetimesOption<TIsPage, PropertiesDoc> & LifetimesOption & WatchOption<ComputedDoc & Required<PropertiesDoc> & DataDoc & StoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "observers">> & ObserversOption<ComputedDoc & Required<PropertiesDoc> & DataDoc & StoreDoc & IInjectStore> & ThisType<RootComponentInstance<TIsPage, TMethods, DataDoc, DataDoc & Required<PropertiesDoc> & StoreDoc & ComputedDoc, CustomEventsDoc, StoreDoc>>;
|
|
36
|
-
type RootComponentConstructor<TComponentDocList extends ComponentType[]> = <TEvents extends EventsConstraint<TComponentDocList>, TIsPage extends boolean = false, const TProperties extends PropertiesConstraint = {}, TData extends object = {},
|
|
36
|
+
type RootComponentConstructor<TComponentDocList extends ComponentType[]> = <TEvents extends EventsConstraint<TComponentDocList>, TStore extends StoreConstraint<PropertiesDoc>, TIsPage extends boolean = false, const TProperties extends PropertiesConstraint = {}, TData extends object = {}, TComputed extends ComputedConstraint = {}, TCustomEvents extends IfExtends<TIsPage, false, CustomEventConstraint, EmptyObject> = {}, TMethods extends MethodsConstraint = {}, EventsDoc extends object = IfExtends<EventsConstraint<TComponentDocList>, TEvents, {}, TEvents>, CustomEventsDoc extends object = GetCustomEventDoc<TCustomEvents>, PropertiesDoc extends object = GetPropertiesDoc<TProperties>, DataDoc extends object = TData, StoreDoc extends object = StoreConstraint<PropertiesDoc> extends TStore ? {} : GetStoreDoc<TStore>, ComputedDoc extends object = GetComputedDoc<TComputed>>(options: RootComponentOptions<TEvents, TIsPage, TCustomEvents, TMethods, TProperties, TData, TStore, TComputed, EventsDoc, CustomEventsDoc, PropertiesDoc, DataDoc, StoreDoc, ComputedDoc>) => ComputeIntersection<IfExtends<TIsPage, false, {}, {
|
|
37
37
|
isPage: true;
|
|
38
38
|
}> & IfExtends<EmptyObject, PropertiesDoc, {}, {
|
|
39
39
|
properties: IfExtends<false, TIsPage, PropertiesDoc, RemoveNullOfRequired<PropertiesDoc>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/RootComponent/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/RootComponent/index.ts"],"names":[],"mappings":"AA6IA,MAAM,UAAU,aAAa;IAO3B,OAAO,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC;AACnC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "annil",
|
|
3
|
-
"version": "1.12.0-alpha.
|
|
3
|
+
"version": "1.12.0-alpha.8",
|
|
4
4
|
"description": "微信小程序(原生开发)插件",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "src/index.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@types/jest": "^29.5.5",
|
|
25
25
|
"commitlint": "^17.6.5",
|
|
26
26
|
"eslint": "^9.10.0",
|
|
27
|
-
"hry-types": "^0.19.
|
|
27
|
+
"hry-types": "^0.19.3",
|
|
28
28
|
"husky": "^8.0.3",
|
|
29
29
|
"jest": "^29.7.0",
|
|
30
30
|
"jest-environment-jsdom": "^29.7.0",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { G } from "hry-types";
|
|
2
2
|
import type { Validators } from "../../../types/Validators";
|
|
3
|
+
import type { TypeValidator } from "../../RootComponent/Store/StoreOption";
|
|
3
4
|
import type { ValidatorPrefix } from "../ChunkData/validatePrefix";
|
|
4
|
-
import type { ChunkStoreConstraint } from "./ChunkStoreConstraint";
|
|
5
5
|
|
|
6
6
|
export type ChunkStoreOption<
|
|
7
|
-
TStore extends
|
|
7
|
+
TStore extends object,
|
|
8
8
|
TDuplicateKeys extends PropertyKey,
|
|
9
9
|
Prefix extends string,
|
|
10
10
|
> = {
|
|
@@ -26,6 +26,7 @@ export type ChunkStoreOption<
|
|
|
26
26
|
[
|
|
27
27
|
G.DuplicateFieldValidator<TStore, TDuplicateKeys, "字段重复">,
|
|
28
28
|
ValidatorPrefix<TStore, Prefix>,
|
|
29
|
+
TypeValidator<TStore>,
|
|
29
30
|
]
|
|
30
31
|
>;
|
|
31
32
|
};
|