annil 1.5.8 → 1.5.10

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.
Files changed (88) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +1 -1
  3. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/computedUpdater.d.ts +6 -0
  4. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/computedUpdater.js +3 -3
  5. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/computedUpdater.js.map +1 -0
  6. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/data-tracer.d.ts +1 -1
  7. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/data-tracer.js.map +1 -0
  8. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/getPathsValue.js.map +1 -0
  9. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPropertiesValue.d.ts +1 -1
  10. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPropertiesValue.js +1 -1
  11. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/getPropertiesValue.js.map +1 -0
  12. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/index.d.ts +2 -0
  13. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/index.js +69 -0
  14. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/index.js.map +1 -0
  15. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/initComputed.d.ts +8 -5
  16. package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/initComputed.js +1 -1
  17. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/initComputed.js.map +1 -0
  18. package/dist/api/DefineComponent/assignOptions/computedWatchHandle/isEqual.js.map +1 -0
  19. package/dist/api/DefineComponent/assignOptions/index.d.ts +49 -0
  20. package/dist/api/DefineComponent/{collectOptionsForComponent.js → assignOptions/index.js} +35 -23
  21. package/dist/api/DefineComponent/assignOptions/index.js.map +1 -0
  22. package/dist/api/DefineComponent/assignOptions/initStore/index.d.ts +2 -0
  23. package/dist/api/DefineComponent/assignOptions/initStore/index.js +12 -0
  24. package/dist/api/DefineComponent/assignOptions/initStore/index.js.map +1 -0
  25. package/dist/api/DefineComponent/index.d.ts +1 -1
  26. package/dist/api/DefineComponent/index.js +2 -2
  27. package/dist/api/DefineComponent/index.js.map +1 -1
  28. package/dist/api/InstanceInject/instanceConfig.d.ts +1 -1
  29. package/dist/api/InstanceInject/instanceConfig.js.map +1 -1
  30. package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.d.ts +1 -1
  31. package/dist/api/RootComponent/Observers/ObserversOption.d.ts +1 -1
  32. package/dist/api/SubComponent/index.d.ts +2 -1
  33. package/dist/api/SubComponent/index.js.map +1 -1
  34. package/dist/behaviors/BStore.js +1 -14
  35. package/dist/behaviors/BStore.js.map +1 -1
  36. package/dist/types/AssignValues.d.ts +9 -0
  37. package/dist/types/AssignValues.js +2 -0
  38. package/dist/types/AssignValues.js.map +1 -0
  39. package/dist/utils/deepClone.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/computedUpdater.ts +6 -5
  42. package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/data-tracer.ts +1 -1
  43. package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPropertiesValue.ts +3 -4
  44. package/src/api/DefineComponent/assignOptions/computedWatchHandle/index.ts +110 -0
  45. package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/initComputed.ts +13 -8
  46. package/src/api/DefineComponent/{collectOptionsForComponent.ts → assignOptions/index.ts} +108 -61
  47. package/src/api/DefineComponent/assignOptions/initStore/index.ts +16 -0
  48. package/src/api/DefineComponent/index.ts +3 -6
  49. package/src/api/DefineComponent/storeDataHandle/index.ts +30 -0
  50. package/src/api/InstanceInject/instanceConfig.ts +2 -1
  51. package/src/api/RootComponent/Lifetimes/LifetimesConstraint.ts +1 -1
  52. package/src/api/RootComponent/Observers/ObserversOption.ts +2 -2
  53. package/src/api/SubComponent/SubComputed/test/normal.test.ts +5 -5
  54. package/src/api/SubComponent/SubData/test/normal.test.ts +3 -3
  55. package/src/api/SubComponent/SubInstance/test/normal.test.ts +2 -2
  56. package/src/api/SubComponent/index.ts +3 -2
  57. package/src/behaviors/BStore.ts +4 -22
  58. package/src/behaviors/BbeforeCreated.ts +1 -1
  59. package/src/types/AssignValues.ts +26 -0
  60. package/src/utils/deepClone.ts +1 -2
  61. package/dist/api/DefineComponent/collectOptionsForComponent.d.ts +0 -31
  62. package/dist/api/DefineComponent/collectOptionsForComponent.js.map +0 -1
  63. package/dist/behaviors/BComputedAndWatch/computedUpdater.d.ts +0 -2
  64. package/dist/behaviors/BComputedAndWatch/computedUpdater.js.map +0 -1
  65. package/dist/behaviors/BComputedAndWatch/data-tracer.js.map +0 -1
  66. package/dist/behaviors/BComputedAndWatch/getPathsValue.js.map +0 -1
  67. package/dist/behaviors/BComputedAndWatch/getPropertiesValue.js.map +0 -1
  68. package/dist/behaviors/BComputedAndWatch/index.d.ts +0 -1
  69. package/dist/behaviors/BComputedAndWatch/index.js +0 -85
  70. package/dist/behaviors/BComputedAndWatch/index.js.map +0 -1
  71. package/dist/behaviors/BComputedAndWatch/initComputed.js.map +0 -1
  72. package/dist/behaviors/BComputedAndWatch/isEqual.js.map +0 -1
  73. package/dist/behaviors/BComputedAndWatch/types.d.ts +0 -24
  74. package/dist/behaviors/BComputedAndWatch/types.js +0 -2
  75. package/dist/behaviors/BComputedAndWatch/types.js.map +0 -1
  76. package/dist/utils/deleteProtoField.d.ts +0 -1
  77. package/dist/utils/deleteProtoField.js +0 -4
  78. package/dist/utils/deleteProtoField.js.map +0 -1
  79. package/src/behaviors/BComputedAndWatch/index.ts +0 -135
  80. package/src/behaviors/BComputedAndWatch/types.ts +0 -30
  81. package/src/utils/deleteProtoField.ts +0 -6
  82. /package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/data-tracer.js +0 -0
  83. /package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPathsValue.d.ts +0 -0
  84. /package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPathsValue.js +0 -0
  85. /package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/isEqual.d.ts +0 -0
  86. /package/dist/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/isEqual.js +0 -0
  87. /package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/getPathsValue.ts +0 -0
  88. /package/src/{behaviors/BComputedAndWatch → api/DefineComponent/assignOptions/computedWatchHandle}/isEqual.ts +0 -0
