vona-module-a-orm 5.1.4 → 5.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/cli/entity/metadata/generate.ts +13 -3
  2. package/cli/model/metadata/generate.ts +6 -3
  3. package/cli/model/metadata/magic.ts +6 -1
  4. package/dist/.metadata/locales.d.ts.map +1 -1
  5. package/dist/bean/aopMethod.transaction.d.ts.map +1 -1
  6. package/dist/bean/bean.database.d.ts.map +1 -1
  7. package/dist/bean/bean.databaseDialectBase.d.ts +3 -3
  8. package/dist/bean/bean.databaseDialectBase.d.ts.map +1 -1
  9. package/dist/bean/bean.model/bean.model_cache.d.ts.map +1 -1
  10. package/dist/bean/bean.model/bean.model_crud.d.ts.map +1 -1
  11. package/dist/bean/bean.model/bean.model_crud_inner.d.ts.map +1 -1
  12. package/dist/bean/bean.model/bean.model_crud_table.d.ts.map +1 -1
  13. package/dist/bean/bean.model/bean.model_knex.d.ts.map +1 -1
  14. package/dist/bean/bean.model/bean.model_meta.d.ts.map +1 -1
  15. package/dist/bean/bean.model/bean.model_utils.d.ts +1 -0
  16. package/dist/bean/bean.model/bean.model_utils.d.ts.map +1 -1
  17. package/dist/bean/bean.model/bean.model_view.d.ts.map +1 -1
  18. package/dist/bean/event.clientNameReal.d.ts.map +1 -1
  19. package/dist/bean/event.columnsClear.d.ts.map +1 -1
  20. package/dist/bean/queue.doubleDelete.d.ts.map +1 -1
  21. package/dist/bean/schedule.softDeletionPrune.d.ts.map +1 -1
  22. package/dist/common/buildWhere.d.ts.map +1 -1
  23. package/dist/common/utils.d.ts.map +1 -1
  24. package/dist/config/config.d.ts +3 -0
  25. package/dist/config/config.d.ts.map +1 -1
  26. package/dist/extend/schemaBuilder.d.ts.map +1 -1
  27. package/dist/extend/tableBuilder.d.ts.map +1 -1
  28. package/dist/index.js +59 -28
  29. package/dist/index.js.map +1 -1
  30. package/dist/lib/const.d.ts.map +1 -1
  31. package/dist/lib/databaseDialect.d.ts.map +1 -1
  32. package/dist/lib/dto/dtoAggregate.d.ts.map +1 -1
  33. package/dist/lib/dto/dtoCreate.d.ts.map +1 -1
  34. package/dist/lib/dto/dtoGet.d.ts.map +1 -1
  35. package/dist/lib/dto/dtoGroup.d.ts.map +1 -1
  36. package/dist/lib/dto/dtoListAndCount.d.ts.map +1 -1
  37. package/dist/lib/dto/dtoMutate.d.ts.map +1 -1
  38. package/dist/lib/dto/dtoQueryPage.d.ts.map +1 -1
  39. package/dist/lib/dto/dtoSelectAndCount.d.ts.map +1 -1
  40. package/dist/lib/dto/dtoUpdate.d.ts.map +1 -1
  41. package/dist/lib/entity.d.ts.map +1 -1
  42. package/dist/lib/modelCacheBase.d.ts.map +1 -1
  43. package/dist/lib/relations.d.ts.map +1 -1
  44. package/dist/lib/relationsDynamic.d.ts.map +1 -1
  45. package/dist/lib/relationsMutate.d.ts.map +1 -1
  46. package/dist/lib/relationsStatic.d.ts.map +1 -1
  47. package/dist/lib/utils.d.ts.map +1 -1
  48. package/dist/main.d.ts.map +1 -1
  49. package/dist/service/columnsCache_.d.ts.map +1 -1
  50. package/dist/service/database.d.ts.map +1 -1
  51. package/dist/service/databaseClient_.d.ts.map +1 -1
  52. package/dist/service/relations_.d.ts.map +1 -1
  53. package/dist/service/transaction_.d.ts.map +1 -1
  54. package/dist/types/dto/dtoGet.d.ts.map +1 -1
  55. package/dist/types/dto/dtoGroup.d.ts.map +1 -1
  56. package/dist/types/dto/dtoMutate.d.ts.map +1 -1
  57. package/dist/types/dto/dtoQueryBase.d.ts.map +1 -1
  58. package/dist/types/dto/dtoSelectAndCount.d.ts.map +1 -1
  59. package/dist/types/entity.d.ts.map +1 -1
  60. package/dist/types/model.d.ts +5 -1
  61. package/dist/types/model.d.ts.map +1 -1
  62. package/dist/types/modelAggr.d.ts.map +1 -1
  63. package/dist/types/modelCount.d.ts.map +1 -1
  64. package/dist/types/modelGeneral.d.ts.map +1 -1
  65. package/dist/types/modelGroup.d.ts.map +1 -1
  66. package/dist/types/modelIncrement.d.ts.map +1 -1
  67. package/dist/types/modelWhere.d.ts.map +1 -1
  68. package/dist/types/onion/entity.d.ts +2 -2
  69. package/dist/types/onion/entity.d.ts.map +1 -1
  70. package/dist/types/onion/model.d.ts.map +1 -1
  71. package/dist/types/relations.d.ts.map +1 -1
  72. package/dist/types/relationsAggr.d.ts +1 -1
  73. package/dist/types/relationsAggr.d.ts.map +1 -1
  74. package/dist/types/relationsColumns.d.ts.map +1 -1
  75. package/dist/types/relationsDef.d.ts.map +1 -1
  76. package/dist/types/relationsDefDynamic.d.ts.map +1 -1
  77. package/dist/types/relationsDefMutate.d.ts.map +1 -1
  78. package/dist/types/relationsGroup.d.ts.map +1 -1
  79. package/dist/types/relationsMutate.d.ts.map +1 -1
  80. package/dist/types/relationsTables.d.ts.map +1 -1
  81. package/dist/types/transaction.d.ts.map +1 -1
  82. package/dist-cli/entity/metadata/generate.js +4 -1
  83. package/dist-cli/model/metadata/generate.js +4 -2
  84. package/package.json +1 -1
  85. package/src/.metadata/locales.ts +6 -1
  86. package/src/bean/aopMethod.transaction.ts +9 -2
  87. package/src/bean/bean.database.ts +33 -8
  88. package/src/bean/bean.databaseDialectBase.ts +50 -15
  89. package/src/bean/bean.model/bean.model_cache.ts +130 -46
  90. package/src/bean/bean.model/bean.model_crud.ts +28 -7
  91. package/src/bean/bean.model/bean.model_crud_inner.ts +48 -16
  92. package/src/bean/bean.model/bean.model_crud_table.ts +25 -5
  93. package/src/bean/bean.model/bean.model_knex.ts +18 -5
  94. package/src/bean/bean.model/bean.model_meta.ts +23 -5
  95. package/src/bean/bean.model/bean.model_utils.ts +63 -12
  96. package/src/bean/bean.model/bean.model_view.ts +20 -5
  97. package/src/bean/event.clientNameReal.ts +4 -1
  98. package/src/bean/event.columnsClear.ts +4 -1
  99. package/src/bean/queue.doubleDelete.ts +9 -2
  100. package/src/bean/schedule.softDeletionPrune.ts +3 -1
  101. package/src/common/buildWhere.ts +30 -5
  102. package/src/common/utils.ts +6 -2
  103. package/src/config/config.ts +3 -0
  104. package/src/extend/schemaBuilder.ts +2 -1
  105. package/src/extend/tableBuilder.ts +32 -19
  106. package/src/lib/const.ts +3 -1
  107. package/src/lib/databaseDialect.ts +3 -1
  108. package/src/lib/dto/dtoAggregate.ts +18 -6
  109. package/src/lib/dto/dtoCreate.ts +24 -4
  110. package/src/lib/dto/dtoGet.ts +82 -17
  111. package/src/lib/dto/dtoGroup.ts +24 -8
  112. package/src/lib/dto/dtoListAndCount.ts +3 -1
  113. package/src/lib/dto/dtoMutate.ts +26 -7
  114. package/src/lib/dto/dtoQueryPage.ts +4 -1
  115. package/src/lib/dto/dtoSelectAndCount.ts +3 -1
  116. package/src/lib/dto/dtoUpdate.ts +24 -4
  117. package/src/lib/entity.ts +10 -4
  118. package/src/lib/modelCacheBase.ts +9 -3
  119. package/src/lib/relations.ts +22 -4
  120. package/src/lib/relationsDynamic.ts +29 -7
  121. package/src/lib/relationsMutate.ts +28 -5
  122. package/src/lib/relationsStatic.ts +4 -1
  123. package/src/lib/utils.ts +11 -2
  124. package/src/main.ts +10 -2
  125. package/src/service/columnsCache_.ts +8 -6
  126. package/src/service/database.ts +34 -10
  127. package/src/service/databaseClient_.ts +4 -1
  128. package/src/service/relations_.ts +98 -23
  129. package/src/service/transaction_.ts +14 -4
  130. package/src/types/dto/dtoGet.ts +14 -6
  131. package/src/types/dto/dtoGroup.ts +2 -1
  132. package/src/types/dto/dtoMutate.ts +102 -20
  133. package/src/types/dto/dtoQueryBase.ts +5 -1
  134. package/src/types/dto/dtoSelectAndCount.ts +4 -1
  135. package/src/types/entity.ts +3 -1
  136. package/src/types/entityBase.ts +1 -1
  137. package/src/types/entityBaseInner.ts +4 -4
  138. package/src/types/entityBaseSimple.ts +1 -1
  139. package/src/types/model.ts +73 -16
  140. package/src/types/modelAggr.ts +18 -6
  141. package/src/types/modelCount.ts +4 -1
  142. package/src/types/modelGeneral.ts +26 -5
  143. package/src/types/modelGroup.ts +8 -2
  144. package/src/types/modelIncrement.ts +4 -1
  145. package/src/types/modelWhere.ts +12 -3
  146. package/src/types/onion/entity.ts +2 -2
  147. package/src/types/onion/model.ts +20 -4
  148. package/src/types/relations.ts +151 -47
  149. package/src/types/relationsAggr.ts +35 -11
  150. package/src/types/relationsColumns.ts +80 -57
  151. package/src/types/relationsDef.ts +82 -29
  152. package/src/types/relationsDefDynamic.ts +59 -13
  153. package/src/types/relationsDefMutate.ts +3 -1
  154. package/src/types/relationsGroup.ts +32 -10
  155. package/src/types/relationsMutate.ts +60 -19
  156. package/src/types/relationsTables.ts +16 -14
  157. package/src/types/transaction.ts +14 -2
