annil 1.5.15 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/api/DefineComponent/assignOptions/computedWatchHandle/computedUpdater.js +3 -2
- package/dist/api/DefineComponent/assignOptions/computedWatchHandle/computedUpdater.js.map +1 -1
- package/dist/api/DefineComponent/assignOptions/computedWatchHandle/data-tracer.d.ts +0 -1
- package/dist/api/DefineComponent/assignOptions/computedWatchHandle/data-tracer.js +2 -13
- package/dist/api/DefineComponent/assignOptions/computedWatchHandle/data-tracer.js.map +1 -1
- package/dist/api/DefineComponent/assignOptions/computedWatchHandle/initComputed.js +3 -2
- package/dist/api/DefineComponent/assignOptions/computedWatchHandle/initComputed.js.map +1 -1
- package/dist/api/DefineComponent/assignOptions/index.d.ts +1 -0
- package/dist/api/DefineComponent/assignOptions/index.js +8 -0
- package/dist/api/DefineComponent/assignOptions/index.js.map +1 -1
- package/dist/api/RootComponent/Computed/ComputedOption.d.ts +2 -2
- package/dist/api/RootComponent/CustomEvents/CustomEventsOption.d.ts +2 -2
- package/dist/api/RootComponent/CustomEvents/GetCustomEventDoc.d.ts +1 -2
- package/dist/api/RootComponent/Data/DataOption.d.ts +2 -2
- package/dist/api/RootComponent/Instance/RootComponentInstance.d.ts +5 -2
- package/dist/api/RootComponent/Methods/MethodsOption.d.ts +2 -2
- package/dist/api/RootComponent/Properties/PropertiesOption.d.ts +2 -2
- package/dist/api/RootComponent/Store/StoreOption.d.ts +2 -2
- package/dist/api/RootComponent/index.d.ts +4 -2
- package/dist/api/RootComponent/index.js.map +1 -1
- package/dist/api/SubComponent/SubComputed/SubComputedOption.d.ts +2 -2
- package/dist/api/SubComponent/SubData/SubDataOption.d.ts +3 -4
- package/dist/api/SubComponent/SubEvents/SubEventsOptions.d.ts +2 -2
- package/dist/api/SubComponent/SubInherit/SubInheritOption.d.ts +2 -2
- package/dist/api/SubComponent/SubMethods/SubMethodsOption.d.ts +2 -2
- package/dist/api/SubComponent/SubStore/SubStoreOption.d.ts +3 -4
- package/dist/api/SubComponent/index.d.ts +3 -4
- package/package.json +4 -6
- package/src/api/DefineComponent/ReturnType/test/normalComponentDoc.test.ts +10 -0
- package/src/api/DefineComponent/assignOptions/computedWatchHandle/computedUpdater.ts +3 -3
- package/src/api/DefineComponent/assignOptions/computedWatchHandle/data-tracer.ts +3 -25
- package/src/api/DefineComponent/assignOptions/computedWatchHandle/initComputed.ts +3 -2
- package/src/api/DefineComponent/assignOptions/index.ts +14 -1
- package/src/api/RootComponent/Computed/ComputedOption.ts +6 -1
- package/src/api/RootComponent/Computed/GetComputedDoc.ts +3 -1
- package/src/api/RootComponent/Computed/test/error.test.ts +2 -2
- package/src/api/RootComponent/Computed/test/normal.test.ts +13 -11
- package/src/api/RootComponent/CustomEvents/CustomEventsOption.ts +3 -3
- package/src/api/RootComponent/CustomEvents/GetCustomEventDoc.ts +1 -3
- package/src/api/RootComponent/CustomEvents/test/GetShortEventDoc.test.ts +1 -2
- package/src/api/RootComponent/CustomEvents/test/normal.test.ts +1 -2
- package/src/api/RootComponent/Data/DataOption.ts +2 -2
- package/src/api/RootComponent/Data/test/normal.test.ts +2 -0
- package/src/api/RootComponent/Instance/RootComponentInstance.ts +4 -1
- package/src/api/RootComponent/Instance/test/cloneData/error.test.ts +31 -0
- package/src/api/RootComponent/Instance/test/cloneData/normal.test.ts +53 -0
- package/src/api/RootComponent/Methods/MethodsOption.ts +2 -2
- package/src/api/RootComponent/Properties/PropertiesOption.ts +2 -2
- package/src/api/RootComponent/Properties/test/normalRequired.test.ts +3 -3
- package/src/api/RootComponent/Store/StoreOption.ts +2 -2
- package/src/api/RootComponent/index.ts +6 -2
- package/src/api/SubComponent/SubComputed/SubComputedOption.ts +2 -2
- package/src/api/SubComponent/SubComputed/test/error.test.ts +3 -15
- package/src/api/SubComponent/SubComputed/test/normal.test.ts +0 -13
- package/src/api/SubComponent/SubData/SubDataOption.ts +4 -5
- package/src/api/SubComponent/SubData/test/normal.test.ts +0 -11
- package/src/api/SubComponent/SubEvents/SubEventsOptions.ts +2 -2
- package/src/api/SubComponent/SubInherit/SubInheritOption.ts +2 -2
- package/src/api/SubComponent/SubInstance/test/cloneData/error.test.ts +22 -0
- package/src/api/SubComponent/SubInstance/test/cloneData/normal.test.ts +73 -0
- package/src/api/SubComponent/SubMethods/SubMethodsOption.ts +2 -2
- package/src/api/SubComponent/SubStore/SubStoreOption.ts +4 -5
- package/src/api/SubComponent/SubStore/test/error.test.ts +0 -5
- package/src/api/SubComponent/SubStore/test/normal.test.ts +1 -8
- package/src/api/SubComponent/index.ts +12 -12
- package/src/types/Extra.ts +1 -1
- package/dist/types/Extra.d.ts +0 -1
- package/dist/types/Extra.js +0 -2
- package/dist/types/Extra.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,21 @@
|
|
|
4
4
|
|
|
5
5
|
* 解决DetailedType不接收接口类型的错误 ([ae8acbf](https://github.com/missannil/annil/commit/ae8acbfc2e62f99db565c448ad9253aa549e78bb))
|
|
6
6
|
|
|
7
|
+
## [1.6.1](https://github.com/missannil/annil/compare/v1.6.0...v1.6.1) (2024-02-02)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* 修正自定义事件文档类型,去除readonlyDeep ([b4d329b](https://github.com/missannil/annil/commit/b4d329b8c1b90407fd714fa42784c2dcb0c705f8))
|
|
13
|
+
* 用deepClone代替unwarp以修复计算属性返回数据包含代理对象 ([38cc56a](https://github.com/missannil/annil/commit/38cc56a477a8adcaaf73f4cbef44cd8b701a175d))
|
|
14
|
+
|
|
15
|
+
## [1.6.0](https://github.com/missannil/annil/compare/v1.5.15...v1.6.0) (2024-02-01)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* 组件实例增加cloneData字段 ([a2bc52d](https://github.com/missannil/annil/commit/a2bc52de20649a735ec860cdaae2bb411028b5fe))
|
|
21
|
+
|
|
7
22
|
## [1.5.15](https://github.com/missannil/annil/compare/v1.5.14...v1.5.15) (2024-01-15)
|
|
8
23
|
|
|
9
24
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { deepClone } from "../../../../utils/deepClone";
|
|
2
|
+
import { deepProxy } from "./data-tracer";
|
|
2
3
|
import { getPathsValue } from "./getPathsValue";
|
|
3
4
|
import { isEqual } from "./isEqual";
|
|
4
5
|
export function computedUpdater(isUpdated = false) {
|
|
@@ -16,7 +17,7 @@ export function computedUpdater(isUpdated = false) {
|
|
|
16
17
|
const newDependences = [];
|
|
17
18
|
const newValue = itemCache.method.call({ data: deepProxy(this.data, newDependences) });
|
|
18
19
|
this.setData({
|
|
19
|
-
[key]:
|
|
20
|
+
[key]: deepClone(newValue),
|
|
20
21
|
});
|
|
21
22
|
isUpdated = true;
|
|
22
23
|
this.data.__computedCache__[key].dependences = newDependences;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computedUpdater.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/assignOptions/computedWatchHandle/computedUpdater.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"computedUpdater.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/assignOptions/computedWatchHandle/computedUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,UAAU,eAAe,CAAiB,SAAS,GAAG,KAAK;IAC/D,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,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YAExC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAGhE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,GAAG,IAAI,CAAC;gBAEf,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,GAAyB,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;YAGvF,IAAI,CAAC,OAAO,CAAC;gBACX,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC;aAC3B,CAAC,CAAC;YAEH,SAAS,GAAG,IAAI,CAAC;YAGjB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC;YAG9D,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
+
import { deepClone } from "../../../../utils/deepClone";
|
|
1
2
|
export function deepProxy(data, dependences, basePath = []) {
|
|
2
3
|
const handler = {
|
|
3
4
|
get(target, prop) {
|
|
4
|
-
if (prop === "__rawObject__")
|
|
5
|
-
return target;
|
|
6
5
|
const val = target[prop];
|
|
7
6
|
if (basePath.length !== 0) {
|
|
8
7
|
const lastDependences = dependences[dependences.length - 1];
|
|
@@ -11,7 +10,7 @@ export function deepProxy(data, dependences, basePath = []) {
|
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
12
|
const curPath = basePath.concat(prop);
|
|
14
|
-
dependences.push({ paths: curPath, val:
|
|
13
|
+
dependences.push({ paths: curPath, val: deepClone(val) });
|
|
15
14
|
if (!Object.prototype.hasOwnProperty.call(target, prop) || typeof val === "function") {
|
|
16
15
|
return typeof val === "function" ? val.bind(target) : val;
|
|
17
16
|
}
|
|
@@ -25,14 +24,4 @@ export function deepProxy(data, dependences, basePath = []) {
|
|
|
25
24
|
};
|
|
26
25
|
return new Proxy(data, handler);
|
|
27
26
|
}
|
|
28
|
-
export function unwrap(wrapped) {
|
|
29
|
-
if (typeof wrapped !== "object" || wrapped === null) {
|
|
30
|
-
return wrapped;
|
|
31
|
-
}
|
|
32
|
-
const originalValue = wrapped.__rawObject__;
|
|
33
|
-
if (originalValue) {
|
|
34
|
-
wrapped = originalValue;
|
|
35
|
-
}
|
|
36
|
-
return wrapped;
|
|
37
|
-
}
|
|
38
27
|
//# sourceMappingURL=data-tracer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-tracer.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/assignOptions/computedWatchHandle/data-tracer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-tracer.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/assignOptions/computedWatchHandle/data-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGxD,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,WAAiC,EACjC,WAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG;QACd,GAAG,CAAmB,MAAS,EAAE,IAAsB;YACrD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAEzB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAE1B,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE5D,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAE7D,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAItC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAG1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAErF,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5D,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,GAAG,CAAC;YAExD,OAAO,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,GAAG,CAAC,OAAe,EAAE,IAAY;YAC/B,MAAM,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;QAC/B,CAAC;KACF,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { deepClone } from "../../../../utils/deepClone";
|
|
2
|
+
import { deepProxy } from "./data-tracer";
|
|
2
3
|
function isValidDependences(dependences, computedKeys) {
|
|
3
4
|
for (const { paths: path, val } of dependences) {
|
|
4
5
|
if ((val === undefined) && computedKeys.includes(path[0])) {
|
|
@@ -14,7 +15,7 @@ export function getItemCache(initAllData, computedKeys, computedFunc) {
|
|
|
14
15
|
return {
|
|
15
16
|
dependences: uniqueDependences(dependences),
|
|
16
17
|
method: computedFunc,
|
|
17
|
-
value:
|
|
18
|
+
value: deepClone(initValue),
|
|
18
19
|
};
|
|
19
20
|
}
|
|
20
21
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initComputed.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/assignOptions/computedWatchHandle/initComputed.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"initComputed.js","sourceRoot":"","sources":["../../../../../src/api/DefineComponent/assignOptions/computedWatchHandle/initComputed.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import type { ComputedCache } from "./computedWatchHandle/initComputed";
|
|
|
13
13
|
type InstanceInnerFields = {
|
|
14
14
|
data: OptionsInnerFields["data"];
|
|
15
15
|
disposer: Record<string, Func>;
|
|
16
|
+
cloneData: OptionsInnerFields["data"];
|
|
16
17
|
} & OptionsInnerFields["methods"];
|
|
17
18
|
export type Instance = (ComponentInstance | PageInstance) & InstanceInnerFields;
|
|
18
19
|
export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch" | "observers", Record<string, Func[]>>;
|
|
@@ -17,6 +17,13 @@ export function isPageCheck(isPage) {
|
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
+
function addCloneDataToInstance() {
|
|
21
|
+
this.cloneData = new Proxy(this.data, {
|
|
22
|
+
get: (target, key) => {
|
|
23
|
+
return deepClone(target)[key];
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
20
27
|
function onLoadReceivedDataHandle(option) {
|
|
21
28
|
const innerData = option[INNERMARKER.url];
|
|
22
29
|
if (innerData === undefined)
|
|
@@ -193,6 +200,7 @@ export function assignOptions(defineComponentOption) {
|
|
|
193
200
|
&& hijack(finalOptionsForComponent.pageLifetimes, "load", [loadReceivedDataHandle]);
|
|
194
201
|
hijack(finalOptionsForComponent.methods, "onLoad", [onLoadReceivedDataHandle]);
|
|
195
202
|
hijack(finalOptionsForComponent.lifetimes, "attached", [isPageCheck(rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage)]);
|
|
203
|
+
hijack(finalOptionsForComponent.lifetimes, "created", [addCloneDataToInstance]);
|
|
196
204
|
finalOptionsForComponent.isPage
|
|
197
205
|
&& finalOptionsForComponent.options && Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
|
|
198
206
|
initStore(finalOptionsForComponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/assignOptions/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/DefineComponent/assignOptions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DuplicateFieldValidator } from "hry-types/src/Generic/DuplicateFieldValidator";
|
|
2
2
|
import type { ComputedConstraint } from "./ComputedConstraint";
|
|
3
|
-
export type ComputedOption<TComputed extends ComputedConstraint, CompareKeys extends PropertyKey> = {
|
|
4
|
-
computed?: TComputed & DuplicateFieldValidator<TComputed, CompareKeys>;
|
|
3
|
+
export type ComputedOption<TComputed extends ComputedConstraint, CompareKeys extends PropertyKey, Instance extends object> = {
|
|
4
|
+
computed?: TComputed & ThisType<Instance> & DuplicateFieldValidator<TComputed, CompareKeys>;
|
|
5
5
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
2
|
import type { CustomEventConstraint } from "./CustomEventConstraint";
|
|
3
3
|
export type CustomEventsOption<TCustomEvents extends CustomEventConstraint, EventsKeys extends PropertyKey> = {
|
|
4
|
-
customEvents?: TCustomEvents &
|
|
4
|
+
customEvents?: TCustomEvents & G.IllegalFieldValidator<TCustomEvents, "bubbles" | "composed" | "capturePhase", 1, "options"> & G.DuplicateFieldValidator<TCustomEvents, EventsKeys, "与events字段重复">;
|
|
5
5
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { ReadonlyDeep } from "hry-types/src/Any/ReadonlyDeep";
|
|
2
1
|
import type { DetailedType } from "../../../types/DetailedType";
|
|
3
2
|
import type { InferDetailedType } from "../../../types/InferDetailedType";
|
|
4
3
|
import type { CustomEventConstraint, FullCustomEvents, ShortCustomeEvents, SimpleCustomeEventsList } from "./CustomEventConstraint";
|
|
5
4
|
import type { AddTagForCustomEventsDoc } from "./CustomEventsTag";
|
|
6
|
-
export type GetShortCustomEventsDoc<T extends ShortCustomeEvents> = T extends DetailedType ?
|
|
5
|
+
export type GetShortCustomEventsDoc<T extends ShortCustomeEvents> = T extends DetailedType ? InferDetailedType<T> : T extends null ? null : T extends undefined ? undefined : T extends SimpleCustomeEventsList ? GetShortCustomEventsDoc<T[number]> : never;
|
|
7
6
|
export type GetFullCustomEventsDoc<T extends FullCustomEvents> = GetShortCustomEventsDoc<T["detail"]> | AddTagForCustomEventsDoc<T["options"]>;
|
|
8
7
|
export type GetCustomEventDoc<T extends CustomEventConstraint> = {
|
|
9
8
|
[k in keyof T]: T[k] extends ShortCustomeEvents ? GetShortCustomEventsDoc<T[k]> : GetShortCustomEventsDoc<T[k]["detail"]> | AddTagForCustomEventsDoc<T[k]["options"]>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
2
|
export type DataOption<TData extends object, PropertiesKeys extends PropertyKey> = {
|
|
3
|
-
data?: TData &
|
|
3
|
+
data?: TData & G.DuplicateFieldValidator<TData, PropertiesKeys, "与properties字段重复">;
|
|
4
4
|
};
|
|
@@ -3,16 +3,19 @@ import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
|
3
3
|
import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersection";
|
|
4
4
|
import type { IReactionDisposer } from "mobx";
|
|
5
5
|
import type { Assign } from "../../../types/Assign";
|
|
6
|
+
import type { ComputeObject } from "../../../types/ComputeObj";
|
|
6
7
|
import type { WMComponentInstance, WMInstanceMethods, WMPageInstance } from "../../../types/OfficialTypeAlias";
|
|
7
8
|
import type { IInjectData, IInjectMethods } from "../../InstanceInject/instanceConfig";
|
|
8
9
|
import type { CustomEventMethods } from "./CustomEventMethods";
|
|
9
10
|
import type { CustomSetData } from "./CustomSetData";
|
|
10
|
-
export type RootComponentInstance<TIsPage extends boolean, TMethods extends object, TDataForSetData extends object, AllData extends object, CustomEventsDoc extends object, StoreDoc extends object
|
|
11
|
+
export type RootComponentInstance<TIsPage extends boolean, TMethods extends object, TDataForSetData extends object, AllData extends object, CustomEventsDoc extends object, StoreDoc extends object, instanceData = ComputeObject<Assign<IInjectData, ComputeIntersection<AllData>>>> = IfExtends<false, TIsPage, WMComponentInstance, WMPageInstance> & Omit<WMInstanceMethods<{}>, "setData"> & CustomSetData<TDataForSetData> & IfExtends<{}, StoreDoc, unknown, {
|
|
11
12
|
disposer: {
|
|
12
13
|
[k in keyof StoreDoc]: IReactionDisposer;
|
|
13
14
|
};
|
|
14
15
|
}> & Assign<IInjectMethods, TMethods & CustomEventMethods<CustomEventsDoc>> & {
|
|
15
|
-
data: ReadonlyDeep<
|
|
16
|
+
data: ReadonlyDeep<instanceData>;
|
|
17
|
+
} & {
|
|
18
|
+
cloneData: ComputeObject<Assign<IInjectData, ComputeIntersection<AllData>>>;
|
|
16
19
|
};
|
|
17
20
|
export type ComponentInstance = RootComponentInstance<false, {}, {}, {}, {}, {}>;
|
|
18
21
|
export type PageInstance = RootComponentInstance<true, {}, {}, {}, {}, {}>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
2
|
import type { MethodsConstraint } from "./MethodsConstraint";
|
|
3
3
|
export type MethodsOption<TMethods extends MethodsConstraint, DuplicateField extends PropertyKey> = {
|
|
4
|
-
methods?: TMethods &
|
|
4
|
+
methods?: TMethods & G.DuplicateFieldValidator<TMethods, DuplicateField>;
|
|
5
5
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
2
|
import type { Validators } from "../../../types/Validators";
|
|
3
3
|
import type { PropertiesConstraint } from "./PropertiesConstraint";
|
|
4
4
|
import type { PropertiesValueValidator } from "./PropertiesValueValidator";
|
|
5
5
|
export type PropertiesOption<TProperties extends PropertiesConstraint> = {
|
|
6
6
|
properties?: TProperties & Validators<[
|
|
7
7
|
PropertiesValueValidator<TProperties>,
|
|
8
|
-
|
|
8
|
+
G.IllegalFieldValidator<TProperties, "value" | "type" | "optionalTypes", 1>
|
|
9
9
|
]>;
|
|
10
10
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
2
|
import type { StoreConstraint } from "./StoreConstraint";
|
|
3
3
|
export type StoreOption<TStore extends StoreConstraint, TDuplicateKeys extends PropertyKey> = {
|
|
4
|
-
store?: TStore &
|
|
4
|
+
store?: TStore & G.DuplicateFieldValidator<TStore, TDuplicateKeys, "字段重复">;
|
|
5
5
|
};
|
|
@@ -5,7 +5,7 @@ import type { ComputeIntersection } from "hry-types/src/Object/_api";
|
|
|
5
5
|
import type { ComputeObject } from "../../types/ComputeObj";
|
|
6
6
|
import type { WMCompOtherOption } from "../../types/OfficialTypeAlias";
|
|
7
7
|
import type { ComponentDoc } from "../DefineComponent/ReturnType/ComponentDoc";
|
|
8
|
-
import type { IInjectStore } from "../InstanceInject/instanceConfig";
|
|
8
|
+
import type { IInjectData, IInjectStore } from "../InstanceInject/instanceConfig";
|
|
9
9
|
import type { ComputedConstraint } from "./Computed/ComputedConstraint";
|
|
10
10
|
import type { ComputedOption } from "./Computed/ComputedOption";
|
|
11
11
|
import type { GetComputedDoc } from "./Computed/GetComputedDoc";
|
|
@@ -31,7 +31,9 @@ import type { GetStoreDoc } from "./Store/GeTStoreDoc";
|
|
|
31
31
|
import type { StoreConstraint } from "./Store/StoreConstraint";
|
|
32
32
|
import type { StoreOption } from "./Store/StoreOption";
|
|
33
33
|
import type { WatchOption } from "./Watch/WatchOption";
|
|
34
|
-
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)
|
|
34
|
+
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), {
|
|
35
|
+
data: ComputeObject<DataDoc & Required<PropertiesDoc> & StoreDoc & ComputedDoc & IInjectData>;
|
|
36
|
+
}> & 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>>;
|
|
35
37
|
type RootComponentConstructor<TComponentDocList extends ComponentDoc[]> = {
|
|
36
38
|
<TEvents extends EventsConstraint<TComponentDocList>, TIsPage extends boolean = false, const TProperties extends PropertiesConstraint = {}, TData extends object = {}, TStore extends StoreConstraint = {}, 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, TIsPage>, DataDoc extends object = TData, StoreDoc extends object = 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
39
|
isPage: true;
|
|
@@ -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":"AA2IA,MAAM,UAAU,aAAa;IAM3B,OAAO,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC;AACnC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
2
|
export type SubComputedOption<TComputed extends object, legal extends PropertyKey> = {
|
|
3
|
-
computed?: TComputed &
|
|
3
|
+
computed?: TComputed & G.IllegalFieldValidator<TComputed, legal, 0, "", "重复或无效的字段">;
|
|
4
4
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
data?: TSubData & V.IllegalFieldValidator<TSubData, legalKeys | InnerFields<TPrefix>, 0, "", "子组件无需此字段或与Inherit字段重复">;
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
|
+
export type SubDataOption<TSubData extends object, legalKeys extends PropertyKey> = {
|
|
3
|
+
data?: TSubData & G.IllegalFieldValidator<TSubData, legalKeys, 0, "", "子组件无需此字段或与Inherit字段重复">;
|
|
5
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
2
|
export type SubEventsOption<TSubEvents, SubEventsDoc extends object, legalKeys extends PropertyKey> = {
|
|
3
|
-
events?: TSubEvents &
|
|
3
|
+
events?: TSubEvents & G.IllegalFieldValidator<SubEventsDoc, legalKeys>;
|
|
4
4
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
2
|
export type SubInheritOption<TInherit extends object, legalKeys extends PropertyKey> = {
|
|
3
|
-
inherit?: TInherit &
|
|
3
|
+
inherit?: TInherit & G.IllegalFieldValidator<TInherit, legalKeys, 0, "">;
|
|
4
4
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
2
|
import type { PrefixValidator } from "hry-types/src/Generic/PrefixValidator";
|
|
3
3
|
import type { SubMethodsConstraint } from "./SubMethodsConstraint";
|
|
4
4
|
export type SubMethodsOption<TSubMethods extends SubMethodsConstraint, TPrefix extends string, ExcludedKeys extends PropertyKey> = {
|
|
5
|
-
methods?: TSubMethods & PrefixValidator<TSubMethods, TPrefix> &
|
|
5
|
+
methods?: TSubMethods & PrefixValidator<TSubMethods, TPrefix> & G.DuplicateFieldValidator<TSubMethods, ExcludedKeys>;
|
|
6
6
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
store?: TSubStore & V.IllegalFieldValidator<TSubStore, legalKeys | InnerFields<TPrefix>, 0, "", "与inherit和data字段重复或前缀错误">;
|
|
1
|
+
import type { G } from "hry-types";
|
|
2
|
+
export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyKey> = {
|
|
3
|
+
store?: TSubStore & G.IllegalFieldValidator<TSubStore, legalKeys, 0, "", "与inherit和data字段重复或前缀错误">;
|
|
5
4
|
};
|
|
@@ -5,7 +5,6 @@ import type { GetComponentPrefix } from "../../types/GetComponentPrefix";
|
|
|
5
5
|
import type { ReplacePrefix } from "../../types/ReplacePrefix";
|
|
6
6
|
import type { ComponentDoc } from "../DefineComponent/ReturnType/ComponentDoc";
|
|
7
7
|
import type { Func } from "hry-types/src/Misc/Func";
|
|
8
|
-
import type { Extra } from "../../types/Extra";
|
|
9
8
|
import type { InnerFields } from "../../types/InnerData";
|
|
10
9
|
import type { WMCompOtherOption } from "../../types/OfficialTypeAlias";
|
|
11
10
|
import type { Replace } from "../../types/Replace";
|
|
@@ -37,11 +36,11 @@ import type { CreateSubComponentDoc } from "./SubReturnType/CreateSubComponentDo
|
|
|
37
36
|
import type { SubStoreConstraint } from "./SubStore/SubStoreConstraint";
|
|
38
37
|
import type { SubStoreOption } from "./SubStore/SubStoreOption";
|
|
39
38
|
import type { SubWatchOption } from "./SubWatch/SubWatchOption";
|
|
40
|
-
type Options<RootDoc extends RootComponentDoc, IsPage extends boolean, CurrentCompDoc extends ComponentDoc, Prefix extends string, AllRootDataDoc extends object, TInherit extends object, TSubData extends object, TSubStore extends object, TSubComputed extends object, TEvents extends object, TSubMethods extends SubMethodsConstraint, InheritDoc extends object, SubDataDoc extends object, SubStoreDoc extends object, SubComputedDoc extends object, SubEventsDoc extends object, SubMethodsDoc extends object, CompDocKeys extends PropertyKey = keyof CurrentCompDoc["properties"]> = SubInheritOption<TInherit, CompDocKeys> & SubDataOption<TSubData, Exclude<CompDocKeys
|
|
39
|
+
type Options<RootDoc extends RootComponentDoc, IsPage extends boolean, CurrentCompDoc extends ComponentDoc, Prefix extends string, AllRootDataDoc extends object, TInherit extends object, TSubData extends object, TSubStore extends object, TSubComputed extends object, TEvents extends object, TSubMethods extends SubMethodsConstraint, InheritDoc extends object, SubDataDoc extends object, SubStoreDoc extends object, SubComputedDoc extends object, SubEventsDoc extends object, SubMethodsDoc extends object, CompDocKeys extends PropertyKey = keyof CurrentCompDoc["properties"]> = SubInheritOption<TInherit, CompDocKeys> & SubDataOption<TSubData, Exclude<CompDocKeys, (keyof InheritDoc)> | InnerFields<Prefix>> & SubStoreOption<TSubStore, Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc))> | InnerFields<Prefix>> & SubComputedOption<TSubComputed, Exclude<CompDocKeys, (keyof (InheritDoc & SubDataDoc & SubStoreDoc))> | InnerFields<Prefix>> & SubEventsOption<TEvents, SubEventsDoc, keyof SubEventsConstraint<CurrentCompDoc>> & SubMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)> & SubPageLifetimesOption<IsPage, NonNullable<RootDoc["properties"]>> & SubLifetimesOption & SubWatchOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers" | "relations">> & SubObserversOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & ThisType<SubInstance<SubMethodsDoc & RootDoc["methods"], Replace<SubDataDoc, Required<CurrentCompDoc["properties"]>>, AllRootDataDoc & Replace<SubDataDoc & SubComputedDoc & SubStoreDoc, Required<CurrentCompDoc["properties"]>>, NonNullable<RootDoc["customEvents"]>, SubStoreDoc>>;
|
|
41
40
|
type SubComponentConstructor<TRootDoc extends RootComponentDoc, TOriginalCompDoc extends ComponentDoc, TSupplementalPrefix extends string = "", IsPage extends boolean = TRootDoc["isPage"] extends true ? true : false, CurrentPrefix extends string = `${GetComponentPrefix<TOriginalCompDoc>}${Capitalize<TSupplementalPrefix>}`, CurrentCompDoc extends ComponentDoc = IfExtends<TSupplementalPrefix, "", TOriginalCompDoc, ReplacePrefix<TOriginalCompDoc, CurrentPrefix>>, AllRootDataDoc extends object = Required<TRootDoc["properties"]> & TRootDoc["data"] & TRootDoc["computed"] & TRootDoc["store"]> = {
|
|
42
|
-
<TInherit extends InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TSubData extends SubDataConstraint<Omit<Required<CurrentCompDoc["properties"]
|
|
41
|
+
<TInherit extends InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TSubData extends SubDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubStore extends SubStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TEvents extends SubEventsConstraint<CurrentCompDoc>, TSubComputed extends SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubMethods extends SubMethodsConstraint = {}, InheritDoc extends object = IfExtends<InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TInherit, {}, TInherit>, SubDataDoc extends object = IfExtends<SubDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubData, {}, TSubData>, SubStoreDoc extends object = IfExtends<SubStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubStore, {}, {
|
|
43
42
|
[k in keyof TSubStore]: ReturnType<NonNullable<TSubStore[k]>>;
|
|
44
|
-
}>, SubComputedDoc extends object = IfExtends<SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]
|
|
43
|
+
}>, SubComputedDoc extends object = IfExtends<SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)> & Record<InnerFields<CurrentPrefix>, unknown>>, TSubComputed, {}, GetSubComputedDoc<TSubComputed>>, SubEventsDoc extends object = IfExtends<SubEventsConstraint<CurrentCompDoc>, TEvents, {}, TEvents>, SubMethodsDoc extends object = TSubMethods, MissingRequiredField extends PropertyKey = Exclude<RequiredKeys<NonNullable<CurrentCompDoc["properties"]>>, keyof (InheritDoc & SubDataDoc & SubStoreDoc & IfExtends<SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)>>, TSubComputed, {}, GetSubComputedDoc<TSubComputed>>)>>(options: Options<TRootDoc, IsPage, CurrentCompDoc, CurrentPrefix, AllRootDataDoc, TInherit, TSubData, TSubStore, TSubComputed, TEvents, TSubMethods, InheritDoc, SubDataDoc, SubStoreDoc, SubComputedDoc, SubEventsDoc, SubMethodsDoc>): CreateSubComponentDoc<NonNullable<TOriginalCompDoc["customEvents"]>, SubEventsDoc, MissingRequiredField>;
|
|
45
44
|
};
|
|
46
45
|
export declare function SubComponent<RootDoc extends RootComponentDoc, CompDoc extends ComponentDoc, Prefix extends string = "">(): IfExtends<EmptyObject, CompDoc, (opt: EmptyObject) => never, SubComponentConstructor<RootDoc, CompDoc, Prefix>>;
|
|
47
46
|
export type SubComponentTrueOptions = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "annil",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"description": "微信小程序(原生开发)插件",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "src/index.ts",
|
|
@@ -14,10 +14,8 @@
|
|
|
14
14
|
"prepare": "husky install",
|
|
15
15
|
"lint": "eslint . --fix && npm run fmt",
|
|
16
16
|
"fmt": "dprint fmt",
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"type": "npm run test:type",
|
|
20
|
-
"jest": "npm run test:jest",
|
|
17
|
+
"type": "tsc --watch",
|
|
18
|
+
"jest": "jest --watch",
|
|
21
19
|
"build": "tsc -p tsconfig.build.json"
|
|
22
20
|
},
|
|
23
21
|
"devDependencies": {
|
|
@@ -28,6 +26,7 @@
|
|
|
28
26
|
"commitlint": "^17.6.5",
|
|
29
27
|
"eslint": "^8.54.0",
|
|
30
28
|
"eslint-plugin-tsdoc": "^0.2.17",
|
|
29
|
+
"hry-types": "^0.18.1",
|
|
31
30
|
"husky": "^8.0.3",
|
|
32
31
|
"jest": "^29.7.0",
|
|
33
32
|
"jest-environment-jsdom": "^29.7.0",
|
|
@@ -54,7 +53,6 @@
|
|
|
54
53
|
"author": "missannil",
|
|
55
54
|
"license": "MIT",
|
|
56
55
|
"peerDependencies": {
|
|
57
|
-
"hry-types": "^0.17.0",
|
|
58
56
|
"miniprogram-api-typings": "^3.12.2"
|
|
59
57
|
}
|
|
60
58
|
}
|
|
@@ -197,3 +197,13 @@ const ComponetDoc = DefineComponent({
|
|
|
197
197
|
});
|
|
198
198
|
|
|
199
199
|
Checking<typeof ComponetDoc, {}, Test.Pass>;
|
|
200
|
+
|
|
201
|
+
// 8 自定义事件文档类型与定义的类型相同
|
|
202
|
+
const rootComponent8 = RootComponent()({
|
|
203
|
+
customEvents: {
|
|
204
|
+
// 减少商品
|
|
205
|
+
decrease: Object as DetailedType<Mock_User>,
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
Checking<(typeof rootComponent8)["customEvents"]["decrease"], Mock_User, Test.Pass>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { deepClone } from "../../../../utils/deepClone";
|
|
1
2
|
import type { Instance } from "..";
|
|
2
|
-
|
|
3
|
-
import { deepProxy, unwrap } from "./data-tracer";
|
|
3
|
+
import { deepProxy } from "./data-tracer";
|
|
4
4
|
import { getPathsValue } from "./getPathsValue";
|
|
5
5
|
|
|
6
6
|
import { isEqual } from "./isEqual";
|
|
@@ -27,7 +27,7 @@ export function computedUpdater(this: Instance, isUpdated = false): boolean {
|
|
|
27
27
|
|
|
28
28
|
// 更新值不会立即再次进入**函数,而是当前**函数运行完毕后触发**函数,
|
|
29
29
|
this.setData({
|
|
30
|
-
[key]:
|
|
30
|
+
[key]: deepClone(newValue),
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
isUpdated = true;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { deepClone } from "../../../../utils/deepClone";
|
|
1
2
|
import type { ComputedDependence } from "./computedUpdater";
|
|
2
3
|
|
|
3
4
|
export function deepProxy(
|
|
@@ -6,16 +7,8 @@ export function deepProxy(
|
|
|
6
7
|
basePath: string[] = [],
|
|
7
8
|
): object {
|
|
8
9
|
const handler = {
|
|
9
|
-
get(target:
|
|
10
|
-
// // 得到原始的对象 在unwrap时使用
|
|
11
|
-
// console.log(target, prop);
|
|
12
|
-
|
|
13
|
-
if (prop === "__rawObject__") return target;
|
|
14
|
-
// @ts-ignore 隐式索引
|
|
10
|
+
get<T extends object>(target: T, prop: keyof T & string) {
|
|
15
11
|
const val = target[prop];
|
|
16
|
-
|
|
17
|
-
// console.log("获取依赖", prop, val);
|
|
18
|
-
|
|
19
12
|
// 依赖长度不为0时 去重
|
|
20
13
|
if (basePath.length !== 0) {
|
|
21
14
|
// 依赖去重
|
|
@@ -30,7 +23,7 @@ export function deepProxy(
|
|
|
30
23
|
|
|
31
24
|
// console.log(prop, val,'in');
|
|
32
25
|
|
|
33
|
-
dependences.push({ paths: curPath, val:
|
|
26
|
+
dependences.push({ paths: curPath, val: deepClone(val) });
|
|
34
27
|
|
|
35
28
|
// 自身方法或原型属性不代理
|
|
36
29
|
if (!Object.prototype.hasOwnProperty.call(target, prop) || typeof val === "function") {
|
|
@@ -42,7 +35,6 @@ export function deepProxy(
|
|
|
42
35
|
|
|
43
36
|
return deepProxy(val, dependences, curPath);
|
|
44
37
|
},
|
|
45
|
-
/* istanbul ignore next */
|
|
46
38
|
set(_target: object, prop: string) {
|
|
47
39
|
throw Error(`${prop}字段是只读的`);
|
|
48
40
|
},
|
|
@@ -50,17 +42,3 @@ export function deepProxy(
|
|
|
50
42
|
|
|
51
43
|
return new Proxy(data, handler);
|
|
52
44
|
}
|
|
53
|
-
|
|
54
|
-
export function unwrap(wrapped: any): unknown {
|
|
55
|
-
// 非引用值 直接返回
|
|
56
|
-
if (typeof wrapped !== "object" || wrapped === null) {
|
|
57
|
-
return wrapped;
|
|
58
|
-
}
|
|
59
|
-
// 是引用值 取原值
|
|
60
|
-
const originalValue = wrapped.__rawObject__;
|
|
61
|
-
if (originalValue) {
|
|
62
|
-
wrapped = originalValue;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return wrapped;
|
|
66
|
-
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { Func } from "hry-types/src/Misc/Func";
|
|
2
2
|
import type { FinalOptionsOfComponent } from "..";
|
|
3
3
|
|
|
4
|
+
import { deepClone } from "../../../../utils/deepClone";
|
|
4
5
|
import type { ComputedDependence } from "./computedUpdater";
|
|
5
|
-
import { deepProxy
|
|
6
|
+
import { deepProxy } from "./data-tracer";
|
|
6
7
|
|
|
7
8
|
type ItemCache = {
|
|
8
9
|
dependences: ComputedDependence[];
|
|
@@ -41,7 +42,7 @@ export function getItemCache(
|
|
|
41
42
|
// 去重 避免 如: ` age(){ return this.data.xxx.num + this.data.xxx.str + this.data.xxx} ` 造成的多个依赖相同情况。应就要一个 xxx
|
|
42
43
|
dependences: uniqueDependences(dependences),
|
|
43
44
|
method: computedFunc,
|
|
44
|
-
value:
|
|
45
|
+
value: deepClone(initValue),
|
|
45
46
|
};
|
|
46
47
|
} else {
|
|
47
48
|
/**
|