@@ -6,6 +6,7 @@ import type { ReplacePrefix } from "../../types/ReplacePrefix";
6
6
  import type { ComponentDoc } from "../DefineComponent/ReturnType/ComponentDoc";
7
7
 
8
8
  import type { Func } from "hry-types/src/Misc/Func";
9
+ import type { AssignValues } from "../../types/AssignValues";
9
10
  import type { WMCompOtherOption } from "../../types/OfficialTypeAlias";
10
11
  import type { IInjectStore } from "../InstanceInject/instanceConfig";
11
12
  import type { ComputedConstraint } from "../RootComponent/Computed/ComputedConstraint";
@@ -94,8 +95,8 @@ type Options<
94
95
  & ThisType<
95
96
  SubInstance<
96
97
  SubMethodsDoc & RootDoc["methods"],
97
- TSubData,
98
- AllRootDataDoc & SubDataDoc & SubComputedDoc & SubStoreDoc,
98
+ SubDataDoc,
99
+ AllRootDataDoc & AssignValues<SubDataDoc & SubComputedDoc & SubStoreDoc, Required<CurrentCompDoc["properties"]>>,
99
100
  RootDoc["customEvents"] & {},
100
101
  SubStoreDoc
101
102
  >
@@ -1,29 +1,11 @@
1
1
  import type mobx from "mobx";
2
-
3
- import type { FinalOptionsOfComponent } from "../api/DefineComponent/collectOptionsForComponent";
4
- import { deleteProtoField } from "../utils/deleteProtoField";
5
- import type { Instance } from "./BComputedAndWatch/types";
2
+ import type { Instance } from "../api/DefineComponent/assignOptions";
6
3
 
