@steroidsjs/nest 1.1.0 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/infrastructure/decorators/Context.d.ts +1 -0
- package/infrastructure/decorators/Context.js +12 -0
- package/infrastructure/decorators/Context.js.map +1 -0
- package/infrastructure/decorators/TableFromModel.js.map +1 -1
- package/infrastructure/decorators/fields/BaseField.d.ts +8 -4
- package/infrastructure/decorators/fields/BaseField.js +22 -9
- package/infrastructure/decorators/fields/BaseField.js.map +1 -1
- package/infrastructure/decorators/fields/ExtendField.d.ts +2 -2
- package/infrastructure/decorators/fields/ExtendField.js +15 -14
- package/infrastructure/decorators/fields/ExtendField.js.map +1 -1
- package/infrastructure/decorators/schema/ExtractRelationId.d.ts +2 -0
- package/infrastructure/decorators/schema/ExtractRelationId.js +11 -0
- package/infrastructure/decorators/schema/ExtractRelationId.js.map +1 -0
- package/infrastructure/decorators/schema/SchemaSelect.d.ts +7 -0
- package/infrastructure/decorators/schema/SchemaSelect.js +13 -0
- package/infrastructure/decorators/schema/SchemaSelect.js.map +1 -0
- package/infrastructure/pipes/SchemaSerializer.d.ts +5 -0
- package/infrastructure/pipes/SchemaSerializer.js +12 -0
- package/infrastructure/pipes/SchemaSerializer.js.map +1 -0
- package/infrastructure/repositories/CrudRepository.d.ts +7 -3
- package/infrastructure/repositories/CrudRepository.js +28 -15
- package/infrastructure/repositories/CrudRepository.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/usecases/base/SearchQuery.d.ts +16 -0
- package/usecases/base/SearchQuery.js +60 -0
- package/usecases/base/SearchQuery.js.map +1 -0
- package/usecases/dtos/ContextDto.d.ts +15 -0
- package/usecases/dtos/ContextDto.js +7 -0
- package/usecases/dtos/ContextDto.js.map +1 -0
- package/usecases/exceptions/BadRequestException.d.ts +3 -0
- package/usecases/exceptions/BadRequestException.js +8 -0
- package/usecases/exceptions/BadRequestException.js.map +1 -0
- package/usecases/exceptions/ForbiddenException.d.ts +3 -0
- package/usecases/exceptions/ForbiddenException.js +8 -0
- package/usecases/exceptions/ForbiddenException.js.map +1 -0
- package/usecases/exceptions/UnauthorizedException.d.ts +3 -0
- package/usecases/exceptions/UnauthorizedException.js +8 -0
- package/usecases/exceptions/UnauthorizedException.js.map +1 -0
- package/usecases/exceptions/index.d.ts +4 -0
- package/usecases/exceptions/index.js +12 -0
- package/usecases/exceptions/index.js.map +1 -0
- package/{infrastructure → usecases}/helpers/ConditionHelper.d.ts +0 -0
- package/{infrastructure → usecases}/helpers/ConditionHelper.js +0 -0
- package/usecases/helpers/ConditionHelper.js.map +1 -0
- package/usecases/helpers/DataMapperHelper.d.ts +5 -1
- package/usecases/helpers/DataMapperHelper.js +66 -5
- package/usecases/helpers/DataMapperHelper.js.map +1 -1
- package/usecases/helpers/SearchHelper.d.ts +4 -3
- package/usecases/helpers/SearchHelper.js +9 -7
- package/usecases/helpers/SearchHelper.js.map +1 -1
- package/usecases/helpers/ValidationHelper.d.ts +1 -1
- package/usecases/helpers/ValidationHelper.js +2 -2
- package/usecases/helpers/ValidationHelper.js.map +1 -1
- package/usecases/interfaces/ICrudRepository.d.ts +6 -3
- package/usecases/services/CrudService.d.ts +15 -6
- package/usecases/services/CrudService.js +29 -14
- package/usecases/services/CrudService.js.map +1 -1
- package/infrastructure/helpers/ConditionHelper.js.map +0 -1
- package/infrastructure/helpers/MetaHelper.d.ts +0 -7
- package/infrastructure/helpers/MetaHelper.js +0 -38
- package/infrastructure/helpers/MetaHelper.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Context: (...dataOrPipes: unknown[]) => ParameterDecorator;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Context = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const ContextDto_1 = require("../../usecases/dtos/ContextDto");
|
|
6
|
+
exports.Context = (0, common_1.createParamDecorator)((data, ctx) => {
|
|
7
|
+
const request = ctx.switchToHttp().getRequest();
|
|
8
|
+
const contextDto = new ContextDto_1.ContextDto();
|
|
9
|
+
contextDto.user = request.user;
|
|
10
|
+
return contextDto;
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=Context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../src/infrastructure/decorators/Context.ts"],"names":[],"mappings":";;;AAAA,2CAAwE;AACxE,+DAA0D;AAE7C,QAAA,OAAO,GAAG,IAAA,6BAAoB,EACvC,CAAC,IAAa,EAAE,GAAqB,EAAE,EAAE;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IAEhD,MAAM,UAAU,GAAG,IAAI,uBAAU,EAAE,CAAC;IACpC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/B,OAAO,UAAU,CAAC;AACtB,CAAC,CACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableFromModel.js","sourceRoot":"","sources":["../../../src/infrastructure/decorators/TableFromModel.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"TableFromModel.js","sourceRoot":"","sources":["../../../src/infrastructure/decorators/TableFromModel.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAC/B,8EAAyE;AACzE,sDAAiD;AACjD,2CAA+C;AAQ/C,SAAS,sBAAsB,CAAC,UAAU;IACtC,OAAO,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,mCAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,IAAA,yBAAW,EAAC,UAAU,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,cAAc,CAAC,UAAU,EAAE,SAAS;IAChD,OAAO,IAAA,wBAAe,EAClB,IAAA,gBAAM,EAAC,SAAS,CAAC,EACjB,sBAAsB,CAAC,UAAU,CAAC,CACrC,CAAC;AACN,CAAC;AALD,wCAKC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ColumnType } from 'typeorm/driver/types/ColumnTypes';
|
|
2
|
-
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
2
|
+
import { IAllFieldOptions } from './index';
|
|
3
|
+
export declare const STEROIDS_META_FIELD = "steroids_meta_field";
|
|
4
|
+
export declare const STEROIDS_META_FIELD_DECORATOR = "steroids_meta_field_decorator";
|
|
5
|
+
export declare const STEROIDS_META_KEYS = "steroids_meta_keys";
|
|
5
6
|
export declare type AppColumnType = 'boolean' | 'createTime' | 'date' | 'dateTime' | 'decimal' | 'email' | 'enum' | 'file' | 'html' | 'integer' | 'password' | 'phone' | 'primaryKey' | 'relation' | 'string' | 'text' | 'time' | 'updateTime' | string;
|
|
6
7
|
export declare type JsType = 'boolean' | 'string' | 'number' | string;
|
|
7
8
|
export interface IBaseFieldOptions {
|
|
@@ -18,6 +19,7 @@ export interface IBaseFieldOptions {
|
|
|
18
19
|
min?: number;
|
|
19
20
|
max?: number;
|
|
20
21
|
items?: string;
|
|
22
|
+
plainName?: string;
|
|
21
23
|
}
|
|
22
24
|
export interface IInternalFieldOptions {
|
|
23
25
|
appType?: AppColumnType;
|
|
@@ -25,4 +27,6 @@ export interface IInternalFieldOptions {
|
|
|
25
27
|
decoratorName?: string;
|
|
26
28
|
isArray?: boolean;
|
|
27
29
|
}
|
|
28
|
-
export declare
|
|
30
|
+
export declare const getFieldOptions: (targetClass: any, fieldName: string) => IAllFieldOptions;
|
|
31
|
+
export declare const getFieldDecorator: (targetClass: any, fieldName: string) => (...args: any) => PropertyDecorator;
|
|
32
|
+
export declare function BaseField(options?: IBaseFieldOptions, internalOptions?: IInternalFieldOptions): <TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
|
|
@@ -1,20 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseField = exports.
|
|
3
|
+
exports.BaseField = exports.getFieldDecorator = exports.getFieldOptions = exports.STEROIDS_META_KEYS = exports.STEROIDS_META_FIELD_DECORATOR = exports.STEROIDS_META_FIELD = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const swagger_1 = require("@nestjs/swagger");
|
|
6
6
|
const class_validator_1 = require("class-validator");
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
7
|
+
exports.STEROIDS_META_FIELD = 'steroids_meta_field';
|
|
8
|
+
exports.STEROIDS_META_FIELD_DECORATOR = 'steroids_meta_field_decorator';
|
|
9
|
+
exports.STEROIDS_META_KEYS = 'steroids_meta_keys';
|
|
10
|
+
const getFieldOptions = (targetClass, fieldName) => {
|
|
11
|
+
return targetClass && Reflect.getMetadata(exports.STEROIDS_META_FIELD, targetClass.prototype, fieldName);
|
|
12
|
+
};
|
|
13
|
+
exports.getFieldOptions = getFieldOptions;
|
|
14
|
+
const getFieldDecorator = (targetClass, fieldName) => {
|
|
15
|
+
const decoratorName = Reflect.getMetadata(exports.STEROIDS_META_FIELD_DECORATOR, targetClass.prototype, fieldName);
|
|
16
|
+
const decorator = require('./index')[decoratorName];
|
|
17
|
+
if (!decorator) {
|
|
18
|
+
throw new Error(`Not found Field decorator ${decoratorName}, property: ${fieldName}`);
|
|
19
|
+
}
|
|
20
|
+
return decorator;
|
|
21
|
+
};
|
|
22
|
+
exports.getFieldDecorator = getFieldDecorator;
|
|
10
23
|
const ColumnMetaDecorator = (options, internalOptions) => (object, propertyName) => {
|
|
11
|
-
Reflect.defineMetadata(exports.
|
|
12
|
-
Reflect.defineMetadata(exports.
|
|
13
|
-
const fieldNames = Reflect.getMetadata(exports.
|
|
24
|
+
Reflect.defineMetadata(exports.STEROIDS_META_FIELD, options, object, propertyName);
|
|
25
|
+
Reflect.defineMetadata(exports.STEROIDS_META_FIELD_DECORATOR, internalOptions.decoratorName, object, propertyName);
|
|
26
|
+
const fieldNames = Reflect.getMetadata(exports.STEROIDS_META_KEYS, object) || [];
|
|
14
27
|
fieldNames.push(propertyName);
|
|
15
|
-
Reflect.defineMetadata(exports.
|
|
28
|
+
Reflect.defineMetadata(exports.STEROIDS_META_KEYS, fieldNames, object);
|
|
16
29
|
};
|
|
17
|
-
function BaseField(options = null, internalOptions) {
|
|
30
|
+
function BaseField(options = null, internalOptions = {}) {
|
|
18
31
|
return (0, common_1.applyDecorators)(...[
|
|
19
32
|
ColumnMetaDecorator(Object.assign(Object.assign({ label: null, hint: null, items: null }, options), { isArray: internalOptions.isArray || null, appType: internalOptions.appType || null }), internalOptions),
|
|
20
33
|
(0, swagger_1.ApiProperty)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/BaseField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,6CAA4C;AAE5C,qDAA2C;
|
|
1
|
+
{"version":3,"file":"BaseField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/BaseField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,6CAA4C;AAE5C,qDAA2C;AAG9B,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAC5C,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAChE,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AA+BhD,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,SAAiB,EAAoB,EAAE;IAChF,OAAO,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,2BAAmB,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACrG,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,SAAiB,EAAuC,EAAE;IACrG,MAAM,aAAa,GAAW,OAAO,CAAC,WAAW,CAAC,qCAA6B,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,aAAa,eAAe,SAAS,EAAE,CAAC,CAAC;KACzF;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B;AAEF,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAE,eAAsC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;IACzH,OAAO,CAAC,cAAc,CAAC,2BAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3E,OAAO,CAAC,cAAc,CAAC,qCAA6B,EAAE,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAG3G,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,0BAAkB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACzE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,OAAO,CAAC,cAAc,CAAC,0BAAkB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,SAAgB,SAAS,CAAC,UAA6B,IAAI,EAAE,kBAAyC,EAAE;IACpG,OAAO,IAAA,wBAAe,EAClB,GAAG;QACC,mBAAmB,+BACf,KAAK,EAAE,IAAI,EACX,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,IAAI,IACR,OAAO,KACV,OAAO,EAAE,eAAe,CAAC,OAAO,IAAI,IAAI,EACxC,OAAO,EAAE,eAAe,CAAC,OAAO,IAAI,IAAI,KACzC,eAAe,CAAC;QACnB,IAAA,qBAAW,EAAC;YACR,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,WAAW,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;YACvC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;YACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK;YACpC,OAAO,EAAE,OAAO,CAAC,OAAO;SAC3B,CAAC;QACF,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,GAAE;KACnC,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AArBD,8BAqBC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IBaseFieldOptions } from './BaseField';
|
|
2
2
|
export interface IExtendFieldOptions extends IBaseFieldOptions {
|
|
3
|
-
|
|
3
|
+
sourceFieldName?: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function ExtendField(modelClass: any, options?: IExtendFieldOptions): (object: any, propertyName: any) => void;
|
|
5
|
+
export declare function ExtendField(modelClass: any, options?: string | IExtendFieldOptions): (object: any, propertyName: any) => void;
|
|
@@ -5,27 +5,28 @@ const BaseField_1 = require("./BaseField");
|
|
|
5
5
|
const DataMapperHelper_1 = require("../../../usecases/helpers/DataMapperHelper");
|
|
6
6
|
function ExtendField(modelClass, options = {}) {
|
|
7
7
|
return (object, propertyName) => {
|
|
8
|
-
if (options
|
|
9
|
-
|
|
8
|
+
if (typeof options === 'string') {
|
|
9
|
+
options = { sourceFieldName: options };
|
|
10
10
|
}
|
|
11
11
|
let modelFieldName;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
if (options.sourceFieldName) {
|
|
13
|
+
modelFieldName = options.sourceFieldName;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const modelFieldNames = DataMapperHelper_1.DataMapperHelper.getKeys(modelClass);
|
|
17
|
+
for (let suffix of ['', 'Id', 'Ids']) {
|
|
18
|
+
const nameWithoutSuffix = propertyName.replace(new RegExp(suffix + '$', 'g'), '');
|
|
19
|
+
if (modelFieldNames.includes(nameWithoutSuffix)) {
|
|
20
|
+
modelFieldName = nameWithoutSuffix;
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
18
23
|
}
|
|
19
24
|
}
|
|
20
25
|
if (!modelFieldName) {
|
|
21
26
|
throw new Error('Not found field "' + propertyName + '" in model "' + modelClass.name + '"');
|
|
22
27
|
}
|
|
23
|
-
const extendOptions =
|
|
24
|
-
const
|
|
25
|
-
const decorator = require('./index')[decoratorName];
|
|
26
|
-
if (!decorator) {
|
|
27
|
-
throw new Error(`Not found Field decorator ${decoratorName}, property: ${propertyName}`);
|
|
28
|
-
}
|
|
28
|
+
const extendOptions = (0, BaseField_1.getFieldOptions)(modelClass, modelFieldName);
|
|
29
|
+
const decorator = (0, BaseField_1.getFieldDecorator)(modelClass, modelFieldName);
|
|
29
30
|
decorator(Object.assign(Object.assign({}, extendOptions), options))(object, propertyName);
|
|
30
31
|
};
|
|
31
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtendField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/ExtendField.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ExtendField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/ExtendField.ts"],"names":[],"mappings":";;;AAAA,2CAAkF;AAClF,iFAA4E;AAM5E,SAAgB,WAAW,CAAC,UAAU,EAAE,UAAwC,EAAE;IAC9E,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;QAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,EAAC,eAAe,EAAE,OAAO,EAAC,CAAC;SACxC;QAGD,IAAI,cAAc,CAAC;QACnB,IAAI,OAAO,CAAC,eAAe,EAAE;YACzB,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;SAC5C;aAAM;YACH,MAAM,eAAe,GAAG,mCAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC7D,KAAK,IAAI,MAAM,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;gBAClC,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClF,IAAI,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;oBAC7C,cAAc,GAAG,iBAAiB,CAAC;oBACnC,MAAM;iBACT;aACJ;SACJ;QACD,IAAI,CAAC,cAAc,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,YAAY,GAAG,cAAc,GAAG,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;SAChG;QAGD,MAAM,aAAa,GAAG,IAAA,2BAAe,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,IAAA,6BAAiB,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAChE,SAAS,iCAAK,aAAa,GAAK,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC,CAAC;AACN,CAAC;AA7BD,kCA6BC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtractRelationId = exports.SCHEMA_META_EXTRACT_RELATION_ID = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
exports.SCHEMA_META_EXTRACT_RELATION_ID = 'meta_extract_relation_id';
|
|
6
|
+
const getExtractRelationId = (target, key) => Reflect.getMetadata(exports.SCHEMA_META_EXTRACT_RELATION_ID, target, key);
|
|
7
|
+
function ExtractRelationId() {
|
|
8
|
+
return (0, common_1.applyDecorators)((0, common_1.SetMetadata)(exports.SCHEMA_META_EXTRACT_RELATION_ID, true));
|
|
9
|
+
}
|
|
10
|
+
exports.ExtractRelationId = ExtractRelationId;
|
|
11
|
+
//# sourceMappingURL=ExtractRelationId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtractRelationId.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/schema/ExtractRelationId.ts"],"names":[],"mappings":";;;AAAA,2CAA4D;AAE/C,QAAA,+BAA+B,GAAG,0BAA0B,CAAC;AAE1E,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,uCAA+B,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAEhH,SAAgB,iBAAiB;IAC7B,OAAO,IAAA,wBAAe,EAClB,IAAA,oBAAW,EAAC,uCAA+B,EAAE,IAAI,CAAC,CACrD,CAAC;AACN,CAAC;AAJD,8CAIC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const STEROIDS_META_SCHEMA_SELECT = "steroids_meta_schema_select";
|
|
2
|
+
export interface ISchemaOptions {
|
|
3
|
+
select?: string[];
|
|
4
|
+
excludeSelect?: string[];
|
|
5
|
+
}
|
|
6
|
+
export declare const getSchemaSelectOptions: (schemaClass: any) => any;
|
|
7
|
+
export declare function SchemaSelect(options?: ISchemaOptions): (target: any) => void;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaSelect = exports.getSchemaSelectOptions = exports.STEROIDS_META_SCHEMA_SELECT = void 0;
|
|
4
|
+
exports.STEROIDS_META_SCHEMA_SELECT = 'steroids_meta_schema_select';
|
|
5
|
+
const getSchemaSelectOptions = (schemaClass) => schemaClass && Reflect.getMetadata(exports.STEROIDS_META_SCHEMA_SELECT, schemaClass);
|
|
6
|
+
exports.getSchemaSelectOptions = getSchemaSelectOptions;
|
|
7
|
+
function SchemaSelect(options = {}) {
|
|
8
|
+
return (target) => {
|
|
9
|
+
Reflect.defineMetadata(exports.STEROIDS_META_SCHEMA_SELECT, options, target);
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
exports.SchemaSelect = SchemaSelect;
|
|
13
|
+
//# sourceMappingURL=SchemaSelect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaSelect.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/schema/SchemaSelect.ts"],"names":[],"mappings":";;;AAAa,QAAA,2BAA2B,GAAG,6BAA6B,CAAC;AAOlE,MAAM,sBAAsB,GAAG,CAClC,WAAW,EACb,EAAE,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,mCAA2B,EAAE,WAAW,CAAC,CAAC;AAFrE,QAAA,sBAAsB,0BAE+C;AAElF,SAAgB,YAAY,CAAC,UAA0B,EAAE;IACrD,OAAO,CAAC,MAAM,EAAE,EAAE;QACd,OAAO,CAAC,cAAc,CAAC,mCAA2B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC,CAAC;AACN,CAAC;AAJD,oCAIC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ClassSerializerInterceptor, PlainLiteralObject } from '@nestjs/common';
|
|
2
|
+
import { ClassTransformOptions } from '@nestjs/common/interfaces/external/class-transform-options.interface';
|
|
3
|
+
export declare class SchemaSerializer extends ClassSerializerInterceptor {
|
|
4
|
+
transformToPlain(data: any, options: ClassTransformOptions): PlainLiteralObject;
|
|
5
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaSerializer = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const DataMapperHelper_1 = require("../../usecases/helpers/DataMapperHelper");
|
|
6
|
+
class SchemaSerializer extends common_1.ClassSerializerInterceptor {
|
|
7
|
+
transformToPlain(data, options) {
|
|
8
|
+
return DataMapperHelper_1.DataMapperHelper.anyToPlain(data);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.SchemaSerializer = SchemaSerializer;
|
|
12
|
+
//# sourceMappingURL=SchemaSerializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaSerializer.js","sourceRoot":"","sources":["../../../src/infrastructure/pipes/SchemaSerializer.ts"],"names":[],"mappings":";;;AAAA,2CAA8E;AAE9E,8EAAyE;AAEzE,MAAa,gBAAiB,SAAQ,mCAA0B;IAC5D,gBAAgB,CAAC,IAAS,EAAE,OAA8B;QAEtD,OAAO,mCAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACJ;AALD,4CAKC"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { Repository } from 'typeorm';
|
|
2
2
|
import { ICrudRepository } from '../../usecases/interfaces/ICrudRepository';
|
|
3
3
|
import { SearchInputDto } from '../../usecases/dtos/SearchInputDto';
|
|
4
|
-
import { ICondition } from '../helpers/ConditionHelper';
|
|
5
4
|
import { SearchResultDto } from '../../usecases/dtos/SearchResultDto';
|
|
5
|
+
import SearchQuery from '../../usecases/base/SearchQuery';
|
|
6
|
+
import { SelectQueryBuilder } from 'typeorm/query-builder/SelectQueryBuilder';
|
|
7
|
+
import { ICondition } from '../../usecases/helpers/ConditionHelper';
|
|
6
8
|
export declare class CrudRepository<TModel> implements ICrudRepository<TModel> {
|
|
7
9
|
primaryKey: string;
|
|
8
10
|
dbRepository: Repository<any>;
|
|
9
11
|
protected modelClass: any;
|
|
10
12
|
init(dbRepository: Repository<any>, modelClass: any): void;
|
|
11
|
-
search(dto: SearchInputDto): Promise<SearchResultDto<TModel>>;
|
|
12
|
-
findOne(
|
|
13
|
+
search(dto: SearchInputDto, searchQuery: SearchQuery): Promise<SearchResultDto<TModel>>;
|
|
14
|
+
findOne(conditionOrQuery: ICondition | SearchQuery): Promise<TModel | null>;
|
|
15
|
+
findMany(conditionOrQuery: ICondition | SearchQuery): Promise<TModel[]>;
|
|
16
|
+
protected createQueryBuilder(conditionOrQuery: ICondition | SearchQuery): SelectQueryBuilder<any>;
|
|
13
17
|
create(model: TModel): Promise<TModel>;
|
|
14
18
|
update(id: number, model: TModel): Promise<TModel>;
|
|
15
19
|
remove(id: number): Promise<void>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CrudRepository = void 0;
|
|
4
|
-
const class_transformer_1 = require("class-transformer");
|
|
5
4
|
const SearchHelper_1 = require("../../usecases/helpers/SearchHelper");
|
|
6
|
-
const
|
|
5
|
+
const SearchQuery_1 = require("../../usecases/base/SearchQuery");
|
|
6
|
+
const DataMapperHelper_1 = require("../../usecases/helpers/DataMapperHelper");
|
|
7
7
|
class CrudRepository {
|
|
8
8
|
constructor() {
|
|
9
9
|
this.primaryKey = 'id';
|
|
@@ -12,16 +12,30 @@ class CrudRepository {
|
|
|
12
12
|
this.dbRepository = dbRepository;
|
|
13
13
|
this.modelClass = modelClass;
|
|
14
14
|
}
|
|
15
|
-
async search(dto) {
|
|
16
|
-
const result = await SearchHelper_1.SearchHelper.search(this.dbRepository, dto);
|
|
15
|
+
async search(dto, searchQuery) {
|
|
16
|
+
const result = await SearchHelper_1.SearchHelper.search(this.dbRepository, dto, searchQuery, null);
|
|
17
17
|
result.items = result.items.map(item => this.entityToModel(item));
|
|
18
18
|
return result;
|
|
19
19
|
}
|
|
20
|
-
async findOne(
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
async findOne(conditionOrQuery) {
|
|
21
|
+
const dbQuery = this.createQueryBuilder(conditionOrQuery);
|
|
22
|
+
const row = await dbQuery.getOne();
|
|
23
|
+
return row ? this.entityToModel(row) : null;
|
|
24
|
+
}
|
|
25
|
+
async findMany(conditionOrQuery) {
|
|
26
|
+
const dbQuery = this.createQueryBuilder(conditionOrQuery);
|
|
27
|
+
const rows = await dbQuery.getMany();
|
|
28
|
+
return rows.map(row => this.entityToModel(row));
|
|
29
|
+
}
|
|
30
|
+
createQueryBuilder(conditionOrQuery) {
|
|
31
|
+
let searchQuery = conditionOrQuery;
|
|
32
|
+
if (!(conditionOrQuery instanceof SearchQuery_1.default)) {
|
|
33
|
+
searchQuery = new SearchQuery_1.default();
|
|
34
|
+
searchQuery.condition = conditionOrQuery;
|
|
35
|
+
}
|
|
36
|
+
const dbQuery = this.dbRepository.createQueryBuilder();
|
|
37
|
+
SearchQuery_1.default.prepare(this.dbRepository, dbQuery, searchQuery);
|
|
38
|
+
return dbQuery;
|
|
25
39
|
}
|
|
26
40
|
async create(model) {
|
|
27
41
|
const entity = await this.dbRepository.manager.save(this.modelToEntity(model));
|
|
@@ -39,14 +53,13 @@ class CrudRepository {
|
|
|
39
53
|
await this.dbRepository.delete(id);
|
|
40
54
|
}
|
|
41
55
|
modelToEntity(model) {
|
|
42
|
-
|
|
43
|
-
return entity;
|
|
56
|
+
return this.dbRepository.create(model);
|
|
44
57
|
}
|
|
45
58
|
entityToModel(obj) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return
|
|
59
|
+
if (!this.modelClass) {
|
|
60
|
+
throw new Error('Property modelClass is not set in repository: ' + this.constructor.name);
|
|
61
|
+
}
|
|
62
|
+
return DataMapperHelper_1.DataMapperHelper.anyToModel(obj, this.modelClass);
|
|
50
63
|
}
|
|
51
64
|
}
|
|
52
65
|
exports.CrudRepository = CrudRepository;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/CrudRepository.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"CrudRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/CrudRepository.ts"],"names":[],"mappings":"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"}
|