@@ -2,7 +2,14 @@ import type { Constructable } from 'vona';
2
2
 
3
3
  import { ensureArray, hashkey } from '@cabloy/utils';
4
4
  import { $Class, appResource } from 'vona';
5
- import { addSchemaDynamic, Api, getSchemaDynamic, SymbolSchemaDynamicRefId, v } from 'vona-module-a-openapiutils';
5
+ import {
6
+ addSchemaDynamic,
7
+ Api,
8
+ getSchemaDynamic,
9
+ schemaRenderVisible,
10
+ SymbolSchemaDynamicRefId,
11
+ v,
12
+ } from 'vona-module-a-openapiutils';
6
13
  import z from 'zod';
7
14
 
8
15
  import type { BeanModelMeta } from '../../bean/bean.model/bean.model_meta.ts';
@@ -12,21 +19,35 @@ import type { IModelRelationIncludeWrapper } from '../../types/model.ts';
12
19
  import type { IDecoratorModelOptions, IModelClassRecord } from '../../types/onion/model.ts';
13
20
  import type { IRelationItem } from '../../types/relationsDef.ts';
14
21
 
15
- import { getClassEntityFromClassModel, prepareClassModel, prepareColumns } from '../../common/utils.ts';
22
+ import {
23
+ getClassEntityFromClassModel,
24
+ prepareClassModel,
25
+ prepareColumns,
26
+ } from '../../common/utils.ts';
16
27
  import { handleRelationsCollection } from '../utils.ts';
