annil 1.0.1 → 1.0.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 (105) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +36 -6
  3. package/dist/api/DefineComponent/collectOptionsForComponent.d.ts +4 -0
  4. package/dist/api/DefineComponent/collectOptionsForComponent.js +152 -0
  5. package/dist/api/DefineComponent/collectOptionsForComponent.js.map +1 -0
  6. package/dist/api/DefineComponent/index.d.ts +4 -28
  7. package/dist/api/DefineComponent/index.js +2 -37
  8. package/dist/api/DefineComponent/index.js.map +1 -1
  9. package/dist/api/RootComponent/CustomEvents/CustomEventConstraint.d.ts +2 -1
  10. package/dist/api/RootComponent/Data/DataConstraint.d.ts +1 -0
  11. package/dist/api/RootComponent/Data/DataConstraint.js +2 -0
  12. package/dist/api/RootComponent/Data/DataConstraint.js.map +1 -0
  13. package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.d.ts +2 -2
  14. package/dist/api/RootComponent/Lifetimes/test/error.test.js +1 -0
  15. package/dist/api/RootComponent/Lifetimes/test/error.test.js.map +1 -1
  16. package/dist/api/RootComponent/Lifetimes/test/normal.test.js +3 -0
  17. package/dist/api/RootComponent/Lifetimes/test/normal.test.js.map +1 -1
  18. package/dist/api/RootComponent/Properties/test/normalOptional.test.js +15 -0
  19. package/dist/api/RootComponent/Properties/test/normalOptional.test.js.map +1 -1
  20. package/dist/api/RootComponent/index.d.ts +19 -2
  21. package/dist/api/RootComponent/index.js +1 -1
  22. package/dist/api/RootComponent/index.js.map +1 -1
  23. package/dist/api/SubComponent/index.d.ts +1 -1
  24. package/dist/api/SubComponent/index.js.map +1 -1
  25. package/dist/{utils → behaviors/BComputedAndWatch}/computedUpdater.d.ts +1 -1
  26. package/dist/{utils → behaviors/BComputedAndWatch}/computedUpdater.js +2 -2
  27. package/dist/behaviors/BComputedAndWatch/computedUpdater.js.map +1 -0
  28. package/dist/{utils → behaviors/BComputedAndWatch}/getPathsValue.d.ts +1 -1
  29. package/dist/behaviors/BComputedAndWatch/getPathsValue.js.map +1 -0
  30. package/dist/behaviors/BComputedAndWatch/index.js +8 -1
  31. package/dist/behaviors/BComputedAndWatch/index.js.map +1 -1
  32. package/dist/behaviors/BComputedAndWatch/initComputed.js +1 -1
  33. package/dist/behaviors/BComputedAndWatch/initComputed.js.map +1 -1
  34. package/dist/behaviors/BStore.js.map +1 -1
  35. package/dist/behaviors/BbeforeCreated.js +1 -2
  36. package/dist/behaviors/BbeforeCreated.js.map +1 -1
  37. package/dist/types/OfficialTypeAlias.d.ts +2 -2
  38. package/package.json +3 -3
  39. package/src/api/DefineComponent/collectOptionsForComponent.ts +290 -0
  40. package/src/api/DefineComponent/index.ts +12 -85
  41. package/src/api/RootComponent/CustomEvents/CustomEventConstraint.ts +3 -1
  42. package/src/api/RootComponent/Data/DataConstraint.ts +1 -0
  43. package/src/api/RootComponent/IsPage/IsPageOption.ts +6 -1
  44. package/src/api/RootComponent/Lifetimes/LifetimesConstraint.ts +2 -2
  45. package/src/api/RootComponent/Lifetimes/test/error.test.ts +1 -1
  46. package/src/api/RootComponent/Lifetimes/test/normal.test.ts +3 -3
  47. package/src/api/RootComponent/Properties/test/normalOptional.test.ts +20 -0
  48. package/src/api/RootComponent/index.ts +19 -3
  49. package/src/api/SubComponent/index.ts +2 -3
  50. package/src/{utils → behaviors/BComputedAndWatch}/computedUpdater.ts +5 -4
  51. package/src/{utils → behaviors/BComputedAndWatch}/getPathsValue.ts +1 -1
  52. package/src/behaviors/BComputedAndWatch/index.ts +13 -4
  53. package/src/behaviors/BComputedAndWatch/initComputed.ts +1 -1
  54. package/src/behaviors/BStore.ts +2 -2
  55. package/src/behaviors/BbeforeCreated.ts +3 -3
  56. package/src/types/OfficialTypeAlias.ts +2 -2
  57. package/src/types/SpecificType.ts +0 -4
  58. package/tsconfig.json +6 -15
  59. package/dist/utils/InternalFieldProtection.d.ts +0 -2
  60. package/dist/utils/InternalFieldProtection.js +0 -11
  61. package/dist/utils/InternalFieldProtection.js.map +0 -1
  62. package/dist/utils/collector.d.ts +0 -5
  63. package/dist/utils/collector.js +0 -21
  64. package/dist/utils/collector.js.map +0 -1
  65. package/dist/utils/computedUpdater.js.map +0 -1
  66. package/dist/utils/createdHijack.d.ts +0 -0
  67. package/dist/utils/createdHijack.js +0 -2
  68. package/dist/utils/createdHijack.js.map +0 -1
  69. package/dist/utils/customEventsHandle.d.ts +0 -2
  70. package/dist/utils/customEventsHandle.js +0 -20
  71. package/dist/utils/customEventsHandle.js.map +0 -1
  72. package/dist/utils/eventsHandle.d.ts +0 -2
  73. package/dist/utils/eventsHandle.js +0 -5
  74. package/dist/utils/eventsHandle.js.map +0 -1
  75. package/dist/utils/funcConfigHandle.d.ts +0 -2
  76. package/dist/utils/funcConfigHandle.js +0 -18
  77. package/dist/utils/funcConfigHandle.js.map +0 -1
  78. package/dist/utils/getPathsValue.js.map +0 -1
  79. package/dist/utils/initWatchOldValue.d.ts +0 -2
  80. package/dist/utils/initWatchOldValue.js +0 -10
  81. package/dist/utils/initWatchOldValue.js.map +0 -1
  82. package/dist/utils/onLoadHijack.d.ts +0 -3
  83. package/dist/utils/onLoadHijack.js +0 -16
  84. package/dist/utils/onLoadHijack.js.map +0 -1
  85. package/dist/utils/onLoadReceivedDataHandle.d.ts +0 -3
  86. package/dist/utils/onLoadReceivedDataHandle.js +0 -14
  87. package/dist/utils/onLoadReceivedDataHandle.js.map +0 -1
  88. package/dist/utils/rootComponentFieldHandle.d.ts +0 -3
  89. package/dist/utils/rootComponentFieldHandle.js +0 -13
  90. package/dist/utils/rootComponentFieldHandle.js.map +0 -1
  91. package/dist/utils/subComponentsHandle.d.ts +0 -3
  92. package/dist/utils/subComponentsHandle.js +0 -12
  93. package/dist/utils/subComponentsHandle.js.map +0 -1
  94. package/src/utils/InternalFieldProtection.ts +0 -18
  95. package/src/utils/collector.ts +0 -41
  96. package/src/utils/createdHijack.ts +0 -21
  97. package/src/utils/customEventsHandle.ts +0 -31
  98. package/src/utils/eventsHandle.ts +0 -10
  99. package/src/utils/funcConfigHandle.ts +0 -30
  100. package/src/utils/initWatchOldValue.ts +0 -12
  101. package/src/utils/onLoadHijack.ts +0 -30
  102. package/src/utils/onLoadReceivedDataHandle.ts +0 -31
  103. package/src/utils/rootComponentFieldHandle.ts +0 -27
  104. package/src/utils/subComponentsHandle.ts +0 -25
  105. /package/dist/{utils → behaviors/BComputedAndWatch}/getPathsValue.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ### Bug Fixes
