vona-module-a-orm 5.0.42 → 5.0.44
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/dist/index.js +12 -4
- package/dist/types/depth.d.ts +55 -0
- package/dist/types/relations.d.ts +12 -11
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -3734,25 +3734,33 @@ function _DtoGet_relation_handle(entityClass, relation, mutateTypeTopLevel) {
|
|
|
3734
3734
|
deleted: z.boolean().optional()
|
|
3735
3735
|
}));
|
|
3736
3736
|
} else if (type === 'hasOne') {
|
|
3737
|
-
schema = v.lazy(
|
|
3737
|
+
schema = v.lazy(schemaLazy);
|
|
3738
|
+
// optional = true;
|
|
3738
3739
|
} else {
|
|
3739
3740
|
schema = v.array(v.lazy(schemaLazy));
|
|
3740
3741
|
}
|
|
3741
3742
|
Api.field(v.optional(), schema)(entityClass.prototype, relationName);
|
|
3742
3743
|
} else {
|
|
3743
3744
|
let schema;
|
|
3745
|
+
let optional = false;
|
|
3744
3746
|
if (type === 'hasOne' || type === 'belongsTo') {
|
|
3745
|
-
schema = v.lazy(
|
|
3747
|
+
schema = v.lazy(schemaLazy);
|
|
3748
|
+
optional = true;
|
|
3746
3749
|
} else {
|
|
3747
3750
|
if (optionsReal.groups) {
|
|
3748
3751
|
schema = v.array(v.lazy(schemaLazy));
|
|
3749
3752
|
} else if (optionsReal.aggrs) {
|
|
3750
|
-
schema = v.lazy(
|
|
3753
|
+
schema = v.lazy(schemaLazy);
|
|
3754
|
+
optional = true;
|
|
3751
3755
|
} else {
|
|
3752
3756
|
schema = v.array(v.lazy(schemaLazy));
|
|
3753
3757
|
}
|
|
3754
3758
|
}
|
|
3755
|
-
|
|
3759
|
+
if (optional) {
|
|
3760
|
+
Api.field(v.optional(), schema)(entityClass.prototype, relationName);
|
|
3761
|
+
} else {
|
|
3762
|
+
Api.field(schema)(entityClass.prototype, relationName);
|
|
3763
|
+
}
|
|
3756
3764
|
}
|
|
3757
3765
|
}
|
|
3758
3766
|
function _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel) {
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export type TypeDepthPrevMax = 50;
|
|
2
|
+
export type TypeDepthPrev = [
|
|
3
|
+
never,
|
|
4
|
+
0,
|
|
5
|
+
1,
|
|
6
|
+
2,
|
|
7
|
+
3,
|
|
8
|
+
4,
|
|
9
|
+
5,
|
|
10
|
+
6,
|
|
11
|
+
7,
|
|
12
|
+
8,
|
|
13
|
+
9,
|
|
14
|
+
10,
|
|
15
|
+
11,
|
|
16
|
+
12,
|
|
17
|
+
13,
|
|
18
|
+
14,
|
|
19
|
+
15,
|
|
20
|
+
16,
|
|
21
|
+
17,
|
|
22
|
+
18,
|
|
23
|
+
19,
|
|
24
|
+
20,
|
|
25
|
+
21,
|
|
26
|
+
22,
|
|
27
|
+
23,
|
|
28
|
+
24,
|
|
29
|
+
25,
|
|
30
|
+
26,
|
|
31
|
+
27,
|
|
32
|
+
28,
|
|
33
|
+
29,
|
|
34
|
+
30,
|
|
35
|
+
31,
|
|
36
|
+
32,
|
|
37
|
+
33,
|
|
38
|
+
34,
|
|
39
|
+
35,
|
|
40
|
+
36,
|
|
41
|
+
37,
|
|
42
|
+
38,
|
|
43
|
+
39,
|
|
44
|
+
40,
|
|
45
|
+
41,
|
|
46
|
+
42,
|
|
47
|
+
43,
|
|
48
|
+
44,
|
|
49
|
+
45,
|
|
50
|
+
46,
|
|
51
|
+
47,
|
|
52
|
+
48,
|
|
53
|
+
49,
|
|
54
|
+
50
|
|
55
|
+
];
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Constructable, OmitNever } from 'vona';
|
|
2
2
|
import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
|
|
3
|
+
import type { TypeDepthPrev, TypeDepthPrevMax } from './depth.ts';
|
|
3
4
|
import type { IDecoratorModelOptions, IModelClassRecord } from './onion/model.ts';
|
|
4
5
|
import type { TypeModelAggrRelationResultAggrs, TypeUtilGetAggrsFromRelationAndIncludeWrapper } from './relationsAggr.ts';
|
|
5
6
|
import type { TypeModelGroupRelationResultGroups, TypeUtilGetGroupsFromRelationAndIncludeWrapper } from './relationsGroup.ts';
|
|
@@ -69,8 +70,8 @@ export type TypeUtilGetModelOptions<Model extends BeanModelMeta | undefined> = M
|
|
|
69
70
|
export type TypeUtilGetModelEntity<Model extends BeanModelMeta | undefined> = Model extends BeanModelMeta ? Model[TypeSymbolKeyEntity] : undefined;
|
|
70
71
|
export type TypeUtilGetModelEntityMeta<Model extends BeanModelMeta | undefined> = Model extends BeanModelMeta ? Model[TypeSymbolKeyEntityMeta] : undefined;
|
|
71
72
|
export type TypeUtilGetModelOnionName<Model extends BeanModelMeta | undefined> = Model extends BeanModelMeta ? Model['$onionName'] : undefined;
|
|
72
|
-
export type TypeUtilGetRelationEntityByType<Relation, IncludeWrapper extends {} | undefined | unknown> = TypeUtilGetEntityByType<TypeUtilGetRelationEntity<Relation>, TypeUtilGetRelationType<Relation>, TypeUtilGetRelationModel<Relation>, IncludeWrapper, TypeUtilGetColumnsFromRelationAndIncludeWrapper<Relation, IncludeWrapper>, TypeUtilGetAggrsFromRelationAndIncludeWrapper<Relation, IncludeWrapper>, TypeUtilGetGroupsFromRelationAndIncludeWrapper<Relation, IncludeWrapper
|
|
73
|
-
export type TypeUtilGetEntityByType<TRecord, TYPE, TModel extends BeanModelMeta | undefined, IncludeWrapper extends {} | undefined | unknown, Columns, Aggrs, Groups> = TYPE extends 'hasMany' | 'belongsToMany' ? Groups extends string | string[] ? Array<TypeModelRelationResult<TRecord, TModel, IncludeWrapper, Columns, Aggrs, Groups>> : (Aggrs extends {} ? TypeModelRelationResult<TRecord, TModel, IncludeWrapper, Columns, Aggrs> | undefined : Array<TypeModelRelationResult<TRecord, TModel, IncludeWrapper, Columns>>) : TypeModelRelationResult<TRecord, TModel, IncludeWrapper, Columns> | undefined;
|
|
73
|
+
export type TypeUtilGetRelationEntityByType<Relation, IncludeWrapper extends {} | undefined | unknown, Depth extends TypeDepthPrev[number] = TypeDepthPrevMax> = TypeUtilGetEntityByType<TypeUtilGetRelationEntity<Relation>, TypeUtilGetRelationType<Relation>, TypeUtilGetRelationModel<Relation>, IncludeWrapper, TypeUtilGetColumnsFromRelationAndIncludeWrapper<Relation, IncludeWrapper>, TypeUtilGetAggrsFromRelationAndIncludeWrapper<Relation, IncludeWrapper>, TypeUtilGetGroupsFromRelationAndIncludeWrapper<Relation, IncludeWrapper>, Depth>;
|
|
74
|
+
export type TypeUtilGetEntityByType<TRecord, TYPE, TModel extends BeanModelMeta | undefined, IncludeWrapper extends {} | undefined | unknown, Columns, Aggrs, Groups, Depth extends TypeDepthPrev[number] = TypeDepthPrevMax> = TYPE extends 'hasMany' | 'belongsToMany' ? Groups extends string | string[] ? Array<TypeModelRelationResult<TRecord, TModel, IncludeWrapper, Columns, Aggrs, Groups>> : (Aggrs extends {} ? TypeModelRelationResult<TRecord, TModel, IncludeWrapper, Columns, Aggrs> | undefined : Array<TypeModelRelationResult<TRecord, TModel, IncludeWrapper, Columns>>) : ([Depth] extends [never] ? undefined : (TypeModelRelationResult<TRecord, TModel, IncludeWrapper, Columns, undefined, undefined, TypeDepthPrev[Depth]> | undefined));
|
|
74
75
|
export type TypeUtilGetParamsAggrs<TParams> = TParams extends {
|
|
75
76
|
aggrs?: infer Aggrs;
|
|
76
77
|
} ? Aggrs : undefined;
|
|
@@ -93,14 +94,14 @@ export type TypeUtilEntityPartial<TRecord, TColumns> = [
|
|
|
93
94
|
TColumns
|
|
94
95
|
] extends [keyof TRecord] ? Partial<Pick<TRecord, TColumns>> & Omit<TRecord, TColumns> : TRecord;
|
|
95
96
|
export type TypeUtilGetColumnsFromRelationAndIncludeWrapper<Relation, IncludeWrapper extends {} | undefined | unknown> = TypeUtilGetParamsColumns<IncludeWrapper> extends string | string[] ? TypeUtilGetParamsColumns<IncludeWrapper> : TypeUtilGetRelationOptionsColumns<Relation>;
|
|
96
|
-
export type TypeModelRelationResult<TRecord, TModel extends BeanModelMeta | undefined, TOptionsRelation, TColumns = undefined, Aggrs = undefined, Groups = undefined> = Groups extends string | string[] ? TypeModelGroupRelationResultGroups<TRecord, Aggrs, Groups, TColumns> : Aggrs extends {} ? TypeModelAggrRelationResultAggrs<Aggrs> : TypeModelRelationResult_Normal<TRecord, TModel, TOptionsRelation, TColumns>;
|
|
97
|
-
export type TypeModelRelationResult_Normal<TRecord, TModel extends BeanModelMeta | undefined, TOptionsRelation, TColumns = undefined> = TypeUtilEntitySelector<TRecord, TypeUtilPrepareColumns<TColumns extends string | string[] ? TColumns : TypeUtilGetParamsColumns<TOptionsRelation>>> & (TModel extends BeanModelMeta ? (OmitNever<TypeModelRelationResultMergeInclude<TypeUtilGetModelOptions<TModel>, TypeUtilGetParamsInlcude<TOptionsRelation
|
|
98
|
-
export type TypeModelRelationResultMergeInclude<TModelOptions extends IDecoratorModelOptions, TInclude extends {} | undefined | unknown> = {
|
|
99
|
-
[RelationName in (keyof TModelOptions['relations'])]: TInclude extends {} ? TInclude[RelationName] extends {} | boolean ? TypeModelRelationResultMergeIncludeWrapper<TModelOptions['relations'][RelationName], TInclude[RelationName]> : TypeModelRelationResultMergeAutoload<TModelOptions['relations'][RelationName]> : TypeModelRelationResultMergeAutoload<TModelOptions['relations'][RelationName]>;
|
|
97
|
+
export type TypeModelRelationResult<TRecord, TModel extends BeanModelMeta | undefined, TOptionsRelation, TColumns = undefined, Aggrs = undefined, Groups = undefined, Depth extends TypeDepthPrev[number] = TypeDepthPrevMax> = Groups extends string | string[] ? TypeModelGroupRelationResultGroups<TRecord, Aggrs, Groups, TColumns> : Aggrs extends {} ? TypeModelAggrRelationResultAggrs<Aggrs> : TypeModelRelationResult_Normal<TRecord, TModel, TOptionsRelation, TColumns, Depth>;
|
|
98
|
+
export type TypeModelRelationResult_Normal<TRecord, TModel extends BeanModelMeta | undefined, TOptionsRelation, TColumns = undefined, Depth extends TypeDepthPrev[number] = TypeDepthPrevMax> = TypeUtilEntitySelector<TRecord, TypeUtilPrepareColumns<TColumns extends string | string[] ? TColumns : TypeUtilGetParamsColumns<TOptionsRelation>>> & (TModel extends BeanModelMeta ? (OmitNever<TypeModelRelationResultMergeInclude<TypeUtilGetModelOptions<TModel>, TypeUtilGetParamsInlcude<TOptionsRelation>, Depth>> & OmitNever<TypeModelRelationResultMergeWith<TypeUtilGetParamsWith<TOptionsRelation>, Depth>>) : {});
|
|
99
|
+
export type TypeModelRelationResultMergeInclude<TModelOptions extends IDecoratorModelOptions, TInclude extends {} | undefined | unknown, Depth extends TypeDepthPrev[number] = TypeDepthPrevMax> = {
|
|
100
|
+
[RelationName in (keyof TModelOptions['relations'])]: TInclude extends {} ? TInclude[RelationName] extends {} | boolean ? TypeModelRelationResultMergeIncludeWrapper<TModelOptions['relations'][RelationName], TInclude[RelationName], Depth> : TypeModelRelationResultMergeAutoload<TModelOptions['relations'][RelationName], Depth> : TypeModelRelationResultMergeAutoload<TModelOptions['relations'][RelationName], Depth>;
|
|
100
101
|
};
|
|
101
|
-
export type TypeModelRelationResultMergeWith<TWith extends {} | undefined | unknown> = TWith extends {} ? {
|
|
102
|
-
[RelationName in (keyof TWith)]: TypeModelRelationResultMergeWithRelation<TWith[RelationName]>;
|
|
102
|
+
export type TypeModelRelationResultMergeWith<TWith extends {} | undefined | unknown, Depth extends TypeDepthPrev[number] = TypeDepthPrevMax> = TWith extends {} ? {
|
|
103
|
+
[RelationName in (keyof TWith)]: TypeModelRelationResultMergeWithRelation<TWith[RelationName], Depth>;
|
|
103
104
|
} : {};
|
|
104
|
-
export type TypeModelRelationResultMergeAutoload<Relation> = TypeUtilGetRelationOptionsAutoload<Relation> extends true ? TypeUtilGetRelationEntityByType<Relation, undefined> : never;
|
|
105
|
-
export type TypeModelRelationResultMergeIncludeWrapper<Relation, IncludeWrapper> = IncludeWrapper extends false ? never : IncludeWrapper extends true ? TypeUtilGetRelationEntityByType<Relation, undefined> : IncludeWrapper extends {} ? TypeUtilGetRelationEntityByType<Relation, IncludeWrapper> : never;
|
|
106
|
-
export type TypeModelRelationResultMergeWithRelation<WithRelation> = WithRelation extends false ? never : WithRelation extends true ? never : WithRelation extends {} ? TypeUtilGetRelationEntityByType<WithRelation, TypeUtilGetRelationOptions<WithRelation
|
|
105
|
+
export type TypeModelRelationResultMergeAutoload<Relation, Depth extends TypeDepthPrev[number] = TypeDepthPrevMax> = TypeUtilGetRelationOptionsAutoload<Relation> extends true ? TypeUtilGetRelationEntityByType<Relation, undefined, Depth> : never;
|
|
106
|
+
export type TypeModelRelationResultMergeIncludeWrapper<Relation, IncludeWrapper, Depth extends TypeDepthPrev[number] = TypeDepthPrevMax> = IncludeWrapper extends false ? never : IncludeWrapper extends true ? TypeUtilGetRelationEntityByType<Relation, undefined, Depth> : IncludeWrapper extends {} ? TypeUtilGetRelationEntityByType<Relation, IncludeWrapper, Depth> : never;
|
|
107
|
+
export type TypeModelRelationResultMergeWithRelation<WithRelation, Depth extends TypeDepthPrev[number] = TypeDepthPrevMax> = WithRelation extends false ? never : WithRelation extends true ? never : WithRelation extends {} ? TypeUtilGetRelationEntityByType<WithRelation, TypeUtilGetRelationOptions<WithRelation>, Depth> : never;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-module-a-orm",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.0.
|
|
4
|
+
"version": "5.0.44",
|
|
5
5
|
"title": "a-orm",
|
|
6
6
|
"vonaModule": {
|
|
7
7
|
"capabilities": {
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"optionsGlobalInterfaceName": "IDecoratorModelOptions",
|
|
29
29
|
"optionsGlobalInterfaceFrom": "vona-module-a-orm",
|
|
30
30
|
"scopeResource": true,
|
|
31
|
+
"beanGeneral": true,
|
|
31
32
|
"boilerplate": "cli/model/boilerplate",
|
|
32
33
|
"metadataCustom": "cli/model/metadata/generate.ts"
|
|
33
34
|
},
|