17
28
  import { DtoAggregate } from './dtoAggregate.ts';
18
29
  import { DtoGroup } from './dtoGroup.ts';
19
30
  import { _DtoMutate_raw } from './dtoMutate.ts';
20
31
 
21
- export function DtoGet<ModelLike extends BeanModelMeta | keyof IModelClassRecord, T extends IDtoGetParams<ModelLike> | undefined = undefined>(
22
- modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike,
32
+ export function DtoGet<
33
+ ModelLike extends BeanModelMeta | keyof IModelClassRecord,
34
+ T extends IDtoGetParams<ModelLike> | undefined = undefined,
35
+ >(
36
+ modelLike: ModelLike extends BeanModelMeta
37
+ ? (() => Constructable<ModelLike>) | Constructable<ModelLike>
38
+ : ModelLike,
23
39
  params?: T,
24
40
  ): Constructable<TypeDtoGetResult<ModelLike, T>> {
25
41
  return _DtoGet_raw(modelLike, params);
26
42
  }
27
43
 
28
- function _DtoGet_raw<ModelLike extends BeanModelMeta | keyof IModelClassRecord, T extends IDtoGetParams<ModelLike> | undefined = undefined>(
29
- modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike,
44
+ function _DtoGet_raw<
45
+ ModelLike extends BeanModelMeta | keyof IModelClassRecord,
46
+ T extends IDtoGetParams<ModelLike> | undefined = undefined,
47
+ >(
48
+ modelLike: ModelLike extends BeanModelMeta
49
+ ? (() => Constructable<ModelLike>) | Constructable<ModelLike>
50
+ : ModelLike,
30
51
  params?: T,
31
52
  ): Constructable<TypeDtoGetResult<ModelLike, T>> {
32
53
  // model
@@ -74,21 +95,39 @@ function _DtoGet_relation_handle<TRecord extends {}>(
74
95
  if (type === 'belongsToMany') {
75
96
  schema = v.array(z.object({ id: v.tableIdentity()(), deleted: z.boolean().optional() }));
76
97
  } else if (type === 'hasOne') {
77
- const schemaLazy = _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel, relation);
78
- schema = v.lazy(v.visible(false), schemaLazy);
98
+ const schemaLazy = _DtoGet_relation_handle_schemaLazy(
99
+ modelTarget,
100
+ optionsReal,
101
+ autoload,
102
+ mutateTypeTopLevel,
103
+ relation,
104
+ );
105
+ schema = v.lazy(schemaRenderVisible(false), schemaLazy);
79
106
  // optional = true;
80
107
  } else {
81
108
  // hasMany
82
- const schemaLazy = _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel, relation);
109
+ const schemaLazy = _DtoGet_relation_handle_schemaLazy(
110
+ modelTarget,
111
+ optionsReal,
112
+ autoload,
113
+ mutateTypeTopLevel,
114
+ relation,
115
+ );
83
116
  schema = v.array(v.lazy(schemaLazy));
84
117
  }
85
118
  Api.field(v.optional(), schema)(entityClass.prototype, relationName);
86
119
  } else {
87
- const schemaLazy = _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel, relation);
120
+ const schemaLazy = _DtoGet_relation_handle_schemaLazy(
121
+ modelTarget,
122
+ optionsReal,
123
+ autoload,
124
+ mutateTypeTopLevel,
125
+ relation,
126
+ );
88
127
  let schema;
89
128
  let optional = false;
90
129
  if (type === 'hasOne' || type === 'belongsTo') {
91
- schema = v.lazy(v.visible(false), schemaLazy);
130
+ schema = v.lazy(schemaRenderVisible(false), schemaLazy);
92
131
  optional = true;
93
132
  } else {
94
133
  if (optionsReal.groups) {
@@ -108,10 +147,21 @@ function _DtoGet_relation_handle<TRecord extends {}>(
108
147
  }
109
148
  }
110
149
 
111
- function _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload, mutateTypeTopLevel?: TypeDtoMutateType, relation?: IRelationItem) {
150
+ function _DtoGet_relation_handle_schemaLazy(
151
+ modelTarget,
152
+ optionsReal,
153
+ autoload,
154
+ mutateTypeTopLevel?: TypeDtoMutateType,
155
+ relation?: IRelationItem,
156
+ ) {
112
157
  return () => {
113
158
  if (!autoload) {
114
- return _DtoGet_relation_handle_schemaLazy_raw(modelTarget, optionsReal, mutateTypeTopLevel, relation);
159
+ return _DtoGet_relation_handle_schemaLazy_raw(
160
+ modelTarget,
161
+ optionsReal,
162
+ mutateTypeTopLevel,
163
+ relation,
164
+ );
115
165
  }
116
166
  // dynamic
117
167
  const entityClass = getClassEntityFromClassModel(modelTarget);
@@ -120,7 +170,12 @@ function _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload,
120
170
  const dynamicName = `${beanFullName}_${_hashkey}`;
121
171
  let entityTarget = getSchemaDynamic(dynamicName);
122
172
  if (!entityTarget) {
123
- entityTarget = _DtoGet_relation_handle_schemaLazy_raw(modelTarget, optionsReal, mutateTypeTopLevel, relation);
173
+ entityTarget = _DtoGet_relation_handle_schemaLazy_raw(
174
+ modelTarget,
175
+ optionsReal,
176
+ mutateTypeTopLevel,
177
+ relation,
178
+ );
124
179
  entityTarget[SymbolSchemaDynamicRefId] = dynamicName;
125
180
  addSchemaDynamic(dynamicName, entityTarget);
126
181
  }
@@ -128,7 +183,12 @@ function _DtoGet_relation_handle_schemaLazy(modelTarget, optionsReal, autoload,
128
183
  };
129
184
  }
130
185
 
131
- function _DtoGet_relation_handle_schemaLazy_raw(modelTarget, optionsReal, mutateTypeTopLevel?: TypeDtoMutateType, relation?: IRelationItem) {
186
+ function _DtoGet_relation_handle_schemaLazy_raw(
187
+ modelTarget,
188
+ optionsReal,
189
+ mutateTypeTopLevel?: TypeDtoMutateType,
190
+ relation?: IRelationItem,
191
+ ) {
132
192
  if (mutateTypeTopLevel) {
133
193
  return _DtoMutate_raw(modelTarget, optionsReal, mutateTypeTopLevel, undefined, false, relation); // columnsOmitDefault: undefined
134
194
  } else {
@@ -142,11 +202,16 @@ function _DtoGet_relation_handle_schemaLazy_raw(modelTarget, optionsReal, mutate
142
202
  }
143
203
  }
144
204
 
145
- function _DtoGet_relation_handle_schemaLazy_hashkey(optionsReal, mutateTypeTopLevel?: TypeDtoMutateType) {
205
+ function _DtoGet_relation_handle_schemaLazy_hashkey(
206
+ optionsReal,
207
+ mutateTypeTopLevel?: TypeDtoMutateType,
208
+ ) {
146
209
  const columns = prepareColumns(optionsReal.columns);
147
210
  const aggrs = ensureArray(optionsReal.aggrs);
148
211
  const groups = ensureArray(optionsReal.groups);
149
- return columns || aggrs || groups || mutateTypeTopLevel ? hashkey({ columns, aggrs, groups, mutate: mutateTypeTopLevel }) : 'none';
212
+ return columns || aggrs || groups || mutateTypeTopLevel
213
+ ? hashkey({ columns, aggrs, groups, mutate: mutateTypeTopLevel })
214
+ : 'none';
150
215
  }
151
216
 
152
217
  function _DtoGet_relations_collection<TModel extends BeanModelMeta>(
@@ -16,28 +16,44 @@ import { _DtoAggregate_inner } from './dtoAggregate.ts';
16
16
  export function DtoGroup<
17
17
  ModelLike extends BeanModelMeta | keyof IModelClassRecord,
18
18
  Groups extends TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]>,
19
- Aggrs extends TypeModelSelectAggrParamsAggrs<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]> | undefined = undefined,
20
- Columns extends TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]> | undefined = undefined,
19
+ Aggrs extends
20
+ | TypeModelSelectAggrParamsAggrs<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]>
21
+ | undefined = undefined,
22
+ Columns extends
23
+ | TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]>
24
+ | undefined = undefined,
21
25
  >(
22
- modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike,
26
+ modelLike: ModelLike extends BeanModelMeta
27
+ ? (() => Constructable<ModelLike>) | Constructable<ModelLike>
28
+ : ModelLike,
23
29
  groups: Groups,
24
30
  aggrs?: Aggrs,
25
31
  columns?: Columns,
26
- ): Constructable<TypeDtoGroupResult<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity], Aggrs, Groups, Columns>> {
32
+ ): Constructable<
33
+ TypeDtoGroupResult<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity], Aggrs, Groups, Columns>
34
+ > {
27
35
  return _DtoGroup_raw(modelLike, groups, aggrs, columns);
28
36
  }