4
+
5
+ * 解决SpecificType不接收接口类型的错误 ([ae8acbf](https://github.com/missannil/annil/commit/ae8acbfc2e62f99db565c448ad9253aa549e78bb))
6
+
7
+ ## [1.0.4](https://github.com/missannil/annil/compare/v1.0.3...v1.0.4) (2023-11-30)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * release.yml ([c8b68b6](https://github.com/missannil/annil/commit/c8b68b66a50f5834756ab9f0d926bc7f1be2f90e))
13
+ * yml ([e51c002](https://github.com/missannil/annil/commit/e51c00290d24d9372766e66e9c807e0c3d65429f))
14
+
3
15
  ## [1.0.1](https://github.com/missannil/annil/compare/v1.0.0...v1.0.1) (2023-11-27)
4
16
 
5
17
 
package/README.md CHANGED
@@ -1,10 +1,40 @@
1
- ## Annil
1
+ <h1 align="center">Annil</h1>
2
2
 
3
- [![](https://img.shields.io/npm/v/annil?style=flat)](https://www.npmjs.com/package/annil)
3
+ <p align="center">
4
+ <a href="https://www.npmjs.com/package/annil" >
5
+ <img src="https://img.shields.io/npm/v/annil?style=flat"/>
6
+ </a>
7
+ <a href="https://github.com/missannil/annil/blob/main/.github/workflows/test.yml" >
8
+ <img src="https://github.com/missannil/annil/actions/workflows/test.yml/badge.svg?branch=miss"/>
9
+ </a>
10
+ <a href="https://github.com/missannil/annil/blob/main/.github/workflows/release-please.yml" >
11
+ <img src="https://github.com/missannil/annil/actions/workflows/release-please.yml/badge.svg?branch=main"/>
12
+ </a>
13
+ <a href="https://github.com/missannil/annil/blob/main/LICENSE" >
14
+ <img src="https://img.shields.io/github/license/missannil/annil"/>
15
+ </a>
16
+ <a href="https://codecov.io/gh/missannil/annil" >
17
+ <img src="https://codecov.io/gh/missannil/annil/graph/badge.svg?token=4CFCHGST79"/>
18
+ </a>
19
+ <a href="https://www.npmjs.com/package/annil" >
20
+ <img src="https://img.shields.io/npm/dependency-version/annil/dev/typescript"/>
21
+ </a>
22
+ </p>
4
23
 
5
- [![](https://github.com/missannil/annil/actions/workflows/release-please.yml/badge.svg?branch=main)](https://github.com/missannil/annil/blob/main/.github/workflows/release-please.yml)
24
+ ### 简介
6
25
 
7
- [![](https://img.shields.io/github/license/missannil/annil)](https://github.com/missannil/annil/blob/main/LICENSE)
26
+ annil(安奈儿)是微信小程序原生开发插件,她把组件的逻辑部分解耦为根组件和子组件,与wxml元素一一对应,提高了组件的可读性,更方便拓展和维护。另外annil的类型系统无与伦比,一个页面好比一个类型,无论嵌套多少层组件,无论哪层数据类型发生改变,所有相关类型都会得到感知。当您修改,拓展,重构代码时,只要无类型报错就不会有运行时报错。
8
27
 
9
- [![](https://codecov.io/github/vuejs/vue?branch=dev)]()
10
- annil(安奈儿)是为使用typescript原始开发微信小程序所写的插件,是您的小程序代码更易写、易读、易维护。
28
+ ### 特点
29
+
30
+ - API功能更全面
31
+ - 极致的类型约束
32
+ - 更严格的书写规范
33
+ - 子组件逻辑分离
34
+ - 渐进式更新
35
+
36
+ ## 安装
37
+
38
+ ```bash
39
+ npm i annil --save-dev
40
+ ```
@@ -0,0 +1,4 @@
1
+ import type { RootComponentTrueOptions } from "../RootComponent";
2
+ import type { SubComponentTrueOptions } from "../SubComponent";
3
+ import type { FinalOptionsForComponent } from ".";
4
+ export declare function collectOptionsForComponent(rootComponentOption: RootComponentTrueOptions | undefined, subComponentsList: SubComponentTrueOptions[] | undefined): FinalOptionsForComponent;
@@ -0,0 +1,152 @@
1
+ import { BBeforeCreate } from "../../behaviors/BbeforeCreated";
2
+ import { BComputedAndWatch } from "../../behaviors/BComputedAndWatch";
3
+ import { initComputed } from "../../behaviors/BComputedAndWatch/initComputed";
4
+ import { BStore } from "../../behaviors/BStore";
5
+ import { deepClone } from "../../utils/deepClone";
6
+ import { INNERMARKER } from "../../utils/InnerMarker";
7
+ import { isEmptyObject } from "../../utils/isEmptyObject";
8
+ function onLoadReceivedDataHandle(option) {
9
+ const innerData = option[INNERMARKER.url];
10
+ if (innerData === undefined)
11
+ return;
12
+ const optionData = JSON.parse(decodeURIComponent(innerData));
13
+ for (const key in optionData) {
14
+ option[key] = optionData[key];
15
+ }
16
+ this.setData(option);
17
+ delete option[INNERMARKER.url];
18
+ Reflect.deleteProperty(this.data, INNERMARKER.url);
19
+ }
20
+ function onLoadHijack(options, before, after = []) {
21
+ options.methods || (options.methods = {});
22
+ const cloneOpt = deepClone(options);
23
+ const originalOnLoad = options.methods.onLoad;
24
+ options.methods.onLoad = function (props) {
25
+ before.forEach((func) => {
26
+ func.call(this, props, cloneOpt);
27
+ });
28
+ originalOnLoad === null || originalOnLoad === void 0 ? void 0 : originalOnLoad.call(this, props);
29
+ after.forEach((func) => {
30
+ func.call(this, props, cloneOpt);
31
+ });
32
+ };
33
+ }
34
+ const INNERFIELDS = ["disposer"];
35
+ function InternalFieldProtection(methodsConfig) {
36
+ const methodsConfigKeys = Object.keys(methodsConfig);
37
+ for (const key of INNERFIELDS) {
38
+ if (methodsConfigKeys.includes(key)) {
39
+ throw Error(`${key}已被内部字段占用`);
40
+ }
41
+ }
42
+ }
43
+ function _funcConfigHandle(methodsConfig, configList) {
44
+ for (const key in configList) {
45
+ methodsConfig[key] = function (...args) {
46
+ configList[key].forEach(ele => ele.call(this, ...args));
47
+ };
48
+ }
49
+ }
50
+ function funcConfigHandle(finalOptionsForComponent, isPage, funcOptions) {
51
+ if (isPage) {
52
+ funcOptions.pageLifetimes && _funcConfigHandle(finalOptionsForComponent.methods || (finalOptionsForComponent.methods = {}), funcOptions.pageLifetimes);
53
+ }
54
+ else {
55
+ funcOptions.pageLifetimes
56
+ && _funcConfigHandle(finalOptionsForComponent.pageLifetimes || (finalOptionsForComponent.pageLifetimes = {}), funcOptions.pageLifetimes);
57
+ }
58
+ funcOptions.lifetimes && _funcConfigHandle(finalOptionsForComponent.lifetimes || (finalOptionsForComponent.lifetimes = {}), funcOptions.lifetimes);
59
+ funcOptions.watch && _funcConfigHandle(finalOptionsForComponent.watch || (finalOptionsForComponent.watch = {}), funcOptions.watch);
60
+ }
61
+ function funcFieldsCollect(options, funcOptions) {
62
+ var _a;
63
+ for (const key in funcOptions) {
64
+ if (options[key]) {
65
+ for (const _key in options[key]) {
66
+ ((_a = funcOptions[key])[_key] || (_a[_key] = [])).push(options[key][_key]);
67
+ }
68
+ }
69
+ Reflect.deleteProperty(options, key);
70
+ }
71
+ }
72
+ function otherFieldsHandle(finalOptions, rootComponentOptions) {
73
+ for (const key in rootComponentOptions) {
74
+ const config = rootComponentOptions[key];
75
+ if (Array.isArray(config)) {
76
+ (finalOptions[key] || (finalOptions[key] = [])).push(...config);
77
+ }
78
+ else {
79
+ Object.assign(finalOptions[key] || (finalOptions[key] = {}), config);
80
+ }
81
+ }
82
+ }
83
+ function eventsHandle(componentOptions, eventsConfig) {
84
+ componentOptions.methods || (componentOptions.methods = {});
85
+ Object.assign(componentOptions.methods, eventsConfig);
86
+ }
87
+ function subComponentsHandle(componentOptions, subComponents, funcOptions) {
88
+ subComponents.forEach((subOption) => {
89
+ subOption.events && eventsHandle(componentOptions, subOption.events);
90
+ funcFieldsCollect(subOption, funcOptions);
91
+ otherFieldsHandle(componentOptions, subOption);
92
+ });
93
+ }
94
+ function IsFullCustomEvents(customEventOptions) {
95
+ return Object.prototype.toString.call(customEventOptions) === "[object Object]";
96
+ }
97
+ function customEventsHandle(componentOptions, customEventsConfig) {
98
+ componentOptions.methods || (componentOptions.methods = {});
99
+ for (const key in customEventsConfig) {
100
+ const customEventOptions = customEventsConfig[key];
101
+ if (IsFullCustomEvents(customEventOptions)) {
102
+ componentOptions.methods[key] = function (detail) {
103
+ this.triggerEvent(key, detail, customEventOptions.options);
104
+ };
105
+ }
106
+ else {
107
+ componentOptions.methods[key] = function (detail) {
108
+ this.triggerEvent(key, detail);
109
+ };
110
+ }
111
+ }
112
+ }
113
+ function collectRootComponentOption(finalOptions, funcOptions, rootComponentOptions) {
114
+ rootComponentOptions.customEvents && customEventsHandle(finalOptions, rootComponentOptions.customEvents);
115
+ delete rootComponentOptions.customEvents;
116
+ rootComponentOptions.events && eventsHandle(finalOptions, rootComponentOptions.events);
117
+ delete rootComponentOptions.events;
118
+ funcFieldsCollect(rootComponentOptions, funcOptions);
119
+ otherFieldsHandle(finalOptions, rootComponentOptions);
120
+ }
121
+ export function collectOptionsForComponent(rootComponentOption, subComponentsList) {
122
+ const finalOptionsForComponent = {
123
+ options: {
124
+ multipleSlots: true,
125
+ pureDataPattern: /^_/,
126
+ virtualHost: true,
127
+ },
128
+ behaviors: [BStore, BComputedAndWatch],
129
+ };
130
+ const funcOptions = {
131
+ pageLifetimes: {},
132
+ lifetimes: {},
133
+ watch: {},
134
+ };
135
+ if (rootComponentOption && !isEmptyObject(rootComponentOption)) {
136
+ collectRootComponentOption(finalOptionsForComponent, funcOptions, rootComponentOption);
137
+ }
138
+ if (subComponentsList && !isEmptyObject(subComponentsList)) {
139
+ subComponentsHandle(finalOptionsForComponent, subComponentsList, funcOptions);
140
+ }
141
+ if (!isEmptyObject(funcOptions)) {
142
+ funcConfigHandle(finalOptionsForComponent, rootComponentOption === null || rootComponentOption === void 0 ? void 0 : rootComponentOption.isPage, funcOptions);
143
+ }
144
+ finalOptionsForComponent.methods && InternalFieldProtection(finalOptionsForComponent.methods);
145
+ finalOptionsForComponent.behaviors.push(BBeforeCreate);
146
+ onLoadHijack(finalOptionsForComponent, [onLoadReceivedDataHandle, initComputed], []);
147
+ if (finalOptionsForComponent.isPage) {
148
+ Reflect.deleteProperty(finalOptionsForComponent.options, "virtualHost");
149
+ }
150
+ return finalOptionsForComponent;
151
+ }
152
+ //# sourceMappingURL=collectOptionsForComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectOptionsForComponent.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/collectOptionsForComponent.ts"],"names":[],"mappings":"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"}
@@ -9,19 +9,16 @@ import type { CreateComponentDoc } from "./ReturnType/CreateComponentDoc";
9
9
  import type { CreatePageDoc } from "./ReturnType/CreatePageDoc";
10
10
  import type { RootComponentOption } from "./RootComponent/RootComponentOption";
11
11
  import type { SubComponentsOption } from "./SubComponents/SubComponentsOption";
12
+ type Path = `/${string}`;
12
13
  type RootOptions<TRootComponentDoc extends RootComponentDoc, TSubComponentTuple extends SubComponentDoc[], TName extends string, TPath extends Path> = NameOrPathOption<TName, TPath, TRootComponentDoc> & RootComponentOption<TRootComponentDoc> & SubComponentsOption<TSubComponentTuple>;
13
14
  interface DefineComponentConstructor {
14
15
  <TRootComponentDoc extends RootComponentDoc = {}, TSubComponentTuple extends SubComponentDoc[] = [], TName extends string = "", TPath extends Path = "/">(options: RootOptions<TRootComponentDoc, TSubComponentTuple, TName, TPath>): IfExtends<"", TName, CreatePageDoc<TRootComponentDoc, TPath, TSubComponentTuple>, CreateComponentDoc<TRootComponentDoc, TName, TSubComponentTuple>>;
15
16
  }
16
- export type FuncConfig = {
17
- pageLifetimes?: Record<string, Func[]>;
18
- lifetimes?: Record<string, Func[]>;
19
- watch?: Record<string, Func[]>;
20
- };
21
- export type ComponentOptions = {
17
+ export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch", Record<string, Func[]>>;
18
+ export type FinalOptionsForComponent = {
22
19
  isPage?: boolean;
23
20
  options?: WMComponent.Options;
24
- properties?: object;
21
+ properties?: Record<string, any>;
25
22
  data?: object;
26
23
  store?: object;
27
24
  computed?: Record<string, Func>;
@@ -36,26 +33,5 @@ export type ComponentOptions = {
36
33
  load: Func;
37
34
  } & WMPageLifetimes>;
38
35
  };
39
- export type Path = `/${string}`;
40
- export type DefineComponentOptions = {
41
- path?: Path;
42
- name?: string;
43
- rootComponent?: RootComponentDoc;
44
- subComponents?: SubComponentDoc[];
45
- };
46
36
  export declare const DefineComponent: DefineComponentConstructor;
47
- export type PageOptions = {
48
- path: Path;
49
- rootComponent: RootComponentDoc & {
50
- isPage: true;
51
- };
52
- subComponents: SubComponentDoc[];
53
- };
54
- export type CompOptions = {
55
- name: string;
56
- rootComponent: RootComponentDoc & {
57
- isPage: undefined;
58
- };
59
- subComponents: SubComponentDoc[];
60
- };
61
37
  export {};
@@ -1,40 +1,5 @@
1
- import { BBeforeCreate } from "../../behaviors/BbeforeCreated";
2
- import { BComputedAndWatch } from "../../behaviors/BComputedAndWatch";
3
- import { initComputed } from "../../behaviors/BComputedAndWatch/initComputed";
4
- import { BStore } from "../../behaviors/BStore";
5
- import { funcConfigHandle } from "../../utils/funcConfigHandle";
6
- import { isEmptyObject } from "../../utils/isEmptyObject";
7
- import { onLoadReceivedDataHandle } from "../../utils/onLoadReceivedDataHandle";
8
- import { rootComponentFieldHandle } from "../../utils/rootComponentFieldHandle";
9
- import { subComponentsHandle } from "../../utils/subComponentsHandle";
10
- import { InternalFieldProtection } from "../../utils/InternalFieldProtection";
11
- import { onLoadHijack } from "../../utils/onLoadHijack";
1
+ import { collectOptionsForComponent } from "./collectOptionsForComponent";
12
2
  export const DefineComponent = function (options) {
13
- var _a;
14
- const finalOptions = {
15
- options: {
16
- multipleSlots: true,
17
- pureDataPattern: /^_/,
18
- virtualHost: true,
19
- },
20
- behaviors: [BStore, BComputedAndWatch],
21
- };
22
- const allFuncConfig = {};
23
- if (options.rootComponent && !isEmptyObject(options.rootComponent)) {
24
- rootComponentFieldHandle(options.rootComponent, finalOptions, allFuncConfig);
25
- }
26
- if (options.subComponents && !isEmptyObject(options.subComponents)) {
27
- subComponentsHandle(finalOptions, options.subComponents, allFuncConfig);
28
- }
29
- if (!isEmptyObject(allFuncConfig)) {
30
- funcConfigHandle(finalOptions, (_a = options.rootComponent) === null || _a === void 0 ? void 0 : _a.isPage, allFuncConfig);
31
- }
32
- finalOptions.methods && InternalFieldProtection(finalOptions.methods);
33
- finalOptions.behaviors.push(BBeforeCreate);
34
- onLoadHijack(finalOptions, [onLoadReceivedDataHandle, initComputed], []);
35
- if (finalOptions.isPage) {
36
- Reflect.deleteProperty(finalOptions.options, "virtualHost");
37
- }
38
- Component(finalOptions);
3
+ Component(collectOptionsForComponent(options.rootComponent, options.subComponents));
39
4
  };
40
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAUtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAoExD,MAAM,CAAC,MAAM,eAAe,GAA+B,UAAS,OAAO;;IAIzE,MAAM,YAAY,GAAqB;QAErC,OAAO,EAAE;YAEP,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,IAAI;SAClB;QAED,SAAS,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC;KACvC,CAAC;IAIF,MAAM,aAAa,GAAe,EAAE,CAAC;IAErC,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACnE,wBAAwB,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACnE,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC1E,CAAC;IAGD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,gBAAgB,CAAC,YAAY,EAAE,MAAA,OAAO,CAAC,aAAa,0CAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/E,CAAC;IAED,YAAY,CAAC,OAAO,IAAI,uBAAuB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtE,YAAY,CAAC,SAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE5C,YAAY,CAAC,YAAY,EAAE,CAAC,wBAAwB,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;IAIzE,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,OAAQ,EAAE,aAAa,CAAC,CAAC;IAC/D,CAAC;IAED,SAAS,CAAC,YAAmB,CAAC,CAAC;AACjC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAyD1E,MAAM,CAAC,MAAM,eAAe,GAA+B,UAAS,OAAO;IACzE,SAAS,CACP,0BAA0B,CAAC,OAAO,CAAC,aAAqD,EAAE,OAAO,CAAC,aAAa,CAAC,CACjH,CAAC;AACJ,CAAC,CAAC"}
@@ -31,5 +31,6 @@ export type FullCustomEvents = {
31
31
  detailType: ShortCustomeEvents;
32
32
  options: OptionsFieldsConfigOfCustomEvents;
33
33
  };
34
- export type CustomEventConstraint = Record<string, FullCustomEvents | ShortCustomeEvents>;
34
+ export type CustomEvents = FullCustomEvents | ShortCustomeEvents;
35
+ export type CustomEventConstraint = Record<string, CustomEvents>;
35
36
  export {};
@@ -0,0 +1 @@
1
+ export type DataConstraint = Record<string, any>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DataConstraint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataConstraint.js","sourceRoot":"","sources":["../../../../src/api/RootComponent/Data/DataConstraint.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  import type { WMCompLifetimes } from "../../../types/OfficialTypeAlias";
2
- import type { ComponentOptions } from "../../DefineComponent";
2
+ import type { FinalOptionsForComponent } from "../../DefineComponent";
3
3
  export type LifetimesConstraint = WMCompLifetimes["lifetimes"] & {
4
- beforeCreate?: (options: ComponentOptions) => void;
4
+ beforeCreate?: (options: FinalOptionsForComponent) => void;
5
5
  };
@@ -1,6 +1,7 @@
1
1
  import { RootComponent } from "../..";
2
2
  RootComponent()({
3
3
  lifetimes: {
4
+ beforeCreate() { },
4
5
  created() { },
5
6
  attached() { },
6
7
  ready() { },
@@ -1 +1 @@
1
- {"version":3,"file":"error.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/Lifetimes/test/error.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,aAAa,EAAE,CAAC;IACd,SAAS,EAAE;QAGT,OAAO,KAAI,CAAC;QAEZ,QAAQ,KAAI,CAAC;QAEb,KAAK,KAAI,CAAC;QAEV,QAAQ,KAAI,CAAC;QAEb,KAAK,CAAC,GAAG;YACP,GAAG,CAAC,KAAK,CAAC;QACZ,CAAC;QACD,KAAK,KAAI,CAAC;QAEV,GAAG,KAAI,CAAC;KACT;CACF,CAAC,CAAC;AAKH,aAAa,EAAE,CAAC;IACd,MAAM,EAAE,IAAI;IAEZ,SAAS,EAAE,EAAE;CACd,CAAC,CAAC"}
1
+ {"version":3,"file":"error.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/Lifetimes/test/error.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItC,aAAa,EAAE,CAAC;IACd,SAAS,EAAE;QACT,YAAY,KAAI,CAAC;QAEjB,OAAO,KAAI,CAAC;QAEZ,QAAQ,KAAI,CAAC;QAEb,KAAK,KAAI,CAAC;QAEV,QAAQ,KAAI,CAAC;QAEb,KAAK,CAAC,GAAG;YACP,GAAG,CAAC,KAAK,CAAC;QACZ,CAAC;QACD,KAAK,KAAI,CAAC;QAEV,GAAG,KAAI,CAAC;KACT;CACF,CAAC,CAAC;AAKH,aAAa,EAAE,CAAC;IACd,MAAM,EAAE,IAAI;IAEZ,SAAS,EAAE,EAAE;CACd,CAAC,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { RootComponent } from "../../../..";
2
2
  RootComponent()({
3
3
  lifetimes: {
4
+ beforeCreate(opitons) {
5
+ opitons;
6
+ },
4
7
  created() {
5
8
  },
6
9
  attached() {
@@ -1 +1 @@
1
- {"version":3,"file":"normal.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/Lifetimes/test/normal.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,aAAa,EAAE,CAAC;IACd,SAAS,EAAE;QAKT,OAAO;QACP,CAAC;QACD,QAAQ;QACR,CAAC;QACD,KAAK;QACL,CAAC;QACD,QAAQ;QACR,CAAC;QACD,KAAK,CAAC,GAAG;YACP,GAAG,CAAC,KAAK,CAAC;QACZ,CAAC;QACD,KAAK;QACL,CAAC;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"normal.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/Lifetimes/test/normal.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,aAAa,EAAE,CAAC;IACd,SAAS,EAAE;QAET,YAAY,CAAC,OAAO;YAClB,OAAO,CAAC;QACV,CAAC;QACD,OAAO;QACP,CAAC;QACD,QAAQ;QACR,CAAC;QACD,KAAK;QACL,CAAC;QACD,QAAQ;QACR,CAAC;QACD,KAAK,CAAC,GAAG;YACP,GAAG,CAAC,KAAK,CAAC;QACZ,CAAC;QACD,KAAK;QACL,CAAC;KACF;CACF,CAAC,CAAC"}
@@ -38,4 +38,19 @@ const OptionalDoc = RootComponent()({
38
38
  },
39
39
  });
40
40
  Checking;
41
+ RootComponent()({
42
+ properties: {
43
+ xxx: Object,
44
+ user: {
45
+ type: Object,
46
+ value: { name: "zhao" },
47
+ },
48
+ },
49
+ computed: {
50
+ ddd() {
51
+ var _a;
52
+ (_a = this.data.user) === null || _a === void 0 ? void 0 : _a.name;
53
+ },
54
+ },
55
+ });
41
56
  //# sourceMappingURL=normalOptional.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalOptional.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/Properties/test/normalOptional.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;IAClC,UAAU,EAAE;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;SACX;QACD,eAAe,EAAE;YACf,IAAI,EAAE,MAAyC;YAC/C,KAAK,EAAE,MAAM;SACd;QACD,cAAc,EAAE;YACd,IAAI,EAAE,KAA2D;YACjE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAA8B;SACnD;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,MAAiC;YACvC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,GAAG,EAAE,EAAE;aACR;SACF;QACD,kBAAkB,EAAE;YAClB,IAAI,EAAE,MAAwC;YAC9C,KAAK,EAAE,IAAI;SACZ;QACD,cAAc,EAAE;YACd,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,CAAC,MAAM,CAAC;SACxB;KACF;IACD,OAAO,EAAE;QACP,GAAG;YAED,QAWC,CAAC;QACJ,CAAC;KACF;CACF,CAAC,CAAC;AAiBH,QAA4D,CAAC"}
1
+ {"version":3,"file":"normalOptional.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/Properties/test/normalOptional.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;IAClC,UAAU,EAAE;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;SACX;QACD,eAAe,EAAE;YACf,IAAI,EAAE,MAAyC;YAC/C,KAAK,EAAE,MAAM;SACd;QACD,cAAc,EAAE;YACd,IAAI,EAAE,KAA2D;YACjE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAA8B;SACnD;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,MAAiC;YACvC,KAAK,EAAE;gBACL,EAAE,EAAE,IAAI;gBACR,GAAG,EAAE,EAAE;aACR;SACF;QACD,kBAAkB,EAAE;YAClB,IAAI,EAAE,MAAwC;YAC9C,KAAK,EAAE,IAAI;SACZ;QACD,cAAc,EAAE;YACd,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,CAAC,MAAM,CAAC;SACxB;KACF;IACD,OAAO,EAAE;QACP,GAAG;YAED,QAWC,CAAC;QACJ,CAAC;KACF;CACF,CAAC,CAAC;AAiBH,QAA4D,CAAC;AAO7D,aAAa,EAAE,CAAC;IACd,UAAU,EAAE;QACV,GAAG,EAAE,MAAmC;QACxC,IAAI,EAAE;YACJ,IAAI,EAAE,MAA2B;YACjC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB;KACF;IACD,QAAQ,EAAE;QACR,GAAG;;YACD,MAAA,IAAI,CAAC,IAAI,CAAC,IAAI,0CAAE,IAAI,CAAC;QACvB,CAAC;KACF;CACF,CAAC,CAAC"}
@@ -3,7 +3,7 @@ import type { NoInfer } from "hry-types/src/Generic/NoInfer";
3
3
  import type { EmptyObject } from "hry-types/src/Misc/EmptyObject";
4
4
  import type { Func } from "hry-types/src/Misc/Func";
5
5
  import type { ComputeIntersectionDeep } from "hry-types/src/Object/_api";
6
- import type { WMCompOtherOption } from "../../types/OfficialTypeAlias";
6
+ import type { WMCompOtherOption, WMCompPageLifetimes, WMPageLifetimes } from "../../types/OfficialTypeAlias";
7
7
  import type { ComponentDoc } from "../DefineComponent/ReturnType/ComponentDoc";
8
8
  import type { ComputedConstraint } from "./Computed/ComputedConstraint";
9
9
  import type { ComputedOption } from "./Computed/ComputedOption";
@@ -11,11 +11,13 @@ import type { GetComputedDoc } from "./Computed/GetComputedDoc";
11
11
  import type { CustomEventConstraint } from "./CustomEvents/CustomEventConstraint";
12
12
  import type { CustomEventsOption } from "./CustomEvents/CustomEventsOption";
13
13
  import type { GetCustomEventDoc } from "./CustomEvents/GetCustomEventDoc";
14
+ import type { DataConstraint } from "./Data/DataConstraint";
14
15
  import type { DataOption } from "./Data/DataOption";
15
16
  import type { EventsConstraint } from "./Events/EventsConstraint";
16
17
  import type { EventsOption } from "./Events/EventsOption";
17
18
  import type { RootComponentInstance } from "./Instance/RootComponentInstance";
18
19
  import type { IsPageOption } from "./IsPage/IsPageOption";
20
+ import type { LifetimesConstraint } from "./Lifetimes/LifetimesConstraint";
19
21
  import type { LifetimesOption } from "./Lifetimes/LifetimesOption";
20
22
  import type { MethodsConstraint } from "./Methods/MethodsConstraint";
21
23
  import type { MethodsOption } from "./Methods/MethodsOption";
@@ -29,7 +31,7 @@ import type { StoreOption } from "./Store/StoreOption";
29
31
  import type { WatchOption } from "./Watch/WatchOption";
30
32
  type RootComponentOptions<TReceivedComponentDoc extends object, 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> & CustomEventsOption<TCustomEvents, EventsDoc> & EventsOption<TEvents, EventsConstraint<TReceivedComponentDoc>> & DataOption<TData, PropertiesDoc> & StoreOption<TStore, PropertiesDoc & DataDoc> & ComputedOption<TComputed, Required<PropertiesDoc> & DataDoc & StoreDoc> & PageLifetimesOption<TIsPage, NoInfer<PropertiesDoc>> & LifetimesOption<TIsPage> & WatchOption<ComputedDoc & Required<PropertiesDoc> & DataDoc & StoreDoc> & Partial<Omit<WMCompOtherOption, "pageLifetimes">> & ThisType<RootComponentInstance<TIsPage, TMethods, DataDoc, DataDoc & Required<PropertiesDoc> & StoreDoc & ComputedDoc, CustomEventsDoc, StoreDoc>>;
31
33
  type RootComponentConstructor<TReceivedComponentDoc extends ComponentDoc[] | ComponentDoc> = {
32
- <Literal extends string | number | boolean | null | Literal[] | Record<string, Literal>, TEvents extends EventsConstraint<TReceivedComponentDoc>, TIsPage extends boolean = false, TProperties extends PropertiesConstraint<Literal> = {}, TData extends object = {}, TStore extends StoreConstraint = {}, TComputed extends ComputedConstraint = {}, TCustomEvents extends IfExtends<TIsPage, false, CustomEventConstraint, EmptyObject> = {}, TMethods extends MethodsConstraint = {}, EventsDoc extends object = IfExtends<EventsConstraint<TReceivedComponentDoc>, 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<TReceivedComponentDoc, TEvents, TIsPage, TCustomEvents, TMethods, TProperties, TData, TStore, TComputed, EventsDoc, CustomEventsDoc, PropertiesDoc, DataDoc, StoreDoc, ComputedDoc>): ComputeIntersectionDeep<IfExtends<TIsPage, false, {}, {
34
+ <Literal extends string | number | boolean | null | Literal[] | object, TEvents extends EventsConstraint<TReceivedComponentDoc>, TIsPage extends boolean = false, TProperties extends PropertiesConstraint<Literal> = {}, TData extends object = {}, TStore extends StoreConstraint = {}, TComputed extends ComputedConstraint = {}, TCustomEvents extends IfExtends<TIsPage, false, CustomEventConstraint, EmptyObject> = {}, TMethods extends MethodsConstraint = {}, EventsDoc extends object = IfExtends<EventsConstraint<TReceivedComponentDoc>, 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<TReceivedComponentDoc, TEvents, TIsPage, TCustomEvents, TMethods, TProperties, TData, TStore, TComputed, EventsDoc, CustomEventsDoc, PropertiesDoc, DataDoc, StoreDoc, ComputedDoc>): ComputeIntersectionDeep<IfExtends<TIsPage, false, {}, {
33
35
  isPage: true;
34
36
  }> & IfExtends<EmptyObject, PropertiesDoc, {}, {
35
37
  properties: PropertiesDoc;
@@ -48,4 +50,19 @@ type RootComponentConstructor<TReceivedComponentDoc extends ComponentDoc[] | Com
48
50
  }>>;
49
51
  };
50
52
  export declare function RootComponent<TReceivedComponentDoc extends ComponentDoc[] | ComponentDoc = {}>(): RootComponentConstructor<TReceivedComponentDoc>;
53
+ export type RootComponentTrueOptions = {
54
+ isPage?: boolean;
55
+ properties?: PropertiesConstraint;
56
+ data?: DataConstraint;
57
+ computed?: ComputedConstraint;
58
+ customEvents?: CustomEventConstraint;
59
+ methods?: MethodsConstraint;
60
+ events?: EventsConstraint;
61
+ store?: StoreConstraint;
62
+ watch?: Record<string, Func>;
63
+ lifetimes?: LifetimesConstraint;
64
+ pageLifetimes?: Partial<WMCompPageLifetimes & {
65
+ load: Func;
66
+ } & WMPageLifetimes>;
67
+ };
51
68
  export {};
@@ -1,4 +1,4 @@
1
1
  export function RootComponent() {
2
- return (options) => options;
2
+ return ((options) => options);
3
3
  }
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/RootComponent/index.ts"],"names":[],"mappings":"AAmIA,MAAM,UAAU,aAAa;IAM3B,OAAO,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/RootComponent/index.ts"],"names":[],"mappings":"AAqIA,MAAM,UAAU,aAAa;IAM3B,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAmC,CAAQ,CAAC;AACxE,CAAC"}
@@ -33,7 +33,7 @@ type SubComponentConstructor<TRootDoc extends RootComponentDoc, TOriginalCompDoc
33
33
  }>, SubComputedDoc extends object = IfExtends<SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)>>, TSubComputed, {}, GetSubComputedDoc<TSubComputed>>, SubEventsDoc extends object = IfExtends<SubEventsConstraint<CurrentCompDoc>, TEvents, {}, TEvents>, SubMethodsDoc extends object = TSubMethods, MissingRequiredField extends PropertyKey = Exclude<RequiredKeys<CurrentCompDoc["properties"] & {}>, keyof (InheritDoc & SubDataDoc & SubStoreDoc & IfExtends<SubComputedConstraint<Omit<Required<CurrentCompDoc["properties"]>, keyof (InheritDoc & SubDataDoc & SubStoreDoc)>>, TSubComputed, {}, GetSubComputedDoc<TSubComputed>>)>>(options: Options<TRootDoc, IsPage, CurrentCompDoc, CurrentPrefix, AllRootDataDoc, TInherit, TSubData, TSubStore, TSubComputed, TEvents, TSubMethods, InheritDoc, SubDataDoc, SubStoreDoc, SubComputedDoc, SubEventsDoc, SubMethodsDoc>): CreateSubComponentDoc<TOriginalCompDoc["customEvents"] & {}, SubEventsDoc, MissingRequiredField>;
34
34
  };
35
35
  export declare function SubComponent<RootDoc extends RootComponentDoc, CompDoc extends ComponentDoc, Prefix extends string = "">(): IfExtends<EmptyObject, CompDoc, (opt: EmptyObject) => never, SubComponentConstructor<RootDoc, CompDoc, Prefix>>;
36
- export type SubComponentOptions = {
36
+ export type SubComponentTrueOptions = {
37
37
  inhrit?: string;
38
38
  data?: Record<string, unknown>;
39
39
  computed?: Record<string, Func>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/SubComponent/index.ts"],"names":[],"mappings":"AAiMA,MAAM,UAAU,YAAY;IAK1B,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAQ,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/SubComponent/index.ts"],"names":[],"mappings":"AAiMA,MAAM,UAAU,YAAY;IAK1B,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAkC,CAAQ,CAAC;AACvE,CAAC"}
@@ -1,2 +1,2 @@
1
- import type { Instance } from "../behaviors/BComputedAndWatch/types";
1
+ import type { Instance } from "./types";
2
2
  export declare function computedUpdater(this: Instance, isUpdated?: boolean): boolean;
@@ -1,6 +1,6 @@
1
- import { deepProxy, unwrap } from "../behaviors/BComputedAndWatch/data-tracer";
2
- import { isEqual } from "../behaviors/BComputedAndWatch/isEqual";
1
+ import { deepProxy, unwrap } from "./data-tracer";
3
2
  import { getPathsValue } from "./getPathsValue";
3
+ import { isEqual } from "./isEqual";
4
4
  export function computedUpdater(isUpdated = false) {
5
5
  for (const key in this.__computedCache__) {
6
6
  const itemCache = this.__computedCache__[key];
@@ -0,0 +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;QAED,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,cAAc,GAAyB,EAAE,CAAC;YAEhD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;aAC3C,CAAC,CAAC;YAGH,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
- import type { Instance } from "../behaviors/BComputedAndWatch/types";
1
+ import type { Instance } from "./types";
2
2
  export declare function getPathsValue(this: Instance, paths: string[]): any;
@@ -0,0 +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,10 +1,17 @@
1
1
  import { deepClone } from "../../utils/deepClone";
2
2
  import { deleteProtoField } from "../../utils/deleteProtoField";
3
- import { initWatchOldValue } from "../../utils/initWatchOldValue";
4
3
  import { isEmptyObject } from "../../utils/isEmptyObject";
4
+ import { getPathsValue } from "./getPathsValue";
5
5
  import { initComputed } from "./initComputed";
6
6
  import { isEqual } from "./isEqual";
7
7
  import { isPage } from "./IsPage";
8
+ function initWatchOldValue(watchConfig) {
9
+ const watchOldValue = {};
10
+ for (const key in watchConfig) {
11
+ watchOldValue[key] = deepClone(getPathsValue.call(this, key.split(".")));
12
+ }
13
+ return watchOldValue;
14
+ }
8
15
  export const BComputedAndWatch = Behavior({
9
16
  definitionFilter(options) {
10
17
  const computedConfig = options.computed;
@@ -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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"}
@@ -1,5 +1,5 @@
1
- import { computedUpdater } from "../../utils/computedUpdater";
2
1
  import { deleteProtoField } from "../../utils/deleteProtoField";
2
+ import { computedUpdater } from "./computedUpdater";
3
3
  import { deepProxy, unwrap } from "./data-tracer";
4
4
  function isValidDependences(dependences, computedKeys) {
5
5
  for (const { paths: path, val } of dependences) {
@@ -1 +1 @@
1
- {"version":3,"file":"initComputed.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/initComputed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initComputed.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/initComputed.ts"],"names":[],"mappings":"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"}