annil 1.5.4 → 1.5.5

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.5.5](https://github.com/missannil/annil/compare/v1.5.4...v1.5.5) (2024-01-01)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * 修复isPage错误 ([301366d](https://github.com/missannil/annil/commit/301366d9b30f909c59db727db53847bd789cb144))
13
+
7
14
  ## [1.5.4](https://github.com/missannil/annil/compare/v1.5.3...v1.5.4) (2023-12-25)
8
15
 
9
16
 
package/README.md CHANGED
@@ -29,7 +29,7 @@ annil(安奈儿)是微信小程序原生开发插件,相较于原生API,使用an
29
29
 
30
30
  - **组件构建API功能更强大**
31
31
 
32
- 新的组件构建API加入了[computed](./doc/fields/computed.md)、[watch](./doc/fields/watch.md)、[store](./doc/fields/store.md)(基于mobx的全局响应式数据)`等功能,使开发更便捷。
32
+ 新的组件构建API加入了[computed](./doc/demo/computed.md)、[watch](./doc/demo/watch.md)、[store](./doc/demo/store.md)(基于mobx的全局响应式数据)`等功能,使开发更便捷。
33
33
 
34
34
  - **复杂组件解决方案**
35
35
 
@@ -42,10 +42,6 @@ annil(安奈儿)是微信小程序原生开发插件,相较于原生API,使用an
42
42
 
43
43
  新的组件构建API(DefineComponent)返回的类型叫组件(文档)类型,好比传统组件(UI)库为每个组件书写的使用文档,在做为子组件构建新组件(页面)时,子组件API(SubComponent)要求使用者输入组件类型,在定义选项字段时,会得到类型提示、约束和检测。这样实现了一个页面中所有子组件之间的类型耦合,无论组件嵌套多少层,无论哪层组件数据类型发生改变,所有相关组件类型都会得到感知。当您增改、重构代码时,只要无类型报错(tsc --noEmit --watch)就不会有运行时报错的心智负担。
44
44
 
45
- - **类型约束书写规范**
46
-
47
- annil通过类型来约束代码书写规范,例如在js开发时可以通过`this.setData({...})`新增一个未在data字段中定义的数据或修改properties中定义的数据,这显然是不对的。新API通过类型报错的形式约束[书写规范](./doc/designIdea.md),在特定情形下(例如测试)你可以通过 `//@ts-ignore`或`as any`关闭类型检测。
48
-
49
45
  - **高兼容性**
50
46
 
51
47
  annil提供的API都是原生API的语法糖,不具有强制性和侵入性,可渐进性使用或重构代码。
@@ -58,6 +54,10 @@ annil(安奈儿)是微信小程序原生开发插件,相较于原生API,使用an
58
54
 
59
55
  第三方组件库一般都是以文档的形式对组件说明,插件提供了泛型[GenerateDoc](./src/types/GenerateDoc.ts),可根据组件文档快速书写组件类型,使第三方组件融入组件构建模型,后续插件会陆续添加原生(Wm)和常用第三方组件库(Vant)类型。
60
56
 
57
+ - **设计思想**
58
+
59
+ 请参考[设计思想](./doc/designIdea.md)
60
+
61
61
  ### 安装
62
62
 
63
63
  1. 依赖安装
@@ -130,6 +130,8 @@ annil(安奈儿)是微信小程序原生开发插件,相较于原生API,使用an
130
130
 
131
131
  [navigateTo](./doc/api/navigateTo.md)
132
132
 
133
+ - 实用类型
134
+
133
135
  ### 更新日志
134
136
 
135
137
  [CHANGELOG](./CHANGELOG.md)
@@ -18,6 +18,7 @@ export type FinalOptionsOfComponent = {
18
18
  __computedInitCache__?: () => ComputedCache;
19
19
  };
20
20
  externalClasses: string[];
21
+ pageLifetimes: PageLifetimesOption<false, object>["pageLifetimes"] & {};
21
22
  isPage?: boolean;
22
23
  options?: WMComponent.Options;
23
24
  properties?: PropertiesConstraint;
@@ -25,7 +26,6 @@ export type FinalOptionsOfComponent = {
25
26
  computed?: ComputedConstraint;
26
27
  watch?: Record<string, Func>;
27
28
  lifetimes?: LifetimesConstraint;
28
- pageLifetimes?: PageLifetimesOption<false, object>["pageLifetimes"];
29
29
  };
30
30
  export declare function isPageCheck(isPage: boolean | undefined): (this: Instance) => void;
31
31
  export declare function collectOptionsForComponent(defineComponentOption: DefineComponentOption): FinalOptionsOfComponent;
@@ -38,18 +38,15 @@ function loadReceivedDataHandle(option) {
38
38
  }
39
39
  option[INNERMARKER.url] = INNERMARKER.url;
40
40
  }
