annil 1.5.3 → 1.5.4

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 (43) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +22 -19
  3. package/dist/api/DefineComponent/collectOptionsForComponent.d.ts +2 -1
  4. package/dist/api/DefineComponent/collectOptionsForComponent.js +17 -2
  5. package/dist/api/DefineComponent/collectOptionsForComponent.js.map +1 -1
  6. package/dist/api/RootComponent/Lifetimes/LifetimesOption.d.ts +2 -2
  7. package/dist/api/RootComponent/PageLifetimes/PageLifetimesOption.d.ts +1 -1
  8. package/dist/api/RootComponent/RootComponentDoc.d.ts +5 -18
  9. package/dist/api/RootComponent/index.d.ts +1 -1
  10. package/dist/api/SubComponent/SubLifetimes/SubLifetimesOption.d.ts +2 -2
  11. package/dist/api/SubComponent/SubStore/SubStoreConstraint.js +2 -0
  12. package/dist/api/SubComponent/SubStore/SubStoreConstraint.js.map +1 -0
  13. package/dist/api/SubComponent/SubStore/SubStoreOption.d.ts +2 -2
  14. package/dist/api/SubComponent/index.d.ts +2 -2
  15. package/dist/api/SubComponent/index.js.map +1 -1
  16. package/dist/behaviors/BComputedAndWatch/isEqual.js +1 -1
  17. package/dist/behaviors/BComputedAndWatch/isEqual.js.map +1 -1
  18. package/package.json +1 -1
  19. package/src/api/DefineComponent/collectOptionsForComponent.ts +44 -27
  20. package/src/api/RootComponent/Data/test/normal.test.ts +1 -1
  21. package/src/api/RootComponent/Events/test/normal.test.ts +2 -2
  22. package/src/api/RootComponent/Lifetimes/LifetimesOption.ts +29 -32
  23. package/src/api/RootComponent/Lifetimes/test/error.test.ts +1 -7
  24. package/src/api/RootComponent/Methods/test/mormal.test.ts +1 -1
  25. package/src/api/RootComponent/PageLifetimes/PageLifetimesOption.ts +1 -4
  26. package/src/api/RootComponent/PageLifetimes/test/normal.test.ts +13 -4
  27. package/src/api/RootComponent/RootComponentDoc.ts +10 -22
  28. package/src/api/RootComponent/Watch/test/WtachInject.test.ts +1 -1
  29. package/src/api/RootComponent/index.ts +2 -2
  30. package/src/api/SubComponent/SubData/SubDataConstraint.ts +1 -1
  31. package/src/api/SubComponent/SubInherit/SubInheritConstraint.ts +1 -1
  32. package/src/api/SubComponent/SubInstance/test/normal.test.ts +0 -4
  33. package/src/api/SubComponent/SubLifetimes/SubLifetimesOption.ts +2 -2
  34. package/src/api/SubComponent/SubStore/SubStoreOption.ts +3 -2
  35. package/src/api/SubComponent/SubStore/test/error.test.ts +1 -3
  36. package/src/api/SubComponent/SubStore/test/normal.test.ts +12 -2
  37. package/src/api/SubComponent/SubWatch/test/WatchProperties.test.ts +161 -0
  38. package/src/api/SubComponent/index.ts +3 -4
  39. package/src/behaviors/BComputedAndWatch/isEqual.ts +2 -1
  40. package/dist/api/SubComponent/SubStore/SubDataConstraint.js +0 -2
  41. package/dist/api/SubComponent/SubStore/SubDataConstraint.js.map +0 -1
  42. /package/dist/api/SubComponent/SubStore/{SubDataConstraint.d.ts → SubStoreConstraint.d.ts} +0 -0
  43. /package/src/api/SubComponent/SubStore/{SubDataConstraint.ts → SubStoreConstraint.ts} +0 -0
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.4](https://github.com/missannil/annil/compare/v1.5.3...v1.5.4) (2023-12-25)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * isPagecheck ([03f6452](https://github.com/missannil/annil/commit/03f64523dc5f7da32616ec5c0ecfc4f50d4d4b7d))
13
+
7
14
  ## [1.5.3](https://github.com/missannil/annil/compare/v1.5.2...v1.5.3) (2023-12-22)
8
15
 
9
16
 
package/README.md CHANGED
@@ -23,38 +23,40 @@
23
23
 
24
24
  ### 简介
25
25
 
26
- annil(安奈儿)是微信小程序原生开发插件。
26
+ annil(安奈儿)是微信小程序原生开发插件,相较于原生API,使用annil会大大提高开发效率和代码质量。
27
27
 
28
28
  ### 特点
29
29
 
30
- - **新的组件构建API**
30
+ - **组件构建API功能更强大**
31
31
 
32
32
  新的组件构建API加入了[computed](./doc/fields/computed.md)、[watch](./doc/fields/watch.md)、[store](./doc/fields/store.md)(基于mobx的全局响应式数据)`等功能,使开发更便捷。
33
33
 
34
34
  - **复杂组件解决方案**
35
35
 
36
- 新的组件构建方案(根组件 + 子组件(可选)),组件逻辑与wxml元素(标签)一一对应。解决书写复杂组件时代码逻辑耦合的问题。
36
+ 新的组件构建方案(根组件 + 子组件(可选)),组件逻辑与wxml标签一一对应。解决书写复杂组件时不同组件代码耦合的问题。
37
+ - **专为typescript开发设计**
38
+
39
+ annil是专为TS开发而设计的,通过类型提示、约束、检测,提升开发效率,避免运行时错误的发生。使用js开发时可忽略开发文档中的ts部分。
37
40
 
38
41
  - **组件类型概念**
39
42
 
40
- 在使用ts开发时,新的组件构建API返回的类型叫组件文档类型,好比传统组件(UI)库为每个组件书写的使用文档,在做为子组件构建新组件(页面)时,子组件API要求使用者输入组件类型,让使用者知道该定义哪些字段(类型提示)并确保字段值类型正确(类型约束和检测)。这样实现了一个页面中所有子组件之间的类型耦合,无论组件嵌套多少层,无论哪层组件数据类型发生改变,所有相关组件类型都会得到感知。当您修改、重构代码时,只要无类型报错(tsc --noEmit --watch)就不会有运行时报错的心智负担。
43
+ 新的组件构建API(DefineComponent)返回的类型叫组件(文档)类型,好比传统组件(UI)库为每个组件书写的使用文档,在做为子组件构建新组件(页面)时,子组件API(SubComponent)要求使用者输入组件类型,在定义选项字段时,会得到类型提示、约束和检测。这样实现了一个页面中所有子组件之间的类型耦合,无论组件嵌套多少层,无论哪层组件数据类型发生改变,所有相关组件类型都会得到感知。当您增改、重构代码时,只要无类型报错(tsc --noEmit --watch)就不会有运行时报错的心智负担。
41
44
 
42
- - **类型约束代码规范**
45
+ - **类型约束书写规范**
43
46
 
44
- js开发时可以任意`setData`一个未声明变量或通过`this.triggerEvent('name',unknown)`触发组件自定义事件。这是js的特点,但易读性和易维护性差。(ts开发时)新API通过类型报错形式对[代码规范](./doc/standard.md)给了强制约束
47
+ annil通过类型来约束代码书写规范,例如在js开发时可以通过`this.setData({...})`新增一个未在data字段中定义的数据或修改properties中定义的数据,这显然是不对的。新API通过类型报错的形式约束[书写规范](./doc/designIdea.md),在特定情形下(例如测试)你可以通过 `//@ts-ignore`或`as any`关闭类型检测。
45
48
 
46
49
  - **高兼容性**
47
50
 
48
- annil提供的API都是原生API的语法糖,不具有强制性和侵入性,开发者可在整个项目中使用,也可只在某处使用。
51
+ annil提供的API都是原生API的语法糖,不具有强制性和侵入性,可渐进性使用或重构代码。
49
52
 
50
53
  - **类型修补**
51
54
 
52
- 官方类型(miniprogram-api-typings)存在更新不及时等问题,annil提供了新的类型方便ts开发,同时会对官方类型库发起PR。
53
- 这些类型都采用ES模块化,不会污染全局类型。
55
+ 官方类型(miniprogram-api-typings)存在更新不及时等问题,annil提供了新的类型方便开发,这些类型都采用ES模块化,不会污染全局类型。
54
56
 
55
- - **适配任何第三方库**
57
+ - **适配第三方库类型**
56
58
 
57
- 通过插件提供的泛型[GenerateDoc](./src/types/GenerateDoc.ts)即可根据组件文档生成组件类型,插件也内置了原生和第三方组件库类型。
59
+ 第三方组件库一般都是以文档的形式对组件说明,插件提供了泛型[GenerateDoc](./src/types/GenerateDoc.ts),可根据组件文档快速书写组件类型,使第三方组件融入组件构建模型,后续插件会陆续添加原生(Wm)和常用第三方组件库(Vant)类型。
58
60
 
59
61
  ### 安装
60
62
 
@@ -69,6 +71,7 @@ annil(安奈儿)是微信小程序原生开发插件。
69
71
  - 可选
70
72
 
71
73
  ```bash
74
+ # 使用ts开发
72
75
  npm typescript --save-dev
73
76
  ```
74
77
 
@@ -115,18 +118,18 @@ annil(安奈儿)是微信小程序原生开发插件。
115
118
 
116
119
  ### 使用文档
117
120
 
118
- 1. 组件构建API
121
+ - **组件构建API**
119
122
 
120
- [DefineComponent](./doc/api/DefineComponent.md)
123
+ [DefineComponent](./doc/api/DefineComponent.md)
121
124
 
122
- [RootComopnent](./doc/api/RootComopnent.md)
125
+ [RootComopnent](./doc/api/RootComopnent.md)
123
126
 
124
- [SubComponent](./doc/api/SubComponent.md)
127
+ [SubComponent](./doc/api/SubComponent.md)
125
128
 
126
- ### 更新日志
129
+ - **navigateTo**
127
130
 
128
- [CHANGELOG](./CHANGELOG.md)
131
+ [navigateTo](./doc/api/navigateTo.md)
129
132
 
130
- ### 协议
133
+ ### 更新日志
131
134
 
132
- [MIT](./LICENSE)
135
+ [CHANGELOG](./CHANGELOG.md)
@@ -1,5 +1,5 @@
1
1
  import type { Func } from "hry-types/src/Misc/_api";
2
- import type { ComputedCache } from "../../behaviors/BComputedAndWatch/types";
2
+ import type { ComputedCache, Instance } from "../../behaviors/BComputedAndWatch/types";
3
3
  import type { WMComponent } from "../../types/OfficialTypeAlias";
4
4
  import type { ComputedConstraint } from "../RootComponent/Computed/ComputedConstraint";
5
5
  import type { DataConstraint } from "../RootComponent/Data/DataConstraint";
@@ -27,4 +27,5 @@ export type FinalOptionsOfComponent = {
27
27
  lifetimes?: LifetimesConstraint;
28
28
  pageLifetimes?: PageLifetimesOption<false, object>["pageLifetimes"];
29
29
  };
30
+ export declare function isPageCheck(isPage: boolean | undefined): (this: Instance) => void;
30
31
  export declare function collectOptionsForComponent(defineComponentOption: DefineComponentOption): FinalOptionsOfComponent;
@@ -4,6 +4,17 @@ import { BStore } from "../../behaviors/BStore";
4
4
  import { INNERMARKER } from "../../utils/InnerMarker";
5
5
  import { isEmptyObject } from "../../utils/isEmptyObject";
6
6
  import { instanceConfig } from "../InstanceInject/instanceConfig";
7
+ export function isPageCheck(isPage) {
8
+ return function () {
9
+ const route = this.route;
10
+ if (route && isPage !== true) {
11
+ throw Error(`页面 /${route} 中, RootComponent构建页面时,isPage字段值应为 true`);
12
+ }
13
+ if (!route && isPage !== false && isPage !== undefined) {
14
+ throw Error(`组件 ${this.is} 中 RootComponent构建组件时,可不写isPage字段或值为 false`);
15
+ }
16
+ };
17
+ }
7
18
  function onLoadReceivedDataHandle(option) {
8
19
  const innerData = option[INNERMARKER.url];
9
20
  if (innerData === undefined)
@@ -78,12 +89,15 @@ function funcFieldsCollect(options, funcOptions) {
78
89
  function otherFieldsHandle(finalOptions, rootComponentOptions) {
79
90
  for (const key in rootComponentOptions) {
80
91
  const config = rootComponentOptions[key];
81
- if (key === "behaviors" || key === "externalClasses") {
92
+ if (Array.isArray(config) === true) {
82
93
  finalOptions[key].push(...config);
83
94
  }
84
- else {
95
+ else if (typeof config === "object") {
85
96
  Object.assign(finalOptions[key] || (finalOptions[key] = {}), config);
86
97
  }
98
+ else {
99
+ finalOptions[key] = config;
100
+ }
87
101
  }
88
102
  }
89
103
  function eventsHandle(methods, eventsConfig) {
@@ -170,6 +184,7 @@ export function collectOptionsForComponent(defineComponentOption) {
170
184
  finalOptionsForComponent.isPage
171
185
  && hijack(finalOptionsForComponent.pageLifetimes || (finalOptionsForComponent.pageLifetimes = {}), "load", [loadReceivedDataHandle], []);
172
186
  hijack(finalOptionsForComponent.methods, "onLoad", [onLoadReceivedDataHandle], []);
187
+ hijack(finalOptionsForComponent.lifetimes, "attached", [isPageCheck(rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage)], []);
173
188
  finalOptionsForComponent.isPage
174
189
  && finalOptionsForComponent.options && Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
175
190
  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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"}
@@ -1,4 +1,4 @@
1
1
  import type { LifetimesConstraint } from "./LifetimesConstraint";
2
- export type LifetimesOption<TIsPage extends boolean> = TIsPage extends false ? {
2
+ export type LifetimesOption = {
3
3
  lifetimes?: LifetimesConstraint;
4
- } : unknown;
4
+ };
@@ -3,7 +3,7 @@ import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersecti
3
3
  import type { WMCompPageLifetimes, WMPageLifetimes } from "../../../types/OfficialTypeAlias";
4
4
  export type PageLifetimesOption<TIsPage extends boolean, PropertiesDoc extends object> = IfExtends<TIsPage, false, {
5
5
  pageLifetimes?: ComputeIntersection<Partial<WMCompPageLifetimes> & {
6
- load?: (props: object) => void;
6
+ load?: (props?: object) => void;
7
7
  }>;
8
8
  }, {
9
9
  pageLifetimes?: ComputeIntersection<Partial<Omit<WMPageLifetimes, "onLoad">> & {
@@ -1,4 +1,4 @@
1
- import type { Func } from "hry-types/src/Misc/Func";
1
+ /// <reference types="miniprogram-api-typings" />
2
2
  import type { WMCompPageLifetimes, WMPageLifetimes } from "../../types/OfficialTypeAlias";
3
3
  import type { LifetimesConstraint } from "./Lifetimes/LifetimesConstraint";
4
4
  type _RootComponentDoc = {
@@ -10,27 +10,14 @@ type _RootComponentDoc = {
10
10
  methods?: object;
11
11
  events?: object;
12
12
  store?: object;
13
- watch?: Record<string, Func>;
13
+ watch?: Record<string, AnyFunction>;
14
14
  lifetimes?: LifetimesConstraint;
15
15
  pageLifetimes?: Partial<WMCompPageLifetimes & {
16
- load: Func;
17
- }>;
16
+ load: AnyFunction;
17
+ }> | Partial<WMPageLifetimes>;
18
18
  externalClasses?: string[];
19
+ export?: () => void;
19
20
  };
20
21
  type _Validator<O, Doc, ErrKeys = Exclude<keyof O, keyof Doc>> = [ErrKeys] extends [never] ? Doc : `错误的字段${ErrKeys & string}`;
21
22
  export type RootComponentDoc<O extends _Validator<O, _RootComponentDoc> = _RootComponentDoc> = O;
22
- type _RootPageDoc = {
23
- isPage?: boolean;
24
- properties?: object;
25
- data?: object;
26
- computed?: object;
27
- customEvents?: object;
28
- methods?: object;
29
- events?: object;
30
- store?: object;
31
- watch?: Record<string, Func>;
32
- lifetimes?: LifetimesConstraint;
33
- pageLifetimes?: Partial<WMPageLifetimes>;
34
- };
35
- export type RootPageDoc<O extends _Validator<O, _RootPageDoc> = _RootPageDoc> = O;
36
23
  export {};
@@ -31,7 +31,7 @@ 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)> & PageLifetimesOption<TIsPage, PropertiesDoc> & LifetimesOption<TIsPage> & WatchOption<ComputedDoc & Required<PropertiesDoc> & DataDoc & StoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers">> & ObserversOption<ComputedDoc & Required<PropertiesDoc> & DataDoc & StoreDoc & IInjectStore> & ThisType<RootComponentInstance<TIsPage, TMethods, DataDoc, DataDoc & Required<PropertiesDoc> & StoreDoc & ComputedDoc, CustomEventsDoc, 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)> & 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
35
  type RootComponentConstructor<TComponentDocList extends ComponentDoc[]> = {
36
36
  <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
37
  isPage: true;
@@ -1,2 +1,2 @@
1
- import type { WMCompLifetimes } from "../../../types/OfficialTypeAlias";
2
- export type SubLifetimesOption = Partial<WMCompLifetimes>;
1
+ import type { LifetimesOption } from "../../RootComponent/Lifetimes/LifetimesOption";
2
+ export type SubLifetimesOption = LifetimesOption;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SubStoreConstraint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubStoreConstraint.js","sourceRoot":"","sources":["../../../../src/api/SubComponent/SubStore/SubStoreConstraint.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
1
  import type { V } from "hry-types";
2
- export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyKey, TPrefix extends string> = {
3
- store?: TSubStore & V.IllegalFieldValidator<TSubStore, legalKeys | `_${TPrefix}_${string}`, 0, "", "与inherit和data字段重复或前缀错误">;
2
+ export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyKey> = {
3
+ store?: TSubStore & V.IllegalFieldValidator<TSubStore, legalKeys, 0, "", "与inherit和data字段重复或前缀错误">;
4
4
  };
@@ -31,10 +31,10 @@ import type { SubMethodsOption } from "./SubMethods/SubMethodsOption";
31
31
  import type { SubObserversOption } from "./SubObservers/SubObserversOption";
32
32
  import type { SubPageLifetimesOption } from "./SubPageLifetimes/SubPageLifetimesOption";
33
33
  import type { CreateSubComponentDoc } from "./SubReturnType/CreateSubComponentDoc";
34
- import type { SubStoreConstraint } from "./SubStore/SubDataConstraint";
34
+ import type { SubStoreConstraint } from "./SubStore/SubStoreConstraint";
35
35
  import type { SubStoreOption } from "./SubStore/SubStoreOption";
36
36
  import type { SubWatchOption } from "./SubWatch/SubWatchOption";
37
- 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> = SubInheritOption<TInherit> & SubDataOption<TSubData, Exclude<keyof CurrentCompDoc["properties"], (keyof InheritDoc)>, Prefix> & SubStoreOption<TSubStore, Exclude<keyof CurrentCompDoc["properties"], (keyof (InheritDoc & SubDataDoc))>, Prefix> & SubComputedOption<TSubComputed, Omit<CurrentCompDoc["properties"], (keyof (InheritDoc & SubDataDoc & SubStoreDoc))>> & SubEventsOption<TEvents, SubEventsDoc, keyof SubEventsConstraint<CurrentCompDoc>> & SubMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)> & SubPageLifetimesOption<IsPage, RootDoc["properties"] & {}> & SubLifetimesOption & SubWatchOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers">> & SubObserversOption<SubComputedDoc & SubDataDoc & AllRootDataDoc & SubStoreDoc & IInjectStore> & ThisType<SubInstance<SubMethodsDoc & RootDoc["methods"], TSubData, AllRootDataDoc & SubDataDoc & SubComputedDoc & SubStoreDoc, RootDoc["customEvents"] & {}, SubStoreDoc>>;
37
+ 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> = SubInheritOption<TInherit> & SubDataOption<TSubData, Exclude<keyof CurrentCompDoc["properties"], (keyof InheritDoc)>, Prefix> & SubStoreOption<TSubStore, Exclude<keyof CurrentCompDoc["properties"], (keyof (InheritDoc & SubDataDoc))>> & SubComputedOption<TSubComputed, Omit<CurrentCompDoc["properties"], (keyof (InheritDoc & SubDataDoc & SubStoreDoc))>> & SubEventsOption<TEvents, SubEventsDoc, keyof SubEventsConstraint<CurrentCompDoc>> & SubMethodsOption<TSubMethods, Prefix, keyof (CurrentCompDoc["customEvents"] & SubEventsDoc)> & SubPageLifetimesOption<IsPage, 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"], TSubData, AllRootDataDoc & SubDataDoc & SubComputedDoc & SubStoreDoc, RootDoc["customEvents"] & {}, SubStoreDoc>>;
38
38
  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"]> = {
39
39
  <TInherit extends InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TSubData extends SubDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc>>, TSubStore extends SubStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)>>, TEvents extends SubEventsConstraint<CurrentCompDoc>, TSubComputed extends SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)>> = {}, TSubMethods extends SubMethodsConstraint = {}, InheritDoc extends object = IfExtends<InheritConstraint<AllRootDataDoc, CurrentCompDoc>, TInherit, {}, TInherit>, SubDataDoc extends object = IfExtends<SubDataConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof InheritDoc>>, TSubData, {}, TSubData>, SubStoreDoc extends object = IfExtends<SubStoreConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc)>>, TSubStore, {}, {
40
40
  [k in keyof TSubStore]: ReturnType<TSubStore[k] & {}>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/SubComponent/index.ts"],"names":[],"mappings":"AAkNA,MAAM,UAAU,YAAY;IAK1B,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAkC,CAAQ,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/SubComponent/index.ts"],"names":[],"mappings":"AAiNA,MAAM,UAAU,YAAY;IAK1B,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAkC,CAAQ,CAAC;AACvE,CAAC"}
@@ -5,7 +5,7 @@ function isSameSize(a, b) {
5
5
  return Object.keys(a).length === Object.keys(b).length;
6
6
  }
7
7
  function isSameCode(a, b) {
8
- return a.toString() === b.toString();
8
+ return a.toString().split(" ").join("") === b.toString().split(" ").join("");
9
9
  }
10
10
  function isSameTime(a, b) {
11
11
  return a.getTime() === b.getTime();
@@ -1 +1 @@
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;IAC1C,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvC,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
+ {"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "annil",
3
- "version": "1.5.3",
3
+ "version": "1.5.4",
4
4
  "description": "微信小程序(原生开发)插件",
5
5
  "main": "dist/index.js",
6
6
  "types": "src/index.ts",
@@ -52,6 +52,28 @@ export type FinalOptionsOfComponent = {
52
52
  pageLifetimes?: PageLifetimesOption<false, object>["pageLifetimes"];
53
53
  };
54
54
 
55
+ /**
56
+ * 劫持attached,根据this.route做判断 isPage值是否正确
57
+ */
58
+ /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
59
+ export function isPageCheck(isPage: boolean | undefined) {
60
+ return function(this: Instance) {
61
+ const route = (this as PageInstance).route as string | undefined;
62
+ if (route && isPage !== true) {
63
+ // 页面isPage值错误
64
+ throw Error(
65
+ `页面 /${route} 中, RootComponent构建页面时,isPage字段值应为 true`,
66
+ );
67
+ }
68
+ if (!route && isPage !== false && isPage !== undefined) {
69
+ // 组件写了isPage = true
70
+ throw Error(
71
+ `组件 ${this.is} 中 RootComponent构建组件时,可不写isPage字段或值为 false`,
72
+ );
73
+ }
74
+ };
75
+ }
76
+
55
77
  /**
56
78
  * 原生Component会对传入的对象字段匹配的properties字段setData赋值。不符合字段或Page时不会赋值。
57
79
  * 此函数为给实例setData赋值,默认传递值与properties相符(ts类型安全)。
@@ -80,27 +102,7 @@ function onLoadReceivedDataHandle(
80
102
 
81
103
  this.setData(option);
82
104
  }
83
- // 类型保护
84
- // function isPageInstance(ins: Instance): ins is PageInstance & InstanceCustomFields {
85
- // return (ins as PageInstance).route !== undefined;
86
- // }
87
- /**
88
- * 验证path是否正确
89
- * @param path - 配置路径
90
- * @returns
91
- */
92
- // function pathCheck(path: string | undefined) {
93
- // return function(this: Instance) {
94
- // if (isPageInstance(this)) {
95
- // const route = this.route;
96
- // if (route !== path) {
97
- // throw Error(
98
- // `[ /${route} ] DefinedComponent的配置字段path值错误,应为: /${route}`,
99
- // );
100
- // }
101
- // }
102
- // };
103
- // }
105
+
104
106
  /**
105
107
  * 针对通过 navigateTo传过来的数据对组件load周期传入数据解析
106
108
  * @param option - option中的url是拼接了encodeURIComponent转码的data对象的,key为INNERMARKER.url
@@ -218,12 +220,17 @@ function otherFieldsHandle(
218
220
  for (const key in rootComponentOptions) {
219
221
  // @ts-ignore 隐式索引
220
222
  const config = rootComponentOptions[key];
221
- if (key === "behaviors" || key === "externalClasses") {
222
- // 是不是只有behaviors是数组
223
+ if (Array.isArray(config) === true) {
224
+ // "behaviors" || "externalClasses"是数组
225
+ // @ts-ignore 只有 behaviors 和 externalClasses, 且都默认为[]
223
226
  finalOptions[key].push(...config);
224
- } else {
227
+ } else if (typeof config === "object") {
225
228
  // @ts-ignore 隐式索引
226
229
  Object.assign(finalOptions[key] ||= {}, config);
230
+ } else {
231
+ // 函数字段有 根组件有 `export` 子组件无此字段
232
+ // @ts-ignore 隐式索引
233
+ finalOptions[key] = config;
227
234
  }
228
235
  }
229
236
  }
@@ -381,9 +388,19 @@ export function collectOptionsForComponent(
381
388
  && hijack(finalOptionsForComponent.pageLifetimes ||= {}, "load", [loadReceivedDataHandle], []);
382
389
 
383
390
  /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
384
- hijack(finalOptionsForComponent.methods, "onLoad", [onLoadReceivedDataHandle], []);
385
-
386
- // hijack(finalOptionsForComponent.lifetimes!, "attached", [pathCheck(defineComponentOption.path)], []);
391
+ hijack(
392
+ finalOptionsForComponent.methods,
393
+ "onLoad",
394
+ [onLoadReceivedDataHandle],
395
+ [],
396
+ );
397
+
398
+ hijack(
399
+ finalOptionsForComponent.lifetimes!,
400
+ "attached",
401
+ [isPageCheck(rootComponentOption?.isPage)],
402
+ [],
403
+ );
387
404
 
388
405
  /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
389
406
  finalOptionsForComponent.isPage
@@ -8,7 +8,7 @@ type Gender = "male" | "female";
8
8
 
9
9
  const RootDoc = RootComponent()({
10
10
  data: {
11
- gender: <Gender> "male", // 联合字面量
11
+ gender: "male" as Gender, // 联合字面量
12
12
  num: 123,
13
13
  _innernalFields: 123, // 内部字段无法在wxml中使用
14
14
  },
@@ -24,7 +24,7 @@ RootComponent()({
24
24
  });
25
25
 
26
26
  /**
27
- * 2. 没有子组件时,事件参数e可通过WMBaseEventWMCustomEvent(多一个detail类型)定义内部类型。
27
+ * 2. 没有子组件时,事件参数e可通过WMBaseEventWMCustomEvent、Detail、Mark等插件提供的类型快速定义事件类型。
28
28
  */
29
29
  RootComponent()({
30
30
  events: {
@@ -122,7 +122,7 @@ type RootDocExpect = {
122
122
  };
123
123
  };
124
124
 
125
- // 4 返回EventsDoc正常
125
+ // 4 返回EventsDoc
126
126
  Checking<typeof RootDoc, RootDocExpect, Test.Pass>;
127
127
 
128
128
  /**
@@ -1,34 +1,31 @@
1
1
  import type { LifetimesConstraint } from "./LifetimesConstraint";
2
2
 
3
- export type LifetimesOption<TIsPage extends boolean> = TIsPage extends false // 组件开通lifetimes字段
4
- ? {
5
- /**
6
- * 在原生类型上增加了beforeCreate周期
7
- * @example
8
- * ```ts
9
- * RootComponent()({
10
- * lifetimes: {
11
- * beforeCreate(opitons) {
12
- * opitons;//为最终进入Component的配置对象
13
- * },
14
- * created() {
15
- * },
16
- * attached() {
17
- * },
18
- * ready() {
19
- * },
20
- * detached() {
21
- * },
22
- * error(err) {
23
- * err.cause;
24
- * },
25
- * moved() {
26
- * },
27
- * },
28
- * });
29
- * ```
30
- */
31
- lifetimes?: LifetimesConstraint;
32
- }
33
- // 页面关闭lifetimes字段(其实也可以开启)
34
- : unknown;
3
+ export type LifetimesOption = {
4
+ /**
5
+ * 在原生类型上增加了beforeCreate周期
6
+ * @example
7
+ * ```ts
8
+ * RootComponent()({
9
+ * lifetimes: {
10
+ * beforeCreate(opitons) {
11
+ * opitons;//为最终进入Component的配置对象
12
+ * },
13
+ * created() {
14
+ * },
15
+ * attached() {
16
+ * },
17
+ * ready() {
18
+ * },
19
+ * detached() {
20
+ * },
21
+ * error(err) {
22
+ * err.cause;
23
+ * },
24
+ * moved() {
25
+ * },
26
+ * },
27
+ * });
28
+ * ```
29
+ */
30
+ lifetimes?: LifetimesConstraint;
31
+ };
@@ -11,13 +11,7 @@ RootComponent()({
11
11
  err.message;
12
12
  },
13
13
  moved() {},
14
- // @ts-expect-error 1 错误的声明周期字段报错
14
+ // @ts-expect-error 1 错误的生命周期字段报错
15
15
  xxx() {},
16
16
  },
17
17
  });
18
-
19
- RootComponent()({
20
- isPage: true,
21
- // @ts-expect-error 2 页面时未开启此字段
22
- lifetimes: {},
23
- });
@@ -9,7 +9,7 @@ const RootDoc = RootComponent()({
9
9
  num() {
10
10
  return 1;
11
11
  },
12
- str(str: string): string {
12
+ str(str: string) {
13
13
  return str;
14
14
  },
15
15
  },
@@ -6,9 +6,6 @@ export type PageLifetimesOption<TIsPage extends boolean, PropertiesDoc extends o
6
6
  TIsPage,
7
7
  false,
8
8
  {
9
- /**
10
- * 比官方定义新增load周期,发生在页面onLoad事件后
11
- */
12
9
  pageLifetimes?: ComputeIntersection<
13
10
  // 官方组件页面生命周期
14
11
  & Partial<WMCompPageLifetimes>
@@ -17,7 +14,7 @@ export type PageLifetimesOption<TIsPage extends boolean, PropertiesDoc extends o
17
14
  * 周期发生在组件attached之后,页面onLoad之前,要求组件为同步组件
18
15
  * 最低基础库: `3.0.2`
19
16
  */
20
- load?: (props: object) => void;
17
+ load?: (props?: object) => void;
21
18
  }
22
19
  >;
23
20
  },
@@ -7,16 +7,15 @@ import type { Mock_User } from "../../Properties/test/normalRequired.test";
7
7
  * 组件时
8
8
  */
9
9
  RootComponent()({
10
- // 1 官方类型 加入load类型(同步组件时触发)
11
10
  pageLifetimes: {
12
11
  hide() {},
13
12
  resize(size) {
14
13
  Checking<typeof size, WechatMiniprogram.Page.IResizeOption, Test.Pass>;
15
14
  },
16
15
  show() {},
17
- // 新增周期函数
16
+ // 1 glass-easel(最低版本库3.0.2)支持的周期函数
18
17
  load(obj) {
19
- Checking<typeof obj, object, Test.Pass>;
18
+ Checking<typeof obj, object | undefined, Test.Pass>;
20
19
  },
21
20
  },
22
21
  });
@@ -40,7 +39,7 @@ RootComponent()({
40
39
  },
41
40
  // 2 官方是把事件写在methods字段中,更改为写在pageLifetimes字段下
42
41
  pageLifetimes: {
43
- // 3 重写onLoad周期参数props的类型. (propertiesDoc中必传字段去除null后去除可选字段)
42
+ // 3 重写onLoad周期参数props的类型(同页面properties定义类型).
44
43
  onLoad(props) {
45
44
  Checking<
46
45
  typeof props,
@@ -56,5 +55,15 @@ RootComponent()({
56
55
  onHide() {
57
56
  console.log("onHide");
58
57
  },
58
+ // onReady
59
+ // onResize
60
+ // onUnload
61
+ // onPageScroll
62
+ // onPullDownRefresh
63
+ // onReachBottom
64
+ // onShareAppMessage
65
+ // onShareTimeline
66
+ // onTabItemTap
67
+ // ...
59
68
  },
60
69
  });
@@ -1,4 +1,3 @@
1
- import type { Func } from "hry-types/src/Misc/Func";
2
1
  import type { WMCompPageLifetimes, WMPageLifetimes } from "../../types/OfficialTypeAlias";
3
2
  import type { LifetimesConstraint } from "./Lifetimes/LifetimesConstraint";
4
3
 
@@ -11,10 +10,11 @@ type _RootComponentDoc = {
11
10
  methods?: object;
12
11
  events?: object;
13
12
  store?: object;
14
- watch?: Record<string, Func>;
13
+ watch?: Record<string, AnyFunction>;
15
14
  lifetimes?: LifetimesConstraint;
16
- pageLifetimes?: Partial<WMCompPageLifetimes & { load: Func }>;
15
+ pageLifetimes?: Partial<WMCompPageLifetimes & { load: AnyFunction }> | Partial<WMPageLifetimes>;
17
16
  externalClasses?: string[];
17
+ export?: () => void; // behaviors 'wx://component-export' 使用
18
18
  };
19
19
 
20
20
  // 验证key是否合法
@@ -24,32 +24,20 @@ type _Validator<O, Doc, ErrKeys = Exclude<keyof O, keyof Doc>> = [ErrKeys] exten
24
24
  /**
25
25
  * RootComponent Api 返回的类型
26
26
  * ```ts
27
- * RootComponentDoc = {
28
- * isPage?: true;
27
+ * isPage?: boolean;
29
28
  * properties?: object;
30
29
  * data?: object;
31
- * store?:object;
32
30
  * computed?: object;
33
31
  * customEvents?: object;
34
32
  * methods?: object;
35
33
  * events?: object;
34
+ * store?: object;
35
+ * watch?: Record<string, AnyFunction>;
36
+ * lifetimes?: LifetimesConstraint;
37
+ * pageLifetimes?: Partial<WMCompPageLifetimes & { load: AnyFunction }> | Partial<WMPageLifetimes>;
38
+ * export?:AnyFunction
39
+ * externalClasses?: string[];
36
40
  * };
37
41
  * ```
38
42
  */
39
43
  export type RootComponentDoc<O extends _Validator<O, _RootComponentDoc> = _RootComponentDoc> = O;
40
-
41
- type _RootPageDoc = {
42
- isPage?: boolean;
43
- properties?: object;
44
- data?: object;
45
- computed?: object;
46
- customEvents?: object;
47
- methods?: object;
48
- events?: object;
49
- store?: object;
50
- watch?: Record<string, Func>;
51
- lifetimes?: LifetimesConstraint;
52
- pageLifetimes?: Partial<WMPageLifetimes>;
53
- };
54
-
55
- export type RootPageDoc<O extends _Validator<O, _RootPageDoc> = _RootPageDoc> = O;
@@ -1,8 +1,8 @@
1
1
  import { Checking, type Test } from "hry-types";
2
2
  import { RootComponent } from "../..";
3
-
4
3
  /**
5
4
  * watch 只能监控 注入的store字段
5
+ * 注入文件 https://github.com/missannil/annil/blob/main/src/api/InstanceInject/inject.ts
6
6
  */
7
7
  RootComponent()({
8
8
  watch: {
@@ -57,7 +57,7 @@ type RootComponentOptions<
57
57
  & StoreOption<TStore, keyof (PropertiesDoc & DataDoc)>
58
58
  & ComputedOption<TComputed, keyof (PropertiesDoc & DataDoc & StoreDoc)>
59
59
  & PageLifetimesOption<TIsPage, PropertiesDoc>
60
- & LifetimesOption<TIsPage>
60
+ & LifetimesOption
61
61
  & WatchOption<
62
62
  & ComputedDoc
63
63
  & Required<PropertiesDoc>
@@ -65,7 +65,7 @@ type RootComponentOptions<
65
65
  & StoreDoc
66
66
  & IInjectStore
67
67
  >
68
- & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers">>
68
+ & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "observers">>
69
69
  & ObserversOption<
70
70
  & ComputedDoc
71
71
  & Required<PropertiesDoc>
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * 子组件Data字段约束
3
- * @returns 当剩余对象不为空对象,约束对象的key为剩余key,类型为剩余key对应的文档类型或函数返回类型。
3
+ * @returns 当剩余对象不为空对象,约束对象的key为剩余key,类型为剩余key对应的文档类型.
4
4
  */
5
5
  export type SubDataConstraint<
6
6
  TComponentDoc extends object,
@@ -5,7 +5,7 @@ import type { ComponentDoc } from "../../DefineComponent/ReturnType/ComponentDoc
5
5
  type WXMLSign = "wxml";
6
6
 
7
7
  /**
8
- * 子组件inherit字段约束,key为子组件所需key,根组件数据的key或`WXMLSign`。要求根数据类型为子数据类型的子类型。当key的值来自wxml(循环产生的子数据等情况)时用`WXMLSign`表示。
8
+ * 子组件inherit字段约束,key为构建组件所需的properties字段,类型为根组件数据的key或`WXMLSign`。要求根数据类型为子数据类型的子类型。当key的值来自wxml(循环产生的子数据等情况)时用`WXMLSign`表示。
9
9
  * @returns object
10
10
  */
11
11
  export type InheritConstraint<AllRootData extends object, TComponentDoc extends ComponentDoc> = {
@@ -43,9 +43,6 @@ SubComponent<RootDoc, CompDoc>()({
43
43
  data: {
44
44
  aaa_str: "str",
45
45
  },
46
- store: {
47
- _aaa_SubReactive: () => 123,
48
- },
49
46
  computed: {},
50
47
  methods: {
51
48
  aaa_SubM() {},
@@ -68,7 +65,6 @@ SubComponent<RootDoc, CompDoc>()({
68
65
  Cnum: number;
69
66
  // 自身Data
70
67
  aaa_str: "str";
71
- _aaa_SubReactive: 123;
72
68
  } & IInjectData
73
69
  >,
74
70
  Test.Pass
@@ -1,3 +1,3 @@
1
- import type { WMCompLifetimes } from "../../../types/OfficialTypeAlias";
1
+ import type { LifetimesOption } from "../../RootComponent/Lifetimes/LifetimesOption";
2
2
 
3
- export type SubLifetimesOption = Partial<WMCompLifetimes>;
3
+ export type SubLifetimesOption = LifetimesOption;
@@ -1,6 +1,6 @@
1
1
  import type { V } from "hry-types";
2
2
 
3
- export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyKey, TPrefix extends string> = {
3
+ export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyKey> = {
4
4
  /**
5
5
  * 全局响应式数据字段,全局store对应数据变化实例对应数据自动setData。
6
6
  * 约束为组件properties字段去除inherit和data的剩余字段和内部字段
@@ -19,7 +19,8 @@ export type SubStoreOption<TSubStore extends object, legalKeys extends PropertyK
19
19
  & TSubStore
20
20
  & V.IllegalFieldValidator<
21
21
  TSubStore,
22
- legalKeys | `_${TPrefix}_${string}`,
22
+ legalKeys,
23
+ // legalKeys | `_${TPrefix}_${string}`,
23
24
  0,
24
25
  "",
25
26
  "与inherit和data字段重复或前缀错误"
@@ -31,9 +31,7 @@ SubComponent<{
31
31
  aaa_str: () => user.name,
32
32
  // @ts-expect-error 2 与 data 字段重复
33
33
  aaa_num: () => user.age,
34
- // @ts-expect-error 3 内部字段前缀错误
35
- _num: () => user.age,
36
- // @ts-expect-error 4 超出约束字段
34
+ // @ts-expect-error 3 超出约束字段
37
35
  num: () => user.age,
38
36
  },
39
37
  });
@@ -19,7 +19,17 @@ SubComponent<{}, DocA>()({
19
19
  aaa_str: () => user.name,
20
20
 
21
21
  aaa_num: () => user.age,
22
- // 运行内部字段(暂定)
23
- _aaa_ddd: () => user.age,
22
+ // 内部字段
23
+ // _aaa_ddd: () => user.age,
24
+ },
25
+ });
26
+
27
+ SubComponent<{}, DocA, "a">()({
28
+ store: {
29
+ aaaA_str: () => user.name,
30
+
31
+ aaaA_num: () => user.age,
32
+ // 内部字段
33
+ // _aaaA_ddd: () => user.age,
24
34
  },
25
35
  });
@@ -0,0 +1,161 @@
1
+ import { Checking, type Test } from "hry-types";
2
+ import type { ReadonlyDeep } from "hry-types/src/Any/ReadonlyDeep";
3
+ import { type DetailedType, RootComponent, SubComponent } from "../../../..";
4
+ import type { OptionalType } from "../../../RootComponent/Properties/PropertiesConstraint";
5
+ import {
6
+ type Mock_Cart,
7
+ mock_requiredTypes,
8
+ mock_requiredUnion,
9
+ type Mock_User,
10
+ } from "../../../RootComponent/Properties/test/normalRequired.test";
11
+
12
+ const mock_optional = {
13
+ optional_num: {
14
+ type: Number,
15
+ value: 123,
16
+ },
17
+ optional_gender: {
18
+ type: String as DetailedType<"male" | "female">,
19
+ value: "male" as const,
20
+ },
21
+ optional_obj: {
22
+ type: Object as DetailedType<Mock_User>,
23
+ value: {
24
+ id: "id",
25
+ name: "name",
26
+ age: 20,
27
+ },
28
+ },
29
+ optional_objOrNull: {
30
+ type: Object as DetailedType<Mock_User | null>, // 可选类型定义null默认值方可为null
31
+ value: null,
32
+ },
33
+ } satisfies Record<string, OptionalType>;
34
+
35
+ const rootComponent = RootComponent()({
36
+ properties: {
37
+ ...mock_requiredTypes,
38
+ ...mock_requiredUnion,
39
+ ...mock_optional,
40
+ },
41
+ });
42
+
43
+ type Root = typeof rootComponent;
44
+
45
+ /**
46
+ * watch properties字段 深度只读, 必传对象字段newValue去除null
47
+ */
48
+ SubComponent<Root, { properties: { aaa_num: number } }>()({
49
+ watch: {
50
+ // 必传单一字段
51
+ str(newValue, oldValue) {
52
+ Checking<string, typeof newValue, Test.Pass>;
53
+
54
+ Checking<string, typeof oldValue, Test.Pass>;
55
+ },
56
+ num(newValue, oldValue) {
57
+ Checking<number, typeof newValue, Test.Pass>;
58
+
59
+ Checking<number, typeof oldValue, Test.Pass>;
60
+ },
61
+ bool(newValue, oldValue) {
62
+ Checking<boolean, typeof newValue, Test.Pass>;
63
+
64
+ Checking<boolean, typeof oldValue, Test.Pass>;
65
+ },
66
+ arr(newValue, oldValue) {
67
+ newValue; // readonly ReadonlyDeep<unknown>[]
68
+
69
+ oldValue; // readonly ReadonlyDeep<unknown>[]
70
+
71
+ // ts中很多不是错误的错误,写 typeof newValue 结果是错误
72
+ Checking<unknown[], typeof newValue, Test.Fail>;
73
+
74
+ // ts中很多不是错误的错误,写 readonly ReadonlyDeep<unknown>[] 结果是正确的
75
+ Checking<readonly unknown[], readonly ReadonlyDeep<unknown>[], Test.Pass>;
76
+ },
77
+ obj(newValue, oldValue) {
78
+ Checking<object, typeof newValue, Test.Pass>;
79
+
80
+ Checking<object | null, typeof oldValue, Test.Pass>;
81
+ },
82
+ tuple(newValue, oldValue) {
83
+ Checking<readonly [string, number, boolean], typeof newValue, Test.Pass>;
84
+
85
+ Checking<readonly [string, number, boolean], typeof oldValue, Test.Pass>;
86
+ },
87
+ union_str(newValue, oldValue) {
88
+ Checking<"male" | "female", typeof newValue, Test.Pass>;
89
+
90
+ Checking<"male" | "female", typeof oldValue, Test.Pass>;
91
+ },
92
+ union_num(newValue, oldValue) {
93
+ Checking<0 | 1 | 2, typeof newValue, Test.Pass>;
94
+
95
+ Checking<0 | 1 | 2, typeof oldValue, Test.Pass>;
96
+ },
97
+ union_bool(newValue, oldValue) {
98
+ Checking<false | true, typeof newValue, Test.Pass>;
99
+
100
+ Checking<false | true, typeof oldValue, Test.Pass>;
101
+ },
102
+ union_arr(newValue, oldValue) {
103
+ Checking<readonly number[] | readonly string[], typeof newValue, Test.Pass>;
104
+
105
+ Checking<readonly number[] | readonly string[], typeof oldValue, Test.Pass>;
106
+ },
107
+ union_obj(newValue, oldValue) {
108
+ Checking<ReadonlyDeep<Mock_User | Mock_Cart>, typeof newValue, Test.Pass>;
109
+
110
+ Checking<ReadonlyDeep<Mock_User | Mock_Cart | null>, typeof oldValue, Test.Pass>;
111
+ },
112
+ // 必传多类型联合
113
+ union_str_num_bool(newValue, oldValue) {
114
+ Checking<string | number | boolean, typeof newValue, Test.Pass>;
115
+
116
+ Checking<string | number | boolean, typeof oldValue, Test.Pass>;
117
+ },
118
+ union_literalStr_Literalnum(newValue, oldValue) {
119
+ Checking<0 | 1 | 2 | "male" | "female", typeof newValue, Test.Pass>;
120
+
121
+ Checking<0 | 1 | 2 | "male" | "female", typeof oldValue, Test.Pass>;
122
+ },
123
+ union_mockUser_num(newValue, oldValue) {
124
+ Checking<ReadonlyDeep<number | Mock_User>, typeof newValue, Test.Pass>;
125
+
126
+ Checking<ReadonlyDeep<number | Mock_User | null>, typeof oldValue, Test.Pass>;
127
+ },
128
+ // 可选字段
129
+ optional_gender(newValue, oldValue) {
130
+ Checking<"male" | "female", typeof newValue, Test.Pass>;
131
+
132
+ Checking<"male" | "female", typeof oldValue, Test.Pass>;
133
+ },
134
+ optional_num(newValue, oldValue) {
135
+ Checking<number, typeof newValue, Test.Pass>;
136
+
137
+ Checking<number, typeof oldValue, Test.Pass>;
138
+ },
139
+ optional_obj(newValue, oldValue) {
140
+ Checking<ReadonlyDeep<Mock_User>, typeof newValue, Test.Pass>;
141
+
142
+ Checking<ReadonlyDeep<Mock_User | null>, typeof oldValue, Test.Pass>;
143
+ },
144
+ // 对象的二段key
145
+ "optional_obj.age"(newValue, oldValue) {
146
+ Checking<number, typeof newValue, Test.Pass>;
147
+
148
+ Checking<number | undefined, typeof oldValue, Test.Pass>;
149
+ },
150
+ "optional_obj.**"(newValue, oldValue) {
151
+ Checking<ReadonlyDeep<Mock_User>, typeof newValue, Test.Pass>;
152
+
153
+ Checking<ReadonlyDeep<Mock_User | null>, typeof oldValue, Test.Pass>;
154
+ },
155
+ "optional_obj.id"(newValue, oldValue) {
156
+ Checking<string, typeof newValue, Test.Pass>;
157
+
158
+ Checking<string, typeof oldValue, Test.Pass>;
159
+ },
160
+ },
161
+ });
@@ -32,7 +32,7 @@ import type { SubMethodsOption } from "./SubMethods/SubMethodsOption";
32
32
  import type { SubObserversOption } from "./SubObservers/SubObserversOption";
33
33
  import type { SubPageLifetimesOption } from "./SubPageLifetimes/SubPageLifetimesOption";
34
34
  import type { CreateSubComponentDoc } from "./SubReturnType/CreateSubComponentDoc";
35
- import type { SubStoreConstraint } from "./SubStore/SubDataConstraint";
35
+ import type { SubStoreConstraint } from "./SubStore/SubStoreConstraint";
36
36
  import type { SubStoreOption } from "./SubStore/SubStoreOption";
37
37
  import type { SubWatchOption } from "./SubWatch/SubWatchOption";
38
38
 
@@ -63,8 +63,7 @@ type Options<
63
63
  >
64
64
  & SubStoreOption<
65
65
  TSubStore,
66
- Exclude<keyof CurrentCompDoc["properties"], (keyof (InheritDoc & SubDataDoc))>,
67
- Prefix
66
+ Exclude<keyof CurrentCompDoc["properties"], (keyof (InheritDoc & SubDataDoc))>
68
67
  >
69
68
  & SubComputedOption<
70
69
  TSubComputed,
@@ -84,7 +83,7 @@ type Options<
84
83
  & SubStoreDoc
85
84
  & IInjectStore
86
85
  >
87
- & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers">>
86
+ & Partial<Omit<WMCompOtherOption, "pageLifetimes" | "definitionFilter" | "export" | "observers" | "relations">>
88
87
  & SubObserversOption<
89
88
  & SubComputedDoc
90
89
  & SubDataDoc
@@ -11,7 +11,8 @@ function isSameSize(a: object, b: object) {
11
11
 
12
12
  // 定义一个辅助函数,用于判断两个函数的代码是否相同
13
13
  function isSameCode(a: Function, b: Function) {
14
- return a.toString() === b.toString();
14
+ // 去除空格比较函数字符串
15
+ return a.toString().split(" ").join("") === b.toString().split(" ").join("");
15
16
  }
16
17
 
17
18
  // 定义一个辅助函数,用于判断两个日期的时间戳是否相同
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=SubDataConstraint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SubDataConstraint.js","sourceRoot":"","sources":["../../../../src/api/SubComponent/SubStore/SubDataConstraint.ts"],"names":[],"mappings":""}