annil 1.0.0 → 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.
- package/CHANGELOG.md +20 -0
- package/README.md +38 -2
- package/dist/api/DefineComponent/ReturnType/test/normalComponentDoc.test.js.map +1 -1
- package/dist/api/DefineComponent/ReturnType/test/normalPageDoc.test.js.map +1 -1
- package/dist/api/DefineComponent/collectOptionsForComponent.d.ts +4 -0
- package/dist/api/DefineComponent/collectOptionsForComponent.js +152 -0
- package/dist/api/DefineComponent/collectOptionsForComponent.js.map +1 -0
- package/dist/api/DefineComponent/index.d.ts +4 -28
- package/dist/api/DefineComponent/index.js +2 -32
- package/dist/api/DefineComponent/index.js.map +1 -1
- package/dist/api/RootComponent/CustomEvents/CustomEventConstraint.d.ts +2 -1
- package/dist/api/RootComponent/Data/DataConstraint.d.ts +1 -0
- package/dist/api/RootComponent/Data/DataConstraint.js +2 -0
- package/dist/api/RootComponent/Data/DataConstraint.js.map +1 -0
- package/dist/api/RootComponent/Lifetimes/LifetimesConstraint.d.ts +4 -1
- package/dist/api/RootComponent/Lifetimes/test/error.test.js +1 -0
- package/dist/api/RootComponent/Lifetimes/test/error.test.js.map +1 -1
- package/dist/api/RootComponent/Lifetimes/test/normal.test.js +3 -0
- package/dist/api/RootComponent/Lifetimes/test/normal.test.js.map +1 -1
- package/dist/api/RootComponent/Properties/{expected/normalEmpty.js → test/normalEmpty.test.js} +1 -1
- package/dist/api/RootComponent/Properties/test/normalEmpty.test.js.map +1 -0
- package/dist/api/RootComponent/Properties/test/normalOptional.test.js +15 -0
- package/dist/api/RootComponent/Properties/test/normalOptional.test.js.map +1 -1
- package/dist/api/RootComponent/Watch/test/WatchProperties.test.js +1 -1
- package/dist/api/RootComponent/Watch/test/WatchProperties.test.js.map +1 -1
- package/dist/api/RootComponent/index.d.ts +19 -2
- package/dist/api/RootComponent/index.js +1 -1
- package/dist/api/RootComponent/index.js.map +1 -1
- package/dist/api/SubComponent/SubComputed/test/normal.test.js.map +1 -1
- package/dist/api/SubComponent/SubData/test/error.test.js.map +1 -1
- package/dist/api/SubComponent/SubData/test/normal.test.js.map +1 -1
- package/dist/api/SubComponent/SubInstance/test/normal.test.js.map +1 -1
- package/dist/api/SubComponent/SubPageLifetimes/test/normal.test.js.map +1 -1
- package/dist/api/SubComponent/SubWatch/test/WatchRootData.test.js.map +1 -1
- package/dist/api/SubComponent/index.d.ts +2 -2
- package/dist/api/SubComponent/index.js.map +1 -1
- package/dist/{utils → behaviors/BComputedAndWatch}/computedUpdater.d.ts +1 -1
- package/dist/{utils → behaviors/BComputedAndWatch}/computedUpdater.js +2 -2
- package/dist/behaviors/BComputedAndWatch/computedUpdater.js.map +1 -0
- package/dist/behaviors/BComputedAndWatch/data-tracer.js +0 -3
- package/dist/behaviors/BComputedAndWatch/data-tracer.js.map +1 -1
- package/dist/{utils → behaviors/BComputedAndWatch}/getPathsValue.d.ts +1 -1
- package/dist/behaviors/BComputedAndWatch/getPathsValue.js.map +1 -0
- package/dist/behaviors/BComputedAndWatch/index.js +10 -2
- package/dist/behaviors/BComputedAndWatch/index.js.map +1 -1
- package/dist/behaviors/BComputedAndWatch/initComputed.js +4 -12
- package/dist/behaviors/BComputedAndWatch/initComputed.js.map +1 -1
- package/dist/behaviors/BComputedAndWatch/isEqual.js.map +1 -1
- package/dist/behaviors/BStore.js.map +1 -1
- package/dist/behaviors/BbeforeCreated.js +1 -2
- package/dist/behaviors/BbeforeCreated.js.map +1 -1
- package/dist/types/GetComponentPrefix.js +1 -4
- package/dist/types/GetComponentPrefix.js.map +1 -1
- package/dist/types/OfficialTypeAlias.d.ts +2 -2
- package/dist/types/ReplacePrefix.js +1 -4
- package/dist/types/ReplacePrefix.js.map +1 -1
- package/package.json +5 -4
- package/src/api/DefineComponent/ReturnType/test/normalComponentDoc.test.ts +2 -1
- package/src/api/DefineComponent/ReturnType/test/normalPageDoc.test.ts +2 -1
- package/src/api/DefineComponent/collectOptionsForComponent.ts +290 -0
- package/src/api/DefineComponent/index.ts +13 -81
- package/src/api/RootComponent/Computed/test/normal.test.ts +1 -1
- package/src/api/RootComponent/CustomEvents/CustomEventConstraint.ts +3 -1
- package/src/api/RootComponent/Data/DataConstraint.ts +1 -0
- package/src/api/RootComponent/IsPage/IsPageOption.ts +6 -1
- package/src/api/RootComponent/Lifetimes/LifetimesConstraint.ts +8 -7
- package/src/api/RootComponent/Lifetimes/test/error.test.ts +1 -1
- package/src/api/RootComponent/Lifetimes/test/normal.test.ts +3 -3
- package/src/api/RootComponent/PageLifetimes/test/normal.test.ts +1 -1
- package/src/api/RootComponent/Properties/test/normalOptional.test.ts +20 -0
- package/src/api/RootComponent/Watch/test/WatchComputed.test.ts +1 -1
- package/src/api/RootComponent/Watch/test/WatchData.test.ts +1 -1
- package/src/api/RootComponent/Watch/test/WatchProperties.test.ts +8 -2
- package/src/api/RootComponent/index.ts +19 -3
- package/src/api/SubComponent/SubComputed/test/normal.test.ts +2 -1
- package/src/api/SubComponent/SubData/test/error.test.ts +2 -1
- package/src/api/SubComponent/SubData/test/normal.test.ts +2 -1
- package/src/api/SubComponent/SubInstance/test/normal.test.ts +2 -1
- package/src/api/SubComponent/SubPageLifetimes/test/normal.test.ts +2 -1
- package/src/api/SubComponent/SubWatch/test/WatchRootData.test.ts +2 -1
- package/src/api/SubComponent/SubWatch/test/error.test.ts +1 -1
- package/src/api/SubComponent/index.ts +11 -4
- package/src/{utils → behaviors/BComputedAndWatch}/computedUpdater.ts +5 -4
- package/src/behaviors/BComputedAndWatch/data-tracer.ts +0 -3
- package/src/{utils → behaviors/BComputedAndWatch}/getPathsValue.ts +1 -1
- package/src/behaviors/BComputedAndWatch/index.ts +21 -8
- package/src/behaviors/BComputedAndWatch/initComputed.ts +26 -19
- package/src/behaviors/BComputedAndWatch/isEqual.ts +1 -0
- package/src/behaviors/BStore.ts +5 -3
- package/src/behaviors/BbeforeCreated.ts +4 -2
- package/src/types/GetComponentPrefix.ts +11 -11
- package/src/types/OfficialTypeAlias.ts +2 -2
- package/src/types/ReplacePrefix.ts +9 -10
- package/src/types/SpecificType.ts +0 -4
- package/tsconfig.json +6 -15
- package/dist/api/RootComponent/Data/expected/error.js +0 -10
- package/dist/api/RootComponent/Data/expected/error.js.map +0 -1
- package/dist/api/RootComponent/Data/expected/normal.d.ts +0 -1
- package/dist/api/RootComponent/Data/expected/normal.js +0 -33
- package/dist/api/RootComponent/Data/expected/normal.js.map +0 -1
- package/dist/api/RootComponent/Properties/expected/error.d.ts +0 -1
- package/dist/api/RootComponent/Properties/expected/error.js +0 -38
- package/dist/api/RootComponent/Properties/expected/error.js.map +0 -1
- package/dist/api/RootComponent/Properties/expected/normalEmpty.d.ts +0 -1
- package/dist/api/RootComponent/Properties/expected/normalEmpty.js.map +0 -1
- package/dist/api/RootComponent/Properties/expected/normalOptional.d.ts +0 -1
- package/dist/api/RootComponent/Properties/expected/normalOptional.js +0 -80
- package/dist/api/RootComponent/Properties/expected/normalOptional.js.map +0 -1
- package/dist/api/RootComponent/Properties/expected/normalRequired.d.ts +0 -69
- package/dist/api/RootComponent/Properties/expected/normalRequired.js +0 -44
- package/dist/api/RootComponent/Properties/expected/normalRequired.js.map +0 -1
- package/dist/api/RootComponent/Properties/test/normalEmpty.test..d.ts +0 -1
- package/dist/api/RootComponent/Properties/test/normalEmpty.test..js +0 -20
- package/dist/api/RootComponent/Properties/test/normalEmpty.test..js.map +0 -1
- package/dist/types/RestorePropTypeOfList.d.ts +0 -2
- package/dist/types/RestorePropTypeOfList.js +0 -3
- package/dist/types/RestorePropTypeOfList.js.map +0 -1
- package/dist/utils/computedUpdater.js.map +0 -1
- package/dist/utils/getPathsValue.js.map +0 -1
- package/dist/utils/initWatchOldValue.d.ts +0 -2
- package/dist/utils/initWatchOldValue.js +0 -10
- package/dist/utils/initWatchOldValue.js.map +0 -1
- package/dist/utils/preprocessingOptions.d.ts +0 -18
- package/dist/utils/preprocessingOptions.js +0 -184
- package/dist/utils/preprocessingOptions.js.map +0 -1
- package/src/api/RootComponent/Data/expected/error.ts +0 -14
- package/src/api/RootComponent/Data/expected/normal.ts +0 -68
- package/src/api/RootComponent/Properties/expected/error.ts +0 -49
- package/src/api/RootComponent/Properties/expected/normalEmpty.ts +0 -33
- package/src/api/RootComponent/Properties/expected/normalOptional.ts +0 -136
- package/src/api/RootComponent/Properties/expected/normalRequired.ts +0 -100
- package/src/types/RestorePropTypeOfList.ts +0 -20
- package/src/utils/initWatchOldValue.ts +0 -12
- package/src/utils/preprocessingOptions.ts +0 -334
- /package/dist/api/RootComponent/{Data/expected/error.d.ts → Properties/test/normalEmpty.test.d.ts} +0 -0
- /package/dist/{utils → behaviors/BComputedAndWatch}/getPathsValue.js +0 -0
- /package/src/api/RootComponent/Properties/test/{normalEmpty.test..ts → normalEmpty.test.ts} +0 -0
|
@@ -30,10 +30,10 @@ type Options<RootDoc extends RootComponentDoc, IsPage extends boolean, CurrentCo
|
|
|
30
30
|
type SubComponentConstructor<TRootDoc extends RootComponentDoc, TOriginalCompDoc extends ComponentDoc, TSupplementalPrefix extends string = "", IsPage extends boolean = TRootDoc["isPage"] extends true ? true : false, CurrentPrefix extends string = `${ExtractDocPrefix<TOriginalCompDoc>}${Capitalize<TSupplementalPrefix>}`, CurrentCompDoc extends ComponentDoc = IfExtends<TSupplementalPrefix, "", TOriginalCompDoc, ReplacePrefix<TOriginalCompDoc, CurrentPrefix>>, AllRootDataDoc extends object = Required<TRootDoc["properties"]> & TRootDoc["data"] & TRootDoc["computed"]> = {
|
|
31
31
|
<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, {}, {
|
|
32
32
|
[k in keyof TSubStore]: ReturnType<TSubStore[k] & {}>;
|
|
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 &
|
|
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
|
|
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":"
|
|
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 "
|
|
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 "
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-tracer.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/data-tracer.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,WAAiC,EACjC,WAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG;QACd,GAAG
|
|
1
|
+
{"version":3,"file":"data-tracer.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/data-tracer.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,WAAiC,EACjC,WAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,MAAc,EAAE,IAAY;YAI9B,IAAI,IAAI,KAAK,eAAe;gBAAE,OAAO,MAAM,CAAC;YAE5C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAKzB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAE1B,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAE5D,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAE7D,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEtC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAGvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAErF,OAAO,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5D,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,GAAG,CAAC;YAExD,OAAO,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;IAEF,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,OAAY;IAEjC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5C,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,GAAG,aAAa,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { Instance } from "
|
|
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,15 +1,23 @@
|
|
|
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;
|
|
11
18
|
if (computedConfig && !isEmptyObject(computedConfig)) {
|
|
12
|
-
|
|
19
|
+
options.methods || (options.methods = {});
|
|
20
|
+
const methodsConfig = options.methods;
|
|
13
21
|
methodsConfig.__computedConfig__ = () => computedConfig;
|
|
14
22
|
const observersConfig = options.observers || (options.observers = {});
|
|
15
23
|
const originalFunc = observersConfig["**"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
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) {
|
|
@@ -12,17 +12,9 @@ function isValidDependences(dependences, computedKeys) {
|
|
|
12
12
|
export function getComputedInfo(computedKeys, computedFunc, key) {
|
|
13
13
|
const dependences = [];
|
|
14
14
|
let initValue;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
if (!isValidDependences(dependences, computedKeys)) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
throw error;
|
|
25
|
-
}
|
|
15
|
+
initValue = computedFunc.call({
|
|
16
|
+
data: deepProxy(this.data, dependences),
|
|
17
|
+
});
|
|
26
18
|
if (isValidDependences(dependences, computedKeys)) {
|
|
27
19
|
initValue = unwrap(initValue);
|
|
28
20
|
this.setData({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initComputed.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/initComputed.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"initComputed.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/initComputed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isEqual.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/isEqual.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,KAAc;IACpD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC/F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"isEqual.js","sourceRoot":"","sources":["../../../src/behaviors/BComputedAndWatch/isEqual.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,KAAc;IACpD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC/F,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAGjC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BStore.js","sourceRoot":"","sources":["../../src/behaviors/BStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;IAC7B,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"BStore.js","sourceRoot":"","sources":["../../src/behaviors/BStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;IAC7B,gBAAgB,CAAC,OAAiC;QAEhD,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;YAI7C,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;IAED,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;QACD,QAAQ;YAGN,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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export const BBeforeCreate = Behavior({
|
|
2
2
|
definitionFilter(options) {
|
|
3
|
-
|
|
4
|
-
const beforeCreateFunc = (_a = options.lifetimes) === null || _a === void 0 ? void 0 : _a.beforeCreate;
|
|
3
|
+
const beforeCreateFunc = options.lifetimes.beforeCreate;
|
|
5
4
|
beforeCreateFunc && beforeCreateFunc(options);
|
|
6
5
|
},
|
|
7
6
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BbeforeCreated.js","sourceRoot":"","sources":["../../src/behaviors/BbeforeCreated.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BbeforeCreated.js","sourceRoot":"","sources":["../../src/behaviors/BbeforeCreated.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;IACpC,gBAAgB,CAAC,OAAiC;QAEhD,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAU,CAAC,YAAY,CAAC;QAEzD,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetComponentPrefix.js","sourceRoot":"","sources":["../../src/types/GetComponentPrefix.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GetComponentPrefix.js","sourceRoot":"","sources":["../../src/types/GetComponentPrefix.ts"],"names":[],"mappings":""}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
/// <reference types="./node_modules/miniprogram-api-typings/" />
|
|
4
4
|
/// <reference types="./node_modules/miniprogram-api-typings/" />
|
|
5
5
|
export type WMTriggerEventOption = WechatMiniprogram.Component.TriggerEventOption;
|
|
6
|
-
export type WMCustomEvent<Detail =
|
|
6
|
+
export type WMCustomEvent<Detail = undefined, Mark extends object = object, CurrentTargetDataset extends object = object, TargetDataset extends object = CurrentTargetDataset> = WechatMiniprogram.CustomEvent<Detail, Mark, CurrentTargetDataset, TargetDataset>;
|
|
7
7
|
export type WMBaseEvent<Mark extends object = object, CurrentTargetDataset extends object = object, TargetDataset extends object = CurrentTargetDataset> = WechatMiniprogram.BaseEvent<Mark, CurrentTargetDataset, TargetDataset>;
|
|
8
|
-
export type Dataset<TCurrentTargetDataset extends object, TargetDataset extends object = TCurrentTargetDataset, Detail =
|
|
8
|
+
export type Dataset<TCurrentTargetDataset extends object, TargetDataset extends object = TCurrentTargetDataset, Detail = undefined> = WMCustomEvent<Detail, object, TCurrentTargetDataset, TargetDataset>;
|
|
9
9
|
export type Mark<TMark extends object> = WechatMiniprogram.CustomEvent<{}, TMark, {}, {}>;
|
|
10
10
|
export type Detail<T> = WMCustomEvent<T>;
|
|
11
11
|
export type CurrentTargetDataset<T extends object> = WMCustomEvent<{}, {}, T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReplacePrefix.js","sourceRoot":"","sources":["../../src/types/ReplacePrefix.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReplacePrefix.js","sourceRoot":"","sources":["../../src/types/ReplacePrefix.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "annil",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "微信小程序(原生开发)插件",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"
|
|
7
|
+
"test": "jest --watch",
|
|
8
|
+
"coverage": "jest --coverage",
|
|
8
9
|
"prepare": "husky install",
|
|
9
10
|
"lint": "eslint . --fix && npm run fmt",
|
|
10
11
|
"fmt": "dprint fmt",
|
|
11
|
-
"
|
|
12
|
+
"type": "tsc --watch",
|
|
12
13
|
"build": "tsc -p tsconfig.build.json"
|
|
13
14
|
},
|
|
14
15
|
"devDependencies": {
|
|
@@ -43,7 +44,7 @@
|
|
|
43
44
|
"program",
|
|
44
45
|
"wmp"
|
|
45
46
|
],
|
|
46
|
-
"author": "",
|
|
47
|
+
"author": "missannil",
|
|
47
48
|
"license": "MIT",
|
|
48
49
|
"dependencies": {
|
|
49
50
|
"hry-types": "^0.16.12",
|
|
@@ -11,8 +11,9 @@ import type {
|
|
|
11
11
|
CaptureComposed,
|
|
12
12
|
Composed,
|
|
13
13
|
} from "../../../RootComponent/CustomEvents/CustomEventsTag";
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
import type { PropertiesConstraint } from "../../../RootComponent/Properties/PropertiesConstraint";
|
|
16
|
+
import type { Mock_User } from "../../../RootComponent/Properties/test/normalRequired.test";
|
|
16
17
|
import type { RootComponentDoc } from "../../../RootComponent/RootComponentDoc";
|
|
17
18
|
import type { SubComponentDoc } from "../../../SubComponent/SubComponentDoc";
|
|
18
19
|
import { DefineComponent } from "../..";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Checking, type Test } from "hry-types";
|
|
2
2
|
import { RootComponent, type SpecificType } from "../../../..";
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
import type { Mock_User } from "../../../RootComponent/Properties/test/normalRequired.test";
|
|
4
5
|
import { DefineComponent } from "../..";
|
|
5
6
|
|
|
6
7
|
const OnlyPropsRootDoc = RootComponent()({
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import type { Func } from "hry-types/src/Misc/_api";
|
|
2
|
+
import { BBeforeCreate } from "../../behaviors/BbeforeCreated";
|
|
3
|
+
import { BComputedAndWatch } from "../../behaviors/BComputedAndWatch";
|
|
4
|
+
import { initComputed } from "../../behaviors/BComputedAndWatch/initComputed";
|
|
5
|
+
import type { Instance } from "../../behaviors/BComputedAndWatch/types";
|
|
6
|
+
import { BStore } from "../../behaviors/BStore";
|
|
7
|
+
import { deepClone } from "../../utils/deepClone";
|
|
8
|
+
import { INNERMARKER } from "../../utils/InnerMarker";
|
|
9
|
+
import { isEmptyObject } from "../../utils/isEmptyObject";
|
|
10
|
+
import type { RootComponentTrueOptions } from "../RootComponent";
|
|
11
|
+
import type {
|
|
12
|
+
CustomEventConstraint,
|
|
13
|
+
CustomEvents,
|
|
14
|
+
FullCustomEvents,
|
|
15
|
+
} from "../RootComponent/CustomEvents/CustomEventConstraint";
|
|
16
|
+
import type { EventsConstraint } from "../RootComponent/Events/EventsConstraint";
|
|
17
|
+
import type { PageInstance } from "../RootComponent/Instance/RootComponentInstance";
|
|
18
|
+
import type { SubComponentTrueOptions } from "../SubComponent";
|
|
19
|
+
import type { FinalOptionsForComponent, FuncOptions } from ".";
|
|
20
|
+
/**
|
|
21
|
+
* 针对通过 navigateTo传过来的数据解析
|
|
22
|
+
* @param option - option中的url是拼接了encodeURIComponent转码的data对象的,key为INNERMARKER.url
|
|
23
|
+
*/
|
|
24
|
+
/* istanbul ignore next */
|
|
25
|
+
function onLoadReceivedDataHandle(
|
|
26
|
+
this: PageInstance,
|
|
27
|
+
option: Record<typeof INNERMARKER.url, string>,
|
|
28
|
+
) {
|
|
29
|
+
const innerData: string | undefined = option[INNERMARKER.url];
|
|
30
|
+
// 未使用自定义的navigateTo
|
|
31
|
+
if (innerData === undefined) return;
|
|
32
|
+
const optionData = JSON.parse(decodeURIComponent(innerData));
|
|
33
|
+
|
|
34
|
+
// 使用navigateTo
|
|
35
|
+
for (const key in optionData) {
|
|
36
|
+
option[key] = optionData[key];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// setData会触发计算属性 继承属性等 。
|
|
40
|
+
this.setData(option as any);
|
|
41
|
+
|
|
42
|
+
delete option[INNERMARKER.url];
|
|
43
|
+
|
|
44
|
+
Reflect.deleteProperty(this.data, INNERMARKER.url);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* onLoad生命周期劫持函数
|
|
49
|
+
*/
|
|
50
|
+
/* istanbul ignore next */
|
|
51
|
+
function onLoadHijack(
|
|
52
|
+
options: FinalOptionsForComponent,
|
|
53
|
+
before: Func[],
|
|
54
|
+
after: Func[] = [],
|
|
55
|
+
) {
|
|
56
|
+
options.methods ||= {};
|
|
57
|
+
|
|
58
|
+
const cloneOpt = deepClone(options);
|
|
59
|
+
const originalOnLoad: Func | undefined = options.methods.onLoad;
|
|
60
|
+
|
|
61
|
+
options.methods.onLoad = function(props: unknown) {
|
|
62
|
+
before.forEach((func) => {
|
|
63
|
+
func.call(this, props, cloneOpt);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
originalOnLoad?.call(this, props);
|
|
67
|
+
|
|
68
|
+
after.forEach((func) => {
|
|
69
|
+
func.call(this, props, cloneOpt);
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* 内部保护字段 即不允许配置的字段名(所有方法下)
|
|
75
|
+
*/
|
|
76
|
+
const INNERFIELDS = ["disposer"];
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* 报错的形式避免输入字段和内部字段冲突
|
|
80
|
+
*/
|
|
81
|
+
/* istanbul ignore next */
|
|
82
|
+
function InternalFieldProtection(methodsConfig: object) {
|
|
83
|
+
const methodsConfigKeys = Object.keys(methodsConfig);
|
|
84
|
+
for (const key of INNERFIELDS) {
|
|
85
|
+
if (methodsConfigKeys.includes(key)) {
|
|
86
|
+
throw Error(`${key}已被内部字段占用`);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 把函数配置放入一个配置中依次运行
|
|
92
|
+
*/
|
|
93
|
+
function _funcConfigHandle(methodsConfig: object, configList: Record<string, Func[]>) {
|
|
94
|
+
for (const key in configList) {
|
|
95
|
+
methodsConfig[key] = function(...args: unknown[]) {
|
|
96
|
+
configList[key].forEach(ele => ele.call(this, ...args));
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function funcConfigHandle(
|
|
102
|
+
finalOptionsForComponent: FinalOptionsForComponent,
|
|
103
|
+
isPage: boolean | undefined,
|
|
104
|
+
funcOptions: FuncOptions,
|
|
105
|
+
) {
|
|
106
|
+
// 测试框架无法测试page情形
|
|
107
|
+
/* istanbul ignore next */
|
|
108
|
+
if (isPage) {
|
|
109
|
+
// 页面时 生命周期方法(即 on 开头的方法),(https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html)
|
|
110
|
+
funcOptions.pageLifetimes && _funcConfigHandle(finalOptionsForComponent.methods ||= {}, funcOptions.pageLifetimes);
|
|
111
|
+
} else {
|
|
112
|
+
// 组件时
|
|
113
|
+
funcOptions.pageLifetimes
|
|
114
|
+
&& _funcConfigHandle(finalOptionsForComponent.pageLifetimes ||= {}, funcOptions.pageLifetimes);
|
|
115
|
+
}
|
|
116
|
+
funcOptions.lifetimes && _funcConfigHandle(finalOptionsForComponent.lifetimes ||= {}, funcOptions.lifetimes);
|
|
117
|
+
|
|
118
|
+
funcOptions.watch && _funcConfigHandle(finalOptionsForComponent.watch ||= {}, funcOptions.watch);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* 把配置为函数的字段方法收集到funcConfig中
|
|
122
|
+
*/
|
|
123
|
+
function funcFieldsCollect(
|
|
124
|
+
options: SubComponentTrueOptions | RootComponentTrueOptions,
|
|
125
|
+
funcOptions: FuncOptions,
|
|
126
|
+
) {
|
|
127
|
+
for (const key in funcOptions) {
|
|
128
|
+
// key = "pageLifetimes" | "lifetimes" | "watch"
|
|
129
|
+
if (options[key]) {
|
|
130
|
+
for (const _key in options[key]) {
|
|
131
|
+
(funcOptions[key][_key] ||= []).push(options[key][_key]);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
Reflect.deleteProperty(options, key);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// 其他字段加入到componentOptions对应字段配置中
|
|
140
|
+
function otherFieldsHandle(
|
|
141
|
+
finalOptions: FinalOptionsForComponent,
|
|
142
|
+
rootComponentOptions: RootComponentTrueOptions,
|
|
143
|
+
) {
|
|
144
|
+
for (const key in rootComponentOptions) {
|
|
145
|
+
const config = rootComponentOptions[key];
|
|
146
|
+
if (Array.isArray(config)) {
|
|
147
|
+
// 好像只有behaviors是数组吧.
|
|
148
|
+
/* istanbul ignore next */
|
|
149
|
+
(finalOptions[key] ||= []).push(...config);
|
|
150
|
+
} else {
|
|
151
|
+
Object.assign(finalOptions[key] ||= {}, config);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* 把events字段配置变成函数放入到componentOptions.methods中
|
|
157
|
+
*/
|
|
158
|
+
function eventsHandle(componentOptions: FinalOptionsForComponent, eventsConfig: EventsConstraint) {
|
|
159
|
+
/* istanbul ignore next */
|
|
160
|
+
componentOptions.methods ||= {};
|
|
161
|
+
|
|
162
|
+
Object.assign(componentOptions.methods, eventsConfig);
|
|
163
|
+
}
|
|
164
|
+
function subComponentsHandle(
|
|
165
|
+
componentOptions: FinalOptionsForComponent,
|
|
166
|
+
subComponents: SubComponentTrueOptions[],
|
|
167
|
+
funcOptions: FuncOptions,
|
|
168
|
+
) {
|
|
169
|
+
subComponents.forEach((subOption) => {
|
|
170
|
+
subOption.events && eventsHandle(componentOptions, subOption.events);
|
|
171
|
+
|
|
172
|
+
funcFieldsCollect(subOption, funcOptions);
|
|
173
|
+
|
|
174
|
+
otherFieldsHandle(componentOptions, subOption);
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// 类型守卫
|
|
179
|
+
function IsFullCustomEvents(
|
|
180
|
+
customEventOptions: CustomEvents,
|
|
181
|
+
): customEventOptions is FullCustomEvents {
|
|
182
|
+
return Object.prototype.toString.call(customEventOptions) === "[object Object]";
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* 把customEvents字段配置变成函数放入到componentOptions.methods中
|
|
187
|
+
*/
|
|
188
|
+
function customEventsHandle(
|
|
189
|
+
componentOptions: FinalOptionsForComponent,
|
|
190
|
+
customEventsConfig: CustomEventConstraint,
|
|
191
|
+
) {
|
|
192
|
+
/* istanbul ignore next */
|
|
193
|
+
componentOptions.methods ||= {};
|
|
194
|
+
|
|
195
|
+
for (const key in customEventsConfig) {
|
|
196
|
+
const customEventOptions = customEventsConfig[key];
|
|
197
|
+
|
|
198
|
+
if (IsFullCustomEvents(customEventOptions)) {
|
|
199
|
+
componentOptions.methods[key] = function(this: Instance, detail: unknown) {
|
|
200
|
+
this.triggerEvent(key, detail, customEventOptions.options);
|
|
201
|
+
};
|
|
202
|
+
} else {
|
|
203
|
+
componentOptions.methods[key] = function(this: Instance, detail: unknown) {
|
|
204
|
+
this.triggerEvent(key, detail);
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* 收集 rootComponentOptions 配置到 finalOptions 和 funcOptions 中
|
|
212
|
+
* @param finalOptions - 收集配置对象
|
|
213
|
+
* @param funcOptions - 收集特殊配置对象字段
|
|
214
|
+
* @param rootComponentOptions - 被收集的源配置对象
|
|
215
|
+
*/
|
|
216
|
+
function collectRootComponentOption(
|
|
217
|
+
finalOptions: FinalOptionsForComponent,
|
|
218
|
+
funcOptions: FuncOptions,
|
|
219
|
+
rootComponentOptions: RootComponentTrueOptions,
|
|
220
|
+
) {
|
|
221
|
+
rootComponentOptions.customEvents && customEventsHandle(finalOptions, rootComponentOptions.customEvents);
|
|
222
|
+
|
|
223
|
+
delete rootComponentOptions.customEvents;
|
|
224
|
+
|
|
225
|
+
rootComponentOptions.events && eventsHandle(finalOptions, rootComponentOptions.events);
|
|
226
|
+
|
|
227
|
+
delete rootComponentOptions.events;
|
|
228
|
+
|
|
229
|
+
funcFieldsCollect(rootComponentOptions, funcOptions);
|
|
230
|
+
|
|
231
|
+
otherFieldsHandle(finalOptions, rootComponentOptions);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* 返回一个由rootComponentOption和subComponentsList配置整合的对象
|
|
235
|
+
* @param rootComponentOption -
|
|
236
|
+
* @param subComponentsList -
|
|
237
|
+
* @returns FinalOptionsForComponent
|
|
238
|
+
*/
|
|
239
|
+
export function collectOptionsForComponent(
|
|
240
|
+
rootComponentOption: RootComponentTrueOptions | undefined,
|
|
241
|
+
subComponentsList: SubComponentTrueOptions[] | undefined,
|
|
242
|
+
): FinalOptionsForComponent {
|
|
243
|
+
const finalOptionsForComponent: FinalOptionsForComponent = {
|
|
244
|
+
// default options
|
|
245
|
+
options: {
|
|
246
|
+
// addGlobalClass: true,
|
|
247
|
+
multipleSlots: true,
|
|
248
|
+
pureDataPattern: /^_/,
|
|
249
|
+
virtualHost: true,
|
|
250
|
+
},
|
|
251
|
+
// default behaviors
|
|
252
|
+
behaviors: [BStore, BComputedAndWatch],
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* 有些字段配置同时存在根组件和子组件当中(如pageLifetimes,lifetimes,watch字段), 且key相同值类型为函数。funcConfig对象用于收集这些配置为数组形式,最终再一起整合进finalOptionsForComponent配置中。即funcConfig是一个临时中介对象。
|
|
256
|
+
*/
|
|
257
|
+
const funcOptions: FuncOptions = {
|
|
258
|
+
pageLifetimes: {},
|
|
259
|
+
lifetimes: {},
|
|
260
|
+
watch: {},
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
if (rootComponentOption && !isEmptyObject(rootComponentOption)) {
|
|
264
|
+
collectRootComponentOption(finalOptionsForComponent, funcOptions, rootComponentOption);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if (subComponentsList && !isEmptyObject(subComponentsList)) {
|
|
268
|
+
subComponentsHandle(finalOptionsForComponent, subComponentsList, funcOptions);
|
|
269
|
+
}
|
|
270
|
+
// 框架无法测试页面
|
|
271
|
+
/* istanbul ignore next */
|
|
272
|
+
if (!isEmptyObject(funcOptions)) {
|
|
273
|
+
funcConfigHandle(finalOptionsForComponent, rootComponentOption?.isPage, funcOptions);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
finalOptionsForComponent.methods && InternalFieldProtection(finalOptionsForComponent.methods);
|
|
277
|
+
|
|
278
|
+
// BBeforeCreate在最后面
|
|
279
|
+
finalOptionsForComponent.behaviors!.push(BBeforeCreate);
|
|
280
|
+
|
|
281
|
+
onLoadHijack(finalOptionsForComponent, [onLoadReceivedDataHandle, initComputed], []);
|
|
282
|
+
|
|
283
|
+
// 框架无法测试页面
|
|
284
|
+
/* istanbul ignore next */
|
|
285
|
+
if (finalOptionsForComponent.isPage) {
|
|
286
|
+
Reflect.deleteProperty(finalOptionsForComponent.options!, "virtualHost");
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
return finalOptionsForComponent;
|
|
290
|
+
}
|