vona-module-a-orm 5.1.12 → 5.1.17
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 +55 -30
- package/dist/index.js.map +1 -1
- package/dist/lib/dto/dto.d.ts +2 -0
- package/dist/lib/dto/dto.d.ts.map +1 -1
- package/dist/lib/dto/dtoGet.d.ts +1 -1
- package/dist/lib/dto/dtoGet.d.ts.map +1 -1
- package/dist/lib/dto/dtoMutate.d.ts +1 -1
- package/dist/lib/dto/dtoMutate.d.ts.map +1 -1
- package/dist/service/relations_.d.ts +1 -0
- package/dist/service/relations_.d.ts.map +1 -1
- package/dist/types/dto/dtoGet.d.ts +2 -0
- package/dist/types/dto/dtoGet.d.ts.map +1 -1
- package/dist/types/dto/dtoMutate.d.ts +2 -1
- package/dist/types/dto/dtoMutate.d.ts.map +1 -1
- package/dist/types/modelGeneral.d.ts +2 -0
- package/dist/types/modelGeneral.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/lib/dto/dto.ts +2 -0
- package/src/lib/dto/dtoGet.ts +9 -5
- package/src/lib/dto/dtoMutate.ts +15 -6
- package/src/lib/utils.ts +1 -1
- package/src/service/relations_.ts +37 -16
- package/src/types/dto/dtoGet.ts +3 -0
- package/src/types/dto/dtoMutate.ts +2 -1
- package/src/types/modelGeneral.ts +3 -0
package/dist/lib/dto/dto.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { DtoCreate } from './dtoCreate.ts';
|
|
|
3
3
|
import { DtoGet } from './dtoGet.ts';
|
|
4
4
|
import { DtoGroup } from './dtoGroup.ts';
|
|
5
5
|
import { DtoListAndCount } from './dtoListAndCount.ts';
|
|
6
|
+
import { DtoMutate } from './dtoMutate.ts';
|
|
6
7
|
import { DtoQuery } from './dtoQuery.ts';
|
|
7
8
|
import { DtoQueryPage } from './dtoQueryPage.ts';
|
|
8
9
|
import { DtoSelectAndCount } from './dtoSelectAndCount.ts';
|
|
@@ -10,6 +11,7 @@ import { DtoUpdate } from './dtoUpdate.ts';
|
|
|
10
11
|
export declare const $Dto: {
|
|
11
12
|
create: typeof DtoCreate;
|
|
12
13
|
update: typeof DtoUpdate;
|
|
14
|
+
mutate: typeof DtoMutate;
|
|
13
15
|
get: typeof DtoGet;
|
|
14
16
|
aggregate: typeof DtoAggregate;
|
|
15
17
|
group: typeof DtoGroup;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../../src/lib/dto/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../../src/lib/dto/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,eAAO,MAAM,IAAI;;;;;;;;;;;CAWhB,CAAC"}
|
package/dist/lib/dto/dtoGet.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Constructable } from 'vona';
|
|
2
|
-
import type { BeanModelMeta } from '../bean.model/bean.model_meta.ts';
|
|
3
2
|
import type { IDtoGetParams, TypeDtoGetResult } from '../../types/dto/dtoGet.ts';
|
|
4
3
|
import type { TypeDtoMutateType } from '../../types/dto/dtoMutate.ts';
|
|
5
4
|
import type { IModelRelationIncludeWrapper } from '../../types/model.ts';
|
|
6
5
|
import type { IModelClassRecord } from '../../types/onion/model.ts';
|
|
6
|
+
import type { BeanModelMeta } from '../bean.model/bean.model_meta.ts';
|
|
7
7
|
export declare function DtoGet<ModelLike extends BeanModelMeta | keyof IModelClassRecord, T extends IDtoGetParams<ModelLike> | undefined = undefined>(modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike, params?: T): Constructable<TypeDtoGetResult<ModelLike, T>>;
|
|
8
8
|
export declare function _DtoGet_relations<TRecord extends {}, TModel extends BeanModelMeta>(modelClass: Constructable<TModel>, entityClass: Constructable<TRecord>, includeWrapper?: IModelRelationIncludeWrapper, mutateTypeTopLevel?: TypeDtoMutateType): void;
|
|
9
9
|
//# sourceMappingURL=dtoGet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dtoGet.d.ts","sourceRoot":"","sources":["../../../src/lib/dto/dtoGet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAc1C,OAAO,KAAK,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"dtoGet.d.ts","sourceRoot":"","sources":["../../../src/lib/dto/dtoGet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAc1C,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,KAAK,EAA0B,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAYtE,wBAAgB,MAAM,CACpB,SAAS,SAAS,aAAa,GAAG,MAAM,iBAAiB,EACzD,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,EAE1D,SAAS,EAAE,SAAS,SAAS,aAAa,GACtC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,GAC3D,SAAS,EACb,MAAM,CAAC,EAAE,CAAC,GACT,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAE/C;AAwBD,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,EAAE,EAAE,MAAM,SAAS,aAAa,EAChF,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,EACjC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,EACnC,cAAc,CAAC,EAAE,4BAA4B,EAC7C,kBAAkB,CAAC,EAAE,iBAAiB,QAQvC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Constructable } from 'vona';
|
|
2
|
-
import type { BeanModelMeta } from '../bean.model/bean.model_meta.ts';
|
|
3
2
|
import type { IDtoMutateParams, TypeDtoMutateResult, TypeDtoMutateType } from '../../types/dto/dtoMutate.ts';
|
|
4
3
|
import type { TypeModelColumnsStrict } from '../../types/modelWhere.ts';
|
|
5
4
|
import type { IModelClassRecord } from '../../types/onion/model.ts';
|
|
6
5
|
import type { TypeModelOfModelLike, TypeSymbolKeyEntity } from '../../types/relations.ts';
|
|
7
6
|
import type { IRelationItem } from '../../types/relationsDef.ts';
|
|
7
|
+
import type { BeanModelMeta } from '../bean.model/bean.model_meta.ts';
|
|
8
8
|
export declare function DtoMutate<ModelLike extends BeanModelMeta | keyof IModelClassRecord, T extends IDtoMutateParams<ModelLike> | undefined = undefined>(modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike, params?: T): Constructable<TypeDtoMutateResult<ModelLike, T, 'mutate', undefined, true>>;
|
|
9
9
|
export declare function _DtoMutate_raw<ModelLike extends BeanModelMeta | keyof IModelClassRecord, T extends IDtoMutateParams<ModelLike> | undefined = undefined, ColumnsOmitDefault extends TypeModelColumnsStrict<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity]> | undefined = undefined>(modelLike: ModelLike extends BeanModelMeta ? (() => Constructable<ModelLike>) | Constructable<ModelLike> : ModelLike, params?: T, mutateTypeTopLevel?: TypeDtoMutateType, columnsOmitDefault?: ColumnsOmitDefault, topLevel?: boolean, relation?: IRelationItem): any;
|
|
10
10
|
//# sourceMappingURL=dtoMutate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dtoMutate.d.ts","sourceRoot":"","sources":["../../../src/lib/dto/dtoMutate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"dtoMutate.d.ts","sourceRoot":"","sources":["../../../src/lib/dto/dtoMutate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAM1C,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAStE,wBAAgB,SAAS,CACvB,SAAS,SAAS,aAAa,GAAG,MAAM,iBAAiB,EACzD,CAAC,SAAS,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,EAE7D,SAAS,EAAE,SAAS,SAAS,aAAa,GACtC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,GAC3D,SAAS,EACb,MAAM,CAAC,EAAE,CAAC,GACT,aAAa,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAE7E;AAED,wBAAgB,cAAc,CAC5B,SAAS,SAAS,aAAa,GAAG,MAAM,iBAAiB,EACzD,CAAC,SAAS,gBAAgB,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,EAC7D,kBAAkB,SACd,sBAAsB,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAC5E,SAAS,GAAG,SAAS,EAEzB,SAAS,EAAE,SAAS,SAAS,aAAa,GACtC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,GAC3D,SAAS,EACb,MAAM,CAAC,EAAE,CAAC,EACV,kBAAkB,CAAC,EAAE,iBAAiB,EACtC,kBAAkB,CAAC,EAAE,kBAAkB,EACvC,QAAQ,CAAC,EAAE,OAAO,EAClB,QAAQ,CAAC,EAAE,aAAa,GA0DF,GAAG,CAC1B"}
|
|
@@ -14,6 +14,7 @@ export declare class ServiceRelations extends BeanBase {
|
|
|
14
14
|
private __handleRelationMany;
|
|
15
15
|
private __handleRelationMutate;
|
|
16
16
|
private __handleRelationDelete;
|
|
17
|
+
private __sameTableIdentity;
|
|
17
18
|
private __prepareColumnsAndKey;
|
|
18
19
|
prepareColumnsByRelations<T extends {
|
|
19
20
|
columns?: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations_.d.ts","sourceRoot":"","sources":["../../src/service/relations_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAoB,MAAM,MAAM,CAAC;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAG3F,OAAO,KAAK,EAAkC,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9F,qBACa,gBAAiB,SAAQ,QAAQ;IAC5C,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IAEjC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc;IAI3B,kBAAkB,CAAC,OAAO,SAAS,EAAE,EAChD,SAAS,EAAE,aAAa,EAAE,GAAG,SAAS,EACtC,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,cAAc,CAAC,EAAE,4BAA4B,EAC7C,aAAa,CAAC,EAAE,mBAAmB;IAcxB,mBAAmB,CAAC,OAAO,SAAS,EAAE,EACjD,SAAS,EAAE,aAAa,EAAE,GAAG,SAAS,EACtC,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,4BAA4B,EAC7C,aAAa,CAAC,EAAE,mBAAmB;IAcxB,qBAAqB,CAAC,OAAO,SAAS,EAAE,EACnD,cAAc,EAAE,OAAO,EAAE,EACzB,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,EAAE,4BAA4B,GAAG,SAAS,EACxD,aAAa,EAAE,mBAAmB,GAAG,SAAS;IAiBnC,qBAAqB,CAChC,GAAG,EAAE,aAAa,EAAE,EACpB,cAAc,CAAC,EAAE,4BAA4B,EAC7C,aAAa,CAAC,EAAE,mBAAmB;YAWvB,mBAAmB;
|
|
1
|
+
{"version":3,"file":"relations_.d.ts","sourceRoot":"","sources":["../../src/service/relations_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAoB,MAAM,MAAM,CAAC;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAG3F,OAAO,KAAK,EAAkC,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9F,qBACa,gBAAiB,SAAQ,QAAQ;IAC5C,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IAEjC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc;IAI3B,kBAAkB,CAAC,OAAO,SAAS,EAAE,EAChD,SAAS,EAAE,aAAa,EAAE,GAAG,SAAS,EACtC,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,cAAc,CAAC,EAAE,4BAA4B,EAC7C,aAAa,CAAC,EAAE,mBAAmB;IAcxB,mBAAmB,CAAC,OAAO,SAAS,EAAE,EACjD,SAAS,EAAE,aAAa,EAAE,GAAG,SAAS,EACtC,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,CAAC,EAAE,4BAA4B,EAC7C,aAAa,CAAC,EAAE,mBAAmB;IAcxB,qBAAqB,CAAC,OAAO,SAAS,EAAE,EACnD,cAAc,EAAE,OAAO,EAAE,EACzB,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,EAAE,4BAA4B,GAAG,SAAS,EACxD,aAAa,EAAE,mBAAmB,GAAG,SAAS;IAiBnC,qBAAqB,CAChC,GAAG,EAAE,aAAa,EAAE,EACpB,cAAc,CAAC,EAAE,4BAA4B,EAC7C,aAAa,CAAC,EAAE,mBAAmB;YAWvB,mBAAmB;YAyEnB,oBAAoB;YAoIpB,sBAAsB;YAuJtB,sBAAsB;IAsCpC,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,sBAAsB;IAQvB,yBAAyB,CAAC,CAAC,SAAS;QAAE,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,EAC1D,SAAS,EAAE,aAAa,EAAE,EAC1B,OAAO,CAAC,EAAE,CAAC,GACV,CAAC,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAqBxC,OAAO,CAAC,gBAAgB;IAOjB,yBAAyB,CAAC,cAAc,CAAC,EAAE,4BAA4B,GAAG,aAAa,EAAE;CAGjG"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Constructable } from 'vona';
|
|
1
2
|
import type { BeanModelMeta } from '../../lib/bean.model/bean.model_meta.ts';
|
|
2
3
|
import type { IModelRelationIncludeWrapper } from '../model.ts';
|
|
3
4
|
import type { TypeModelColumns } from '../modelWhere.ts';
|
|
@@ -8,6 +9,7 @@ export interface IBuildDtoGetParams<TRecord, Model extends BeanModelMeta> extend
|
|
|
8
9
|
}
|
|
9
10
|
export interface IBuildDtoGetParamsBasic<TRecord> {
|
|
10
11
|
columns?: TypeModelColumns<TRecord>;
|
|
12
|
+
dtoClass?: Constructable<unknown>;
|
|
11
13
|
}
|
|
12
14
|
export type TypeDtoGetResult<ModelLike extends BeanModelMeta | keyof IModelClassRecord, TOptionsRelation> = TypeModelRelationResult<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity], TypeModelOfModelLike<ModelLike>, TOptionsRelation>;
|
|
13
15
|
//# sourceMappingURL=dtoGet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dtoGet.d.ts","sourceRoot":"","sources":["../../../src/types/dto/dtoGet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,aAAa,CAAC,SAAS,SAAS,aAAa,GAAG,MAAM,iBAAiB,IACjF,kBAAkB,CAChB,oBAAoB,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,EACpD,oBAAoB,CAAC,SAAS,CAAC,CAChC,CAAC;AAEJ,MAAM,WAAW,kBAAkB,CAAC,OAAO,EAAE,KAAK,SAAS,aAAa,CACtE,SAAQ,4BAA4B,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC,OAAO,CAAC;CAAG;AAElF,MAAM,WAAW,uBAAuB,CAAC,OAAO;IAC9C,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dtoGet.d.ts","sourceRoot":"","sources":["../../../src/types/dto/dtoGet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,aAAa,CAAC,SAAS,SAAS,aAAa,GAAG,MAAM,iBAAiB,IACjF,kBAAkB,CAChB,oBAAoB,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,EACpD,oBAAoB,CAAC,SAAS,CAAC,CAChC,CAAC;AAEJ,MAAM,WAAW,kBAAkB,CAAC,OAAO,EAAE,KAAK,SAAS,aAAa,CACtE,SAAQ,4BAA4B,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC,OAAO,CAAC;CAAG;AAElF,MAAM,WAAW,uBAAuB,CAAC,OAAO;IAC9C,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,gBAAgB,CAC1B,SAAS,SAAS,aAAa,GAAG,MAAM,iBAAiB,EACzD,gBAAgB,IACd,uBAAuB,CACzB,oBAAoB,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,EACpD,oBAAoB,CAAC,SAAS,CAAC,EAC/B,gBAAgB,CACjB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TableIdentity } from 'table-identity';
|
|
2
|
-
import type { OmitNever, TypeOmitStringUnion } from 'vona';
|
|
2
|
+
import type { Constructable, OmitNever, TypeOmitStringUnion } from 'vona';
|
|
3
3
|
import type { BeanModelMeta } from '../../lib/bean.model/bean.model_meta.ts';
|
|
4
4
|
import type { IModelRelationIncludeWrapper } from '../model.ts';
|
|
5
5
|
import type { TypeModelColumnsStrict } from '../modelWhere.ts';
|
|
@@ -11,6 +11,7 @@ export interface IBuildDtoMutateParams<TRecord, Model extends BeanModelMeta> ext
|
|
|
11
11
|
}
|
|
12
12
|
export interface IBuildDtoMutateParamsBasic<TRecord> {
|
|
13
13
|
columns?: TypeModelColumnsStrict<TRecord>;
|
|
14
|
+
dtoClass?: Constructable<unknown>;
|
|
14
15
|
}
|
|
15
16
|
export type TypeDtoMutateResult<ModelLike extends BeanModelMeta | keyof IModelClassRecord, TOptionsRelation, TMutateTypeTopLevel extends TypeDtoMutateType, TColumnsOmitDefault extends string | string[] | undefined = undefined, TTopLevel extends boolean | undefined = undefined> = TypeDtoMutateRelationResult<TypeModelOfModelLike<ModelLike>[TypeSymbolKeyEntity], TypeModelOfModelLike<ModelLike>, TOptionsRelation, TMutateTypeTopLevel, TColumnsOmitDefault, TTopLevel>;
|
|
16
17
|
export type TypeDtoMutateRelationResult<TRecord, TModel extends BeanModelMeta | undefined, TOptionsRelation, TMutateTypeTopLevel extends TypeDtoMutateType, TColumnsOmitDefault extends string | string[] | undefined = undefined, TTopLevel extends boolean | undefined = undefined, TColumns = undefined, REFKEY = undefined> = TypeDtoMutateRelationResultEntity<TRecord, TColumns extends string | string[] ? TColumns : TypeUtilGetParamsColumns<TOptionsRelation>, TMutateTypeTopLevel, TColumnsOmitDefault, TTopLevel, REFKEY> & (TModel extends BeanModelMeta ? OmitNever<TypeDtoMutateRelationResultMergeInclude<TMutateTypeTopLevel, TypeUtilGetModelOptions<TModel>, TypeUtilGetParamsInlcude<TOptionsRelation>>> & OmitNever<TypeDtoMutateModelRelationResultMergeWith<TMutateTypeTopLevel, TypeUtilGetParamsWith<TOptionsRelation>>> : {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dtoMutate.d.ts","sourceRoot":"","sources":["../../../src/types/dto/dtoMutate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"dtoMutate.d.ts","sourceRoot":"","sources":["../../../src/types/dto/dtoMutate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Constructable } from 'vona';
|
|
1
2
|
import type { BeanModelMeta } from '../lib/bean.model/bean.model_meta.ts';
|
|
2
3
|
import type { IModelRelationIncludeWrapper, IModelSelectParamsJoin, IModelSelectParamsOrder } from './model.ts';
|
|
3
4
|
import type { TypeModelSelectAggrParamsAggrs } from './modelAggr.ts';
|
|
@@ -11,6 +12,7 @@ export interface IBuildModelSelectGeneralParams<TRecord, Model extends BeanModel
|
|
|
11
12
|
export interface IBuildModelSelectGeneralParamsBasic<TRecord, TColumn extends TypeModelColumn<TRecord> | undefined = TypeModelColumn<TRecord>, TableNames = undefined, ColumnNames = keyof TRecord, Columns extends {} | undefined = undefined, Aggrs extends TypeModelSelectAggrParamsAggrs<TRecord> | undefined = undefined, Groups extends TypeModelColumnsStrict<TRecord> | undefined = undefined> {
|
|
12
13
|
distinct?: boolean | keyof TRecord | (keyof TRecord)[];
|
|
13
14
|
columns?: Groups extends TypeModelColumnsStrict<TRecord> ? TColumn extends string ? TColumn | Array<TColumn> : TColumn : TypeModelColumnsPatch<TRecord, TColumn>;
|
|
15
|
+
dtoClass?: Constructable<unknown>;
|
|
14
16
|
aggrs?: Aggrs;
|
|
15
17
|
groups?: Groups;
|
|
16
18
|
having?: TypeModelWhere<TRecord, TypeModelSelectGroupParamsColumns<TRecord, Groups, Aggrs>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelGeneral.d.ts","sourceRoot":"","sources":["../../src/types/modelGeneral.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modelGeneral.d.ts","sourceRoot":"","sources":["../../src/types/modelGeneral.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-module-a-orm",
|
|
3
|
-
"version": "5.1.
|
|
4
|
-
"gitHead": "
|
|
3
|
+
"version": "5.1.17",
|
|
4
|
+
"gitHead": "1a39e8008e1b48001cfeff475ddd53a2a0d867c4",
|
|
5
5
|
"description": "db",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"Cabloy Module"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"tsc:publish": "npm run clean && node ../../../../../packages-cli/cli/src/bin/vona.ts :bin:buildModule --sourcemap && tsc -p tsconfig.build.json && tsc -p tsconfig.cli.json",
|
|
31
31
|
"prepublishOnly": "npm run tsc:publish",
|
|
32
32
|
"prepack": "clean-package",
|
|
33
|
-
"postpack": "clean-package restore
|
|
33
|
+
"postpack": "clean-package restore"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"knex": "^3.2.9",
|
package/src/lib/dto/dto.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { DtoCreate } from './dtoCreate.ts';
|
|
|
3
3
|
import { DtoGet } from './dtoGet.ts';
|
|
4
4
|
import { DtoGroup } from './dtoGroup.ts';
|
|
5
5
|
import { DtoListAndCount } from './dtoListAndCount.ts';
|
|
6
|
+
import { DtoMutate } from './dtoMutate.ts';
|
|
6
7
|
import { DtoQuery } from './dtoQuery.ts';
|
|
7
8
|
import { DtoQueryPage } from './dtoQueryPage.ts';
|
|
8
9
|
import { DtoSelectAndCount } from './dtoSelectAndCount.ts';
|
|
@@ -11,6 +12,7 @@ import { DtoUpdate } from './dtoUpdate.ts';
|
|
|
11
12
|
export const $Dto = {
|
|
12
13
|
create: DtoCreate,
|
|
13
14
|
update: DtoUpdate,
|
|
15
|
+
mutate: DtoMutate,
|
|
14
16
|
get: DtoGet,
|
|
15
17
|
aggregate: DtoAggregate,
|
|
16
18
|
group: DtoGroup,
|
package/src/lib/dto/dtoGet.ts
CHANGED
|
@@ -12,12 +12,12 @@ import {
|
|
|
12
12
|
} from 'vona-module-a-openapiutils';
|
|
13
13
|
import z from 'zod';
|
|
14
14
|
|
|
15
|
-
import type { BeanModelMeta } from '../bean.model/bean.model_meta.ts';
|
|
16
15
|
import type { IDtoGetParams, TypeDtoGetResult } from '../../types/dto/dtoGet.ts';
|
|
17
16
|
import type { TypeDtoMutateType } from '../../types/dto/dtoMutate.ts';
|
|
18
17
|
import type { IModelRelationIncludeWrapper } from '../../types/model.ts';
|
|
19
18
|
import type { IDecoratorModelOptions, IModelClassRecord } from '../../types/onion/model.ts';
|
|
20
19
|
import type { IRelationItem } from '../../types/relationsDef.ts';
|
|
20
|
+
import type { BeanModelMeta } from '../bean.model/bean.model_meta.ts';
|
|
21
21
|
|
|
22
22
|
import {
|
|
23
23
|
getClassEntityFromClassModel,
|
|
@@ -53,10 +53,10 @@ function _DtoGet_raw<
|
|
|
53
53
|
// model
|
|
54
54
|
const modelClass = prepareClassModel(modelLike);
|
|
55
55
|
// entity
|
|
56
|
-
let entityClass = getClassEntityFromClassModel(modelClass);
|
|
56
|
+
let entityClass = params?.dtoClass ?? getClassEntityFromClassModel(modelClass);
|
|
57
57
|
// columns
|
|
58
|
-
const columns = prepareColumns(params?.columns);
|
|
59
|
-
// always create a new class, no matter if columns empty
|
|
58
|
+
const columns = params?.dtoClass ? undefined : prepareColumns(params?.columns);
|
|
59
|
+
// always create a new class, no matter if columns empty: dtoClass keeps own fields
|
|
60
60
|
entityClass = $Class.pick(entityClass, columns as any);
|
|
61
61
|
// relations
|
|
62
62
|
_DtoGet_relations(modelClass, entityClass, params as any);
|
|
@@ -83,6 +83,10 @@ function _DtoGet_relation_handle<TRecord extends {}>(
|
|
|
83
83
|
mutateTypeTopLevel?: TypeDtoMutateType,
|
|
84
84
|
) {
|
|
85
85
|
const [relationName, relationReal, includeReal, withReal, autoload] = relation;
|
|
86
|
+
if (relationReal === false) {
|
|
87
|
+
Api.field(schemaRenderVisible(false), v.optional())(entityClass.prototype, relationName);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
86
90
|
const { type, model, options } = relationReal;
|
|
87
91
|
const modelTarget = prepareClassModel(model);
|
|
88
92
|
const optionsReal = Object.assign({}, options, { include: includeReal, with: withReal });
|
|
@@ -164,7 +168,7 @@ function _DtoGet_relation_handle_schemaLazy(
|
|
|
164
168
|
);
|
|
165
169
|
}
|
|
166
170
|
// dynamic
|
|
167
|
-
const entityClass = getClassEntityFromClassModel(modelTarget);
|
|
171
|
+
const entityClass = optionsReal.dtoClass ?? getClassEntityFromClassModel(modelTarget);
|
|
168
172
|
const beanFullName = appResource.getBeanFullName(entityClass);
|
|
169
173
|
const _hashkey = _DtoGet_relation_handle_schemaLazy_hashkey(optionsReal, mutateTypeTopLevel);
|
|
170
174
|
const dynamicName = `${beanFullName}_${_hashkey}`;
|
package/src/lib/dto/dtoMutate.ts
CHANGED
|
@@ -2,8 +2,8 @@ import type { Constructable } from 'vona';
|
|
|
2
2
|
|
|
3
3
|
import { mutate } from 'mutate-on-copy';
|
|
4
4
|
import { $Class } from 'vona';
|
|
5
|
+
import { getTargetDecoratorRuleColumns } from 'vona-module-a-openapiutils';
|
|
5
6
|
|
|
6
|
-
import type { BeanModelMeta } from '../bean.model/bean.model_meta.ts';
|
|
7
7
|
import type {
|
|
8
8
|
IDtoMutateParams,
|
|
9
9
|
TypeDtoMutateResult,
|
|
@@ -13,6 +13,7 @@ import type { TypeModelColumnsStrict } from '../../types/modelWhere.ts';
|
|
|
13
13
|
import type { IModelClassRecord } from '../../types/onion/model.ts';
|
|
14
14
|
import type { TypeModelOfModelLike, TypeSymbolKeyEntity } from '../../types/relations.ts';
|
|
15
15
|
import type { IRelationItem } from '../../types/relationsDef.ts';
|
|
16
|
+
import type { BeanModelMeta } from '../bean.model/bean.model_meta.ts';
|
|
16
17
|
|
|
17
18
|
import {
|
|
18
19
|
getClassEntityFromClassModel,
|
|
@@ -52,9 +53,15 @@ export function _DtoMutate_raw<
|
|
|
52
53
|
// model
|
|
53
54
|
const modelClass = prepareClassModel(modelLike);
|
|
54
55
|
// entity
|
|
55
|
-
let entityClass = getClassEntityFromClassModel(modelClass);
|
|
56
|
+
let entityClass = params?.dtoClass ?? getClassEntityFromClassModel(modelClass);
|
|
56
57
|
// columns
|
|
57
|
-
let columns
|
|
58
|
+
let columns;
|
|
59
|
+
// if dtoClass, use dtoClass fields
|
|
60
|
+
if (params?.dtoClass) {
|
|
61
|
+
columns = getTargetDecoratorRuleColumns(params.dtoClass.prototype) as any;
|
|
62
|
+
} else {
|
|
63
|
+
columns = prepareColumns(params?.columns);
|
|
64
|
+
}
|
|
58
65
|
if (columns) {
|
|
59
66
|
if (!topLevel) {
|
|
60
67
|
if (mutateTypeTopLevel === 'create') {
|
|
@@ -90,9 +97,11 @@ export function _DtoMutate_raw<
|
|
|
90
97
|
}
|
|
91
98
|
if (!topLevel && relation) {
|
|
92
99
|
const [_relationName, relationReal] = relation;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
100
|
+
if (relationReal !== false) {
|
|
101
|
+
const { type, key } = relationReal;
|
|
102
|
+
if (type === 'hasOne' || type === 'hasMany') {
|
|
103
|
+
entityClass = $Class.omit(entityClass, key);
|
|
104
|
+
}
|
|
96
105
|
}
|
|
97
106
|
}
|
|
98
107
|
// relations
|
package/src/lib/utils.ts
CHANGED
|
@@ -19,7 +19,7 @@ export function handleRelationsCollection(
|
|
|
19
19
|
let withReal;
|
|
20
20
|
let autoload;
|
|
21
21
|
if (relationCur === false) {
|
|
22
|
-
|
|
22
|
+
relationReal = false;
|
|
23
23
|
} else if (relationCur === true) {
|
|
24
24
|
relationReal = relationDef;
|
|
25
25
|
autoload = relationDef.options?.autoload;
|
|
@@ -99,6 +99,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
99
99
|
methodOptions?: IModelMethodOptions,
|
|
100
100
|
) {
|
|
101
101
|
const [relationName, relationReal, includeReal, withReal] = relation;
|
|
102
|
+
if (relationReal === false) return;
|
|
102
103
|
const { type, modelMiddle, model, keyFrom, keyTo, key, options } = relationReal;
|
|
103
104
|
const modelTarget = this.__getModelTarget(model, options?.meta) as BeanModelCache;
|
|
104
105
|
const optionsReal = Object.assign({}, options, { include: includeReal, with: withReal });
|
|
@@ -171,6 +172,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
171
172
|
methodOptions?: IModelMethodOptions,
|
|
172
173
|
) {
|
|
173
174
|
const [relationName, relationReal, includeReal, withReal] = relation;
|
|
175
|
+
if (relationReal === false) return;
|
|
174
176
|
const { type, modelMiddle, model, keyFrom, keyTo, key, options } = relationReal;
|
|
175
177
|
const modelTarget = this.__getModelTarget(model, options?.meta) as BeanModelCache;
|
|
176
178
|
const optionsReal = Object.assign({}, options, { include: includeReal, with: withReal });
|
|
@@ -187,7 +189,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
187
189
|
}
|
|
188
190
|
for (const entity of entities) {
|
|
189
191
|
entity[relationName] = items.find(item => {
|
|
190
|
-
if (item[key]
|
|
192
|
+
if (this.__sameTableIdentity(item[key], cast(entity).id)) {
|
|
191
193
|
if (!withKey) delete item[key];
|
|
192
194
|
return true;
|
|
193
195
|
}
|
|
@@ -199,7 +201,9 @@ export class ServiceRelations extends BeanBase {
|
|
|
199
201
|
const options2 = deepExtend({}, methodOptionsReal, optionsReal);
|
|
200
202
|
const items = await modelTarget.mget(idsTo, options2);
|
|
201
203
|
for (const entity of entities) {
|
|
202
|
-
entity[relationName] = items.find(item =>
|
|
204
|
+
entity[relationName] = items.find(item =>
|
|
205
|
+
this.__sameTableIdentity(cast(item).id, cast(entity)[key]),
|
|
206
|
+
);
|
|
203
207
|
}
|
|
204
208
|
} else if (type === 'hasMany') {
|
|
205
209
|
const idsFrom = entities.map(item => cast(item).id).filter(id => !isNil(id));
|
|
@@ -210,7 +214,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
210
214
|
for (const entity of entities) {
|
|
211
215
|
entity[relationName] = [];
|
|
212
216
|
for (const item of items) {
|
|
213
|
-
if (item[key]
|
|
217
|
+
if (this.__sameTableIdentity(item[key], cast(entity).id)) {
|
|
214
218
|
delete item[key];
|
|
215
219
|
entity[relationName].push(item);
|
|
216
220
|
}
|
|
@@ -220,7 +224,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
220
224
|
const options2 = deepExtend({}, optionsReal, { groups: key, where: { [key]: idsFrom } });
|
|
221
225
|
const items = await modelTarget.group(options2, methodOptionsReal);
|
|
222
226
|
for (const entity of entities) {
|
|
223
|
-
const item = items.find(item => item[key]
|
|
227
|
+
const item = items.find(item => this.__sameTableIdentity(item[key], cast(entity).id));
|
|
224
228
|
if (item) {
|
|
225
229
|
delete item[key];
|
|
226
230
|
}
|
|
@@ -233,7 +237,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
233
237
|
for (const entity of entities) {
|
|
234
238
|
entity[relationName] = [];
|
|
235
239
|
for (const item of items) {
|
|
236
|
-
if (item[key]
|
|
240
|
+
if (this.__sameTableIdentity(item[key], cast(entity).id)) {
|
|
237
241
|
if (!withKey) delete item[key];
|
|
238
242
|
entity[relationName].push(item);
|
|
239
243
|
}
|
|
@@ -258,7 +262,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
258
262
|
if (optionsReal.groups) {
|
|
259
263
|
for (const entity of entities) {
|
|
260
264
|
const idsTo = itemsMiddle
|
|
261
|
-
.filter(item => item[keyFrom]
|
|
265
|
+
.filter(item => this.__sameTableIdentity(item[keyFrom], cast(entity).id))
|
|
262
266
|
.map(item => item[keyTo]);
|
|
263
267
|
const options2 = deepExtend({}, optionsReal, {
|
|
264
268
|
groups: optionsReal.groups,
|
|
@@ -269,7 +273,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
269
273
|
} else if (optionsReal.aggrs) {
|
|
270
274
|
for (const entity of entities) {
|
|
271
275
|
const idsTo = itemsMiddle
|
|
272
|
-
.filter(item => item[keyFrom]
|
|
276
|
+
.filter(item => this.__sameTableIdentity(item[keyFrom], cast(entity).id))
|
|
273
277
|
.map(item => item[keyTo]);
|
|
274
278
|
const options2 = deepExtend({}, optionsReal, { where: { id: idsTo } });
|
|
275
279
|
entity[relationName] = await modelTarget.aggregate(options2, methodOptionsReal);
|
|
@@ -281,9 +285,11 @@ export class ServiceRelations extends BeanBase {
|
|
|
281
285
|
for (const entity of entities) {
|
|
282
286
|
entity[relationName] = [];
|
|
283
287
|
for (const itemMiddle of itemsMiddle) {
|
|
284
|
-
if (itemMiddle[keyFrom]
|
|
288
|
+
if (this.__sameTableIdentity(itemMiddle[keyFrom], cast(entity).id)) {
|
|
285
289
|
entity[relationName].push(
|
|
286
|
-
items.find(item =>
|
|
290
|
+
items.find(item =>
|
|
291
|
+
this.__sameTableIdentity(cast(item).id, cast(itemMiddle)[keyTo]),
|
|
292
|
+
),
|
|
287
293
|
);
|
|
288
294
|
}
|
|
289
295
|
}
|
|
@@ -299,6 +305,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
299
305
|
methodOptions?: IModelMethodOptions,
|
|
300
306
|
) {
|
|
301
307
|
const [relationName, relationReal, includeReal, withReal] = relation;
|
|
308
|
+
if (relationReal === false) return entitiesResult;
|
|
302
309
|
const { type, modelMiddle, model, keyFrom, keyTo, key, options } = relationReal;
|
|
303
310
|
const modelTarget = this.__getModelTarget(model, options?.meta) as BeanModelCache;
|
|
304
311
|
const methodOptionsReal = Object.assign({}, methodOptions, {
|
|
@@ -348,19 +355,21 @@ export class ServiceRelations extends BeanBase {
|
|
|
348
355
|
if (entity[relationName] && entity[relationName].length > 0) {
|
|
349
356
|
const entityId = cast(entity).id;
|
|
350
357
|
const idsTo = entity[relationName].map(item => item.id).filter(id => !isNil(id));
|
|
351
|
-
let
|
|
358
|
+
let idsTargetSet: Set<string>;
|
|
352
359
|
if (idsTo.length === 0) {
|
|
353
|
-
|
|
360
|
+
idsTargetSet = new Set();
|
|
354
361
|
} else {
|
|
355
362
|
const itemsTarget = await cast(modelTarget).__select_raw(
|
|
356
363
|
undefined,
|
|
357
364
|
{ where: { [key]: entityId, id: idsTo } },
|
|
358
365
|
methodOptionsReal,
|
|
359
366
|
);
|
|
360
|
-
|
|
367
|
+
idsTargetSet = new Set(
|
|
368
|
+
itemsTarget.map((item: { id: TableIdentity }) => String(item.id)),
|
|
369
|
+
);
|
|
361
370
|
}
|
|
362
371
|
for (const child of entity[relationName]) {
|
|
363
|
-
if (!isNil(child.id) && !
|
|
372
|
+
if (!isNil(child.id) && !idsTargetSet.has(String(child.id))) {
|
|
364
373
|
throw new Error(`invalid id: ${child.id}`);
|
|
365
374
|
}
|
|
366
375
|
children.push(Object.assign({}, child, { [key]: entityId }));
|
|
@@ -375,7 +384,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
375
384
|
if (entity[relationName]) {
|
|
376
385
|
entityResult[relationName] = [];
|
|
377
386
|
for (const child of children) {
|
|
378
|
-
if (child[key]
|
|
387
|
+
if (this.__sameTableIdentity(child[key], cast(entity).id)) {
|
|
379
388
|
entityResult[relationName].push(child);
|
|
380
389
|
}
|
|
381
390
|
}
|
|
@@ -403,7 +412,9 @@ export class ServiceRelations extends BeanBase {
|
|
|
403
412
|
);
|
|
404
413
|
}
|
|
405
414
|
for (const child of entity[relationName]) {
|
|
406
|
-
const itemMiddle = itemsMiddle.find(item =>
|
|
415
|
+
const itemMiddle = itemsMiddle.find(item =>
|
|
416
|
+
this.__sameTableIdentity(item[keyTo], child.id),
|
|
417
|
+
);
|
|
407
418
|
if (!itemMiddle) {
|
|
408
419
|
if (!child.deleted) {
|
|
409
420
|
// add
|
|
@@ -426,7 +437,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
426
437
|
if (entity[relationName]) {
|
|
427
438
|
entityResult[relationName] = [];
|
|
428
439
|
for (const child of children) {
|
|
429
|
-
if (child[keyFrom]
|
|
440
|
+
if (this.__sameTableIdentity(child[keyFrom], cast(entity).id)) {
|
|
430
441
|
entityResult[relationName].push({ id: child[keyTo] });
|
|
431
442
|
}
|
|
432
443
|
}
|
|
@@ -444,6 +455,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
444
455
|
methodOptions?: IModelMethodOptions,
|
|
445
456
|
) {
|
|
446
457
|
const [_relationName, relationReal, includeReal, withReal] = relation;
|
|
458
|
+
if (relationReal === false) return;
|
|
447
459
|
const { type, modelMiddle, model, keyFrom, key, options } = relationReal;
|
|
448
460
|
const modelTarget = this.__getModelTarget(model, options?.meta) as BeanModelCache;
|
|
449
461
|
const methodOptionsReal = Object.assign({}, methodOptions, {
|
|
@@ -475,6 +487,14 @@ export class ServiceRelations extends BeanBase {
|
|
|
475
487
|
}
|
|
476
488
|
}
|
|
477
489
|
|
|
490
|
+
private __sameTableIdentity(
|
|
491
|
+
id1: TableIdentity | null | undefined,
|
|
492
|
+
id2: TableIdentity | null | undefined,
|
|
493
|
+
) {
|
|
494
|
+
if (isNil(id1) || isNil(id2)) return false;
|
|
495
|
+
return String(id1) === String(id2);
|
|
496
|
+
}
|
|
497
|
+
|
|
478
498
|
private __prepareColumnsAndKey(columns: string | string[] | undefined, key: string) {
|
|
479
499
|
if (!columns) return [columns, true];
|
|
480
500
|
columns = Array.isArray(columns) ? columns : [columns];
|
|
@@ -494,6 +514,7 @@ export class ServiceRelations extends BeanBase {
|
|
|
494
514
|
const refKeys: string[] = [];
|
|
495
515
|
for (const relation of relations) {
|
|
496
516
|
const [_relationName, relationReal] = relation;
|
|
517
|
+
if (relationReal === false) continue;
|
|
497
518
|
const { type, key } = relationReal;
|
|
498
519
|
if (type === 'belongsTo') {
|
|
499
520
|
if (!columns.includes(key)) {
|
package/src/types/dto/dtoGet.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Constructable } from 'vona';
|
|
2
|
+
|
|
1
3
|
import type { BeanModelMeta } from '../../lib/bean.model/bean.model_meta.ts';
|
|
2
4
|
import type { IModelRelationIncludeWrapper } from '../model.ts';
|
|
3
5
|
import type { TypeModelColumns } from '../modelWhere.ts';
|
|
@@ -19,6 +21,7 @@ export interface IBuildDtoGetParams<TRecord, Model extends BeanModelMeta>
|
|
|
19
21
|
|
|
20
22
|
export interface IBuildDtoGetParamsBasic<TRecord> {
|
|
21
23
|
columns?: TypeModelColumns<TRecord>;
|
|
24
|
+
dtoClass?: Constructable<unknown>;
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
export type TypeDtoGetResult<
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TableIdentity } from 'table-identity';
|
|
2
|
-
import type { OmitNever, TypeOmitStringUnion } from 'vona';
|
|
2
|
+
import type { Constructable, OmitNever, TypeOmitStringUnion } from 'vona';
|
|
3
3
|
|
|
4
4
|
import type { BeanModelMeta } from '../../lib/bean.model/bean.model_meta.ts';
|
|
5
5
|
import type { IModelRelationIncludeWrapper } from '../model.ts';
|
|
@@ -38,6 +38,7 @@ export interface IBuildDtoMutateParams<TRecord, Model extends BeanModelMeta>
|
|
|
38
38
|
|
|
39
39
|
export interface IBuildDtoMutateParamsBasic<TRecord> {
|
|
40
40
|
columns?: TypeModelColumnsStrict<TRecord>;
|
|
41
|
+
dtoClass?: Constructable<unknown>;
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
export type TypeDtoMutateResult<
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Constructable } from 'vona';
|
|
2
|
+
|
|
1
3
|
import type { BeanModelMeta } from '../lib/bean.model/bean.model_meta.ts';
|
|
2
4
|
import type {
|
|
3
5
|
IModelRelationIncludeWrapper,
|
|
@@ -54,6 +56,7 @@ export interface IBuildModelSelectGeneralParamsBasic<
|
|
|
54
56
|
? TColumn | Array<TColumn>
|
|
55
57
|
: TColumn
|
|
56
58
|
: TypeModelColumnsPatch<TRecord, TColumn>;
|
|
59
|
+
dtoClass?: Constructable<unknown>;
|
|
57
60
|
aggrs?: Aggrs;
|
|
58
61
|
groups?: Groups;
|
|
59
62
|
having?: TypeModelWhere<TRecord, TypeModelSelectGroupParamsColumns<TRecord, Groups, Aggrs>>;
|