nicot 1.0.18 → 1.0.20
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/README.md +3 -2
- package/dist/src/bases/time-base.d.ts +0 -1
- package/dist/src/bases/time-base.js +1 -6
- package/dist/src/bases/time-base.js.map +1 -1
- package/dist/src/decorators/access.d.ts +1 -1
- package/dist/src/decorators/access.js +10 -2
- package/dist/src/decorators/access.js.map +1 -1
- package/dist/src/decorators/property.js +6 -1
- package/dist/src/decorators/property.js.map +1 -1
- package/dist/src/decorators/restful.d.ts +14 -2
- package/dist/src/decorators/restful.js +26 -5
- package/dist/src/decorators/restful.js.map +1 -1
- package/dist/src/dto/import-entry.d.ts +7 -1
- package/dist/src/dto/import-entry.js +18 -1
- package/dist/src/dto/import-entry.js.map +1 -1
- package/dist/src/utility/metadata.d.ts +13 -0
- package/dist/src/utility/metadata.js +13 -0
- package/dist/src/utility/metadata.js.map +1 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -89,7 +89,8 @@ Would also register proper OpenAPI documentation for the controller.
|
|
|
89
89
|
|
|
90
90
|
```ts
|
|
91
91
|
const dec = new RestfulFactory(User);
|
|
92
|
-
class
|
|
92
|
+
class FindAllUsersDto extends dec.findAllDto {} // to extract type and class
|
|
93
|
+
class UpdateUserDto extends dec.updateDto {}
|
|
93
94
|
|
|
94
95
|
@Controller('user')
|
|
95
96
|
export class UserController {
|
|
@@ -106,7 +107,7 @@ export class UserController {
|
|
|
106
107
|
}
|
|
107
108
|
|
|
108
109
|
@dec.findAll() // GET /
|
|
109
|
-
findAll(@dec.findAllParam() user:
|
|
110
|
+
findAll(@dec.findAllParam() user: FindAllUsersDto) {
|
|
110
111
|
return this.userService.findAll(user);
|
|
111
112
|
}
|
|
112
113
|
|
|
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.TimeBase = void 0;
|
|
13
13
|
const typeorm_1 = require("typeorm");
|
|
14
14
|
const decorators_1 = require("../decorators");
|
|
15
15
|
const page_settings_1 = require("./page-settings");
|
|
@@ -47,9 +47,4 @@ __decorate([
|
|
|
47
47
|
__metadata("design:type", Date)
|
|
48
48
|
], TimeBase.prototype, "deleteTime", void 0);
|
|
49
49
|
exports.TimeBase = TimeBase;
|
|
50
|
-
exports.TimeBaseFields = [
|
|
51
|
-
'createTime',
|
|
52
|
-
'updateTime',
|
|
53
|
-
'deleteTime',
|
|
54
|
-
];
|
|
55
50
|
//# sourceMappingURL=time-base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-base.js","sourceRoot":"","sources":["../../../src/bases/time-base.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA+E;AAC/E,8CAA0C;AAC1C,mDAAkD;AAgBlD,MAAa,QACX,SAAQ,+BAAe;IAevB,eAAe;QACb,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,YAAY,KAAmB,CAAC;IAEtC,gEAAgE;IAChE,KAAK,CAAC,WAAW,KAAmB,CAAC;IAErC,gEAAgE;IAChE,KAAK,CAAC,SAAS,KAAmB,CAAC;IAEnC,gEAAgE;IAChE,KAAK,CAAC,QAAQ,KAAmB,CAAC;IAElC,eAAe;QACb,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,YAAY,KAAmB,CAAC;CACvC;AAhCC;IAFC,IAAA,0BAAgB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACnC,IAAA,sBAAS,GAAE;8BACA,IAAI;4CAAC;AAIjB;IAFC,IAAA,0BAAgB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACnC,IAAA,sBAAS,GAAE;8BACA,IAAI;4CAAC;AAIjB;IAFC,IAAA,0BAAgB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACnC,IAAA,sBAAS,GAAE;8BACA,IAAI;4CAAC;AAdnB,4BAsCC
|
|
1
|
+
{"version":3,"file":"time-base.js","sourceRoot":"","sources":["../../../src/bases/time-base.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAA+E;AAC/E,8CAA0C;AAC1C,mDAAkD;AAgBlD,MAAa,QACX,SAAQ,+BAAe;IAevB,eAAe;QACb,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,YAAY,KAAmB,CAAC;IAEtC,gEAAgE;IAChE,KAAK,CAAC,WAAW,KAAmB,CAAC;IAErC,gEAAgE;IAChE,KAAK,CAAC,SAAS,KAAmB,CAAC;IAEnC,gEAAgE;IAChE,KAAK,CAAC,QAAQ,KAAmB,CAAC;IAElC,eAAe;QACb,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,YAAY,KAAmB,CAAC;CACvC;AAhCC;IAFC,IAAA,0BAAgB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACnC,IAAA,sBAAS,GAAE;8BACA,IAAI;4CAAC;AAIjB;IAFC,IAAA,0BAAgB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACnC,IAAA,sBAAS,GAAE;8BACA,IAAI;4CAAC;AAIjB;IAFC,IAAA,0BAAgB,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACnC,IAAA,sBAAS,GAAE;8BACA,IAAI;4CAAC;AAdnB,4BAsCC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const NotWritable: () => PropertyDecorator;
|
|
2
|
-
export declare const NotChangeable: () => PropertyDecorator
|
|
2
|
+
export declare const NotChangeable: () => PropertyDecorator;
|
|
@@ -3,9 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.NotChangeable = exports.NotWritable = void 0;
|
|
4
4
|
const class_transformer_1 = require("class-transformer");
|
|
5
5
|
const class_validator_1 = require("class-validator");
|
|
6
|
+
const metadata_1 = require("../utility/metadata");
|
|
6
7
|
const merge_1 = require("./merge");
|
|
7
|
-
const NotWritable = () => (0, merge_1.MergePropertyDecorators)([
|
|
8
|
+
const NotWritable = () => (0, merge_1.MergePropertyDecorators)([
|
|
9
|
+
(0, class_transformer_1.Expose)({ groups: ['r'] }),
|
|
10
|
+
(0, class_validator_1.IsOptional)(),
|
|
11
|
+
metadata_1.Metadata.set('notWritable', true, 'notWritableFields'),
|
|
12
|
+
]);
|
|
8
13
|
exports.NotWritable = NotWritable;
|
|
9
|
-
const NotChangeable = () => (0,
|
|
14
|
+
const NotChangeable = () => (0, merge_1.MergePropertyDecorators)([
|
|
15
|
+
(0, class_transformer_1.Expose)({ groups: ['r', 'c'] }),
|
|
16
|
+
metadata_1.Metadata.set('notChangeable', true, 'notChangeableFields'),
|
|
17
|
+
]);
|
|
10
18
|
exports.NotChangeable = NotChangeable;
|
|
11
19
|
//# sourceMappingURL=access.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../src/decorators/access.ts"],"names":[],"mappings":";;;AAAA,yDAA2C;AAC3C,qDAA6C;AAC7C,mCAAkD;AAE3C,MAAM,WAAW,GAAG,GAAG,EAAE,CAC9B,IAAA,+BAAuB,EAAC,
|
|
1
|
+
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../../src/decorators/access.ts"],"names":[],"mappings":";;;AAAA,yDAA2C;AAC3C,qDAA6C;AAC7C,kDAA+C;AAC/C,mCAAkD;AAE3C,MAAM,WAAW,GAAG,GAAG,EAAE,CAC9B,IAAA,+BAAuB,EAAC;IACtB,IAAA,0BAAM,EAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACzB,IAAA,4BAAU,GAAE;IACZ,mBAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,mBAAmB,CAAC;CACvD,CAAC,CAAC;AALQ,QAAA,WAAW,eAKnB;AACE,MAAM,aAAa,GAAG,GAAG,EAAE,CAChC,IAAA,+BAAuB,EAAC;IACtB,IAAA,0BAAM,EAAC,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAC9B,mBAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,qBAAqB,CAAC;CAC3D,CAAC,CAAC;AAJQ,QAAA,aAAa,iBAIrB"}
|
|
@@ -7,6 +7,7 @@ const typeorm_1 = require("typeorm");
|
|
|
7
7
|
const class_validator_1 = require("class-validator");
|
|
8
8
|
const class_transformer_1 = require("class-transformer");
|
|
9
9
|
const bigint_1 = require("../utility/bigint");
|
|
10
|
+
const metadata_1 = require("../utility/metadata");
|
|
10
11
|
function swaggerDecorator(options, injected = {}) {
|
|
11
12
|
return (0, swagger_1.ApiProperty)({
|
|
12
13
|
default: options.default,
|
|
@@ -112,6 +113,10 @@ const BoolColumn = (options = {}) => (0, merge_1.MergePropertyDecorators)([
|
|
|
112
113
|
swaggerDecorator(options, { type: Boolean }),
|
|
113
114
|
]);
|
|
114
115
|
exports.BoolColumn = BoolColumn;
|
|
115
|
-
const NotColumn = (options = {}) => (0, merge_1.MergePropertyDecorators)([
|
|
116
|
+
const NotColumn = (options = {}) => (0, merge_1.MergePropertyDecorators)([
|
|
117
|
+
(0, class_transformer_1.Exclude)(),
|
|
118
|
+
swaggerDecorator(options),
|
|
119
|
+
metadata_1.Metadata.set('notColumn', true, 'notColumnFields'),
|
|
120
|
+
]);
|
|
116
121
|
exports.NotColumn = NotColumn;
|
|
117
122
|
//# sourceMappingURL=property.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.js","sourceRoot":"","sources":["../../../src/decorators/property.ts"],"names":[],"mappings":";;;AACA,6CAAkE;AAElE,mCAAkD;AAClD,qCAAwC;AACxC,qDASyB;AAOzB,yDAA4C;AAC5C,8CAAsD;
|
|
1
|
+
{"version":3,"file":"property.js","sourceRoot":"","sources":["../../../src/decorators/property.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,14 +6,25 @@ export interface RestfulFactoryOptions<T> {
|
|
|
6
6
|
export declare class RestfulFactory<T> {
|
|
7
7
|
readonly entityClass: ClassType<T>;
|
|
8
8
|
private options;
|
|
9
|
-
readonly createDto: ClassType<Omit<T, keyof T>>;
|
|
10
|
-
readonly updateDto: ClassType<Partial<Omit<T, keyof T>>>;
|
|
11
9
|
readonly entityReturnMessageDto: new (statusCode: number, message?: string, data?: unknown) => import("../dto").GenericReturnMessageDto<unknown> & {
|
|
12
10
|
data: T;
|
|
13
11
|
};
|
|
14
12
|
readonly entityArrayReturnMessageDto: new (statusCode: number, message: string, data: unknown[], total: number, pageSettings: import("../bases").PageSettingsWise) => import("../dto").GenericPaginatedReturnMessageDto<unknown> & {
|
|
15
13
|
data: T[];
|
|
16
14
|
};
|
|
15
|
+
readonly importReturnMessageDto: new (statusCode: number, message?: string, data?: unknown) => import("../dto").GenericReturnMessageDto<unknown> & {
|
|
16
|
+
data: import("../dto").ImportEntryBaseDto & {
|
|
17
|
+
entry: T;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
readonly fieldsToOmit: (keyof T)[];
|
|
21
|
+
private readonly basicDto;
|
|
22
|
+
readonly createDto: ClassType<T>;
|
|
23
|
+
readonly importDto: new () => import("../dto").ImportDataBaseDto<unknown> & {
|
|
24
|
+
entry: T[];
|
|
25
|
+
};
|
|
26
|
+
readonly findAllDto: ClassType<T>;
|
|
27
|
+
readonly updateDto: ClassType<T>;
|
|
17
28
|
readonly idType: Function;
|
|
18
29
|
constructor(entityClass: ClassType<T>, options?: RestfulFactoryOptions<T>);
|
|
19
30
|
create(extras?: Partial<OperationObject>): MethodDecorator;
|
|
@@ -25,4 +36,5 @@ export declare class RestfulFactory<T> {
|
|
|
25
36
|
update(extras?: Partial<OperationObject>): MethodDecorator;
|
|
26
37
|
updateParam(): ParameterDecorator;
|
|
27
38
|
delete(extras?: Partial<OperationObject>): MethodDecorator;
|
|
39
|
+
import(extras?: Partial<OperationObject>): MethodDecorator;
|
|
28
40
|
}
|
|
@@ -1,23 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.RestfulFactory = void 0;
|
|
4
7
|
const common_1 = require("@nestjs/common");
|
|
5
8
|
const dto_1 = require("../dto");
|
|
6
9
|
const merge_1 = require("./merge");
|
|
7
|
-
const bases_1 = require("../bases");
|
|
8
10
|
const swagger_1 = require("@nestjs/swagger");
|
|
9
11
|
const pipes_1 = require("./pipes");
|
|
12
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
13
|
+
const metadata_1 = require("../utility/metadata");
|
|
10
14
|
class RestfulFactory {
|
|
11
15
|
constructor(entityClass, options = {}) {
|
|
12
16
|
this.entityClass = entityClass;
|
|
13
17
|
this.options = options;
|
|
14
18
|
this.entityReturnMessageDto = (0, dto_1.ReturnMessageDto)(this.entityClass);
|
|
15
19
|
this.entityArrayReturnMessageDto = (0, dto_1.PaginatedReturnMessageDto)(this.entityClass);
|
|
16
|
-
this.
|
|
17
|
-
|
|
18
|
-
...(
|
|
20
|
+
this.importReturnMessageDto = (0, dto_1.ReturnMessageDto)((0, dto_1.ImportEntryDto)(this.entityClass));
|
|
21
|
+
this.fieldsToOmit = lodash_1.default.uniq([
|
|
22
|
+
...(0, metadata_1.getSpecificFields)(this.entityClass, 'notColumn'),
|
|
23
|
+
...(this.options.fieldsToOmit || []),
|
|
19
24
|
]);
|
|
20
|
-
this.
|
|
25
|
+
this.basicDto = (0, swagger_1.OmitType)(this.entityClass, this.fieldsToOmit);
|
|
26
|
+
this.createDto = (0, swagger_1.OmitType)(this.entityClass, (0, metadata_1.getSpecificFields)(this.entityClass, 'notWritable'));
|
|
27
|
+
this.importDto = (0, dto_1.ImportDataDto)(this.createDto);
|
|
28
|
+
this.findAllDto = (0, swagger_1.PartialType)(this.basicDto);
|
|
29
|
+
this.updateDto = (0, swagger_1.PartialType)((0, swagger_1.OmitType)(this.createDto, (0, metadata_1.getSpecificFields)(this.entityClass, 'notChangeable')));
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
21
31
|
this.idType = Reflect.getMetadata('design:type', this.entityClass.prototype, 'id');
|
|
22
32
|
}
|
|
23
33
|
create(extras = {}) {
|
|
@@ -89,6 +99,17 @@ class RestfulFactory {
|
|
|
89
99
|
(0, swagger_1.ApiNoContentResponse)({ type: dto_1.BlankReturnMessageDto }),
|
|
90
100
|
]);
|
|
91
101
|
}
|
|
102
|
+
import(extras = {}) {
|
|
103
|
+
return (0, merge_1.MergeMethodDecorators)([
|
|
104
|
+
(0, common_1.Post)('import'),
|
|
105
|
+
(0, swagger_1.ApiOperation)({
|
|
106
|
+
summary: `Import ${this.entityClass.name}`,
|
|
107
|
+
...extras,
|
|
108
|
+
}),
|
|
109
|
+
(0, swagger_1.ApiBody)({ type: this.importDto }),
|
|
110
|
+
(0, swagger_1.ApiCreatedResponse)({ type: this.importReturnMessageDto }),
|
|
111
|
+
]);
|
|
112
|
+
}
|
|
92
113
|
}
|
|
93
114
|
exports.RestfulFactory = RestfulFactory;
|
|
94
115
|
//# sourceMappingURL=restful.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restful.js","sourceRoot":"","sources":["../../../src/decorators/restful.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"restful.js","sourceRoot":"","sources":["../../../src/decorators/restful.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ClassOrArray } from '../utility/insert-field';
|
|
1
|
+
import { AnyClass, ClassOrArray } from '../utility/insert-field';
|
|
2
2
|
export declare class ImportEntryBaseDto {
|
|
3
3
|
result: string;
|
|
4
4
|
}
|
|
@@ -9,3 +9,9 @@ export interface ImportEntry<T> {
|
|
|
9
9
|
export declare function ImportEntryDto<C extends ClassOrArray>(type: C): new () => ImportEntryBaseDto & {
|
|
10
10
|
entry: import("../utility/insert-field").ParseType<C>;
|
|
11
11
|
};
|
|
12
|
+
export declare class ImportDataBaseDto<T> {
|
|
13
|
+
data: T[];
|
|
14
|
+
}
|
|
15
|
+
export declare function ImportDataDto<C extends AnyClass>(type: C): new () => ImportDataBaseDto<unknown> & {
|
|
16
|
+
entry: import("../utility/insert-field").TypeFromClass<C>[];
|
|
17
|
+
};
|
|
@@ -9,8 +9,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ImportEntryDto = exports.ImportEntryBaseDto = void 0;
|
|
12
|
+
exports.ImportDataDto = exports.ImportDataBaseDto = exports.ImportEntryDto = exports.ImportEntryBaseDto = void 0;
|
|
13
13
|
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const class_validator_1 = require("class-validator");
|
|
14
16
|
const insert_field_1 = require("../utility/insert-field");
|
|
15
17
|
class ImportEntryBaseDto {
|
|
16
18
|
}
|
|
@@ -25,4 +27,19 @@ function ImportEntryDto(type) {
|
|
|
25
27
|
}, `${(0, insert_field_1.getClassFromClassOrArray)(type).name}ImportEntry`);
|
|
26
28
|
}
|
|
27
29
|
exports.ImportEntryDto = ImportEntryDto;
|
|
30
|
+
class ImportDataBaseDto {
|
|
31
|
+
}
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_validator_1.ValidateNested)(),
|
|
34
|
+
__metadata("design:type", Array)
|
|
35
|
+
], ImportDataBaseDto.prototype, "data", void 0);
|
|
36
|
+
exports.ImportDataBaseDto = ImportDataBaseDto;
|
|
37
|
+
function ImportDataDto(type) {
|
|
38
|
+
const dtoClass = (0, insert_field_1.InsertField)(ImportDataBaseDto, {
|
|
39
|
+
entry: { type: [type], options: { description: 'Import data' } },
|
|
40
|
+
}, `${(0, insert_field_1.getClassFromClassOrArray)(type).name}ImportData`);
|
|
41
|
+
(0, class_transformer_1.Type)(() => dtoClass)(dtoClass.prototype, 'data');
|
|
42
|
+
return dtoClass;
|
|
43
|
+
}
|
|
44
|
+
exports.ImportDataDto = ImportDataDto;
|
|
28
45
|
//# sourceMappingURL=import-entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-entry.js","sourceRoot":"","sources":["../../../src/dto/import-entry.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"import-entry.js","sourceRoot":"","sources":["../../../src/dto/import-entry.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAAiD;AACjD,0DAKiC;AAEjC,MAAa,kBAAkB;CAG9B;AADC;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kDAC7C;AAFjB,gDAGC;AAOD,SAAgB,cAAc,CAAyB,IAAO;IAC5D,OAAO,IAAA,0BAAW,EAChB,kBAAkB,EAClB;QACE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;KAC1D,EACD,GAAG,IAAA,uCAAwB,EAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CACpD,CAAC;AACJ,CAAC;AARD,wCAQC;AAED,MAAa,iBAAiB;CAG7B;AADC;IADC,IAAA,gCAAc,GAAE;;+CACP;AAFZ,8CAGC;AAED,SAAgB,aAAa,CAAqB,IAAO;IACvD,MAAM,QAAQ,GAAG,IAAA,0BAAW,EAC1B,iBAAiB,EACjB;QACE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE;KACjE,EACD,GAAG,IAAA,uCAAwB,EAAC,IAAI,CAAC,CAAC,IAAI,YAAY,CACnD,CAAC;IACF,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,sCAUC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MetadataSetter, Reflector } from 'typed-reflector';
|
|
2
|
+
export interface SpecificFields {
|
|
3
|
+
notColumn: boolean;
|
|
4
|
+
notWritable: boolean;
|
|
5
|
+
notChangeable: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare type MetadataArrayMap = {
|
|
8
|
+
[K in keyof SpecificFields as `${K}Fields`]: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const Metadata: MetadataSetter<SpecificFields, MetadataArrayMap>;
|
|
11
|
+
export declare const reflector: Reflector<SpecificFields, MetadataArrayMap>;
|
|
12
|
+
export declare function getSpecificFields(obj: any, type: keyof SpecificFields): string[];
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSpecificFields = exports.reflector = exports.Metadata = void 0;
|
|
4
|
+
const typed_reflector_1 = require("typed-reflector");
|
|
5
|
+
exports.Metadata = new typed_reflector_1.MetadataSetter();
|
|
6
|
+
exports.reflector = new typed_reflector_1.Reflector();
|
|
7
|
+
function getSpecificFields(obj, type) {
|
|
8
|
+
return exports.reflector
|
|
9
|
+
.getArray(`${type}Fields`, obj)
|
|
10
|
+
.filter((field) => exports.reflector.get(type, obj, field));
|
|
11
|
+
}
|
|
12
|
+
exports.getSpecificFields = getSpecificFields;
|
|
13
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/utility/metadata.ts"],"names":[],"mappings":";;;AAAA,qDAA4D;AAS/C,QAAA,QAAQ,GAAG,IAAI,gCAAc,EAAoC,CAAC;AAClE,QAAA,SAAS,GAAG,IAAI,2BAAS,EAAoC,CAAC;AAE3E,SAAgB,iBAAiB,CAAC,GAAQ,EAAE,IAA0B;IACpE,OAAO,iBAAS;SACb,QAAQ,CAAC,GAAG,IAAI,QAAQ,EAAE,GAAG,CAAC;SAC9B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,CAAC;AAJD,8CAIC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nicot",
|
|
3
3
|
"description": "Nest.js interacting with class-validator + OpenAPI + TypeORM for Nest.js Restful API development.",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.20",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -67,6 +67,7 @@
|
|
|
67
67
|
"typeorm": "^0.3.10"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"lodash": "^4.17.21"
|
|
70
|
+
"lodash": "^4.17.21",
|
|
71
|
+
"typed-reflector": "^1.0.11"
|
|
71
72
|
}
|
|
72
73
|
}
|