vona-module-a-orm 5.0.42 → 5.0.43

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 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(v.optional(), schemaLazy);
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(v.optional(), schemaLazy);
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(v.optional(), schemaLazy);
3753
+ schema = v.lazy(schemaLazy);
3754
+ optional = true;
3751
3755
  } else {
3752
3756
  schema = v.array(v.lazy(schemaLazy));
3753
3757
  }
3754
3758
  }
3755
- Api.field(schema)(entityClass.prototype, relationName);
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>>> & OmitNever<TypeModelRelationResultMergeWith<TypeUtilGetParamsWith<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>> : never;
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.42",
4
+ "version": "5.0.43",
5
5
  "title": "a-orm",
6
6
  "vonaModule": {
7
7
  "capabilities": {