annil 1.2.2-dev.202312100 → 1.3.0-dev.202312100

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 CHANGED
@@ -4,6 +4,13 @@
4
4
 
5
5
  * 解决DetailedType不接收接口类型的错误 ([ae8acbf](https://github.com/missannil/annil/commit/ae8acbfc2e62f99db565c448ad9253aa549e78bb))
6
6
 
7
+ ## [1.3.0-dev.202312100](https://github.com/missannil/annil/compare/v1.2.2-dev.202312100...v1.3.0-dev.202312100) (2023-12-11)
8
+
9
+
10
+ ### Features
11
+
12
+ * watch支持配置单个字段监控多个数据,但没有类型提示 ([37db28a](https://github.com/missannil/annil/commit/37db28a87a7f3af145a7c141e05d2a3b35e6bcb7))
13
+
7
14
  ## [1.2.2-dev.202312100](https://github.com/missannil/annil/compare/v1.2.1...v1.2.2-dev.202312100) (2023-12-10)
8
15
 
9
16
 
@@ -6,7 +6,7 @@ export function computedUpdater(isUpdated = false) {
6
6
  const itemCache = this.__computedCache__[key];
7
7
  let changed = false;
8
8
  for (const dep of itemCache.dependences) {
9
- const curVal = getPathsValue.call(this, dep.paths);
9
+ const curVal = getPathsValue.call(this, dep.paths.join("."))[0];
10
10
  if (!isEqual(curVal, dep.val)) {
11
11
  changed = true;
12
12
  break;
@@ -1 +1 @@
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;IAK/D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAGzC,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;YACxC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAGnD,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;YAEhD,MAAM,KAAK,GAAG,IAAI,CAAC;YACnB,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE;gBAC7E,GAAG,CAAC,MAAM,EAAE,GAAG;oBACb,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;wBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAClC,CAAC;oBAED,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACjC,CAAC;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAGrD,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
+ {"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;IAK/D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAGzC,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;YAEhD,MAAM,KAAK,GAAG,IAAI,CAAC;YACnB,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE;gBAC7E,GAAG,CAAC,MAAM,EAAE,GAAG;oBACb,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;wBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;oBAClC,CAAC;oBAED,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACjC,CAAC;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAGrD,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,2 +1,2 @@
1
1
  import type { Instance } from "./types";
2
- export declare function getPathsValue(this: Instance, paths: string[]): any;
2
+ export declare function getPathsValue(this: Instance, paths: string): unknown[];
@@ -1,11 +1,16 @@
1
1
  export function getPathsValue(paths) {
2
- return paths.reduce((pre, path) => {
3
- try {
4
- return pre[path];
5
- }
6
- catch (error) {
7
- return undefined;
8
- }
9
- }, this.data);
2
+ const valueList = [];
3
+ paths.split(",").forEach(path => {
4
+ const value = path.split(".").reduce((pre, path) => {
5
+ try {
6
+ return pre[path];
7
+ }
8
+ catch (error) {
9
+ return undefined;
10
+ }
11
+ }, this.data);
12
+ valueList.push(value);
13
+ });
14
+ return valueList;
10
15
  }
11
16
  //# sourceMappingURL=getPathsValue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPathsValue.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/getPathsValue.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAiB,KAAe;IAC3D,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,IAAI,EAAE,EAAE;QAErC,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"getPathsValue.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/getPathsValue.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,aAAa,CAAiB,KAAa;IACzD,MAAM,SAAS,GAAc,EAAE,CAAC;IAGhC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAE9B,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,IAAI,CAAC,CAAC;QAEd,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -8,7 +8,7 @@ import { isPage } from "./IsPage";
8
8
  function initWatchOldValue(watchConfig) {
9
9
  const watchOldValue = {};
10
10
  for (const key in watchConfig) {
11
- watchOldValue[key] = deepClone(getPathsValue.call(this, key.split(".")));
11
+ watchOldValue[key] = deepClone(getPathsValue.call(this, key));
12
12
  }
13
13
  return watchOldValue;
14
14
  }
@@ -56,13 +56,13 @@ export const BComputedAndWatch = Behavior({
56
56
  const observersConfig = options.observers || (options.observers = {});
57
57
  for (const key in watchConfig) {
58
58
  const watchHadle = watchConfig[key];
59
- observersConfig[key] = function (newValue) {
59
+ observersConfig[key] = function (...newValue) {
60
60
  const watchOldValue = this.__watchOldValue__;
61
61
  const oldValue = watchOldValue[key];
62
- if ((newValue === undefined) || isEqual(newValue, oldValue))
62
+ if (isEqual(newValue, oldValue))
63
63
  return;
64
64
  watchOldValue[key] = deepClone(newValue);
65
- watchHadle.call(this, newValue, oldValue);
65
+ watchHadle.call(this, ...newValue, ...oldValue);
66
66
  };
67
67
  }
68
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/index.ts"],"names":[],"mappings":"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"}
@@ -19,4 +19,4 @@ export type ComputedCache = Record<string, {
19
19
  method: Func;
20
20
  value: unknown;
21
21
  }>;
22
- export type WatchOldValue = Record<string, unknown>;
22
+ export type WatchOldValue = Record<string, unknown[]>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "annil",
3
- "version": "1.2.2-dev.202312100",
3
+ "version": "1.3.0-dev.202312100",
4
4
  "description": "微信小程序(原生开发)插件",
5
5
  "main": "dist/index.js",
6
6
  "types": "src/index.ts",
@@ -16,7 +16,8 @@ export function computedUpdater(this: Instance, isUpdated = false): boolean {
16
16
  const itemCache = this.__computedCache__[key];
17
17
  let changed = false;
18
18
  for (const dep of itemCache.dependences) {
19
- const curVal = getPathsValue.call(this, dep.paths);
19
+ // getPathsValue返回的是数组
20
+ const curVal = getPathsValue.call(this, dep.paths.join("."))[0];
20
21
 
21
22
  // 检查依赖是否更新
22
23
  if (!isEqual(curVal, dep.val)) {
@@ -1,12 +1,28 @@
1
1
  import type { Instance } from "./types";
2
2
 
3
- export function getPathsValue(this: Instance, paths: string[]) {
4
- return paths.reduce((pre: any, path) => {
5
- // pre有可能为undefined|null,比如paths(['computedUser','name'])的首路径为还未初始化的计算属性(undefined),还有可能是properties的对象类型(默认为null)
6
- try {
7
- return pre[path];
8
- } catch (error) {
9
- return undefined;
10
- }
11
- }, this.data);
3
+ /**
4
+ * 获取指定paths的值
5
+ * @param this - 组件实例 Instance
6
+ * @param paths - 支持多字段(用`,`分开) 例如 'obj.xxx,a,b' 监控了3个字段
7
+ * @returns unknown[] 每项对应paths每项的值
8
+ */
9
+ export function getPathsValue(this: Instance, paths: string) {
10
+ const valueList: unknown[] = [];
11
+
12
+ // ['obj.xxx','a','b'].forEach
13
+ paths.split(",").forEach(path => {
14
+ // path : 'obj.xxx' | 'a' | 'b'
15
+ const value = path.split(".").reduce((pre: any, path) => {
16
+ // pre有可能为undefined|null,比如obj是未初始化的计算属性(undefined),还有可能是properties的对象类型(默认为null)
17
+ try {
18
+ return pre[path];
19
+ } catch (error) {
20
+ return undefined;
21
+ }
22
+ }, this.data);
23
+
24
+ valueList.push(value);
25
+ });
26
+
27
+ return valueList;
12
28
  }
@@ -12,7 +12,7 @@ import type { Instance, WatchOldValue } from "./types";
12
12
  function initWatchOldValue(this: Instance, watchConfig: object): WatchOldValue {
13
13
  const watchOldValue = {};
14
14
  for (const key in watchConfig) {
15
- watchOldValue[key] = deepClone(getPathsValue.call(this, key.split(".")));
15
+ watchOldValue[key] = deepClone(getPathsValue.call(this, key));
16
16
  }
17
17
 
18
18
  return watchOldValue;
@@ -100,14 +100,14 @@ export const BComputedAndWatch = Behavior({
100
100
  for (const key in watchConfig) {
101
101
  const watchHadle = watchConfig[key];
102
102
 
103
- observersConfig[key] = function(this: Instance, newValue: unknown) {
103
+ // 在监控多个数据时,参数是多个值
104
+ observersConfig[key] = function(this: Instance, ...newValue: unknown[]) {
104
105
  const watchOldValue = this.__watchOldValue__!;
105
106
  const oldValue = watchOldValue[key];
106
- // 当watch对象的子属性时,有可能对象为null(properties默认值)
107
- if ((newValue === undefined) || isEqual(newValue, oldValue)) return;
107
+ if (isEqual(newValue, oldValue)) return;
108
108
  watchOldValue[key] = deepClone(newValue);
109
109
 
110
- watchHadle.call(this, newValue, oldValue);
110
+ watchHadle.call(this, ...newValue, ...oldValue);
111
111
  };
112
112
  }
113
113
  }
@@ -26,4 +26,4 @@ export type ComputedCache = Record<
26
26
  }
27
27
  >;
28
28
 
29
- export type WatchOldValue = Record<string, unknown>;
29
+ export type WatchOldValue = Record<string, unknown[]>;