@node-c/api-rest 1.0.0-beta0 → 1.0.0-beta1
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.
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { ValidationPipe } from '@nestjs/common';
|
|
1
|
+
import { LoggerService, ValidationPipe } from '@nestjs/common';
|
|
2
2
|
import { DataDefaultData, DomainBulkCreateResult, DomainCreateResult, DomainDeleteOptions, DomainDeleteResult, DomainEntityServiceDefaultData, DomainFindOneOptions, DomainFindOneResult, DomainFindOptions, DomainFindResult, DomainUpdateResult } from '@node-c/core';
|
|
3
3
|
import { BulkCreateBody, CreateBody, DefaultDomainEntityService, UpdateBody } from './rest.entity.controller.definitions';
|
|
4
4
|
import { DefaultDtos } from './rest.entity.controller.dto.definitions';
|
|
5
5
|
export declare class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extends DefaultDomainEntityService<Entity, DomainEntityServiceData, DataEntityServiceData>, DomainEntityServiceData extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>, DataEntityServiceData extends DataDefaultData<Entity> = DataDefaultData<Entity>> {
|
|
6
6
|
protected domainEntityService: EntityDomainService;
|
|
7
|
+
protected logger: LoggerService;
|
|
7
8
|
protected defaultRouteMethods?: string[] | undefined;
|
|
8
9
|
inUseDefaultRoutes: {
|
|
9
10
|
[handlerName: string]: boolean;
|
|
10
11
|
};
|
|
11
|
-
constructor(domainEntityService: EntityDomainService, defaultRouteMethods?: string[] | undefined);
|
|
12
|
+
constructor(domainEntityService: EntityDomainService, logger: LoggerService, defaultRouteMethods?: string[] | undefined);
|
|
12
13
|
protected checkRoute(handlerName: string): void;
|
|
13
14
|
bulkCreate(_body: BulkCreateBody<Entity>, ..._args: unknown[]): Promise<DomainBulkCreateResult<Entity> | void>;
|
|
14
15
|
create(_body: CreateBody<Entity>, ..._args: unknown[]): Promise<DomainCreateResult<Entity> | void>;
|
|
@@ -28,6 +29,7 @@ export declare class RESTAPIEntityControler<Entity, EntityDomainService extends
|
|
|
28
29
|
findOne?: Dto['FindOne'];
|
|
29
30
|
update?: Dto['Update'];
|
|
30
31
|
};
|
|
32
|
+
protected logger: LoggerService;
|
|
31
33
|
protected defaultRouteMethods: string[];
|
|
32
34
|
protected settings: {
|
|
33
35
|
validationWhitelist?: boolean;
|
|
@@ -40,7 +42,7 @@ export declare class RESTAPIEntityControler<Entity, EntityDomainService extends
|
|
|
40
42
|
find?: Dto['Find'];
|
|
41
43
|
findOne?: Dto['FindOne'];
|
|
42
44
|
update?: Dto['Update'];
|
|
43
|
-
}, defaultRouteMethods?: string[]);
|
|
45
|
+
}, logger: LoggerService, defaultRouteMethods?: string[]);
|
|
44
46
|
bulkCreate(body: Dto['BulkCreate'], ...args: unknown[]): Promise<DomainBulkCreateResult<Entity> | void>;
|
|
45
47
|
create(body: Dto['Create'], ...args: unknown[]): Promise<DomainCreateResult<Entity> | void>;
|
|
46
48
|
delete(body: Dto['Delete'], ...args: unknown[]): Promise<DomainDeleteResult<Entity> | void>;
|
|
@@ -37,8 +37,9 @@ const common_1 = require("@nestjs/common");
|
|
|
37
37
|
const api_http_1 = require("@node-c/api-http");
|
|
38
38
|
const dto_1 = require("./dto");
|
|
39
39
|
let RESTAPIEntityControlerWithoutDto = class RESTAPIEntityControlerWithoutDto {
|
|
40
|
-
constructor(domainEntityService, defaultRouteMethods) {
|
|
40
|
+
constructor(domainEntityService, logger, defaultRouteMethods) {
|
|
41
41
|
this.domainEntityService = domainEntityService;
|
|
42
|
+
this.logger = logger;
|
|
42
43
|
this.defaultRouteMethods = defaultRouteMethods;
|
|
43
44
|
this.refreshDefaultRoutes();
|
|
44
45
|
}
|
|
@@ -146,13 +147,14 @@ __decorate([
|
|
|
146
147
|
], RESTAPIEntityControlerWithoutDto.prototype, "update", null);
|
|
147
148
|
exports.RESTAPIEntityControlerWithoutDto = RESTAPIEntityControlerWithoutDto = __decorate([
|
|
148
149
|
(0, common_1.UseInterceptors)(api_http_1.HTTPAccessControlInterceptor, api_http_1.HTTPErrorInterceptor),
|
|
149
|
-
__metadata("design:paramtypes", [Object, Array])
|
|
150
|
+
__metadata("design:paramtypes", [Object, Object, Array])
|
|
150
151
|
], RESTAPIEntityControlerWithoutDto);
|
|
151
152
|
class RESTAPIEntityControler extends RESTAPIEntityControlerWithoutDto {
|
|
152
|
-
constructor(domainEntityService, dto, defaultRouteMethods) {
|
|
153
|
-
super(domainEntityService, Object.keys(dto || {}).concat(defaultRouteMethods || []));
|
|
153
|
+
constructor(domainEntityService, dto, logger, defaultRouteMethods) {
|
|
154
|
+
super(domainEntityService, logger, Object.keys(dto || {}).concat(defaultRouteMethods || []));
|
|
154
155
|
this.domainEntityService = domainEntityService;
|
|
155
156
|
this.dto = dto;
|
|
157
|
+
this.logger = logger;
|
|
156
158
|
this.settings = { validationWhitelist: true };
|
|
157
159
|
const { validationWhitelist } = this.settings;
|
|
158
160
|
this.validationPipe = new common_1.ValidationPipe({ whitelist: validationWhitelist });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.entity.controller.js","sourceRoot":"","sources":["../../src/entityController/rest.entity.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"rest.entity.controller.js","sourceRoot":"","sources":["../../src/entityController/rest.entity.controller.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-c/api-rest",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-beta1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"check-types": "tsc -p tsconfig.build.json --noEmit",
|
|
10
10
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
11
11
|
"lint": "eslint src",
|
|
12
|
+
"lint:fix": "eslint src --fix",
|
|
12
13
|
"publish-package": "npm run build:clean && npm publish --access public",
|
|
13
14
|
"test": "vitest --config src/vitest.config.ts",
|
|
14
15
|
"test:coverage": "vitest --config src/vitest.config.ts --coverage"
|
|
@@ -19,7 +20,7 @@
|
|
|
19
20
|
"class-validator": "^0.14.1"
|
|
20
21
|
},
|
|
21
22
|
"peerDependencies": {
|
|
22
|
-
"@node-c/api-http": "^1.0.0-
|
|
23
|
-
"@node-c/core": "^1.0.0-
|
|
23
|
+
"@node-c/api-http": "^1.0.0-beta1",
|
|
24
|
+
"@node-c/core": "^1.0.0-beta1"
|
|
24
25
|
}
|
|
25
26
|
}
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
Get,
|
|
5
5
|
HttpException,
|
|
6
6
|
HttpStatus,
|
|
7
|
+
LoggerService,
|
|
7
8
|
Param,
|
|
8
9
|
Patch,
|
|
9
10
|
Post,
|
|
@@ -59,6 +60,8 @@ export class RESTAPIEntityControlerWithoutDto<
|
|
|
59
60
|
// eslint-disable-next-line no-unused-vars
|
|
60
61
|
protected domainEntityService: EntityDomainService,
|
|
61
62
|
// eslint-disable-next-line no-unused-vars
|
|
63
|
+
protected logger: LoggerService,
|
|
64
|
+
// eslint-disable-next-line no-unused-vars
|
|
62
65
|
protected defaultRouteMethods?: string[]
|
|
63
66
|
) {
|
|
64
67
|
this.refreshDefaultRoutes();
|
|
@@ -140,7 +143,7 @@ export class RESTAPIEntityControlerWithoutDto<
|
|
|
140
143
|
/*
|
|
141
144
|
* For reference on why the dto validation was done in this way - it's a limitation of Typescript itself:
|
|
142
145
|
* the compiler doesn't emit generic type metadata, making it impossible to achieve a DRY OOP base class with schema validation.
|
|
143
|
-
* At this point, it's a decade-old issue
|
|
146
|
+
* At this point, it's a decade-old issue.
|
|
144
147
|
*/
|
|
145
148
|
export class RESTAPIEntityControler<
|
|
146
149
|
Entity,
|
|
@@ -163,9 +166,10 @@ export class RESTAPIEntityControler<
|
|
|
163
166
|
findOne?: Dto['FindOne'];
|
|
164
167
|
update?: Dto['Update'];
|
|
165
168
|
},
|
|
169
|
+
protected logger: LoggerService,
|
|
166
170
|
defaultRouteMethods?: string[]
|
|
167
171
|
) {
|
|
168
|
-
super(domainEntityService, Object.keys(dto || {}).concat(defaultRouteMethods || []));
|
|
172
|
+
super(domainEntityService, logger, Object.keys(dto || {}).concat(defaultRouteMethods || []));
|
|
169
173
|
// const finalDto: typeof dto = {};
|
|
170
174
|
// finalDto.bulkCreate = dto?.bulkCreate || BaseBulkCreateDto<Entity, BulkCreateOptions<Entity>>;
|
|
171
175
|
const { validationWhitelist } = this.settings;
|