29
37
 
30
38
  function _DtoGroup_raw<
31
39
  ModelLike extends BeanModelMeta | keyof IModelClassRecord,
32
40
  Groups extends TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]>,
33
- Aggrs extends TypeModelSelectAggrParamsAggrs<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]> | undefined = undefined,
34
- Columns extends TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]> | undefined = undefined,
41
+ Aggrs extends
42
+ | TypeModelSelectAggrParamsAggrs<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]>
43
+ | undefined = undefined,
44
+ Columns extends
45
+ | TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]>
46
+ | undefined = undefined,
35
47
  >(
36
- modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike,
48
+ modelLike: ModelLike extends BeanModelMeta
49
+ ? (() => Constructable<ModelLike>) | Constructable<ModelLike>
50
+ : ModelLike,
37
51
  groups: Groups,
38
52
  aggrs?: Aggrs,
39
53
  columns?: Columns,
40
- ): Constructable<TypeDtoGroupResult<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity], Aggrs, Groups, Columns>> {
54
+ ): Constructable<
55
+ TypeDtoGroupResult<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity], Aggrs, Groups, Columns>
56
+ > {
41
57
  abstract class TargetClass {}
42
58
  // model
43
59
  const modelClass = prepareClassModel(modelLike);
@@ -5,7 +5,9 @@ import z from 'zod';
5
5
 
6
6
  import type { TypeDtoListAndCountResult } from '../../types/dto/dtoListAndCount.ts';
7
7
 
8
- export function DtoListAndCount<T>(classRef: Constructable<T>): Constructable<TypeDtoListAndCountResult<T>> {
8
+ export function DtoListAndCount<T>(
9
+ classRef: Constructable<T>,
10
+ ): Constructable<TypeDtoListAndCountResult<T>> {
9
11
  abstract class TargetClass {}
10
12
  Api.field(v.array(classRef))(TargetClass.prototype, 'list');
11
13
  Api.field(z.string())(TargetClass.prototype, 'total');
@@ -4,17 +4,30 @@ import { mutate } from 'mutate-on-copy';
4
4
  import { $Class } from 'vona';
5
5
 
6
6
  import type { BeanModelMeta } from '../../bean/bean.model/bean.model_meta.ts';
7
- import type { IDtoMutateParams, TypeDtoMutateResult, TypeDtoMutateType } from '../../types/dto/dtoMutate.ts';
7
+ import type {
8
+ IDtoMutateParams,
9
+ TypeDtoMutateResult,
10
+ TypeDtoMutateType,
11
+ } from '../../types/dto/dtoMutate.ts';
8
12
  import type { TypeModelColumnsStrict } from '../../types/modelWhere.ts';
9
13
  import type { IModelClassRecord } from '../../types/onion/model.ts';
10
14
  import type { TypeModelOfModelLike, TypeSymbolKeyEntity } from '../../types/relations.ts';
11
15
  import type { IRelationItem } from '../../types/relationsDef.ts';
12
16
 
13
- import { getClassEntityFromClassModel, prepareClassModel, prepareColumns } from '../../common/utils.ts';
17
+ import {
18
+ getClassEntityFromClassModel,
19
+ prepareClassModel,
20
+ prepareColumns,
21
+ } from '../../common/utils.ts';
14
22
  import { _DtoGet_relations } from './dtoGet.ts';
15
23
 
16
- export function DtoMutate<ModelLike extends BeanModelMeta | keyof IModelClassRecord, T extends IDtoMutateParams<ModelLike> | undefined = undefined>(
17
- modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike,
24
+ export function DtoMutate<
25
+ ModelLike extends BeanModelMeta | keyof IModelClassRecord,
26
+ T extends IDtoMutateParams<ModelLike> | undefined = undefined,
27
+ >(
28
+ modelLike: ModelLike extends BeanModelMeta
29
+ ? (() => Constructable<ModelLike>) | Constructable<ModelLike>
30
+ : ModelLike,
18
31
  params?: T,
19
32
  ): Constructable<TypeDtoMutateResult<ModelLike, T, 'mutate', undefined, true>> {
20
33
  return _DtoMutate_raw(modelLike, params, 'mutate', undefined, true, undefined);
@@ -23,9 +36,13 @@ export function DtoMutate<ModelLike extends BeanModelMeta | keyof IModelClassRec
23
36
  export function _DtoMutate_raw<
24
37
  ModelLike extends BeanModelMeta | keyof IModelClassRecord,
25
38
  T extends IDtoMutateParams<ModelLike> | undefined = undefined,
26
- ColumnsOmitDefault extends TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]> | undefined = undefined,
39
+ ColumnsOmitDefault extends
40
+ | TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]>
41
+ | undefined = undefined,
27
42
  >(
28
- modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike,
43
+ modelLike: ModelLike extends BeanModelMeta
44
+ ? (() => Constructable<ModelLike>) | Constructable<ModelLike>
45
+ : ModelLike,
29
46
  params?: T,
30
47
  mutateTypeTopLevel?: TypeDtoMutateType,
31
48
  columnsOmitDefault?: ColumnsOmitDefault,
@@ -63,7 +80,9 @@ export function _DtoMutate_raw<
63
80
  } else {
64
81
  const columns =
65
82
  columnsOmitDefault ??
66
- (mutateTypeTopLevel === 'create' ? ['id', 'iid', 'deleted', 'createdAt', 'updatedAt'] : ['iid', 'createdAt', 'updatedAt']);
83
+ (mutateTypeTopLevel === 'create'
84
+ ? ['id', 'iid', 'deleted', 'createdAt', 'updatedAt']
85
+ : ['iid', 'createdAt', 'updatedAt']);
67
86
  entityClass = $Class.omit(entityClass, prepareColumns(columns as any) as any);
68
87
  }
69
88
  if (!topLevel && mutateTypeTopLevel !== 'create') {
@@ -4,6 +4,9 @@ import { $Class } from 'vona';
4
4
 
5
5
  import { DtoQueryPageBase } from '../../types/dto/dtoQueryPageBase.ts';
6
6
 
7
- export function DtoQueryPage<T, KEYS extends Array<keyof T>>(classRef: Constructable<T>, keys: KEYS) {
7
+ export function DtoQueryPage<T, KEYS extends Array<keyof T>>(
8
+ classRef: Constructable<T>,
9
+ keys: KEYS,
10
+ ) {
8
11
  return $Class.mixin(DtoQueryPageBase, $Class.partial($Class.pick(classRef, keys)));
9
12
  }
@@ -12,7 +12,9 @@ export function DtoSelectAndCount<
12
12
  ModelLike extends BeanModelMeta | keyof IModelClassRecord,
13
13
  T extends IDtoGetParams<ModelLike> | undefined = undefined,
14
14
  >(
15
- modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike,
15
+ modelLike: ModelLike extends BeanModelMeta
16
+ ? (() => Constructable<ModelLike>) | Constructable<ModelLike>
17
+ : ModelLike,
16
18
  params?: T,
17
19
  ): Constructable<TypeDtoSelectAndCountResult<ModelLike, T>> {
18
20
  const DtoGetResult = DtoGet(modelLike, params);
@@ -6,11 +6,31 @@ import type { IModelClassRecord } from '../../types/onion/model.ts';
6
6
 
7
7
  import { _DtoMutate_raw } from './dtoMutate.ts';
8
8
 
9
- export function DtoUpdate<ModelLike extends BeanModelMeta | keyof IModelClassRecord, T extends IDtoMutateParams<ModelLike> | undefined = undefined>(
10
- modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike,
9
+ export function DtoUpdate<
10
+ ModelLike extends BeanModelMeta | keyof IModelClassRecord,
11
+ T extends IDtoMutateParams<ModelLike> | undefined = undefined,
12
+ >(
13
+ modelLike: ModelLike extends BeanModelMeta
14
+ ? (() => Constructable<ModelLike>) | Constructable<ModelLike>
15
+ : ModelLike,
11
16
  params?: T,
12
- ): Constructable<TypeDtoMutateResult<ModelLike, T, 'update', 'id' | 'iid' | 'deleted' | 'createdAt' | 'updatedAt', true>> {
13
- return _DtoMutate_raw(modelLike, params, 'update', ['id', 'iid', 'deleted', 'createdAt', 'updatedAt'] as any, true, undefined);
17
+ ): Constructable<
18
+ TypeDtoMutateResult<
19
+ ModelLike,
20
+ T,
21
+ 'update',
22
+ 'id' | 'iid' | 'deleted' | 'createdAt' | 'updatedAt',
23
+ true
24
+ >
25
+ > {
26
+ return _DtoMutate_raw(
27
+ modelLike,
28
+ params,
29
+ 'update',
30
+ ['id', 'iid', 'deleted', 'createdAt', 'updatedAt'] as any,
31
+ true,
32
+ undefined,
33
+ );
14
34
  }
15
35
 
16
36
  // not use Partial/$Class.partial, for form render at frontend
package/src/lib/entity.ts CHANGED
@@ -1,13 +1,19 @@
1
1
  import { createBeanDecorator } from 'vona';
2
- import { mergeFieldsOpenapiMetadata } from 'vona-module-a-openapiutils';
2
+ import { mergeDtoFieldsOpenapiMetadata } from 'vona-module-a-openapiutils';
3
3
 
4
4
  import type { IDecoratorEntityOptions } from '../types/onion/entity.ts';
5
5
 
6
6
  // const __tableNames = new Set();
7
7
 
8
8
  export function Entity<T extends IDecoratorEntityOptions<any>>(options?: T): ClassDecorator;
9
- export function Entity<T extends IDecoratorEntityOptions<any>>(table?: string, options?: Omit<T, 'table'>): ClassDecorator;
10
- export function Entity<T extends IDecoratorEntityOptions<any>>(table?: T | string, options?: T): ClassDecorator {
9
+ export function Entity<T extends IDecoratorEntityOptions<any>>(
10
+ table?: string,
11
+ options?: Omit<T, 'table'>,
12
+ ): ClassDecorator;
13
+ export function Entity<T extends IDecoratorEntityOptions<any>>(
14
+ table?: T | string,
15
+ options?: T,
16
+ ): ClassDecorator {
11
17
  if (typeof table === 'string') {
12
18
  options = Object.assign({}, options, { table });
13
19
  } else {
@@ -20,6 +26,6 @@ export function Entity<T extends IDecoratorEntityOptions<any>>(table?: T | strin
20
26
  // }
21
27
  // __tableNames.add(tableName);
22
28
  return createBeanDecorator('entity', options, false, target => {
23
- mergeFieldsOpenapiMetadata(target);
29
+ mergeDtoFieldsOpenapiMetadata(target);
24
30
  });
25
31
  }
@@ -32,13 +32,18 @@ export class ModelCacheBase extends BeanBase {
32
32
  const cacheModelCacheInstances = getCacheModelCacheInstances(this.app);
33
33
  if (!cacheModelCacheInstances[beanFullName]) cacheModelCacheInstances[beanFullName] = {};
34
34
  if (!cacheModelCacheInstances[beanFullName][cacheName]) {
35
- cacheModelCacheInstances[beanFullName][cacheName] = this.app.bean.summer.cache<any, any>(cacheName, this.options);
35
+ cacheModelCacheInstances[beanFullName][cacheName] = this.app.bean.summer.cache<any, any>(
36
+ cacheName,
37
+ this.options,
38
+ );
36
39
  }
37
40
  return cacheModelCacheInstances[beanFullName][cacheName];
38
41
  }
39
42
 
40
43
  public getName(table: keyof ITableRecord) {
41
- const clientNameReal = this.$scope.orm.service.database.prepareClientNameReal(this._model.db.clientName);
44
+ const clientNameReal = this.$scope.orm.service.database.prepareClientNameReal(
45
+ this._model.db.clientName,
46
+ );
42
47
  return `${this._model.$beanFullName}:${clientNameReal}:${table}:${this._cacheType}`;
43
48
  }
44
49
 
@@ -67,7 +72,8 @@ export class ModelCacheBase extends BeanBase {
67
72
  private _getCacheOptionsInner() {
68
73
  if (this._model.options.cache?.[this._cacheType] === false) return false;
69
74
  // options
70
- let _cacheOptions = (this._model.options.cache?.[this._cacheType] ?? {}) as IDecoratorSummerCacheOptions;
75
+ let _cacheOptions = (this._model.options.cache?.[this._cacheType] ??
76
+ {}) as IDecoratorSummerCacheOptions;
71
77
  // preset
72
78
  let configPreset;
73
79
  let preset = _cacheOptions.preset;
@@ -1,9 +1,20 @@
1
1
  import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
2
2
  import type { IModelClassRecord } from '../types/onion/model.ts';
3
- import type { TypeModelClassLike, TypeModelOfModelLike, TypeModelsClassLikeGeneral, TypeSymbolKeyEntity } from '../types/relations.ts';
4
- import type { IModelRelationOptionsManyStatic, IModelRelationOptionsOneStatic } from './relationsStatic.ts';
3
+ import type {
4
+ TypeModelClassLike,
5
+ TypeModelOfModelLike,
6
+ TypeModelsClassLikeGeneral,
7
+ TypeSymbolKeyEntity,
8
+ } from '../types/relations.ts';
9
+ import type {
10
+ IModelRelationOptionsManyStatic,
11
+ IModelRelationOptionsOneStatic,
12
+ } from './relationsStatic.ts';
5
13
 
6
- function hasOne<MODEL extends BeanModelMeta | keyof IModelClassRecord, OPTIONS extends IModelRelationOptionsOneStatic<TypeModelOfModelLike<MODEL>>>(
14
+ function hasOne<
15
+ MODEL extends BeanModelMeta | keyof IModelClassRecord,
16
+ OPTIONS extends IModelRelationOptionsOneStatic<TypeModelOfModelLike<MODEL>>,
17
+ >(
7
18
  classModel: TypeModelClassLike<MODEL>,
8
19
  key: keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity],
9
20
  options?: OPTIONS,
@@ -58,7 +69,14 @@ function belongsToMany<
58
69
  _group?: Group,
59
70
  ): any {
60
71
  // : IModelRelationBelongsToMany<MODELMiddle, MODEL, AUTOLOAD, COLUMNS, ModelJoins> {
61
- return { type: 'belongsToMany', modelMiddle: classModelMiddle, model: classModel, keyFrom, keyTo, options };
72
+ return {
73
+ type: 'belongsToMany',
74
+ modelMiddle: classModelMiddle,
75
+ model: classModel,
76
+ keyFrom,
77
+ keyTo,
78
+ options,
79
+ };
62
80
  }
63
81
 
64
82
  export const $relation = {
@@ -1,6 +1,11 @@
1
1
  import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
2
2
  import type { IModelClassRecord } from '../types/onion/model.ts';
3
- import type { TypeModelClassLike, TypeModelOfModelLike, TypeModelsClassLikeGeneral, TypeSymbolKeyEntity } from '../types/relations.ts';
3
+ import type {
4
+ TypeModelClassLike,
5
+ TypeModelOfModelLike,
6
+ TypeModelsClassLikeGeneral,
7
+ TypeSymbolKeyEntity,
8
+ } from '../types/relations.ts';
4
9
  import type {
5
10
  IModelRelationBelongsToDynamic,
6
11
  IModelRelationBelongsToManyDynamic,
@@ -13,15 +18,21 @@ import type {
13
18
  function hasOne<
14
19
  MODEL extends BeanModelMeta | keyof IModelClassRecord,
15
20
  KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity],
16
- OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined = undefined,
17
- >(classModel: TypeModelClassLike<MODEL>, key: KEY, options?: OPTIONS): IModelRelationHasOneDynamic<MODEL, KEY, OPTIONS> {
21
+ OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined =
22
+ undefined,
23
+ >(
24
+ classModel: TypeModelClassLike<MODEL>,
25
+ key: KEY,
26
+ options?: OPTIONS,
27
+ ): IModelRelationHasOneDynamic<MODEL, KEY, OPTIONS> {
18
28
  return { type: 'hasOne', model: classModel, key, options };
19
29
  }
20
30
 
21
31
  function belongsTo<
22
32
  MODELSelf extends BeanModelMeta | keyof IModelClassRecord,
23
33
  MODEL extends BeanModelMeta | keyof IModelClassRecord,
24
- OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined = undefined,
34
+ OPTIONS extends IModelRelationOptionsOneDynamic<TypeModelOfModelLike<MODEL>> | undefined =
35
+ undefined,
25
36
  >(
26
37
  _classModelSelf: TypeModelClassLike<MODELSelf>,
27
38
  classModel: TypeModelClassLike<MODEL>,
@@ -35,7 +46,9 @@ function hasMany<
35
46
  MODEL extends BeanModelMeta | keyof IModelClassRecord,
36
47
  KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity],
37
48
  // not use `| undefined = undefined` or `= {}`
38
- OPTIONS extends IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group> | undefined = undefined,
49
+ OPTIONS extends
50
+ | IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group>
51
+ | undefined = undefined,
39
52
  ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
40
53
  Group extends boolean | undefined = undefined,
41
54
  >(
@@ -52,7 +65,9 @@ function belongsToMany<
52
65
  MODELMiddle extends BeanModelMeta | keyof IModelClassRecord,
53
66
  MODEL extends BeanModelMeta | keyof IModelClassRecord,
54
67
  // not use `| undefined = undefined` or `= {}`
55
- OPTIONS extends IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group> | undefined = undefined,
68
+ OPTIONS extends
69
+ | IModelRelationOptionsManyDynamic<TypeModelOfModelLike<MODEL>, ModelJoins, Group>
70
+ | undefined = undefined,
56
71
  ModelJoins extends TypeModelsClassLikeGeneral | undefined = undefined,
57
72
  Group extends boolean | undefined = undefined,
58
73
  >(
@@ -64,7 +79,14 @@ function belongsToMany<
64
79
  _modelJoins?: ModelJoins,
65
80
  _group?: Group,
66
81
  ): IModelRelationBelongsToManyDynamic<MODELMiddle, MODEL, OPTIONS, ModelJoins, Group> {
67
- return { type: 'belongsToMany', modelMiddle: classModelMiddle, model: classModel, keyFrom, keyTo, options };
82
+ return {
83
+ type: 'belongsToMany',
84
+ modelMiddle: classModelMiddle,
85
+ model: classModel,
86
+ keyFrom,
87
+ keyTo,
88
+ options,
89
+ };
68
90
  }
69
91
 
70
92
  export const $relationDynamic = {
@@ -1,7 +1,15 @@
1
1
  import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
2
2
  import type { IModelClassRecord } from '../types/onion/model.ts';
3
- import type { TypeModelClassLike, TypeModelOfModelLike, TypeSymbolKeyEntity } from '../types/relations.ts';
4
- import type { IModelRelationBelongsToManyDynamic, IModelRelationHasManyDynamic, IModelRelationHasOneDynamic } from '../types/relationsDefDynamic.ts';
3
+ import type {
4
+ TypeModelClassLike,
5
+ TypeModelOfModelLike,
6
+ TypeSymbolKeyEntity,
7
+ } from '../types/relations.ts';
8
+ import type {
9
+ IModelRelationBelongsToManyDynamic,
10
+ IModelRelationHasManyDynamic,
11
+ IModelRelationHasOneDynamic,
12
+ } from '../types/relationsDefDynamic.ts';
5
13
  import type {
6
14
  IModelRelationOptionsBelongsToManyMutate,
7
15
  IModelRelationOptionsManyMutate,
@@ -12,7 +20,11 @@ function hasOne<
12
20
  MODEL extends BeanModelMeta | keyof IModelClassRecord,
13
21
  KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity],
14
22
  OPTIONS extends IModelRelationOptionsOneMutate<TypeModelOfModelLike<MODEL>>,
15
- >(classModel: TypeModelClassLike<MODEL>, key: KEY, options?: OPTIONS): IModelRelationHasOneDynamic<MODEL, KEY, OPTIONS> {
23
+ >(
24
+ classModel: TypeModelClassLike<MODEL>,
25
+ key: KEY,
26
+ options?: OPTIONS,
27
+ ): IModelRelationHasOneDynamic<MODEL, KEY, OPTIONS> {
16
28
  return { type: 'hasOne', model: classModel, key, options };
17
29
  }
18
30
 
@@ -34,7 +46,11 @@ function hasMany<
34
46
  KEY extends keyof TypeModelOfModelLike<MODEL>[TypeSymbolKeyEntity],
35
47
  // not use `| undefined = undefined` or `= {}`
36
48
  OPTIONS extends IModelRelationOptionsManyMutate<TypeModelOfModelLike<MODEL>>,
37
- >(classModel: TypeModelClassLike<MODEL>, key: KEY, options?: OPTIONS): IModelRelationHasManyDynamic<MODEL, KEY, OPTIONS> {
49
+ >(
50
+ classModel: TypeModelClassLike<MODEL>,
51
+ key: KEY,
52
+ options?: OPTIONS,
53
+ ): IModelRelationHasManyDynamic<MODEL, KEY, OPTIONS> {
38
54
  return { type: 'hasMany', model: classModel, key, options };
39
55
  }
40
56
 
@@ -49,7 +65,14 @@ function belongsToMany<
49
65
  keyTo: keyof TypeModelOfModelLike<MODELMiddle>[TypeSymbolKeyEntity],
50
66
  options?: OPTIONS,
51
67
  ): IModelRelationBelongsToManyDynamic<MODELMiddle, MODEL, OPTIONS> {
52
- return { type: 'belongsToMany', modelMiddle: classModelMiddle, model: classModel, keyFrom, keyTo, options };
68
+ return {
69
+ type: 'belongsToMany',
70
+ modelMiddle: classModelMiddle,
71
+ model: classModel,
72
+ keyFrom,
73
+ keyTo,
74
+ options,
75
+ };
53
76
  }
54
77
 
55
78
  export const $relationMutate = {
@@ -1,6 +1,9 @@
1
1
  import type { BeanModelMeta } from '../bean/bean.model/bean.model_meta.ts';
2
2
  import type { TypeModelsClassLikeGeneral } from '../types/relations.ts';
3
- import type { IModelRelationOptionsManyDynamic, IModelRelationOptionsOneDynamic } from '../types/relationsDefDynamic.ts';
3
+ import type {
4
+ IModelRelationOptionsManyDynamic,
5
+ IModelRelationOptionsOneDynamic,
6
+ } from '../types/relationsDefDynamic.ts';
4
7
 
5
8
  export interface IModelRelationOptionsManyStatic<
6
9
  MODEL extends BeanModelMeta,
package/src/lib/utils.ts CHANGED
@@ -3,7 +3,10 @@ import { deepExtend } from 'vona';
3
3
  import type { IModelRelationIncludeWrapper } from '../types/model.ts';
4
4
  import type { IRelationItem } from '../types/relationsDef.ts';
5
5
 
6
- export function handleRelationsCollection(relationsStatic?: Record<string, any>, includeWrapper?: IModelRelationIncludeWrapper): IRelationItem[] {
6
+ export function handleRelationsCollection(
7
+ relationsStatic?: Record<string, any>,
8
+ includeWrapper?: IModelRelationIncludeWrapper,
9
+ ): IRelationItem[] {
7
10
  // collect
8
11
  const relations: IRelationItem[] = [];
9
12
  // include
@@ -38,7 +41,13 @@ export function handleRelationsCollection(relationsStatic?: Record<string, any>,
38
41
  for (const key in includeWrapper.with) {
39
42
  const relationReal: any = includeWrapper.with[key];
40
43
  if (!relationReal) continue;
41
- relations.push([key, relationReal, relationReal.options?.include, relationReal.options?.with, false]);
44
+ relations.push([
45
+ key,
46
+ relationReal,
47
+ relationReal.options?.include,
48
+ relationReal.options?.with,
49
+ false,
50
+ ]);
42
51
  }
43
52
  }
44
53
  return relations;
package/src/main.ts CHANGED
@@ -12,7 +12,13 @@ const SymbolTransactionConsistency = Symbol('SymbolTransactionConsistency');
12
12
  export class Main extends BeanSimple implements IModuleMain {
13
13
  async moduleLoading() {
14
14
  // config
15
- const _configDefault = await combineConfigDefault<ConfigDatabase>(this.app, configDefault, configDev, configProd, configTest);
15
+ const _configDefault = await combineConfigDefault<ConfigDatabase>(
16
+ this.app,
17
+ configDefault,
18
+ configDev,
19
+ configProd,
20
+ configTest,
21
+ );
16
22
  this.app.config.database = deepExtend({}, _configDefault, this.app.config.database);
17
23
  }
18
24
 
@@ -31,7 +37,9 @@ export class Main extends BeanSimple implements IModuleMain {
31
37
  enumerable: false,
32
38
  get(this: VonaContext) {
33
39
  if (!this[SymbolTransactionConsistency]) {
34
- this[SymbolTransactionConsistency] = this.app.bean._newBean(ServiceTransactionConsistency‌);
40
+ this[SymbolTransactionConsistency] = this.app.bean._newBean(
41
+ ServiceTransactionConsistency‌,
42
+ );
35
43
  }
36
44
  return this[SymbolTransactionConsistency];
37
45
  },