@steroidsjs/nest 1.1.0 → 1.1.1
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/SteroidsSchema.d.ts +6 -0
- package/infrastructure/decorators/SteroidsSchema.js +11 -0
- package/infrastructure/decorators/SteroidsSchema.js.map +1 -0
- package/infrastructure/decorators/TableFromModel.js.map +1 -1
- package/infrastructure/helpers/MetaHelper.d.ts +10 -2
- package/infrastructure/helpers/MetaHelper.js +48 -9
- package/infrastructure/helpers/MetaHelper.js.map +1 -1
- package/infrastructure/repositories/CrudRepository.d.ts +2 -1
- package/infrastructure/repositories/CrudRepository.js +2 -2
- package/infrastructure/repositories/CrudRepository.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/usecases/base/SteroidsQuery.d.ts +13 -0
- package/usecases/base/SteroidsQuery.js +16 -0
- package/usecases/base/SteroidsQuery.js.map +1 -0
- package/usecases/helpers/DataMapperHelper.js +1 -1
- package/usecases/helpers/DataMapperHelper.js.map +1 -1
- package/usecases/helpers/SearchHelper.d.ts +5 -3
- package/usecases/helpers/SearchHelper.js +29 -8
- 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 +2 -1
- package/usecases/services/CrudService.d.ts +2 -2
- package/usecases/services/CrudService.js +3 -7
- package/usecases/services/CrudService.js.map +1 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SteroidsSchema = exports.SCHEMA_META_KEY = void 0;
|
|
4
|
+
exports.SCHEMA_META_KEY = 'meta';
|
|
5
|
+
function SteroidsSchema(options = {}) {
|
|
6
|
+
return (target) => {
|
|
7
|
+
Reflect.defineMetadata(exports.SCHEMA_META_KEY, options, target);
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
exports.SteroidsSchema = SteroidsSchema;
|
|
11
|
+
//# sourceMappingURL=SteroidsSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SteroidsSchema.js","sourceRoot":"","sources":["../../../src/infrastructure/decorators/SteroidsSchema.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,MAAM,CAAC;AAOtC,SAAgB,cAAc,CAAC,UAA0B,EAAE;IACvD,OAAO,CAAC,MAAM,EAAE,EAAE;QACd,OAAO,CAAC,cAAc,CAAC,uBAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC,CAAC;AACN,CAAC;AAJD,wCAIC"}
|
|
@@ -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,15 @@
|
|
|
1
|
-
import { Connection } from 'typeorm';
|
|
2
1
|
import { IAllFieldOptions } from '../decorators/fields';
|
|
2
|
+
import { ISchemaOptions } from '../decorators/SteroidsSchema';
|
|
3
|
+
import { IQueryRelation } from '../../usecases/base/SteroidsQuery';
|
|
3
4
|
export declare class MetaHelper {
|
|
4
5
|
static getFieldOptions(ModelClass: any, fieldName: any): IAllFieldOptions;
|
|
5
|
-
static
|
|
6
|
+
static getFieldNames(AnyClass: any): string[];
|
|
7
|
+
static getSchemaOptions(SchemaClass: any): ISchemaOptions;
|
|
8
|
+
static getSchemaQueryData(SchemaClass: any): {
|
|
9
|
+
select: string[];
|
|
10
|
+
excludeSelect: string[];
|
|
11
|
+
relations: IQueryRelation[];
|
|
12
|
+
};
|
|
13
|
+
static exportModels(types: any[]): {};
|
|
6
14
|
static exportEnums(types: any[]): {};
|
|
7
15
|
}
|
|
@@ -3,20 +3,59 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MetaHelper = void 0;
|
|
4
4
|
const constants_1 = require("@nestjs/swagger/dist/constants");
|
|
5
5
|
const BaseField_1 = require("../decorators/fields/BaseField");
|
|
6
|
+
const SteroidsSchema_1 = require("../decorators/SteroidsSchema");
|
|
6
7
|
class MetaHelper {
|
|
7
8
|
static getFieldOptions(ModelClass, fieldName) {
|
|
8
|
-
return Reflect.
|
|
9
|
+
return ModelClass && Reflect.hasMetadata(BaseField_1.MODEL_META_KEY, ModelClass.prototype, fieldName)
|
|
10
|
+
? Reflect.getMetadata(BaseField_1.MODEL_META_KEY, ModelClass.prototype, fieldName)
|
|
11
|
+
: null;
|
|
9
12
|
}
|
|
10
|
-
static
|
|
13
|
+
static getFieldNames(AnyClass) {
|
|
14
|
+
return AnyClass && Reflect.hasMetadata(BaseField_1.MODEL_FIELD_NAMES_KEY, AnyClass.prototype)
|
|
15
|
+
? Reflect.getMetadata(BaseField_1.MODEL_FIELD_NAMES_KEY, AnyClass.prototype)
|
|
16
|
+
: null;
|
|
17
|
+
}
|
|
18
|
+
static getSchemaOptions(SchemaClass) {
|
|
19
|
+
return SchemaClass && Reflect.hasMetadata(SteroidsSchema_1.SCHEMA_META_KEY, SchemaClass)
|
|
20
|
+
? Reflect.getMetadata(SteroidsSchema_1.SCHEMA_META_KEY, SchemaClass)
|
|
21
|
+
: null;
|
|
22
|
+
}
|
|
23
|
+
static getSchemaQueryData(SchemaClass) {
|
|
24
|
+
const options = this.getSchemaOptions(SchemaClass);
|
|
25
|
+
const relations = [];
|
|
26
|
+
(MetaHelper.getFieldNames(SchemaClass) || []).forEach(fieldName => {
|
|
27
|
+
const modelMeta = MetaHelper.getFieldOptions(SchemaClass, fieldName);
|
|
28
|
+
if (modelMeta.appType === 'relation') {
|
|
29
|
+
if (/Ids?$/.exec(fieldName)) {
|
|
30
|
+
relations.push({
|
|
31
|
+
isId: true,
|
|
32
|
+
name: fieldName.replace(/Ids?$/, ''),
|
|
33
|
+
alias: fieldName,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
relations.push({
|
|
38
|
+
name: fieldName,
|
|
39
|
+
alias: fieldName,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
select: (options === null || options === void 0 ? void 0 : options.select) || undefined,
|
|
46
|
+
excludeSelect: (options === null || options === void 0 ? void 0 : options.excludeSelect) || undefined,
|
|
47
|
+
relations: relations.length > 0 ? relations : undefined,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
static exportModels(types) {
|
|
11
51
|
const result = {};
|
|
12
52
|
types.forEach(type => {
|
|
13
|
-
const
|
|
14
|
-
result[
|
|
15
|
-
attributes:
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
return Object.assign({ attribute, type: modelMeta.appType || 'string', label: modelMeta.label || apiMeta.description, required: apiMeta.required }, (modelMeta.items ? { items: modelMeta.items } : {}));
|
|
53
|
+
const fieldNames = this.getFieldNames(type);
|
|
54
|
+
result[type.name] = {
|
|
55
|
+
attributes: fieldNames.map(fieldName => {
|
|
56
|
+
const apiMeta = Reflect.getMetadata(constants_1.DECORATORS.API_MODEL_PROPERTIES, type.prototype, fieldName);
|
|
57
|
+
const modelMeta = Reflect.getMetadata(BaseField_1.MODEL_META_KEY, type.prototype, fieldName);
|
|
58
|
+
return Object.assign({ attribute: fieldName, type: modelMeta.appType || 'string', label: modelMeta.label || apiMeta.description, required: apiMeta.required }, (modelMeta.items ? { items: modelMeta.items } : {}));
|
|
20
59
|
}),
|
|
21
60
|
};
|
|
22
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetaHelper.js","sourceRoot":"","sources":["../../../src/infrastructure/helpers/MetaHelper.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MetaHelper.js","sourceRoot":"","sources":["../../../src/infrastructure/helpers/MetaHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,12 +3,13 @@ import { ICrudRepository } from '../../usecases/interfaces/ICrudRepository';
|
|
|
3
3
|
import { SearchInputDto } from '../../usecases/dtos/SearchInputDto';
|
|
4
4
|
import { ICondition } from '../helpers/ConditionHelper';
|
|
5
5
|
import { SearchResultDto } from '../../usecases/dtos/SearchResultDto';
|
|
6
|
+
import SteroidsQuery from '../../usecases/base/SteroidsQuery';
|
|
6
7
|
export declare class CrudRepository<TModel> implements ICrudRepository<TModel> {
|
|
7
8
|
primaryKey: string;
|
|
8
9
|
dbRepository: Repository<any>;
|
|
9
10
|
protected modelClass: any;
|
|
10
11
|
init(dbRepository: Repository<any>, modelClass: any): void;
|
|
11
|
-
search(
|
|
12
|
+
search(query: SteroidsQuery<SearchInputDto>): Promise<SearchResultDto<TModel>>;
|
|
12
13
|
findOne(condition: ICondition): Promise<TModel | null>;
|
|
13
14
|
create(model: TModel): Promise<TModel>;
|
|
14
15
|
update(id: number, model: TModel): Promise<TModel>;
|
|
@@ -12,8 +12,8 @@ class CrudRepository {
|
|
|
12
12
|
this.dbRepository = dbRepository;
|
|
13
13
|
this.modelClass = modelClass;
|
|
14
14
|
}
|
|
15
|
-
async search(
|
|
16
|
-
const result = await SearchHelper_1.SearchHelper.search(this.dbRepository,
|
|
15
|
+
async search(query) {
|
|
16
|
+
const result = await SearchHelper_1.SearchHelper.search(this.dbRepository, query, null);
|
|
17
17
|
result.items = result.items.map(item => this.entityToModel(item));
|
|
18
18
|
return result;
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrudRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/CrudRepository.ts"],"names":[],"mappings":";;;AACA,yDAAkD;AAClD,sEAAiE;AAGjE,gEAAuE;
|
|
1
|
+
{"version":3,"file":"CrudRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/CrudRepository.ts"],"names":[],"mappings":";;;AACA,yDAAkD;AAClD,sEAAiE;AAGjE,gEAAuE;AAOvE,MAAa,cAAc;IAA3B;QAIW,eAAU,GAAW,IAAI,CAAC;IAgGrC,CAAC;IAlFU,IAAI,CAAC,YAA6B,EAAE,UAAe;QACtD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,CAAC;IAMD,KAAK,CAAC,MAAM,CAAC,KAAoC;QAC7C,MAAM,MAAM,GAAG,MAAM,2BAAY,CAAC,MAAM,CAAS,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjF,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IAClB,CAAC;IAMD,KAAK,CAAC,OAAO,CAAC,SAAqB;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YAC3C,KAAK,EAAE,iCAAe,CAAC,SAAS,CAAC,SAAS,CAAC;SAC9C,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;IAMD,KAAK,CAAC,MAAM,CAAC,KAAa;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAOD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAAa;QAClC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;SACnD;QACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,iCAAK,SAAS,GAAK,KAAK,EAAE,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAMD,KAAK,CAAC,MAAM,CAAC,EAAU;QACnB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAOS,aAAa,CAAC,KAAK;QAIzB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAClB,CAAC;IAOS,aAAa,CAAC,GAAQ;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAiB,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAA,mCAAe,EAAC,GAAG,CAAC,CAAC,CAAC;QAE3C,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AApGD,wCAoGC"}
|