annil 1.2.1 → 1.2.2-dev.202312100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/README.md +2 -4
- package/dist/api/DefineComponent/NameOrPage/NameOrPathOption.d.ts +1 -1
- package/dist/api/DefineComponent/collectOptionsForComponent.d.ts +24 -4
- package/dist/api/DefineComponent/collectOptionsForComponent.js +4 -2
- package/dist/api/DefineComponent/collectOptionsForComponent.js.map +1 -1
- package/dist/api/DefineComponent/index.d.ts +8 -23
- package/dist/api/DefineComponent/index.js +1 -1
- package/dist/api/DefineComponent/index.js.map +1 -1
- package/dist/api/RootComponent/CustomEvents/CustomEventConstraint.d.ts +1 -1
- package/dist/api/RootComponent/CustomEvents/GetCustomEventDoc.d.ts +1 -1
- package/dist/api/RootComponent/CustomEvents/test/GetCustomEventDoc.test.d.ts +1 -0
- package/dist/api/RootComponent/CustomEvents/test/GetCustomEventDoc.test.js.map +1 -1
- package/dist/api/RootComponent/CustomEvents/test/normal.test.d.ts +2 -0
- package/dist/api/RootComponent/CustomEvents/test/normal.test.js +1 -0
- package/dist/api/RootComponent/CustomEvents/test/normal.test.js.map +1 -1
- package/dist/api/RootComponent/Instance/CustomEventMethods.d.ts +1 -1
- package/dist/api/RootComponent/Instance/test/CustomEventsDoc.test.js +2 -0
- package/dist/api/RootComponent/Instance/test/CustomEventsDoc.test.js.map +1 -1
- package/dist/api/RootComponent/Instance/test/customEvents/normal.test.js +2 -0
- package/dist/api/RootComponent/Instance/test/customEvents/normal.test.js.map +1 -1
- package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.d.ts +1 -1
- package/dist/behaviors/BComputedAndWatch/index.js.map +1 -1
- package/dist/behaviors/BStore.js.map +1 -1
- package/package.json +1 -1
- package/src/api/DefineComponent/NameOrPage/NameOrPathOption.ts +1 -1
- package/src/api/DefineComponent/collectOptionsForComponent.ts +60 -106
- package/src/api/DefineComponent/index.ts +8 -32
- package/src/api/RootComponent/CustomEvents/CustomEventConstraint.ts +1 -1
- package/src/api/RootComponent/CustomEvents/GetCustomEventDoc.ts +1 -0
- package/src/api/RootComponent/CustomEvents/test/GetCustomEventDoc.test.ts +1 -0
- package/src/api/RootComponent/CustomEvents/test/normal.test.ts +2 -0
- package/src/api/RootComponent/Instance/CustomEventMethods.ts +2 -2
- package/src/api/RootComponent/Instance/test/CustomEventsDoc.test.ts +5 -2
- package/src/api/RootComponent/Instance/test/customEvents/normal.test.ts +5 -2
- package/src/api/RootComponent/Lifetimes/LifetimesConstraint.ts +1 -1
- package/src/behaviors/BComputedAndWatch/index.ts +2 -1
- package/src/behaviors/BStore.ts +2 -1
- package/src/behaviors/BbeforeCreated.ts +1 -1
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.2.2-dev.202312100](https://github.com/missannil/annil/compare/v1.2.1...v1.2.2-dev.202312100) (2023-12-10)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### type
|
|
11
|
+
|
|
12
|
+
* 修改了customEvents字段的类型,允许undefined类型 ([2c1c35a](https://github.com/missannil/annil/commit/2c1c35a8581016c2e0eb9cfeb01f2ed6e4f8d53c))
|
|
13
|
+
|
|
7
14
|
## [1.2.1](https://github.com/missannil/annil/compare/v1.2.0...v1.2.1) (2023-12-09)
|
|
8
15
|
|
|
9
16
|
|
package/README.md
CHANGED
|
@@ -27,12 +27,10 @@ annil(安奈儿)是微信小程序原生开发插件,提供了新的组件构建
|
|
|
27
27
|
|
|
28
28
|
### 特点
|
|
29
29
|
|
|
30
|
-
- **API
|
|
30
|
+
- **API功能更全面 **
|
|
31
31
|
|
|
32
|
-
新的组件API(相较原生Component/Page)加入了`computed`、`watch`、`store(全局响应式数据基于mobx)`等功能,使开发更便捷。
|
|
32
|
+
新的组件API(相较原生Component/Page)加入了`computed`、`watch`、`store(全局响应式数据基于mobx)`等功能,使开发更便捷。[示例](./doc/demo/firstMeeting.md)
|
|
33
33
|
|
|
34
|
-
```ts
|
|
35
|
-
```
|
|
36
34
|
- **复杂组件解决方案**
|
|
37
35
|
|
|
38
36
|
新的组件API把组件逻辑部分解耦为根组件逻辑和子组件逻辑,与wxml元素一一对应。彻底解决原生API书写复杂组件时代码逻辑耦合的问题。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
2
|
import type { Includes } from "../../../types/includes";
|
|
3
|
-
export type
|
|
3
|
+
export type NameOrPathOption<TName extends string, TPath extends `/${string}`, IsPage extends boolean> = IsPage extends true ? {
|
|
4
4
|
path: TPath;
|
|
5
5
|
} : {
|
|
6
6
|
name: TName & IfExtends<TName, "", () => "⚠️组件名不可为空⚠️", IfExtends<Includes<TName, "_">, true, () => "⚠️组件名不可包含下划线 _ ⚠️", unknown>>;
|
|
@@ -1,4 +1,24 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
|
|
1
|
+
import type { Func } from "hry-types/src/Misc/_api";
|
|
2
|
+
import type { WMComponent } from "../../types/OfficialTypeAlias";
|
|
3
|
+
import type { ComputedConstraint } from "../RootComponent/Computed/ComputedConstraint";
|
|
4
|
+
import type { DataConstraint } from "../RootComponent/Data/DataConstraint";
|
|
5
|
+
import type { LifetimesConstraint } from "../RootComponent/Lifetimes/LifetimesConstraint";
|
|
6
|
+
import type { MethodsConstraint } from "../RootComponent/Methods/MethodsConstraint";
|
|
7
|
+
import type { PageLifetimesOption } from "../RootComponent/PageLifetimes/PageLifetimesOption";
|
|
8
|
+
import type { StoreConstraint } from "../RootComponent/Store/StoreConstraint";
|
|
9
|
+
import type { DefineComponentOption } from ".";
|
|
10
|
+
export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch", Record<string, Func[]>>;
|
|
11
|
+
export type FinalOptionsOfComponent = {
|
|
12
|
+
isPage?: boolean;
|
|
13
|
+
options?: WMComponent.Options;
|
|
14
|
+
properties?: Record<string, any>;
|
|
15
|
+
data?: DataConstraint;
|
|
16
|
+
store?: StoreConstraint;
|
|
17
|
+
computed?: ComputedConstraint;
|
|
18
|
+
observers?: Record<string, Func>;
|
|
19
|
+
behaviors?: string[];
|
|
20
|
+
methods?: MethodsConstraint;
|
|
21
|
+
watch?: Record<string, Func>;
|
|
22
|
+
lifetimes?: LifetimesConstraint;
|
|
23
|
+
} & PageLifetimesOption<false, object>;
|
|
24
|
+
export declare function collectOptionsForComponent(defineComponentOption: DefineComponentOption): FinalOptionsOfComponent;
|
|
@@ -19,7 +19,7 @@ function onLoadReceivedDataHandle(option) {
|
|
|
19
19
|
}
|
|
20
20
|
function loadReceivedDataHandle(option) {
|
|
21
21
|
const innerData = option[INNERMARKER.url];
|
|
22
|
-
if (innerData === undefined)
|
|
22
|
+
if (innerData === undefined || innerData == INNERMARKER.url)
|
|
23
23
|
return;
|
|
24
24
|
const decodeOption = JSON.parse(decodeURIComponent(innerData));
|
|
25
25
|
for (const key in decodeOption) {
|
|
@@ -124,8 +124,10 @@ function collectRootComponentOption(finalOptions, funcOptions, rootComponentOpti
|
|
|
124
124
|
funcFieldsCollect(rootComponentOptions, funcOptions);
|
|
125
125
|
otherFieldsHandle(finalOptions, rootComponentOptions);
|
|
126
126
|
}
|
|
127
|
-
export function collectOptionsForComponent(
|
|
127
|
+
export function collectOptionsForComponent(defineComponentOption) {
|
|
128
128
|
var _a, _b;
|
|
129
|
+
const rootComponentOption = defineComponentOption.rootComponent;
|
|
130
|
+
const subComponentsList = defineComponentOption.subComponents;
|
|
129
131
|
const finalOptionsForComponent = {
|
|
130
132
|
options: {
|
|
131
133
|
addGlobalClass: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectOptionsForComponent.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/collectOptionsForComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAE9E,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"collectOptionsForComponent.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/collectOptionsForComponent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,22 @@
|
|
|
1
1
|
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
|
-
import type { Func } from "hry-types/src/Misc/Func";
|
|
3
|
-
import type { WMComponent } from "../../types/OfficialTypeAlias";
|
|
4
|
-
import type { LifetimesConstraint } from "../RootComponent/Lifetimes/LifetimesConstraint";
|
|
5
2
|
import type { RootComponentDoc } from "../RootComponent/RootComponentDoc";
|
|
6
3
|
import type { SubComponentDoc } from "../SubComponent/SubComponentDoc";
|
|
7
|
-
import type {
|
|
4
|
+
import type { NameOrPathOption } from "./NameOrPage/NameOrPathOption";
|
|
8
5
|
import type { CreateComponentDoc } from "./ReturnType/CreateComponentDoc";
|
|
9
6
|
import type { CreatePageDoc } from "./ReturnType/CreatePageDoc";
|
|
10
7
|
import type { RootComponentOption } from "./RootComponent/RootComponentOption";
|
|
11
8
|
import type { SubComponentsOption } from "./SubComponents/SubComponentsOption";
|
|
12
|
-
import type {
|
|
13
|
-
import type { DataConstraint } from "../RootComponent/Data/DataConstraint";
|
|
14
|
-
import type { MethodsConstraint } from "../RootComponent/Methods/MethodsConstraint";
|
|
15
|
-
import type { PageLifetimesOption } from "../RootComponent/PageLifetimes/PageLifetimesOption";
|
|
16
|
-
import type { StoreConstraint } from "../RootComponent/Store/StoreConstraint";
|
|
9
|
+
import type { RootComponentTrueOptions } from "../RootComponent";
|
|
17
10
|
type Path = `/${string}`;
|
|
18
11
|
type RootOptions<TRootComponentDoc extends RootComponentDoc, TSubComponentTuple extends SubComponentDoc[], TName extends string, TPath extends Path> = NameOrPathOption<TName, TPath, TRootComponentDoc["isPage"] & {}> & RootComponentOption<TRootComponentDoc> & SubComponentsOption<TSubComponentTuple>;
|
|
19
12
|
interface DefineComponentConstructor {
|
|
20
13
|
<TRootComponentDoc extends RootComponentDoc = {}, TSubComponentTuple extends SubComponentDoc[] = [], TName extends string = "", TPath extends Path = "/">(options: RootOptions<TRootComponentDoc, TSubComponentTuple, TName, TPath>): IfExtends<"", TName, CreatePageDoc<TRootComponentDoc, TPath>, CreateComponentDoc<TRootComponentDoc, TName, TSubComponentTuple>>;
|
|
21
14
|
}
|
|
22
|
-
export type
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
store?: StoreConstraint;
|
|
29
|
-
computed?: ComputedConstraint;
|
|
30
|
-
observers?: Record<string, Func>;
|
|
31
|
-
behaviors?: string[];
|
|
32
|
-
methods?: MethodsConstraint;
|
|
33
|
-
watch?: Record<string, Func>;
|
|
34
|
-
lifetimes?: LifetimesConstraint;
|
|
35
|
-
} & PageLifetimesOption<false, object>;
|
|
15
|
+
export type DefineComponentOption = {
|
|
16
|
+
name?: string;
|
|
17
|
+
path?: string;
|
|
18
|
+
rootComponent?: RootComponentTrueOptions;
|
|
19
|
+
subComponents?: SubComponentDoc[];
|
|
20
|
+
};
|
|
36
21
|
export declare const DefineComponent: DefineComponentConstructor;
|
|
37
22
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { collectOptionsForComponent } from "./collectOptionsForComponent";
|
|
2
2
|
export const DefineComponent = function (options) {
|
|
3
|
-
Component(collectOptionsForComponent(options
|
|
3
|
+
Component(collectOptionsForComponent(options));
|
|
4
4
|
};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/DefineComponent/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AA2C1E,MAAM,CAAC,MAAM,eAAe,GAA+B,UAAS,OAAO;IAEzE,SAAS,CACP,0BAA0B,CAAC,OAAgC,CAAC,CAC7D,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DetailedType } from "../../../types/DetailedType";
|
|
2
|
-
type SimpleCustomeEvents = DetailedType | null;
|
|
2
|
+
type SimpleCustomeEvents = DetailedType | null | undefined;
|
|
3
3
|
export type SimpleCustomeEventsList = SimpleCustomeEvents[];
|
|
4
4
|
export type ShortCustomeEvents = SimpleCustomeEvents | SimpleCustomeEventsList;
|
|
5
5
|
type BubblesConfig = {
|
|
@@ -2,7 +2,7 @@ import type { DetailedType } from "../../../types/DetailedType";
|
|
|
2
2
|
import type { InferDetailedType } from "../../../types/InferDetailedType";
|
|
3
3
|
import type { CustomEventConstraint, FullCustomEvents, ShortCustomeEvents, SimpleCustomeEventsList } from "./CustomEventConstraint";
|
|
4
4
|
import type { AddTagForCustomEventsDoc } from "./CustomEventsTag";
|
|
5
|
-
export type GetShortCustomEventsDoc<T extends ShortCustomeEvents> = T extends DetailedType ? InferDetailedType<T> : T extends null ? null : T extends SimpleCustomeEventsList ? GetShortCustomEventsDoc<T[number]> : never;
|
|
5
|
+
export type GetShortCustomEventsDoc<T extends ShortCustomeEvents> = T extends DetailedType ? InferDetailedType<T> : T extends null ? null : T extends undefined ? undefined : T extends SimpleCustomeEventsList ? GetShortCustomEventsDoc<T[number]> : never;
|
|
6
6
|
export type GetFullCustomEventsDoc<T extends FullCustomEvents> = GetShortCustomEventsDoc<T["detail"]> | AddTagForCustomEventsDoc<T["options"]>;
|
|
7
7
|
export type GetCustomEventDoc<T extends CustomEventConstraint> = {
|
|
8
8
|
[k in keyof T]: T[k] extends ShortCustomeEvents ? GetShortCustomEventsDoc<T[k]> : GetShortCustomEventsDoc<T[k]["detail"]> | AddTagForCustomEventsDoc<T[k]["options"]>;
|
|
@@ -3,6 +3,7 @@ import { type ListExpected, type NullExpected, type StrExpected, type UnionStrEx
|
|
|
3
3
|
export type Mock_CustomEventsDocExpected = {
|
|
4
4
|
str: StrExpected;
|
|
5
5
|
null: NullExpected;
|
|
6
|
+
nothing: undefined;
|
|
6
7
|
unionStr: UnionStrExpected;
|
|
7
8
|
union: ListExpected;
|
|
8
9
|
bubbles: bubblesExpected;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetCustomEventDoc.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/CustomEvents/test/GetCustomEventDoc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAYhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"GetCustomEventDoc.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/CustomEvents/test/GetCustomEventDoc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAYhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAkBlD,QAAuE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type DetailedType } from "../../../..";
|
|
2
2
|
export declare const mock_shortCustomEvents: {
|
|
3
3
|
str: StringConstructor;
|
|
4
|
+
nothing: undefined;
|
|
4
5
|
null: null;
|
|
5
6
|
unionStr: DetailedType<"male" | "female">;
|
|
6
7
|
union: (StringConstructor | DetailedType<0 | 1 | 2> | null)[];
|
|
@@ -91,6 +92,7 @@ export declare const mock_customEvents: {
|
|
|
91
92
|
};
|
|
92
93
|
};
|
|
93
94
|
str: StringConstructor;
|
|
95
|
+
nothing: undefined;
|
|
94
96
|
null: null;
|
|
95
97
|
unionStr: DetailedType<"male" | "female">;
|
|
96
98
|
union: (StringConstructor | DetailedType<0 | 1 | 2> | null)[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normal.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/CustomEvents/test/normal.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAChD,OAAO,EAAqB,aAAa,EAAE,MAAM,aAAa,CAAC;AAc/D,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,MAAyC;IACnD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAiC,EAAE,IAAI,CAAC;CACZ,CAAC;AAK/C,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KAC3B;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KAChC;IACD,oBAAoB,EAAE;QACpB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;KAC/C;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,MAAyC;QACjD,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC3C;IACD,qBAAqB,EAAE;QACrB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAiC,EAAE,IAAI,CAAC;QACzD,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAChD;IACD,6BAA6B,EAAE;QAC7B,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/D;CACyC,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,gCAC5B,sBAAsB,GACtB,qBAAqB,CACO,CAAC;AAElC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAC9B,YAAY,EAAE,iBAAiB;CAChC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"normal.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/CustomEvents/test/normal.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAChD,OAAO,EAAqB,aAAa,EAAE,MAAM,aAAa,CAAC;AAc/D,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,GAAG,EAAE,MAAM;IACX,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,MAAyC;IACnD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAiC,EAAE,IAAI,CAAC;CACZ,CAAC;AAK/C,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KAC3B;IACD,YAAY,EAAE;QACZ,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KAChC;IACD,oBAAoB,EAAE;QACpB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;KAC/C;IACD,gBAAgB,EAAE;QAChB,MAAM,EAAE,MAAyC;QACjD,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC3C;IACD,qBAAqB,EAAE;QACrB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAiC,EAAE,IAAI,CAAC;QACzD,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAChD;IACD,6BAA6B,EAAE;QAC7B,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC/D;CACyC,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,gCAC5B,sBAAsB,GACtB,qBAAqB,CACO,CAAC;AAElC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAC9B,YAAY,EAAE,iBAAiB;CAChC,CAAC,CAAC;AAqBH,QAA4C,CAAC;AAE7C,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC;IACnC,YAAY,EAAE,EAAE;CACjB,CAAC,CAAC;AAGH,QAA4C,CAAC;AAE7C,MAAM,eAAe,GAAG,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AAG5C,QAA+C,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
2
|
import type { CustomEventsTags } from "../CustomEvents/CustomEventsTag";
|
|
3
3
|
export type CustomEventMethods<O extends object> = {
|
|
4
|
-
[k in keyof O]: IfExtends<Exclude<O[k], CustomEventsTags
|
|
4
|
+
[k in keyof O]: IfExtends<Exclude<O[k], CustomEventsTags>, undefined, () => void, (detail: Exclude<O[k], CustomEventsTags>) => void>;
|
|
5
5
|
};
|
|
@@ -6,6 +6,7 @@ RootComponent()({
|
|
|
6
6
|
num: Number,
|
|
7
7
|
union: [String, Number],
|
|
8
8
|
null: null,
|
|
9
|
+
undefined: undefined,
|
|
9
10
|
bubbles: {
|
|
10
11
|
detail: String,
|
|
11
12
|
options: {
|
|
@@ -52,6 +53,7 @@ RootComponent()({
|
|
|
52
53
|
Checking;
|
|
53
54
|
Checking;
|
|
54
55
|
Checking;
|
|
56
|
+
Checking;
|
|
55
57
|
},
|
|
56
58
|
},
|
|
57
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomEventsDoc.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/Instance/test/CustomEventsDoc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,aAAa,EAAE,CAAC;IACd,YAAY,EAAE;QACZ,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,MAA6B;QAClC,KAAK,EAAE,CAAC,MAAwC,EAAE,MAAM,CAAC;QACzD,IAAI,EAAE,IAAI;QACV,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;aACd;SACF;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI;aACnB;SACF;QACD,eAAe,EAAE;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACf;SACF;QACD,oBAAoB,EAAE;YACpB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf;SACF;QACD,2BAA2B,EAAE;YAC3B,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,OAAO,EAAE;QACP,EAAE;YACA,QAA8D,CAAC;YAE/D,QAA6D,CAAC;YAE9D,QAAmF,CAAC;YAEpF,
|
|
1
|
+
{"version":3,"file":"CustomEventsDoc.test.js","sourceRoot":"","sources":["../../../../../src/api/RootComponent/Instance/test/CustomEventsDoc.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,aAAa,EAAE,CAAC;IACd,YAAY,EAAE;QACZ,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,MAA6B;QAClC,KAAK,EAAE,CAAC,MAAwC,EAAE,MAAM,CAAC;QACzD,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;aACd;SACF;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI;aACnB;SACF;QACD,eAAe,EAAE;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACf;SACF;QACD,oBAAoB,EAAE;YACpB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf;SACF;QACD,2BAA2B,EAAE;YAC3B,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,OAAO,EAAE;QACP,EAAE;YACA,QAA8D,CAAC;YAE/D,QAA6D,CAAC;YAE9D,QAAmF,CAAC;YAEpF,QAA6D,CAAC;YAE9D,QAAsD,CAAC;YAEvD,QAA8D,CAAC;YAE/D,QAAuE,CAAC;YAExE,QAA0E,CAAC;YAE3E,QAA+E,CAAC;YAEhF,QAAoF,CAAC;QACvF,CAAC;KACF;CACF,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ RootComponent()({
|
|
|
6
6
|
num: Number,
|
|
7
7
|
union: [String, Number],
|
|
8
8
|
null: null,
|
|
9
|
+
undefined: undefined,
|
|
9
10
|
bubbles: {
|
|
10
11
|
detail: String,
|
|
11
12
|
options: {
|
|
@@ -52,6 +53,7 @@ RootComponent()({
|
|
|
52
53
|
Checking;
|
|
53
54
|
Checking;
|
|
54
55
|
Checking;
|
|
56
|
+
Checking;
|
|
55
57
|
},
|
|
56
58
|
},
|
|
57
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normal.test.js","sourceRoot":"","sources":["../../../../../../src/api/RootComponent/Instance/test/customEvents/normal.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,aAAa,EAAE,CAAC;IACd,YAAY,EAAE;QACZ,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,MAA6B;QAClC,KAAK,EAAE,CAAC,MAAwC,EAAE,MAAM,CAAC;QACzD,IAAI,EAAE,IAAI;QACV,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;aACd;SACF;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI;aACnB;SACF;QACD,eAAe,EAAE;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACf;SACF;QACD,oBAAoB,EAAE;YACpB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf;SACF;QACD,2BAA2B,EAAE;YAC3B,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,OAAO,EAAE;QACP,EAAE;YACA,QAA8D,CAAC;YAE/D,QAA6D,CAAC;YAE9D,QAAmF,CAAC;YAEpF,
|
|
1
|
+
{"version":3,"file":"normal.test.js","sourceRoot":"","sources":["../../../../../../src/api/RootComponent/Instance/test/customEvents/normal.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,aAAa,EAAE,CAAC;IACd,YAAY,EAAE;QACZ,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,MAA6B;QAClC,KAAK,EAAE,CAAC,MAAwC,EAAE,MAAM,CAAC;QACzD,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;aACd;SACF;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI;aACnB;SACF;QACD,eAAe,EAAE;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACf;SACF;QACD,oBAAoB,EAAE;YACpB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf;SACF;QACD,2BAA2B,EAAE;YAC3B,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf;SACF;KACF;IACD,OAAO,EAAE;QACP,EAAE;YACA,QAA8D,CAAC;YAE/D,QAA6D,CAAC;YAE9D,QAAmF,CAAC;YAEpF,QAA6D,CAAC;YAE9D,QAAsD,CAAC;YAEvD,QAA8D,CAAC;YAE/D,QAAuE,CAAC;YAExE,QAA0E,CAAC;YAE3E,QAA+E,CAAC;YAEhF,QAAoF,CAAC;QACvF,CAAC;KACF;CACF,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersection";
|
|
2
2
|
import type { WMCompLifetimes } from "../../../types/OfficialTypeAlias";
|
|
3
|
-
import type { FinalOptionsOfComponent } from "../../DefineComponent";
|
|
3
|
+
import type { FinalOptionsOfComponent } from "../../DefineComponent/collectOptionsForComponent";
|
|
4
4
|
export type LifetimesConstraint = ComputeIntersection<WMCompLifetimes["lifetimes"] & {
|
|
5
5
|
beforeCreate?: (options: FinalOptionsOfComponent) => void;
|
|
6
6
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,SAAS,iBAAiB,CAAiB,WAAmB;IAC5D,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAeD,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACxC,gBAAgB,CAAC,OAAgC;QAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;QAGxC,IAAI,cAAc,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;YAErD,OAAO,CAAC,OAAO,KAAf,OAAO,CAAC,OAAO,GAAK,EAAE,EAAC;YAEvB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;YAGtC,aAAa,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC;YAExD,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,KAAjB,OAAO,CAAC,SAAS,GAAK,EAAE,CAAA,CAAC;YAEjD,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAqB,CAAC;YAE/D,eAAe,CAAC,IAAI,CAAC,GAAG;gBACtB,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBAC/C,QAAQ,cAAc,EAAE,CAAC;oBACvB,KAAK,SAAS;wBAEZ,YAAY,IAA+B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAEnE,MAAM;oBACR,KAAK,MAAM;wBAGT,MAAM;oBACR,KAAK,KAAK;wBAER,CAAC;4BACC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;4BAC7C,IAAI,SAAS,EAAE,CAAC;gCAEd,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;4BACnC,CAAC;iCAAM,CAAC;gCAEN,YAAY,IAA+B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACrE,CAAC;wBACH,CAAC;wBACD,MAAM;oBACR,KAAK,MAAM;wBACT,CAAC;4BAGC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;4BAEhC,YAAY,IAA+B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACrE,CAAC;wBACD,MAAM;gBACV,CAAC;YACH,CAAC,CAAC;QACJ,CAAC;QAGD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QAClC,IAAI,WAAW,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YAE/C,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,KAAf,OAAO,CAAC,OAAO,GAAK,EAAE,CAAA,CAAC;YAG7C,aAAa,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAElD,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,KAAjB,OAAO,CAAC,SAAS,GAAK,EAAE,CAAA,CAAC;YACjD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAEpC,eAAe,CAAC,GAAG,CAAC,GAAG,UAAyB,QAAiB;oBAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAkB,CAAC;oBAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;oBAEpC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC;wBAAE,OAAO;oBACpE,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAEzC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC5C,CAAC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,SAAS,EAAE;QACT,OAAO;;YAEL,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,eAAe,oDAAI,CAAC;YAE7C,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAE1C,IAAI,WAAW,EAAE,CAAC;gBAEhB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QACD,QAAQ;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAElB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QAEH,CAAC;KACF;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BStore.js","sourceRoot":"","sources":["../../src/behaviors/BStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BStore.js","sourceRoot":"","sources":["../../src/behaviors/BStore.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;IAC7B,gBAAgB,CAAC,OAAgC;QAE/C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAgB,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,KAAZ,OAAO,CAAC,IAAI,GAAK,EAAE,EAAC;YAEpB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAG7C,OAAO,CAAC,OAAO,KAAf,OAAO,CAAC,OAAO,GAAK,EAAE,EAAC;YAEvB,OAAO,CAAC,OAAO,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC;YAEpD,OAAO,OAAO,CAAC,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IACD,SAAS,EAAE;QACT,OAAO;;YAEL,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,eAAe,oDAAI,CAAC;YAC7C,IAAI,CAAC,WAAW;gBAAE,OAAO;YACzB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAgB,CAAC;YAEpE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YAEnB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAE9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAC3B,WAAW,CAAC,GAAG,CAAC,EAChB,CAAC,KAAc,EAAE,EAAE;oBAEjB,IAAI,CAAC,OAAO,CAAC;wBACX,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;qBACnB,CAAC,CAAC;gBACL,CAAC,EACD;oBACE,MAAM,EAAE,QAAQ,CAAC,UAAU;iBAC5B,CACF,CAAC;YACJ,CAAC;YACD,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC5C,CAAC;QAED,QAAQ;YAEN,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;KACF;CACF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -4,18 +4,48 @@ import { BComputedAndWatch } from "../../behaviors/BComputedAndWatch";
|
|
|
4
4
|
import { initComputed } from "../../behaviors/BComputedAndWatch/initComputed";
|
|
5
5
|
import type { Instance } from "../../behaviors/BComputedAndWatch/types";
|
|
6
6
|
import { BStore } from "../../behaviors/BStore";
|
|
7
|
+
import type { WMComponent } from "../../types/OfficialTypeAlias";
|
|
7
8
|
import { INNERMARKER } from "../../utils/InnerMarker";
|
|
8
9
|
import { isEmptyObject } from "../../utils/isEmptyObject";
|
|
9
10
|
import type { RootComponentTrueOptions } from "../RootComponent";
|
|
11
|
+
import type { ComputedConstraint } from "../RootComponent/Computed/ComputedConstraint";
|
|
10
12
|
import type {
|
|
11
13
|
CustomEventConstraint,
|
|
12
14
|
CustomEvents,
|
|
13
15
|
FullCustomEvents,
|
|
14
16
|
} from "../RootComponent/CustomEvents/CustomEventConstraint";
|
|
17
|
+
import type { DataConstraint } from "../RootComponent/Data/DataConstraint";
|
|
15
18
|
import type { EventsConstraint } from "../RootComponent/Events/EventsConstraint";
|
|
16
19
|
import type { PageInstance } from "../RootComponent/Instance/RootComponentInstance";
|
|
20
|
+
import type { LifetimesConstraint } from "../RootComponent/Lifetimes/LifetimesConstraint";
|
|
21
|
+
import type { MethodsConstraint } from "../RootComponent/Methods/MethodsConstraint";
|
|
22
|
+
import type { PageLifetimesOption } from "../RootComponent/PageLifetimes/PageLifetimesOption";
|
|
23
|
+
import type { StoreConstraint } from "../RootComponent/Store/StoreConstraint";
|
|
17
24
|
import type { SubComponentTrueOptions } from "../SubComponent";
|
|
18
|
-
import type {
|
|
25
|
+
import type { DefineComponentOption } from ".";
|
|
26
|
+
/**
|
|
27
|
+
* 临时的函数配置项
|
|
28
|
+
* 把根组件与子组件中配置类型为函数的相同字段配置收集在一起(数组)
|
|
29
|
+
*/
|
|
30
|
+
export type FuncOptions = Record<"pageLifetimes" | "lifetimes" | "watch", Record<string, Func[]>>;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 最终传入原生Component的配置项
|
|
34
|
+
*/
|
|
35
|
+
export type FinalOptionsOfComponent = {
|
|
36
|
+
isPage?: boolean;
|
|
37
|
+
options?: WMComponent.Options;
|
|
38
|
+
properties?: Record<string, any>;
|
|
39
|
+
data?: DataConstraint;
|
|
40
|
+
store?: StoreConstraint;
|
|
41
|
+
computed?: ComputedConstraint;
|
|
42
|
+
observers?: Record<string, Func>;
|
|
43
|
+
behaviors?: string[];
|
|
44
|
+
methods?: MethodsConstraint;
|
|
45
|
+
watch?: Record<string, Func>;
|
|
46
|
+
lifetimes?: LifetimesConstraint;
|
|
47
|
+
} & PageLifetimesOption<false, object>;
|
|
48
|
+
|
|
19
49
|
/**
|
|
20
50
|
* 原生Component会对传入的对象字段匹配的properties字段setData赋值。不符合字段或Page时不会赋值。
|
|
21
51
|
* 此函数为给实例setData赋值,默认传递值与properties相符(ts类型安全)。
|
|
@@ -44,6 +74,27 @@ function onLoadReceivedDataHandle(
|
|
|
44
74
|
|
|
45
75
|
this.setData(option);
|
|
46
76
|
}
|
|
77
|
+
// 类型保护
|
|
78
|
+
// function isPageInstance(ins: Instance): ins is PageInstance & InstanceCustomFields {
|
|
79
|
+
// return (ins as PageInstance).route !== undefined;
|
|
80
|
+
// }
|
|
81
|
+
/**
|
|
82
|
+
* 验证path是否正确
|
|
83
|
+
* @param path - 配置路径
|
|
84
|
+
* @returns
|
|
85
|
+
*/
|
|
86
|
+
// function pathCheck(path: string | undefined) {
|
|
87
|
+
// return function(this: Instance) {
|
|
88
|
+
// if (isPageInstance(this)) {
|
|
89
|
+
// const route = this.route;
|
|
90
|
+
// if (route !== path) {
|
|
91
|
+
// throw Error(
|
|
92
|
+
// `[ /${route} ] DefinedComponent的配置字段path值错误,应为: /${route}`,
|
|
93
|
+
// );
|
|
94
|
+
// }
|
|
95
|
+
// }
|
|
96
|
+
// };
|
|
97
|
+
// }
|
|
47
98
|
/**
|
|
48
99
|
* 针对通过 navigateTo传过来的数据对组件load周期传入数据解析
|
|
49
100
|
* @param option - option中的url是拼接了encodeURIComponent转码的data对象的,key为INNERMARKER.url
|
|
@@ -54,8 +105,8 @@ function loadReceivedDataHandle(
|
|
|
54
105
|
option: Record<typeof INNERMARKER.url, string>,
|
|
55
106
|
) {
|
|
56
107
|
const innerData: string | undefined = option[INNERMARKER.url];
|
|
57
|
-
// 未使用自定义的navigateTo
|
|
58
|
-
if (innerData === undefined) return;
|
|
108
|
+
// 未使用自定义的navigateTo 或者在之前的load中已经被解析过了
|
|
109
|
+
if (innerData === undefined || innerData == INNERMARKER.url) return;
|
|
59
110
|
const decodeOption = JSON.parse(decodeURIComponent(innerData));
|
|
60
111
|
|
|
61
112
|
// 使用navigateTo API
|
|
@@ -83,64 +134,6 @@ function hijack(config: object, field: string, before: Func[] = [], after: Func[
|
|
|
83
134
|
return;
|
|
84
135
|
}
|
|
85
136
|
|
|
86
|
-
/**
|
|
87
|
-
* onLoad生命周期劫持函数
|
|
88
|
-
*/
|
|
89
|
-
/* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
|
|
90
|
-
// function onLoadHijack(
|
|
91
|
-
// options: FinalOptionsOfComponent,
|
|
92
|
-
// before: Func[],
|
|
93
|
-
// after: Func[] = [],
|
|
94
|
-
// ) {
|
|
95
|
-
// options.methods ||= {};
|
|
96
|
-
|
|
97
|
-
// const cloneOpt = deepClone(options);
|
|
98
|
-
// const originalOnLoad: Func | undefined = options.methods.onLoad;
|
|
99
|
-
|
|
100
|
-
// options.methods.onLoad = function(props: unknown) {
|
|
101
|
-
// before.forEach((func) => {
|
|
102
|
-
// func.call(this, props, cloneOpt);
|
|
103
|
-
// });
|
|
104
|
-
|
|
105
|
-
// originalOnLoad?.call(this, props);
|
|
106
|
-
|
|
107
|
-
// after.forEach((func) => {
|
|
108
|
-
// func.call(this, props, cloneOpt);
|
|
109
|
-
// });
|
|
110
|
-
// };
|
|
111
|
-
// }
|
|
112
|
-
/**
|
|
113
|
-
* 劫持pageLifetimes中的load字段
|
|
114
|
-
*/
|
|
115
|
-
/* istanbul ignore next */
|
|
116
|
-
// function loadHijack(
|
|
117
|
-
// options: FinalOptionsOfComponent,
|
|
118
|
-
// before: Func[],
|
|
119
|
-
// after: Func[] = [],
|
|
120
|
-
// ) {
|
|
121
|
-
// /* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
|
|
122
|
-
// options.lifetimes ||= {};
|
|
123
|
-
|
|
124
|
-
// const originalAttached: Func | undefined = options.lifetimes.attached;
|
|
125
|
-
|
|
126
|
-
// options.lifetimes.attached = function() {
|
|
127
|
-
// before.forEach((func) => {
|
|
128
|
-
// func.call(this, options);
|
|
129
|
-
// });
|
|
130
|
-
|
|
131
|
-
// originalAttached?.call(this);
|
|
132
|
-
|
|
133
|
-
// /* istanbul ignore next */
|
|
134
|
-
// after.forEach((func) => {
|
|
135
|
-
// func.call(this, options);
|
|
136
|
-
// });
|
|
137
|
-
// };
|
|
138
|
-
// }
|
|
139
|
-
/**
|
|
140
|
-
* 内部保护字段 即不允许配置的字段名(所有方法下)
|
|
141
|
-
*/
|
|
142
|
-
// const INNERFIELDS = ["disposer"];
|
|
143
|
-
|
|
144
137
|
/**
|
|
145
138
|
* 报错的形式避免输入字段和内部字段冲突,保证config下不包含内部预定字段(列表)
|
|
146
139
|
*/
|
|
@@ -277,49 +270,6 @@ function customEventsHandle(
|
|
|
277
270
|
}
|
|
278
271
|
}
|
|
279
272
|
}
|
|
280
|
-
/**
|
|
281
|
-
* 触发各个组件的页面load事件
|
|
282
|
-
*/
|
|
283
|
-
/* istanbul ignore next */
|
|
284
|
-
// function triggerCompLoad(this: Instance, props: object) {
|
|
285
|
-
// if (!this.__compLoadList__) return;
|
|
286
|
-
// this.__compLoadList__.forEach((loadFunc) => {
|
|
287
|
-
// loadFunc(props);
|
|
288
|
-
// });
|
|
289
|
-
// }
|
|
290
|
-
/* istanbul ignore next */
|
|
291
|
-
// function getPageInstance(pageId: string): Instance {
|
|
292
|
-
// const pagestack = getCurrentPages() as unknown as Instance[];
|
|
293
|
-
// let pageInstance: Instance;
|
|
294
|
-
// pagestack.some((instance) => {
|
|
295
|
-
// if (instance.getPageId() === pageId) {
|
|
296
|
-
// pageInstance = instance;
|
|
297
|
-
|
|
298
|
-
// return true;
|
|
299
|
-
// }
|
|
300
|
-
|
|
301
|
-
// return false;
|
|
302
|
-
// });
|
|
303
|
-
|
|
304
|
-
// // @ts-ignore pagestack中一定赋值了
|
|
305
|
-
// return pageInstance;
|
|
306
|
-
// }
|
|
307
|
-
/**
|
|
308
|
-
* 收集组件pageLifetimes下的load周期函数到页面实例的__loadFunList__
|
|
309
|
-
*/
|
|
310
|
-
/* istanbul ignore next */
|
|
311
|
-
// function collectLoadLifetimesOfComponent(this: Instance, finalOptionsForComponent: FinalOptionsOfComponent) {
|
|
312
|
-
// const loadFunc = finalOptionsForComponent.pageLifetimes?.load;
|
|
313
|
-
|
|
314
|
-
// console.log(loadFunc, finalOptionsForComponent);
|
|
315
|
-
|
|
316
|
-
// if (!loadFunc) return;
|
|
317
|
-
|
|
318
|
-
// const pageInstance = getPageInstance(this.getPageId());
|
|
319
|
-
// const __compLoadList__: Function[] = (pageInstance.__compLoadList__ ||= []);
|
|
320
|
-
|
|
321
|
-
// __compLoadList__.push(loadFunc.bind(this));
|
|
322
|
-
// }
|
|
323
273
|
/**
|
|
324
274
|
* 收集 rootComponentOptions 配置到 finalOptions 和 funcOptions 中
|
|
325
275
|
* @param finalOptions - 收集配置对象
|
|
@@ -343,6 +293,7 @@ function collectRootComponentOption(
|
|
|
343
293
|
|
|
344
294
|
otherFieldsHandle(finalOptions, rootComponentOptions);
|
|
345
295
|
}
|
|
296
|
+
|
|
346
297
|
/**
|
|
347
298
|
* 返回一个由rootComponentOption和subComponentsList配置整合的对象
|
|
348
299
|
* @param rootComponentOption -
|
|
@@ -350,9 +301,10 @@ function collectRootComponentOption(
|
|
|
350
301
|
* @returns FinalOptionsForComponent
|
|
351
302
|
*/
|
|
352
303
|
export function collectOptionsForComponent(
|
|
353
|
-
|
|
354
|
-
subComponentsList: SubComponentTrueOptions[] | undefined,
|
|
304
|
+
defineComponentOption: DefineComponentOption,
|
|
355
305
|
): FinalOptionsOfComponent {
|
|
306
|
+
const rootComponentOption = defineComponentOption.rootComponent;
|
|
307
|
+
const subComponentsList = defineComponentOption.subComponents;
|
|
356
308
|
const finalOptionsForComponent: FinalOptionsOfComponent = {
|
|
357
309
|
// default options
|
|
358
310
|
options: {
|
|
@@ -394,6 +346,8 @@ export function collectOptionsForComponent(
|
|
|
394
346
|
finalOptionsForComponent.pageLifetimes?.load
|
|
395
347
|
&& hijack(finalOptionsForComponent.pageLifetimes, "load", [loadReceivedDataHandle], []);
|
|
396
348
|
|
|
349
|
+
// hijack(finalOptionsForComponent.lifetimes!, "attached", [pathCheck(defineComponentOption.path)], []);
|
|
350
|
+
|
|
397
351
|
/* istanbul ignore next: miniprogram-simulate(当前版本 1.6.1) 无法测试页面 */
|
|
398
352
|
if (finalOptionsForComponent.isPage) {
|
|
399
353
|
// 页面时删除预设的虚拟组件字段
|
|
@@ -1,22 +1,14 @@
|
|
|
1
1
|
import type { IfExtends } from "hry-types/src/Any/IfExtends";
|
|
2
|
-
import type { Func } from "hry-types/src/Misc/Func";
|
|
3
|
-
import type { WMComponent } from "../../types/OfficialTypeAlias";
|
|
4
2
|
|
|
5
|
-
import type { LifetimesConstraint } from "../RootComponent/Lifetimes/LifetimesConstraint";
|
|
6
3
|
import type { RootComponentDoc } from "../RootComponent/RootComponentDoc";
|
|
7
4
|
import type { SubComponentDoc } from "../SubComponent/SubComponentDoc";
|
|
8
|
-
import type {
|
|
5
|
+
import type { NameOrPathOption } from "./NameOrPage/NameOrPathOption";
|
|
9
6
|
import type { CreateComponentDoc } from "./ReturnType/CreateComponentDoc";
|
|
10
7
|
import type { CreatePageDoc } from "./ReturnType/CreatePageDoc";
|
|
11
8
|
import type { RootComponentOption } from "./RootComponent/RootComponentOption";
|
|
12
9
|
import type { SubComponentsOption } from "./SubComponents/SubComponentsOption";
|
|
13
10
|
|
|
14
11
|
import type { RootComponentTrueOptions } from "../RootComponent";
|
|
15
|
-
import type { ComputedConstraint } from "../RootComponent/Computed/ComputedConstraint";
|
|
16
|
-
import type { DataConstraint } from "../RootComponent/Data/DataConstraint";
|
|
17
|
-
import type { MethodsConstraint } from "../RootComponent/Methods/MethodsConstraint";
|
|
18
|
-
import type { PageLifetimesOption } from "../RootComponent/PageLifetimes/PageLifetimesOption";
|
|
19
|
-
import type { StoreConstraint } from "../RootComponent/Store/StoreConstraint";
|
|
20
12
|
import { collectOptionsForComponent } from "./collectOptionsForComponent";
|
|
21
13
|
|
|
22
14
|
type Path = `/${string}`;
|
|
@@ -50,28 +42,12 @@ interface DefineComponentConstructor {
|
|
|
50
42
|
>;
|
|
51
43
|
}
|
|
52
44
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* 最终传入原生Component的配置项
|
|
61
|
-
*/
|
|
62
|
-
export type FinalOptionsOfComponent = {
|
|
63
|
-
isPage?: boolean;
|
|
64
|
-
options?: WMComponent.Options;
|
|
65
|
-
properties?: Record<string, any>;
|
|
66
|
-
data?: DataConstraint;
|
|
67
|
-
store?: StoreConstraint;
|
|
68
|
-
computed?: ComputedConstraint;
|
|
69
|
-
observers?: Record<string, Func>;
|
|
70
|
-
behaviors?: string[];
|
|
71
|
-
methods?: MethodsConstraint;
|
|
72
|
-
watch?: Record<string, Func>;
|
|
73
|
-
lifetimes?: LifetimesConstraint;
|
|
74
|
-
} & PageLifetimesOption<false, object>;
|
|
45
|
+
export type DefineComponentOption = {
|
|
46
|
+
name?: string;
|
|
47
|
+
path?: string;
|
|
48
|
+
rootComponent?: RootComponentTrueOptions;
|
|
49
|
+
subComponents?: SubComponentDoc[];
|
|
50
|
+
};
|
|
75
51
|
|
|
76
52
|
/**
|
|
77
53
|
* 把根组件选项和子组件选项转化为原生Component API选项并执行
|
|
@@ -79,6 +55,6 @@ export type FinalOptionsOfComponent = {
|
|
|
79
55
|
export const DefineComponent: DefineComponentConstructor = function(options): any {
|
|
80
56
|
// console.log("---------------------------");
|
|
81
57
|
Component(
|
|
82
|
-
collectOptionsForComponent(options
|
|
58
|
+
collectOptionsForComponent(options as DefineComponentOption),
|
|
83
59
|
);
|
|
84
60
|
};
|
|
@@ -10,6 +10,7 @@ import type { AddTagForCustomEventsDoc } from "./CustomEventsTag";
|
|
|
10
10
|
|
|
11
11
|
export type GetShortCustomEventsDoc<T extends ShortCustomeEvents> = T extends DetailedType ? InferDetailedType<T>
|
|
12
12
|
: T extends null ? null
|
|
13
|
+
: T extends undefined ? undefined
|
|
13
14
|
: T extends SimpleCustomeEventsList ? GetShortCustomEventsDoc<T[number]>
|
|
14
15
|
: never;
|
|
15
16
|
|
|
@@ -17,6 +17,7 @@ type Mock_CustomEventsDoc = GetCustomEventDoc<typeof mock_customEvents>;
|
|
|
17
17
|
export type Mock_CustomEventsDocExpected = {
|
|
18
18
|
str: StrExpected;
|
|
19
19
|
null: NullExpected;
|
|
20
|
+
nothing: undefined;
|
|
20
21
|
unionStr: UnionStrExpected;
|
|
21
22
|
union: ListExpected;
|
|
22
23
|
bubbles: bubblesExpected;
|
|
@@ -15,6 +15,7 @@ import type {
|
|
|
15
15
|
*/
|
|
16
16
|
export const mock_shortCustomEvents = {
|
|
17
17
|
str: String,
|
|
18
|
+
nothing: undefined,
|
|
18
19
|
null: null,
|
|
19
20
|
unionStr: String as DetailedType<"male" | "female">,
|
|
20
21
|
union: [String, Number as DetailedType<0 | 1 | 2>, null],
|
|
@@ -64,6 +65,7 @@ type RootDoc = {
|
|
|
64
65
|
// 简写字段 值类型为事件参数e的detail类型
|
|
65
66
|
str: string;
|
|
66
67
|
null: null;
|
|
68
|
+
nothing: undefined;
|
|
67
69
|
unionStr: "male" | "female";
|
|
68
70
|
union: string | 0 | 1 | 2 | null;
|
|
69
71
|
// 带options字段 通过联合类型加入。
|
|
@@ -3,8 +3,8 @@ import type { CustomEventsTags } from "../CustomEvents/CustomEventsTag";
|
|
|
3
3
|
|
|
4
4
|
export type CustomEventMethods<O extends object> = {
|
|
5
5
|
[k in keyof O]: IfExtends<
|
|
6
|
-
Exclude<O[k], CustomEventsTags
|
|
7
|
-
|
|
6
|
+
Exclude<O[k], CustomEventsTags>,
|
|
7
|
+
undefined,
|
|
8
8
|
() => void,
|
|
9
9
|
(detail: Exclude<O[k], CustomEventsTags>) => void
|
|
10
10
|
>;
|
|
@@ -7,6 +7,7 @@ RootComponent()({
|
|
|
7
7
|
num: Number as DetailedType<1 | 2>,
|
|
8
8
|
union: [String as DetailedType<"male" | "femal">, Number],
|
|
9
9
|
null: null,
|
|
10
|
+
undefined: undefined,
|
|
10
11
|
bubbles: {
|
|
11
12
|
detail: String,
|
|
12
13
|
options: {
|
|
@@ -50,7 +51,9 @@ RootComponent()({
|
|
|
50
51
|
|
|
51
52
|
Checking<(detail: "male" | "femal" | number) => void, typeof this.union, Test.Pass>;
|
|
52
53
|
|
|
53
|
-
Checking<() => void, typeof this.null, Test.Pass>;
|
|
54
|
+
Checking<(detail: null) => void, typeof this.null, Test.Pass>;
|
|
55
|
+
|
|
56
|
+
Checking<() => void, typeof this.undefined, Test.Pass>;
|
|
54
57
|
|
|
55
58
|
Checking<(detail: string) => void, typeof this.str, Test.Pass>;
|
|
56
59
|
|
|
@@ -60,7 +63,7 @@ RootComponent()({
|
|
|
60
63
|
|
|
61
64
|
Checking<(detail: number) => void, typeof this.capturePhaseComposed, Test.Pass>;
|
|
62
65
|
|
|
63
|
-
Checking<() => void, typeof this.bubblesCapturePhaseComposed, Test.Pass>;
|
|
66
|
+
Checking<(detail: null) => void, typeof this.bubblesCapturePhaseComposed, Test.Pass>;
|
|
64
67
|
},
|
|
65
68
|
},
|
|
66
69
|
});
|
|
@@ -8,6 +8,7 @@ RootComponent()({
|
|
|
8
8
|
num: Number as DetailedType<1 | 2>,
|
|
9
9
|
union: [String as DetailedType<"male" | "femal">, Number],
|
|
10
10
|
null: null,
|
|
11
|
+
undefined: undefined,
|
|
11
12
|
bubbles: {
|
|
12
13
|
detail: String,
|
|
13
14
|
options: {
|
|
@@ -51,7 +52,9 @@ RootComponent()({
|
|
|
51
52
|
|
|
52
53
|
Checking<(detail: "male" | "femal" | number) => void, typeof this.union, Test.Pass>;
|
|
53
54
|
|
|
54
|
-
Checking<() => void, typeof this.null, Test.Pass>;
|
|
55
|
+
Checking<(detail: null) => void, typeof this.null, Test.Pass>;
|
|
56
|
+
|
|
57
|
+
Checking<() => void, typeof this.undefined, Test.Pass>;
|
|
55
58
|
|
|
56
59
|
Checking<(detail: string) => void, typeof this.str, Test.Pass>;
|
|
57
60
|
|
|
@@ -61,7 +64,7 @@ RootComponent()({
|
|
|
61
64
|
|
|
62
65
|
Checking<(detail: number) => void, typeof this.capturePhaseComposed, Test.Pass>;
|
|
63
66
|
|
|
64
|
-
Checking<() => void, typeof this.bubblesCapturePhaseComposed, Test.Pass>;
|
|
67
|
+
Checking<(detail: null) => void, typeof this.bubblesCapturePhaseComposed, Test.Pass>;
|
|
65
68
|
},
|
|
66
69
|
},
|
|
67
70
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ComputeIntersection } from "hry-types/src/Object/ComputeIntersection";
|
|
2
2
|
import type { WMCompLifetimes } from "../../../types/OfficialTypeAlias";
|
|
3
|
-
import type { FinalOptionsOfComponent } from "../../DefineComponent";
|
|
3
|
+
import type { FinalOptionsOfComponent } from "../../DefineComponent/collectOptionsForComponent";
|
|
4
4
|
|
|
5
5
|
export type LifetimesConstraint = // 官方组件生命周期
|
|
6
6
|
ComputeIntersection<
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Func } from "hry-types/src/Misc/Func";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import type { FinalOptionsOfComponent } from "../../api/DefineComponent/collectOptionsForComponent";
|
|
3
4
|
import { deepClone } from "../../utils/deepClone";
|
|
4
5
|
import { deleteProtoField } from "../../utils/deleteProtoField";
|
|
5
6
|
import { isEmptyObject } from "../../utils/isEmptyObject";
|
package/src/behaviors/BStore.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type mobx from "mobx";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import type { FinalOptionsOfComponent } from "../api/DefineComponent/collectOptionsForComponent";
|
|
3
4
|
import { deleteProtoField } from "../utils/deleteProtoField";
|
|
4
5
|
import type { Instance } from "./BComputedAndWatch/types";
|
|
5
6
|
|