7
4
  export const BStore = Behavior({
8
- // @ts-ignore
9
- definitionFilter(options: FinalOptionsOfComponent) {
10
- // 初始化store
11
- const storeConfig = options.store;
12
- if (!storeConfig) return;
13
- const { toJS } = require("mobx") as typeof mobx;
14
- for (const key in storeConfig) {
15
- options.data[key] = toJS(storeConfig[key]());
16
-
17
- // 把响应式数据配置保留在methods的__storeConfig__字段下带入到组件实例中(不用函数返回方式也可以,但不符合methods字段类型),后续再从原型上删除。
18
- options.methods.__storeConfig__ = () => storeConfig;
19
- }
20
- },
21
5
  lifetimes: {
22
6
  created(this: Instance) {
23
- // 取出通过addStoreConfigToMethods函数带入的storeConfig
24
- const storeConfig = this.__storeConfig__?.();
7
+ const storeConfig = this.data.__storeConfig__;
25
8
  if (!storeConfig) return;
26
- deleteProtoField(this, "__storeConfig__");
27
9
 
28
10
  const { comparer, reaction, toJS } = require("mobx") as typeof mobx;
29
11
 
@@ -45,9 +27,9 @@ export const BStore = Behavior({
45
27
  );
46
28
  }
47
29
  },
48
- /* istanbul ignore next */
30
+
49
31
  detached(this: Instance) {
50
- // 清除store数据 test中模拟了测试,所以忽略 框架(1.6.1)不支持 issue {@link https://github.com/wechat-miniprogram/miniprogram-simulate/issues/110}
32
+ /* istanbul ignore next 清除store数据 test中模拟了测试,所以忽略 框架(1.6.1)不支持 issue {@link https://github.com/wechat-miniprogram/miniprogram-simulate/issues/110}*/
51
33
  for (const key in this.disposer) {
52
34
  this.disposer[key]();
53
35
  }
@@ -1,4 +1,4 @@
1
- import type { FinalOptionsOfComponent } from "../api/DefineComponent/collectOptionsForComponent";
1
+ import type { FinalOptionsOfComponent } from "../api/DefineComponent/assignOptions";
2
2
 
3
3
  export const BBeforeCreate = Behavior({
4
4
  // @ts-ignore
@@ -0,0 +1,26 @@
1
+ import type { IfExtends } from "hry-types/src/Any/IfExtends";
2
+ import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersection";
3
+
4
+ type _AssignValues<Target, Source, UniqueKey extends keyof Target> = ComputeIntersection<
5
+ & { [k in UniqueKey]: Target[k] }
6
+ // @ts-ignore
7
+ & { [k in Exclude<keyof Target, UniqueKey>]: Source[k] }
8
+ >;
9
+
10
+ /**
11
+ * Target与Source相同的key类型变为Source的类型
12
+ * @example
13
+ * ```ts
14
+ * type obj = { a: "a"; b: "b"; c: boolean };
15
+ * type obj2 = { a: number; b: string; d: number };
16
+ * type test = AssignValues<obj, obj2>;
17
+ * // test = { a: number; b: string; c: boolean}
18
+ * type test1 = AssignValues<unknown, obj2>; // unknown
19
+ * ```
20
+ */
21
+ export type AssignValues<Target, Source> = IfExtends<
22
+ unknown,
23
+ Target,
24
+ unknown,
25
+ _AssignValues<Target, Source, Exclude<keyof Target, keyof Source>>
26
+ >;
@@ -5,12 +5,11 @@ export function deepClone<T>(value: T): T {
5
5
  if (typeof value !== "object" || value === null || value instanceof RegExp) {
6
6
  return value;
7
7
  }
8
- /* istanbul ignore next */
8
+
9
9
  const clone = (Array.isArray(value) ? [] : {}) as T;
10
10
 
11
11
  Object.setPrototypeOf(clone, Object.getPrototypeOf(value));
12
12
 
13
- /* istanbul ignore next */
14
13
  for (const key in value) {
15
14
  if (Object.prototype.hasOwnProperty.call(value, key)) {
16
15
  clone[key] = deepClone(value[key]);
@@ -1,31 +0,0 @@
1
- import type { Func } from "hry-types/src/Misc/_api";
2
- import type { ComputedCache, Instance } from "../../behaviors/BComputedAndWatch/types";
3
- import type { WMComponent } from "../../types/OfficialTypeAlias";
4
- import type { ComputedConstraint } from "../RootComponent/Computed/ComputedConstraint";
5
- import type { DataConstraint } from "../RootComponent/Data/DataConstraint";
6
- import type { LifetimesConstraint } from "../RootComponent/Lifetimes/LifetimesConstraint";
7
- import type { MethodsConstraint } from "../RootComponent/Methods/MethodsConstraint";
8
- import type { PageLifetimesOption } from "../RootComponent/PageLifetimes/PageLifetimesOption";
9
- import type { PropertiesConstraint } from "../RootComponent/Properties/PropertiesConstraint";
10
- import type { StoreConstraint } from "../RootComponent/Store/StoreConstraint";
11
- import type { DefineComponentOption } from ".";
12
- export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch", Record<string, Func[]>>;
13
- export type FinalOptionsOfComponent = {
14
- data: DataConstraint;
15
- observers: Record<string, Func>;
16
- behaviors: string[];
17
- methods: MethodsConstraint & {
18
- __computedInitCache__?: () => ComputedCache;
19
- };
20
- externalClasses: string[];
21
- pageLifetimes: PageLifetimesOption<false, object>["pageLifetimes"] & {};
22
- isPage?: boolean;
23
- options?: WMComponent.Options;
24
- properties?: PropertiesConstraint;
25
- store?: StoreConstraint;
26
- computed?: ComputedConstraint;
27
- watch?: Record<string, Func>;
28
- lifetimes?: LifetimesConstraint;
29
- };
30
- export declare function isPageCheck(isPage: boolean | undefined): (this: Instance) => void;
31
- export declare function collectOptionsForComponent(defineComponentOption: DefineComponentOption): FinalOptionsOfComponent;
@@ -1 +0,0 @@
1
- {"version":3,"file":"collectOptionsForComponent.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/collectOptionsForComponent.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import type { Instance } from "./types";
2
- export declare function computedUpdater(this: Instance, isUpdated?: boolean): boolean;
@@ -1 +0,0 @@
1
- {"version":3,"file":"computedUpdater.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/computedUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,UAAU,eAAe,CAAiB,SAAS,GAAG,KAAK;IAC/D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC9C,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,MAAM,CAAC,QAAQ,CAAC;aACxB,CAAC,CAAC;YAEH,SAAS,GAAG,IAAI,CAAC;YAGjB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC;YAGzD,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-tracer.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/data-tracer.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,WAAiC,EACjC,WAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,MAAc,EAAE,IAAY;YAI9B,IAAI,IAAI,KAAK,eAAe;gBAAE,OAAO,MAAM,CAAC;YAE5C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAKzB,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,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAGvD,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;QAED,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;AAED,MAAM,UAAU,MAAM,CAAC,OAAY;IAEjC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5C,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,GAAG,aAAa,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPathsValue.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/getPathsValue.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAa;IACvD,MAAM,SAAS,GAAc,EAAE,CAAC;IAGhC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAE9B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAEzB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,IAAI,EAAE,EAAE;YAEtD,IAAI,CAAC;gBACH,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPropertiesValue.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/getPropertiesValue.ts"],"names":[],"mappings":"AAUA,SAAS,sBAAsB,CAC7B,QAAwB;IAExB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,CAAC,CAAC;QACX,KAAK,KAAK;YACR,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,IAAI,CAAC;QACd,KAAK,OAAO;YACV,OAAO,KAAK,CAAC;QACf;YAEE,MAAM,KAAK,CACT,8DAA8D,CAC/D,CAAC;IACN,CAAC;AACH,CAAC;AACD,SAAS,gBAAgB,CAAC,MAAuB;IAC/C,OAAO,MAAM,YAAY,QAAQ,CAAC;AACpC,CAAC;AACD,SAAS,eAAe,CAAC,MAAuB;IAC9C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,aAA+C;IAChF,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO;IACxC,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAE7B,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAEnC,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YAEN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- export declare const BComputedAndWatch: string;
@@ -1,85 +0,0 @@
1
- import { deepClone } from "../../utils/deepClone";
2
- import { deleteProtoField } from "../../utils/deleteProtoField";
3
- import { isEmptyObject } from "../../utils/isEmptyObject";
4
- import { computedUpdater } from "./computedUpdater";
5
- import { getPathsValue } from "./getPathsValue";
6
- import { getPropertiesValue } from "./getPropertiesValue";
7
- import { initComputed } from "./initComputed";
8
- import { isEqual } from "./isEqual";
9
- function initWatchOldValue(watchConfig) {
10
- const watchOldValue = {};
11
- for (const key in watchConfig) {
12
- watchOldValue[key] = deepClone(getPathsValue(this.data, key));
13
- }
14
- return watchOldValue;
15
- }
16
- export const BComputedAndWatch = Behavior({
17
- definitionFilter(options) {
18
- const rawPropertiesValue = getPropertiesValue(options.properties);
19
- const methodOpt = options.methods;
20
- const computedConfig = options.computed;
21
- if (computedConfig && !isEmptyObject(computedConfig)) {
22
- const computedCache = initComputed(options, computedConfig, Object.assign(Object.assign({}, options.data), rawPropertiesValue));
23
- methodOpt.__computedInitCache__ = () => computedCache;
24
- }
25
- const observersConfig = options.observers;
26
- const originalFunc = observersConfig["**"];
27
- observersConfig["**"] = function () {
28
- const computedStatus = this.__computedStatus__;
29
- switch (computedStatus) {
30
- case "待更新":
31
- {
32
- const isUpdated = this.__computedUpdater__();
33
- if (isUpdated) {
34
- this.__computedStatus__ = "更新完毕";
35
- }
36
- else {
37
- originalFunc && originalFunc.call(this);
38
- }
39
- }
40
- break;
41
- case "更新完毕":
42
- {
43
- this.__computedStatus__ = "待更新";
44
- originalFunc && originalFunc.call(this);
45
- }
46
- break;
47
- }
48
- };
49
- const watchConfig = options.watch;
50
- if (watchConfig && !isEmptyObject(watchConfig)) {
51
- const methodsConfig = options.methods || (options.methods = {});
52
- methodsConfig.__watchConfig__ = () => watchConfig;
53
- const observersConfig = options.observers;
54
- for (const key in watchConfig) {
55
- const watchHadle = watchConfig[key];
56
- const originObserversHandle = observersConfig[key];
57
- observersConfig[key] = function (...newValue) {
58
- originObserversHandle && originObserversHandle.call(this, ...newValue);
59
- const watchOldValue = this.__watchOldValue__;
60
- const oldValue = watchOldValue[key];
61
- if (isEqual(newValue, oldValue))
62
- return;
63
- watchOldValue[key] = deepClone(newValue);
64
- watchHadle.call(this, ...newValue, ...oldValue);
65
- };
66
- }
67
- }
68
- },
69
- lifetimes: {
70
- created() {
71
- var _a, _b;
72
- const __computedInitCache__ = (_a = this.__computedInitCache__) === null || _a === void 0 ? void 0 : _a.call(this);
73
- this.__computedCache__ = __computedInitCache__;
74
- deleteProtoField(this, "__computedInitCache__");
75
- this.__computedStatus__ = "待更新";
76
- this.__computedUpdater__ = computedUpdater.bind(this);
77
- const watchConfig = (_b = this.__watchConfig__) === null || _b === void 0 ? void 0 : _b.call(this);
78
- deleteProtoField(this, "__watchConfig__");
79
- if (watchConfig) {
80
- this.__watchOldValue__ = initWatchOldValue.call(this, watchConfig);
81
- }
82
- },
83
- },
84
- });
85
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"initComputed.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/initComputed.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isEqual.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/isEqual.ts"],"names":[],"mappings":"AAEA,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAGD,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC;AAGD,SAAS,UAAU,CAAC,CAAW,EAAE,CAAW;IAE1C,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAGD,SAAS,UAAU,CAAC,CAAO,EAAE,CAAO;IAClC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACrC,CAAC;AAGD,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACzC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC;AACtD,CAAC;AAQD,MAAM,UAAU,OAAO,CAAC,CAAU,EAAE,CAAU;IAE5C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/E,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;YACvD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAGD,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,IAAI,OAAO,CAAC,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,UAAU,CAAC,CAAC,EAAE,CAAa,CAAC,CAAC;IACtC,CAAC;IAGD,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC,CAAC,EAAE,CAAS,CAAC,CAAC;IAClC,CAAC;IAGD,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QACxB,OAAO,aAAa,CAAC,CAAC,EAAE,CAAW,CAAC,CAAC;IACvC,CAAC;IAGD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAExB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,24 +0,0 @@
1
- import type { Func } from "hry-types/src/Misc/Func";
2
- import type { ComponentInstance, PageInstance } from "../../api/RootComponent/Instance/RootComponentInstance";
3
- import type { ComputedDependence } from "./initComputed";
4
- export type InstanceCustomFields = {
5
- __storeConfig__?: () => Record<string, () => unknown>;
6
- __computedStatus__?: "待更新" | "更新完毕";
7
- __computedUpdater__: Func;
8
- __computedInitCache__?: () => ComputedCache;
9
- __computedCache__: ComputedCache | undefined;
10
- __watchOldValue__?: WatchOldValue;
11
- __watchConfig__?: () => Record<string, Func>;
12
- __compLoadList__?: Func[];
13
- __prePropertiesValue__: object | undefined;
14
- __setDataFromInner__?: boolean;
15
- disposer: Record<string, Func>;
16
- };
17
- export type Instance = (ComponentInstance | PageInstance) & InstanceCustomFields;
18
- export type ItemCache = {
19
- dependences: ComputedDependence[];
20
- method: Func;
21
- value: unknown;
22
- };
23
- export type ComputedCache = Record<string, ItemCache>;
24
- export type WatchOldValue = Record<string, unknown[]>;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- export declare function deleteProtoField<T extends object>(obj: T, key: keyof T): void;
@@ -1,4 +0,0 @@
1
- export function deleteProtoField(obj, key) {
2
- Reflect.deleteProperty(Object.getPrototypeOf(obj), key);
3
- }
4
- //# sourceMappingURL=deleteProtoField.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deleteProtoField.js","sourceRoot":"","sources":["../../src/utils/deleteProtoField.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,gBAAgB,CAAmB,GAAM,EAAE,GAAY;IACrE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,135 +0,0 @@
1
- import type { Func } from "hry-types/src/Misc/_api";
2
- import type { FinalOptionsOfComponent } from "../../api/DefineComponent/collectOptionsForComponent";
3
- import { deepClone } from "../../utils/deepClone";
4
- import { deleteProtoField } from "../../utils/deleteProtoField";
5
- import { isEmptyObject } from "../../utils/isEmptyObject";
6
- import { computedUpdater } from "./computedUpdater";
7
- import { getPathsValue } from "./getPathsValue";
8
- import { getPropertiesValue } from "./getPropertiesValue";
9
- import { initComputed } from "./initComputed";
10
- import { isEqual } from "./isEqual";
11
- import type { Instance, WatchOldValue } from "./types";
12
- function initWatchOldValue(this: Instance, watchConfig: object): WatchOldValue {
13
- const watchOldValue = {};
14
- for (const key in watchConfig) {
15
- // @ts-ignore 隐式索引
16
- watchOldValue[key] = deepClone(getPathsValue(this.data, key));
17
- }
18
-
19
- return watchOldValue;
20
- }
21
-
22
- /**
23
- * 实现
24
- * 1. 计算属性初始化在attached之后(前版本在beforeCreate)
25
- * 2. 通过observers.**(前版本劫持setData)更新计算属性。
26
- * 原因
27
- * 1. 之前版本放在beforeCreate好处是符合正常思维,即组件建立后(created)包含计算属性的data就应该都存在了。
28
- * 但由于properties字段数据实际有效是发生在attached之后。所以之前版本计算属性在挂载到上级组件时,依赖properties的计算属性更新有可能是无意义的。因为上级组件传递的properties有可能由它的上级组件传递而来。根本愿意是组件实例挂载是由内而外,而properties是由外到内传递数据。虽然这些无意义更新只发生在一次(onload之前).
29
- * 2 当properties中有内部字段时(例如设置了pureDataPattern: /^_/,),无法通过设置properties下的observer属性来获知属性更新通知,从而无法劫持setData。才导致有这个最新版本出现。
30
- * 3. 子组件计算属性若依赖properties字段,当子组件挂载到父组件时,就会触发observers.**字段,从而进行一次无效的计算属性更新。解决方案是:实例默认一个__computedStatus__字段,当observers.**变化时,如果__computedStatus__为'初始化中'(表示计算属性还未初始化完毕),就不会进行计算属性更新。当attached周期后(计算属性初始化完毕)把__computedStatus__变为'待更新',再次触发observers.**字段则更新计算属性。
31
- */
32
- /**
33
- * computed初始化值在组件建立后,这样能保证计算属性依赖properties字段时,properties必传字段一定有值,减少计算属性代码(不必考虑properties无值时的情况)。坏处是增加了组件初始化时运行的代码量。
34
- */
35
-
36
- export const BComputedAndWatch = Behavior({
37
- // @ts-ignore
38
- definitionFilter(options: FinalOptionsOfComponent) {
39
- // 计算属性初始化
40
- const rawPropertiesValue = getPropertiesValue(options.properties);
41
- const methodOpt = options.methods;
42
- const computedConfig = options.computed;
43
-
44
- if (computedConfig && !isEmptyObject(computedConfig)) {
45
- const computedCache = initComputed(options, computedConfig, { ...options.data, ...rawPropertiesValue });
46
-
47
- // 把计算属性缓存从方法中带入到实例中,在created周期加入实例后删除
48
- methodOpt.__computedInitCache__ = () => computedCache;
49
- }
50
- const observersConfig = options.observers;
51
- // 通过observers加入`**`字段来触发计算属性更新
52
- const originalFunc = observersConfig["**"] as Func | undefined;
53
-
54
- observersConfig["**"] = function(this: Instance): undefined {
55
- const computedStatus = this.__computedStatus__;
56
- switch (computedStatus) {
57
- case "待更新":
58
- // 3. 触发来自attached后的setData或properties更新
59
- {
60
- const isUpdated = this.__computedUpdater__();
61
- if (isUpdated) {
62
- // 更新了会再次触发自身转到 4
63
- this.__computedStatus__ = "更新完毕";
64
- } else {
65
- // 无需更新计算属性
66
- originalFunc && /* istanbul ignore next */ originalFunc.call(this);
67
- }
68
- }
69
- break;
70
- case "更新完毕":
71
- {
72
- // 4 来自计算属性更新后的自身回调
73
- // console.log("来自计算属性更新后的自身回调");
74
- this.__computedStatus__ = "待更新";
75
-
76
- originalFunc && /* istanbul ignore next */ originalFunc.call(this);
77
- }
78
- break;
79
- }
80
- };
81
-
82
- // watch handle
83
- const watchConfig = options.watch;
84
- if (watchConfig && !isEmptyObject(watchConfig)) {
85
- /* istanbul ignore next */
86
- const methodsConfig = options.methods ||= {};
87
-
88
- // 把watch配置保留在methods的__watchConfig__字段下带入到组件实例中。
89
- methodsConfig.__watchConfig__ = () => watchConfig;
90
-
91
- /* istanbul ignore next */
92
- const observersConfig = options.observers;
93
- for (const key in watchConfig) {
94
- const watchHadle = watchConfig[key];
95
- const originObserversHandle = observersConfig[key] as Func | undefined;
96
-
97
- // 在监控多个数据时,参数是多个值
98
- observersConfig[key] = function(this: Instance, ...newValue: unknown[]) {
99
- originObserversHandle && originObserversHandle.call(this, ...newValue);
100
-
101
- const watchOldValue = this.__watchOldValue__!;
102
- const oldValue = watchOldValue[key];
103
-
104
- if (isEqual(newValue, oldValue)) return;
105
- watchOldValue[key] = deepClone(newValue);
106
-
107
- watchHadle.call(this, ...newValue, ...oldValue);
108
- };
109
- }
110
- }
111
- },
112
- lifetimes: {
113
- created(this: Instance) {
114
- // 把计算属性的初始缓存放入实例
115
- const __computedInitCache__ = this.__computedInitCache__?.();
116
-
117
- this.__computedCache__ = __computedInitCache__;
118
-
119
- deleteProtoField(this, "__computedInitCache__");
120
-
121
- this.__computedStatus__ = "待更新";
122
-
123
- this.__computedUpdater__ = computedUpdater.bind(this);
124
-
125
- // 初始化watch 生成OldValue
126
- const watchConfig = this.__watchConfig__?.();
127
-
128
- deleteProtoField(this, "__watchConfig__");
129
-
130
- if (watchConfig) {
131
- this.__watchOldValue__ = initWatchOldValue.call(this, watchConfig);
132
- }
133
- },
134
- },
135
- });
@@ -1,30 +0,0 @@
1
- import type { Func } from "hry-types/src/Misc/Func";
2
- import type { ComponentInstance, PageInstance } from "../../api/RootComponent/Instance/RootComponentInstance";
3
- import type { ComputedDependence } from "./initComputed";
4
-
5
- export type InstanceCustomFields = {
6
- __storeConfig__?: () => Record<string, () => unknown>;
7
- __computedStatus__?: "待更新" | "更新完毕";
8
- __computedUpdater__: Func;
9
- __computedInitCache__?: () => ComputedCache;
10
- __computedCache__: ComputedCache | undefined;
11
- __watchOldValue__?: WatchOldValue;
12
- __watchConfig__?: () => Record<string, Func>;
13
- __compLoadList__?: Func[];
14
-
15
- __prePropertiesValue__: object | undefined;
16
- __setDataFromInner__?: boolean;
17
- disposer: Record<string, Func>;
18
- };
19
-
20
- export type Instance = (ComponentInstance | PageInstance) & InstanceCustomFields;
21
-
22
- export type ItemCache = {
23
- dependences: ComputedDependence[];
24
- method: Func;
25
- value: unknown;
26
- };
27
-
28
- export type ComputedCache = Record<string, ItemCache>;
29
-
30
- export type WatchOldValue = Record<string, unknown[]>;
@@ -1,6 +0,0 @@
1
- /**
2
- * 删除对象原型上的属性(只是上级原型)
3
- */
4
- export function deleteProtoField<T extends object>(obj: T, key: keyof T) {
5
- Reflect.deleteProperty(Object.getPrototypeOf(obj), key);
6
- }