41
- function hijack(config, field, before = [], after = []) {
41
+ function hijack(config, field, before) {
42
42
  const originalFunc = config[field];
43
43
  config[field] = function (...args) {
44
44
  before.forEach(func => func.call(this, ...args));
45
45
  originalFunc && originalFunc.apply(this, args);
46
- after.forEach(func => func.call(this, ...args));
47
46
  };
48
47
  return;
49
48
  }
50
49
  function InternalFieldProtection(config, keys) {
51
- if (!config)
52
- return;
53
50
  const methodsConfigKeys = Object.keys(config);
54
51
  for (const key of keys) {
55
52
  if (methodsConfigKeys.includes(key)) {
@@ -71,7 +68,7 @@ function funcOptionsHandle(finalOptionsForComponent, isPage, funcOptions) {
71
68
  }
72
69
  else {
73
70
  !(isEmptyObject(funcOptions.pageLifetimes))
74
- && _funcOptionsHandle(finalOptionsForComponent.pageLifetimes || (finalOptionsForComponent.pageLifetimes = {}), funcOptions.pageLifetimes);
71
+ && _funcOptionsHandle(finalOptionsForComponent.pageLifetimes, funcOptions.pageLifetimes);
75
72
  }
76
73
  funcOptions.lifetimes && _funcOptionsHandle(finalOptionsForComponent.lifetimes || (finalOptionsForComponent.lifetimes = {}), funcOptions.lifetimes);
77
74
  funcOptions.watch && _funcOptionsHandle(finalOptionsForComponent.watch || (finalOptionsForComponent.watch = {}), funcOptions.watch);
@@ -161,12 +158,13 @@ function merge(target, source) {
161
158
  export function collectOptionsForComponent(defineComponentOption) {
162
159
  const rootComponentOption = defineComponentOption.rootComponent;
163
160
  const subComponentsList = defineComponentOption.subComponents;
164
- const finalOptionsForComponent = merge(instanceConfig.injectInfo || {}, {
161
+ const finalOptionsForComponent = merge(Object.assign({}, instanceConfig.injectInfo), {
165
162
  observers: {},
166
163
  data: {},
167
164
  methods: {},
168
165
  behaviors: [BStore, BComputedAndWatch],
169
166
  externalClasses: [],
167
+ pageLifetimes: {},
170
168
  });
171
169
  const funcOptions = {
172
170
  pageLifetimes: {},
@@ -182,9 +180,9 @@ export function collectOptionsForComponent(defineComponentOption) {
182
180
  funcOptionsHandle(finalOptionsForComponent, rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage, funcOptions);
183
181
  InternalFieldProtection(finalOptionsForComponent.methods, ["disposer"]);
184
182
  finalOptionsForComponent.isPage
185
- && hijack(finalOptionsForComponent.pageLifetimes || (finalOptionsForComponent.pageLifetimes = {}), "load", [loadReceivedDataHandle], []);
186
- hijack(finalOptionsForComponent.methods, "onLoad", [onLoadReceivedDataHandle], []);
187
- hijack(finalOptionsForComponent.lifetimes, "attached", [isPageCheck(rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage)], []);
183
+ && hijack(finalOptionsForComponent.pageLifetimes, "load", [loadReceivedDataHandle]);
184
+ hijack(finalOptionsForComponent.methods, "onLoad", [onLoadReceivedDataHandle]);
185
+ hijack(finalOptionsForComponent.lifetimes, "attached", [isPageCheck(rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage)]);
188
186
  finalOptionsForComponent.isPage
189
187
  && finalOptionsForComponent.options && Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
190
188
  finalOptionsForComponent.behaviors.push(BBeforeCreate);
@@ -1 +1 @@
1
- {"version":3,"file":"collectOptionsForComponent.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/collectOptionsForComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collectOptionsForComponent.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/collectOptionsForComponent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "annil",
3
- "version": "1.5.4",
3
+ "version": "1.5.5",
4
4
  "description": "微信小程序(原生开发)插件",
5
5
  "main": "dist/index.js",
6
6
  "types": "src/index.ts",
@@ -42,6 +42,7 @@ export type FinalOptionsOfComponent = {
42
42
  __computedInitCache__?: () => ComputedCache;
43
43
  };
44
44
  externalClasses: string[];
45
+ pageLifetimes: PageLifetimesOption<false, object>["pageLifetimes"] & {};
45
46
  isPage?: boolean;
46
47
  options?: WMComponent.Options;
47
48
  properties?: PropertiesConstraint;
@@ -49,13 +50,11 @@ export type FinalOptionsOfComponent = {
49
50
  computed?: ComputedConstraint;
50
51
  watch?: Record<string, Func>;
51
52
  lifetimes?: LifetimesConstraint;
52
- pageLifetimes?: PageLifetimesOption<false, object>["pageLifetimes"];
53
53
  };
54
54
 
55
55
  /**
56
56
  * 劫持attached,根据this.route做判断 isPage值是否正确
57
57
  */
58
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
59
58
  export function isPageCheck(isPage: boolean | undefined) {
60
59
  return function(this: Instance) {
61
60
  const route = (this as PageInstance).route as string | undefined;
@@ -81,7 +80,7 @@ export function isPageCheck(isPage: boolean | undefined) {
81
80
  * 1. 使用wx.navigateTo传值的。这种情况无内置字段 option[INNERMARKER.url] 等于 undefined
82
81
  * 2. 使用插件提供的navigateTo传值。这种情况 INNERMARKER.url被load周期劫持函数解码后赋值INNERMARKER.url字段为本身,即option[INNERMARKER.url] 等于 INNERMARKER.url
83
82
  */
84
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
83
+ /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面生命周期 */
85
84
  function onLoadReceivedDataHandle(
86
85
  this: PageInstance,
87
86
  option: Record<typeof INNERMARKER.url, string>,
@@ -107,7 +106,7 @@ function onLoadReceivedDataHandle(
107
106
  * 针对通过 navigateTo传过来的数据对组件load周期传入数据解析
108
107
  * @param option - option中的url是拼接了encodeURIComponent转码的data对象的,key为INNERMARKER.url
109
108
  */
110
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
109
+ /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试load */
111
110
  function loadReceivedDataHandle(
112
111
  this: PageInstance,
113
112
  option: Record<typeof INNERMARKER.url, string>,
@@ -127,8 +126,12 @@ function loadReceivedDataHandle(
127
126
  /**
128
127
  * 劫持指定配置字段
129
128
  */
130
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
131
- function hijack(config: object, field: string, before: Func[] = [], after: Func[] = []) {
129
+ function hijack<T extends FinalOptionsOfComponent[keyof FinalOptionsOfComponent]>(
130
+ config: T,
131
+ field: keyof T,
132
+ before: Func[],
133
+ // after: Func[] = [],
134
+ ) {
132
135
  // @ts-ignore 隐式索引
133
136
  const originalFunc: Func | undefined = config[field];
134
137
 
@@ -138,7 +141,7 @@ function hijack(config: object, field: string, before: Func[] = [], after: Func[
138
141
 
139
142
  originalFunc && originalFunc.apply(this, args);
140
143
 
141
- after.forEach(func => func.call(this, ...args));
144
+ // after.forEach(func => func.call(this, ...args));
142
145
  };
143
146
 
144
147
  return;
@@ -147,9 +150,7 @@ function hijack(config: object, field: string, before: Func[] = [], after: Func[
147
150
  /**
148
151
  * 报错的形式避免输入字段和内部字段冲突,保证config下不包含内部预定字段(列表)
149
152
  */
150
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
151
- function InternalFieldProtection(config: object | undefined, keys: string[]) {
152
- if (!config) return;
153
+ function InternalFieldProtection(config: object, keys: string[]) {
153
154
  const methodsConfigKeys = Object.keys(config);
154
155
  for (const key of keys) {
155
156
  if (methodsConfigKeys.includes(key)) {
@@ -176,7 +177,6 @@ function funcOptionsHandle(
176
177
  isPage: boolean | undefined,
177
178
  funcOptions: FuncOptions,
178
179
  ) {
179
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
180
180
  if (isPage) {
181
181
  // 页面时 生命周期方法(即 on 开头的方法),(https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html)
182
182
  !(isEmptyObject(funcOptions.pageLifetimes))
@@ -184,7 +184,7 @@ function funcOptionsHandle(
184
184
  } else {
185
185
  // 组件时
186
186
  !(isEmptyObject(funcOptions.pageLifetimes))
187
- && _funcOptionsHandle(finalOptionsForComponent.pageLifetimes ||= {}, funcOptions.pageLifetimes);
187
+ && _funcOptionsHandle(finalOptionsForComponent.pageLifetimes, funcOptions.pageLifetimes);
188
188
  }
189
189
  funcOptions.lifetimes && _funcOptionsHandle(finalOptionsForComponent.lifetimes ||= {}, funcOptions.lifetimes);
190
190
 
@@ -352,12 +352,13 @@ export function collectOptionsForComponent(
352
352
  const rootComponentOption = defineComponentOption.rootComponent;
353
353
  const subComponentsList = defineComponentOption.subComponents;
354
354
 
355
- const finalOptionsForComponent: FinalOptionsOfComponent = merge(instanceConfig.injectInfo || {}, {
355
+ const finalOptionsForComponent: FinalOptionsOfComponent = merge({ ...instanceConfig.injectInfo }, {
356
356
  observers: {},
357
357
  data: {},
358
358
  methods: {},
359
359
  behaviors: [BStore, BComputedAndWatch],
360
360
  externalClasses: [],
361
+ pageLifetimes: {},
361
362
  });
362
363
 
363
364
  /**
@@ -376,33 +377,28 @@ export function collectOptionsForComponent(
376
377
  if (subComponentsList && !isEmptyObject(subComponentsList)) {
377
378
  subComponentsHandle(finalOptionsForComponent, subComponentsList, funcOptions);
378
379
  }
379
- // miniprogram-simulate(当前版本 1.6.1) 无法测试页面
380
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
380
+
381
381
  funcOptionsHandle(finalOptionsForComponent, rootComponentOption?.isPage, funcOptions);
382
382
 
383
383
  InternalFieldProtection(finalOptionsForComponent.methods, ["disposer"]);
384
384
 
385
385
  // 对页面传入参数进行处理 老框架劫持页面methods.onLoad,新框架劫持页面pageLifetimes.load
386
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
386
+
387
387
  finalOptionsForComponent.isPage
388
- && hijack(finalOptionsForComponent.pageLifetimes ||= {}, "load", [loadReceivedDataHandle], []);
388
+ && hijack(finalOptionsForComponent.pageLifetimes, "load", [loadReceivedDataHandle]);
389
389
 
390
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
391
390
  hijack(
392
391
  finalOptionsForComponent.methods,
393
392
  "onLoad",
394
393
  [onLoadReceivedDataHandle],
395
- [],
396
394
  );
397
395
 
398
396
  hijack(
399
397
  finalOptionsForComponent.lifetimes!,
400
398
  "attached",
401
399
  [isPageCheck(rootComponentOption?.isPage)],
402
- [],
403
400
  );
404
401
 
405
- /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
406
402
  finalOptionsForComponent.isPage
407
403
  // 页面时删除预设的虚拟组件字段
408
404
  && finalOptionsForComponent.options && Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");