@dooboostore/simple-boot-http-server 1.0.24 → 1.0.26
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 +113 -0
- package/dist/cjs/SimpleBootHttpServer.js +16 -4
- package/dist/cjs/SimpleBootHttpServer.js.map +2 -2
- package/dist/cjs/bundle-entry.js +34 -24
- package/dist/cjs/bundle-entry.js.map +2 -2
- package/dist/cjs/decorators/MethodMapping.js +33 -3
- package/dist/cjs/decorators/MethodMapping.js.map +2 -2
- package/dist/cjs/errors/BadRequestError.js +2 -1
- package/dist/cjs/errors/BadRequestError.js.map +2 -2
- package/dist/cjs/errors/ForbiddenError.js +2 -1
- package/dist/cjs/errors/ForbiddenError.js.map +2 -2
- package/dist/cjs/errors/InternalServerError.js +2 -1
- package/dist/cjs/errors/InternalServerError.js.map +2 -2
- package/dist/cjs/errors/NotFoundError.js +2 -1
- package/dist/cjs/errors/NotFoundError.js.map +2 -2
- package/dist/cjs/errors/UnauthorizedError.js +2 -1
- package/dist/cjs/errors/UnauthorizedError.js.map +2 -2
- package/dist/cjs/filters/IntentSchemeFilter.js +1 -2
- package/dist/cjs/filters/IntentSchemeFilter.js.map +2 -2
- package/dist/cjs/filters/ResourceFilter.js +3 -2
- package/dist/cjs/filters/ResourceFilter.js.map +2 -2
- package/dist/cjs/filters/index.js +3 -1
- package/dist/cjs/filters/index.js.map +2 -2
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/inject/InjectSituationType.js +1 -1
- package/dist/cjs/inject/InjectSituationType.js.map +2 -2
- package/dist/cjs/models/RequestResponse.js +19 -2
- package/dist/cjs/models/RequestResponse.js.map +2 -2
- package/dist/cjs/models/datas/body/index.js +28 -0
- package/dist/cjs/models/datas/body/index.js.map +7 -0
- package/dist/cjs/models/datas/index.js +32 -0
- package/dist/cjs/models/datas/index.js.map +7 -0
- package/dist/cjs/models/datas/{body → path}/ReqPathData.js.map +1 -1
- package/dist/cjs/models/datas/{search → path}/ReqSearchParamsObj.js.map +1 -1
- package/dist/cjs/models/datas/path/index.js +24 -0
- package/dist/cjs/models/datas/path/index.js.map +7 -0
- package/dist/cjs/models/index.js +4 -16
- package/dist/cjs/models/index.js.map +2 -2
- package/dist/cjs/models/method/index.js +22 -0
- package/dist/cjs/models/method/index.js.map +7 -0
- package/dist/cjs/models/method/patch/index.js +22 -0
- package/dist/cjs/models/method/patch/index.js.map +7 -0
- package/dist/cjs/option/HttpServerOption.js.map +2 -2
- package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js +98 -95
- package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js.map +3 -3
- package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js +1 -1
- package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js.map +2 -2
- package/dist/cjs/proxy/TopicProtocolApiServiceProxy.js +244 -266
- package/dist/cjs/proxy/TopicProtocolApiServiceProxy.js.map +3 -3
- package/dist/cjs/websocket/WebSocketClient.js +2 -1
- package/dist/cjs/websocket/WebSocketClient.js.map +2 -2
- package/dist/esm/SimpleBootHttpServer.js +16 -4
- package/dist/esm/SimpleBootHttpServer.js.map +2 -2
- package/dist/esm/bundle-entry.js +14 -12
- package/dist/esm/bundle-entry.js.map +2 -2
- package/dist/esm/decorators/MethodMapping.js +22 -2
- package/dist/esm/decorators/MethodMapping.js.map +2 -2
- package/dist/esm/errors/BadRequestError.js +2 -1
- package/dist/esm/errors/BadRequestError.js.map +2 -2
- package/dist/esm/errors/ForbiddenError.js +2 -1
- package/dist/esm/errors/ForbiddenError.js.map +2 -2
- package/dist/esm/errors/InternalServerError.js +2 -1
- package/dist/esm/errors/InternalServerError.js.map +2 -2
- package/dist/esm/errors/NotFoundError.js +2 -1
- package/dist/esm/errors/NotFoundError.js.map +2 -2
- package/dist/esm/errors/UnauthorizedError.js +2 -1
- package/dist/esm/errors/UnauthorizedError.js.map +2 -2
- package/dist/esm/filters/IntentSchemeFilter.js +2 -3
- package/dist/esm/filters/IntentSchemeFilter.js.map +2 -2
- package/dist/esm/filters/ResourceFilter.js +3 -2
- package/dist/esm/filters/ResourceFilter.js.map +2 -2
- package/dist/esm/filters/index.js +1 -0
- package/dist/esm/filters/index.js.map +2 -2
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/inject/InjectSituationType.js +1 -1
- package/dist/esm/inject/InjectSituationType.js.map +2 -2
- package/dist/esm/models/RequestResponse.js +19 -2
- package/dist/esm/models/RequestResponse.js.map +2 -2
- package/dist/esm/models/datas/body/index.js +5 -0
- package/dist/esm/models/datas/body/index.js.map +7 -0
- package/dist/esm/models/datas/index.js +7 -0
- package/dist/esm/models/datas/index.js.map +7 -0
- package/dist/esm/models/datas/{body → path}/ReqPathData.js.map +1 -1
- package/dist/esm/models/datas/{search → path}/ReqSearchParamsObj.js.map +1 -1
- package/dist/esm/models/datas/path/index.js +3 -0
- package/dist/esm/models/datas/path/index.js.map +7 -0
- package/dist/esm/models/index.js +2 -8
- package/dist/esm/models/index.js.map +2 -2
- package/dist/esm/models/method/index.js +2 -0
- package/dist/esm/models/method/index.js.map +7 -0
- package/dist/esm/models/method/patch/index.js +2 -0
- package/dist/esm/models/method/patch/index.js.map +7 -0
- package/dist/esm/option/HttpServerOption.js.map +2 -2
- package/dist/esm/proxy/SymbolIntentApiServiceProxy.js +98 -95
- package/dist/esm/proxy/SymbolIntentApiServiceProxy.js.map +3 -3
- package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js +2 -2
- package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js.map +2 -2
- package/dist/esm/proxy/TopicProtocolApiServiceProxy.js +244 -266
- package/dist/esm/proxy/TopicProtocolApiServiceProxy.js.map +3 -3
- package/dist/esm/websocket/WebSocketClient.js +3 -2
- package/dist/esm/websocket/WebSocketClient.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js +19374 -4956
- package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js.map +4 -4
- package/dist/types/SimpleBootHttpServer.d.ts +1 -1
- package/dist/types/SimpleBootHttpServer.d.ts.map +1 -1
- package/dist/types/bundle-entry.d.ts +7 -12
- package/dist/types/bundle-entry.d.ts.map +1 -1
- package/dist/types/decorators/MethodMapping.d.ts +10 -0
- package/dist/types/decorators/MethodMapping.d.ts.map +1 -1
- package/dist/types/errors/BadRequestError.d.ts +2 -2
- package/dist/types/errors/BadRequestError.d.ts.map +1 -1
- package/dist/types/errors/ForbiddenError.d.ts +2 -2
- package/dist/types/errors/ForbiddenError.d.ts.map +1 -1
- package/dist/types/errors/InternalServerError.d.ts +2 -2
- package/dist/types/errors/InternalServerError.d.ts.map +1 -1
- package/dist/types/errors/NotFoundError.d.ts +2 -2
- package/dist/types/errors/NotFoundError.d.ts.map +1 -1
- package/dist/types/errors/UnauthorizedError.d.ts +2 -2
- package/dist/types/errors/UnauthorizedError.d.ts.map +1 -1
- package/dist/types/filters/ResourceFilter.d.ts.map +1 -1
- package/dist/types/filters/index.d.ts +1 -0
- package/dist/types/filters/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/inject/InjectSituationType.d.ts.map +1 -1
- package/dist/types/models/RequestResponse.d.ts +3 -1
- package/dist/types/models/RequestResponse.d.ts.map +1 -1
- package/dist/types/models/datas/body/index.d.ts +5 -0
- package/dist/types/models/datas/body/index.d.ts.map +1 -0
- package/dist/types/models/datas/index.d.ts +7 -0
- package/dist/types/models/datas/index.d.ts.map +1 -0
- package/dist/types/models/datas/{body → path}/ReqPathData.d.ts.map +1 -1
- package/dist/types/models/datas/path/ReqSearchParamsObj.d.ts.map +1 -0
- package/dist/types/models/datas/path/index.d.ts +3 -0
- package/dist/types/models/datas/path/index.d.ts.map +1 -0
- package/dist/types/models/index.d.ts +2 -8
- package/dist/types/models/index.d.ts.map +1 -1
- package/dist/types/models/method/index.d.ts +2 -0
- package/dist/types/models/method/index.d.ts.map +1 -0
- package/dist/types/models/method/patch/index.d.ts +2 -0
- package/dist/types/models/method/patch/index.d.ts.map +1 -0
- package/dist/types/option/HttpServerOption.d.ts +6 -2
- package/dist/types/option/HttpServerOption.d.ts.map +1 -1
- package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts +6 -8
- package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts.map +1 -1
- package/dist/types/proxy/TopicProtocolApiServiceProxy.d.ts +5 -15
- package/dist/types/proxy/TopicProtocolApiServiceProxy.d.ts.map +1 -1
- package/dist/types/websocket/WebSocketClient.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js +19340 -4928
- package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js.map +4 -4
- package/dist/umd-bundle/websocket-client.umd.js +378 -1468
- package/dist/umd-bundle/websocket-client.umd.js.map +4 -4
- package/package.json +8 -8
- package/src/SimpleBootHttpServer.ts +20 -6
- package/src/bundle-entry.ts +12 -12
- package/src/decorators/MethodMapping.ts +13 -1
- package/src/errors/BadRequestError.ts +7 -3
- package/src/errors/ForbiddenError.ts +7 -3
- package/src/errors/InternalServerError.ts +7 -3
- package/src/errors/NotFoundError.ts +7 -3
- package/src/errors/UnauthorizedError.ts +7 -3
- package/src/filters/IntentSchemeFilter.ts +2 -2
- package/src/filters/ResourceFilter.ts +5 -2
- package/src/filters/index.ts +1 -0
- package/src/index.ts +1 -0
- package/src/inject/InjectSituationType.ts +1 -1
- package/src/models/RequestResponse.ts +28 -2
- package/src/models/datas/body/index.ts +4 -0
- package/src/models/datas/index.ts +6 -0
- package/src/models/datas/path/index.ts +2 -0
- package/src/models/index.ts +2 -8
- package/src/models/method/index.ts +1 -0
- package/src/models/method/patch/index.ts +1 -0
- package/src/option/HttpServerOption.ts +4 -2
- package/src/proxy/SymbolIntentApiServiceProxy.ts +103 -97
- package/src/proxy/SymbolIntentApiServiceProxyBase.ts +2 -2
- package/src/proxy/TopicProtocolApiServiceProxy.ts +260 -275
- package/src/websocket/WebSocketClient.ts +3 -2
- package/README.MD +0 -62
- package/dist/types/models/datas/search/ReqSearchParamsObj.d.ts.map +0 -1
- /package/dist/cjs/models/datas/{body → path}/ReqPathData.js +0 -0
- /package/dist/cjs/models/datas/{search → path}/ReqSearchParamsObj.js +0 -0
- /package/dist/esm/models/datas/{body → path}/ReqPathData.js +0 -0
- /package/dist/esm/models/datas/{search → path}/ReqSearchParamsObj.js +0 -0
- /package/dist/types/models/datas/{body → path}/ReqPathData.d.ts +0 -0
- /package/dist/types/models/datas/{search → path}/ReqSearchParamsObj.d.ts +0 -0
- /package/src/models/datas/{body → path}/ReqPathData.ts +0 -0
- /package/src/models/datas/{search → path}/ReqSearchParamsObj.ts +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# @dooboostore/simple-boot-http-server
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@dooboostore/simple-boot-http-server)
|
|
4
|
+
[](https://github.com/dooboostore-develop/packages/actions/workflows/main.yaml)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
7
|
+
`@dooboostore/simple-boot-http-server` is a lightweight, high-performance HTTP web server framework for Node.js, built on top of `@dooboostore/simple-boot`. It provides a decorator-driven, declarative programming model that allows you to design complex backend architectures intuitively and robustly.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 🚀 Key Features
|
|
12
|
+
|
|
13
|
+
- **Declarative Routing**: Map URL paths and HTTP methods directly to your controller methods using decorators like `@Router`, `@Route`, `@GET`, and `@POST`.
|
|
14
|
+
- **Dependency Injection (DI)**: Manage dependencies between services automatically using the `@Sim` decorator.
|
|
15
|
+
- **Middleware & Filters**: Systematically separate pre/post-processing logic (CORS, authentication, logging, etc.) through the `Filter` interface.
|
|
16
|
+
- **Powerful Exception Handling**: Leverage AOP-based `GlobalAdvice` to isolate business logic from error handling logic.
|
|
17
|
+
- **WebSocket Integration**: Includes a topic-based publish/subscribe model and automatic reconnection features.
|
|
18
|
+
- **Resource Resolvers**: Provides `ResourceResolver` for serving static files and templates effortlessly.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 📦 Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pnpm add @dooboostore/simple-boot-http-server reflect-metadata
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 💻 Usage Example
|
|
31
|
+
|
|
32
|
+
### 1. Define a Service (Dependency Injection)
|
|
33
|
+
Create a service that contains business logic using `@Sim`.
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
import { Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';
|
|
37
|
+
|
|
38
|
+
@Sim
|
|
39
|
+
export class UserService {
|
|
40
|
+
private users = [{ id: 1, name: 'Dooboo' }];
|
|
41
|
+
|
|
42
|
+
getAllUsers() {
|
|
43
|
+
return this.users;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 2. Configure Router and Controller
|
|
49
|
+
Define endpoints using decorators. Inject services through the constructor.
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import { Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';
|
|
53
|
+
import { Router, Route } from '@dooboostore/simple-boot/decorators/route/Router';
|
|
54
|
+
import { GET, POST } from '@dooboostore/simple-boot-http-server/decorators/MethodMapping';
|
|
55
|
+
|
|
56
|
+
@Sim
|
|
57
|
+
@Router({ path: '/api' })
|
|
58
|
+
export class ApiRouter {
|
|
59
|
+
constructor(private userService: UserService) {}
|
|
60
|
+
|
|
61
|
+
@Route({ path: '/users' })
|
|
62
|
+
@GET({ res: { contentType: 'application/json' } })
|
|
63
|
+
getUsers() {
|
|
64
|
+
return this.userService.getAllUsers();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 3. Run the Server
|
|
70
|
+
Configure `HttpServerOption` and launch the server.
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
import 'reflect-metadata';
|
|
74
|
+
import { SimpleBootHttpServer } from '@dooboostore/simple-boot-http-server/SimpleBootHttpServer';
|
|
75
|
+
import { HttpServerOption } from '@dooboostore/simple-boot-http-server/option/HttpServerOption';
|
|
76
|
+
|
|
77
|
+
const option = new HttpServerOption(
|
|
78
|
+
{ listen: { port: 8080 } },
|
|
79
|
+
{ rootRouter: ApiRouter }
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
const server = new SimpleBootHttpServer(option).run();
|
|
83
|
+
console.log('🚀 Server running at http://localhost:8080');
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 🛠️ Advanced Features
|
|
89
|
+
|
|
90
|
+
### Filters
|
|
91
|
+
Implement the `Filter` interface to perform common request processing.
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
@Sim
|
|
95
|
+
export class MyAuthFilter implements Filter {
|
|
96
|
+
async onHandle(rr: RequestResponse): Promise<boolean> {
|
|
97
|
+
// Returning false stops the request execution.
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 📖 Learn More
|
|
106
|
+
Check out the detailed guides and tutorials in the `document` folder.
|
|
107
|
+
- [WebSocket Detailed Guide](https://github.com/dooboostore-develop/packages/tree/main/simple-boot-http-server/document/websocket)
|
|
108
|
+
- [Project Template Generator](https://github.com/dooboostore-develop/packages/tree/main/simple-boot-http-server/create)
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## License
|
|
113
|
+
[MIT License](LICENSE.md)
|
|
@@ -45,8 +45,8 @@ var import_simple_boot7 = require("@dooboostore/simple-boot");
|
|
|
45
45
|
var import_url = require("url");
|
|
46
46
|
var import_HttpMethod = require("./codes/HttpMethod");
|
|
47
47
|
var import_SessionManager = require("./session/SessionManager");
|
|
48
|
-
var import_ReqSearchParamsObj = require("./models/datas/
|
|
49
|
-
var import_ReqPathData = require("./models/datas/
|
|
48
|
+
var import_ReqSearchParamsObj = require("./models/datas/path/ReqSearchParamsObj");
|
|
49
|
+
var import_ReqPathData = require("./models/datas/path/ReqPathData");
|
|
50
50
|
class SimpleBootHttpServer extends import_simple_boot.SimpleApplication {
|
|
51
51
|
constructor(option = new import_HttpServerOption.HttpServerOption()) {
|
|
52
52
|
super(option);
|
|
@@ -58,7 +58,7 @@ class SimpleBootHttpServer extends import_simple_boot.SimpleApplication {
|
|
|
58
58
|
otherInstanceSim ??= /* @__PURE__ */ new Map();
|
|
59
59
|
otherInstanceSim.set(SimpleBootHttpServer, this);
|
|
60
60
|
super.run(otherInstanceSim);
|
|
61
|
-
const targets = [...this.option.closeEndPoints ?? [], ...this.option.errorEndPoints ?? [], ...this.option.requestEndPoints ?? [], ...this.option.filters ?? []];
|
|
61
|
+
const targets = [...this.option.closeEndPoints ?? [], ...this.option.errorEndPoints ?? [], ...this.option.requestEndPoints ?? [], ...(this.option.filters ?? []).map((it) => it.filter)];
|
|
62
62
|
Promise.all(targets.map((it) => typeof it === "function" ? this.simstanceManager.getOrNewSim({ target: it }) : it).map((it) => it.onInit(this))).then((it) => {
|
|
63
63
|
this.startServer();
|
|
64
64
|
});
|
|
@@ -152,8 +152,20 @@ class SimpleBootHttpServer extends import_simple_boot.SimpleApplication {
|
|
|
152
152
|
};
|
|
153
153
|
for (let i = 0; this.option.filters && i < this.option.filters.length; i++) {
|
|
154
154
|
const it = this.option.filters[i];
|
|
155
|
-
|
|
155
|
+
let isSkip = false;
|
|
156
|
+
if (typeof it.isSupport === "boolean") {
|
|
157
|
+
isSkip = !it.isSupport;
|
|
158
|
+
} else if (typeof it.isSupport === "object") {
|
|
159
|
+
isSkip = !it.isSupport.test(rr.reqUrlPathName);
|
|
160
|
+
} else if (typeof it.isSupport === "function") {
|
|
161
|
+
isSkip = !it.isSupport(rr);
|
|
162
|
+
}
|
|
163
|
+
if (isSkip) {
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
156
166
|
let sw = true;
|
|
167
|
+
const itFilter = it.filter;
|
|
168
|
+
const execute = typeof itFilter === "function" ? this.simstanceManager.getOrNewSim({ target: itFilter }) : itFilter;
|
|
157
169
|
if (execute?.proceedBefore) {
|
|
158
170
|
sw = await execute.proceedBefore({ rr, app: this, carrier: filter.carrier });
|
|
159
171
|
filter.filters.push({ filter: execute, sw });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SimpleBootHttpServer.ts"],
|
|
4
|
-
"sourcesContent": ["import {SimpleApplication} from '@dooboostore/simple-boot';\nimport {HttpServerOption} from './option/HttpServerOption';\nimport {ConstructorType} from '@dooboostore/core';\nimport {IncomingMessage, Server as HttpServer, ServerResponse} from 'http'\nimport {Server as HttpsServer} from 'https'; // Add HTTPS support\nimport {WebSocketServer, WebSocket} from 'ws';\nimport {RequestResponse} from './models/RequestResponse';\nimport {getUrlMapping, getUrlMappings, SaveMappingConfig, UrlMappingSituationType} from './decorators/MethodMapping';\nimport {HttpStatus} from './codes/HttpStatus';\nimport {HttpHeaders} from './codes/HttpHeaders';\nimport {Mimes} from './codes/Mimes';\nimport {Filter} from './filters/Filter';\nimport {ExceptionHandlerSituationType, targetExceptionHandler} from '@dooboostore/simple-boot';\nimport {getInject, SituationTypeContainer, SituationTypeContainers} from '@dooboostore/simple-boot';\nimport {EndPoint} from './endpoints/EndPoint';\nimport {ReflectUtils} from '@dooboostore/core';\nimport {ReqFormUrlBody} from './models/datas/body/ReqFormUrlBody';\nimport {ReqJsonBody} from './models/datas/body/ReqJsonBody';\nimport {ReqHeader} from './models/datas/ReqHeader';\nimport {RouterModule} from '@dooboostore/simple-boot';\nimport {ReqMultipartFormBody} from './models/datas/body/ReqMultipartFormBody';\nimport {execValidationInValid, getValidIndex} from '@dooboostore/simple-boot';\nimport {ValidException} from '@dooboostore/simple-boot';\nimport {HttpError} from './errors/HttpError';\nimport {getRoute} from '@dooboostore/simple-boot';\nimport {OnInit} from './lifecycle/OnInit';\nimport {URLSearchParams} from 'url';\nimport {HttpMethod} from './codes/HttpMethod';\nimport {SessionManager} from './session/SessionManager';\nimport {InjectSituationType} from './inject/InjectSituationType';\nimport {ReqSearchParamsObj} from \"./models/datas/search/ReqSearchParamsObj\";\nimport {SimConfig} from '@dooboostore/simple-boot';\nimport {ReqPathData} from './models/datas/body/ReqPathData';\nimport {WebSocketEndPoint} from './endpoints/WebSocketEndPoint';\n\nexport class SimpleBootHttpServer extends SimpleApplication {\n public server?: HttpServer | HttpsServer;\n private sessionManager: SessionManager;\n private webSocketClients = new Map<WebSocket, { request: IncomingMessage }>();\n\n constructor(public option: HttpServerOption = new HttpServerOption()) {\n super(option);\n this.sessionManager = new SessionManager(this.option);\n }\n\n\n public run(otherInstanceSim?: Map<ConstructorType<any> | Function | SimConfig | Symbol, any>) {\n otherInstanceSim ??= new Map<ConstructorType<any> | Function | SimConfig | Symbol, any>();\n otherInstanceSim.set(SimpleBootHttpServer, this);\n super.run(otherInstanceSim);\n const targets = [...this.option.closeEndPoints ?? [], ...this.option.errorEndPoints ?? [], ...this.option.requestEndPoints ?? [], ...this.option.filters ?? []];\n Promise.all(targets.map(it => (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it as ConstructorType<any>}) : it) as OnInit).map(it => it.onInit(this))).then(it => {\n this.startServer();\n });\n return this;\n }\n\n private startServer() {\n\n // const a = this.option.serverOption as HttpsServerOption;\n // this.option.serverOption?.\n\n if (this.option.serverOption && 'key' in this.option.serverOption && 'cert' in this.option.serverOption) {\n this.server = new HttpsServer(this.option.serverOption);\n const httpServer = new HttpServer();\n httpServer.on('request', (req: IncomingMessage, res: ServerResponse) => {\n res.writeHead(301, {Location: `https://${req.headers.host}${req.url}`});\n res.end();\n });\n httpServer.listen(80, this.option.listen.hostname, () => {\n console.log('HTTP redirect server running on port 80');\n });\n } else if (this.option.serverOption) {\n this.server = new HttpServer(this.option.serverOption);\n } else {\n this.server = new HttpServer();\n }\n // const thisRef = this;\n this.server.on('request', async (req: IncomingMessage, res: ServerResponse) => {\n // console.log('request', req.url);\n const transactionManager = this.option.transactionManagerFactory ? await this.option.transactionManagerFactory() : undefined;\n res.on('close', async () => {\n if (this.option.closeEndPoints) {\n for (const it of this.option.closeEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as EndPoint;\n const endPoint = execute?.endPoint(rr, this);\n if (endPoint instanceof Promise) {\n await endPoint;\n }\n } catch (e) {\n }\n }\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n res.on('error', async () => {\n if (this.option.errorEndPoints) {\n for (const it of this.option.errorEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as EndPoint;\n const endPoint = execute?.endPoint(rr, this);\n if (endPoint instanceof Promise) {\n await endPoint;\n }\n } catch (e) {\n }\n }\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n\n const rr = new RequestResponse(req, res, {sessionManager: this.sessionManager, option: this.option});\n /*\n default setting first\n */\n rr.resSetHeader(HttpHeaders.Server, 'simple-boot-http-server');\n const cookie = rr.reqCookieGet(this.option.sessionOption.key);\n if (!cookie) {\n const session = await this.sessionManager.session();\n\n const cookieParts: string[] = [];\n cookieParts.push(`${this.option.sessionOption.key}=${session.uuid}`);\n cookieParts.push(`Path=${this.option.sessionOption.path}`);\n if (this.option.sessionOption.httpOnly) cookieParts.push('HttpOnly');\n if (this.option.sessionOption.secure) cookieParts.push('Secure');\n if (this.option.sessionOption.sameSite != null && this.option.sessionOption.sameSite) cookieParts.push(`SameSite=${this.option.sessionOption.sameSite}`);\n const maxAge = (this.option.sessionOption as any).maxAge ?? (this.sessionManager.sessionOption)?.maxAge;\n if (maxAge != null) cookieParts.push(`Max-Age=${maxAge}`);\n rr.resSetHeader(HttpHeaders.SetCookie, cookieParts.join('; '));\n }\n\n const otherStorage = new Map<ConstructorType<any>, any>();\n otherStorage.set(RequestResponse, rr);\n otherStorage.set(IncomingMessage, req);\n otherStorage.set(ServerResponse, res);\n try {\n transactionManager?.try();\n if (this.option.requestEndPoints) {\n for (const it of this.option.requestEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim<EndPoint>({target: it}) : it) as EndPoint;\n execute?.endPoint(rr, this);\n } catch (e) {\n }\n }\n }\n\n const filter = {\n carrier: new Map<string, any>(),\n filters: [] as { filter: Filter, sw: boolean }[]\n };\n for (let i = 0; this.option.filters && i < this.option.filters.length; i++) {\n const it = this.option.filters[i];\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as Filter;\n let sw = true;\n if (execute?.proceedBefore) {\n sw = await execute.proceedBefore({rr, app: this, carrier: filter.carrier});\n filter.filters.push({filter: execute, sw});\n }\n if (!sw) {\n break;\n }\n }\n\n // body.. something..\n if (!rr.resIsDone()) {\n const routerModule = await super.routing(rr.reqIntent);\n otherStorage.set(RouterModule, routerModule);\n const moduleInstance = routerModule?.getModuleInstance?.();\n let methods: SaveMappingConfig[] = [];\n if (routerModule && moduleInstance) {\n // router \uD074\uB798\uC2A4 \uB0B4\uBD80\uC5D0\uC11C \uC120\uC5B8\uB41C Route\uC77C\uB54C\n if (routerModule.propertyKeys) {\n const map = routerModule.propertyKeys?.map((it: string | symbol) => {\n return {propertyKey: it, config: getUrlMapping(moduleInstance, it)} as SaveMappingConfig\n });\n methods.push(...(map ?? []));\n } else {\n methods.push(...(getUrlMappings(moduleInstance).filter(it => !getRoute(moduleInstance, it.propertyKey)) ?? []));\n }\n\n // options\uB85C \uC694\uCCAD\uC624\uBA74\uC740 allow\uB85C \uB123\uACE0 \uADF8\uB0E5 200\uCC98\uB9AC\uD574\uC57C\uB428.\n if (rr.reqMethod()?.toUpperCase() === HttpMethod.OPTIONS.toUpperCase()) {\n rr.resSetHeader(HttpHeaders.Allow, methods.map(it => it.config.method).join(', '));\n rr.resStatusCode(HttpStatus.Ok);\n }\n\n // method \uCC3E\uAE30\n methods = methods.filter(it => it && it.propertyKey && it.config && rr.reqMethod()?.toUpperCase() === it.config.method.toUpperCase());\n methods.sort((a, b) => {\n return ((b.config?.req?.contentType?.length ?? 0) + (b.config?.req?.accept?.length ?? 0)) - ((a.config?.req?.contentType?.length ?? 0) + (a.config?.req?.accept?.length ?? 0));\n });\n methods = methods\n .filter(it => it.config?.req?.contentType ? (!!it.config?.req?.contentType?.find(sit => rr.reqHasContentTypeHeader(sit))) : true)\n .filter(it => it.config?.req?.accept ? (!!it.config?.req?.accept?.find(sit => rr.reqHasAcceptHeader(sit))) : true);\n\n if (methods[0]) {\n const it = methods[0];\n const paramTypes = ReflectUtils.getParameterTypes(moduleInstance, it.propertyKey)\n const injects = getInject(moduleInstance, it.propertyKey);\n const validIndexs = getValidIndex(moduleInstance, it.propertyKey);\n if (injects) {\n const isPathData = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_PATH_DATA);\n const isJson = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_JSON_BODY);\n const isSearchParamsObj = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_URL_SEARCH_PARAMS_OBJ);\n const isFormUrl = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_FORM_URL_BODY);\n // \uC6B0\uC120 \uB2E4\uC2DC \uC81C\uAC70\uD55C\uB2E4.. \uD2B8\uB79C\uC81D\uC158 \uC5B4\uB5BB\uAC8C \uD560\uC9C0 \uB2E4\uC2DC \uC0DD\uAC01\n // const isTransactionManager = injects.find(it => it.config?.situationType === InjectSituationType.TransactionManager);\n const siturationContainers = new SituationTypeContainers();\n if (isPathData) {\n let data = await routerModule.pathData\n if (isPathData.type) {\n data = Object.assign(new isPathData.type(), data);\n }\n if (validIndexs.includes(isPathData.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_PATH_DATA,\n data\n }));\n }\n if (isJson) {\n let data = await rr.reqBodyJsonData();\n if (data !== null && isJson.type) {\n data = Object.assign(new isJson.type(), data);\n }\n if (validIndexs.includes(isJson.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_JSON_BODY,\n data\n }));\n }\n if (isSearchParamsObj) {\n let data = rr.reqUrlSearchParamsObj\n if (validIndexs.includes(isSearchParamsObj.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_URL_SEARCH_PARAMS_OBJ,\n data\n }));\n }\n if (isFormUrl) {\n let data = await rr.reqBodyFormUrlData()\n if (isFormUrl.type) {\n data = Object.assign(new isFormUrl.type(), data);\n }\n if (validIndexs.includes(isFormUrl.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({situationType: UrlMappingSituationType.REQ_FORM_URL_BODY, data}));\n }\n // \uD2B8\uB79C\uC81D\uC158 \uC6B0\uC120 \uC81C\uAC70 \uB098\uC911\uC5D0 \uC5B4\uB5BB\uAC8C \uAD6C\uD604\uD560\uC9C0 \uC0DD\uAC01..\n // if (isTransactionManager && isTransactionManager.type && transactionManager && transactionManager.hasTransaction(isTransactionManager.type)) {\n // let data = await transactionManager.getTransaction(isTransactionManager.type);\n // if (data) {\n // data = await data.try(isTransactionManager.config.argument);\n // siturationContainers.push(new SituationTypeContainer({situationType: InjectSituationType.TransactionManager, data, index: isTransactionManager.index}));\n // }\n // }\n if (siturationContainers.length) {\n otherStorage.set(SituationTypeContainers, siturationContainers);\n }\n }\n\n for (const paramType of paramTypes) {\n if (paramType === ReqFormUrlBody) {\n otherStorage.set(ReqFormUrlBody, await rr.reqBodyReqFormUrlBody())\n } else if (paramType === ReqPathData) {\n otherStorage.set(ReqPathData, routerModule.pathData)\n } else if (paramType === ReqJsonBody) {\n otherStorage.set(ReqJsonBody, await rr.reqBodyReqJsonBody())\n } else if (paramType === ReqSearchParamsObj) {\n otherStorage.set(ReqSearchParamsObj, rr.reqUrlSearchParamsObj)\n } else if (paramType === URLSearchParams) {\n otherStorage.set(URLSearchParams, rr.reqUrlSearchParams)\n } else if (paramType === ReqMultipartFormBody) {\n otherStorage.set(ReqMultipartFormBody, rr.reqBodyMultipartFormData())\n } else if (paramType === ReqHeader) {\n otherStorage.set(ReqHeader, rr.reqHeaderObj)\n }\n }\n\n // execute !!!\n let data = await this.simstanceManager.executeBindParameterSimPromise({\n target: moduleInstance,\n targetKey: it.propertyKey\n }, otherStorage);\n /*\n \uC5EC\uAE30\uC5D0\uC11C \uC815\uD574\uC9C4 \uD0C0\uC785 \uB9AC\uD134\uC5D0 \uB530\uB978 \uC870\uCE58\n ...\n */\n if (it.config?.resolver) {\n const execute = typeof it.config.resolver === 'function' ? this.simstanceManager.getOrNewSim({target: it.config.resolver}) : it.config.resolver;\n data = await execute?.resolve?.(data, rr);\n }\n const status = it.config?.res?.status ?? HttpStatus.Ok;\n const headers = it.config?.res?.header ?? {};\n if (it.config?.res?.contentType) {\n headers[HttpHeaders.ContentType] = it.config?.res?.contentType;\n }\n if ((it.config?.res?.contentType?.toLowerCase().indexOf(Mimes.ApplicationJson.toLowerCase()) ?? -1) > -1) {\n data = JSON.stringify(data);\n } else if (data && typeof data === 'object') {\n data = JSON.stringify(data);\n }\n rr.resSetHeaders(headers)\n rr.resSetStatusCode(status);\n rr.resWrite(data);\n }\n }\n\n if (this.option.noSuchRouteEndPointMappingThrow && methods.length <= 0 && rr.reqMethod()?.toUpperCase() !== HttpMethod.OPTIONS) {\n throw this.option.noSuchRouteEndPointMappingThrow(rr);\n }\n }\n\n // after\n for (const it of filter.filters.reverse()) {\n if (it.filter?.proceedAfter && !await it.filter.proceedAfter({rr, app: this, before: it.sw, carrier: filter.carrier})) {\n break;\n }\n }\n } catch (e) {\n console.error('request error:', e);\n transactionManager?.catch(e);\n rr.resStatusCode(e instanceof HttpError ? e.status : HttpStatus.InternalServerError)\n const execute = typeof this.option.globalAdvice === 'function' ? this.simstanceManager.getOrNewSim(this.option.globalAdvice) : this.option.globalAdvice;\n if (!execute) {\n rr.resEnd();\n // rr.resEnd().catch(e => {\n // });\n return;\n }\n if (e && typeof e === 'object') {\n otherStorage.set(e.constructor as ConstructorType<any>, e);\n otherStorage.set(SituationTypeContainer, new SituationTypeContainer({\n situationType: ExceptionHandlerSituationType.ERROR_OBJECT,\n data: e\n }));\n }\n const target = targetExceptionHandler(execute, e);\n if (target) {\n await this.simstanceManager.executeBindParameterSimPromise({\n target: execute,\n targetKey: target.propertyKey\n }, otherStorage);\n }\n } finally {\n transactionManager?.finally();\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n\n if (this.option.webSocketEndPoints) {\n const webSocketServer = new WebSocketServer({server: this.server});\n const execute = this.option.webSocketEndPoints.map(it => typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it);\n webSocketServer.on('connection', async (ws, request) => {\n this.webSocketClients.set(ws, {request});\n const wsSet = {socket: ws, request};\n execute.forEach(it => it.connect?.(wsSet));\n ws.on('error', err => execute.forEach(it => it.error?.(wsSet, err)));\n ws.on('message', (data, isBinary) => execute.forEach(it => it.message(wsSet, {data, isBinary})));\n ws.on('ping', () => execute.forEach(it => it.ping?.(wsSet)));\n ws.on('close', () => {\n this.webSocketClients.delete(ws);\n execute.forEach(it => it.close?.(wsSet));\n });\n });\n }\n this.server.listen(this.option.listen.port, this.option.listen.hostname, this.option.listen.backlog, () => {\n this.option.listen.listeningListener?.(this, this.server);\n });\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import {SimpleApplication} from '@dooboostore/simple-boot';\nimport {HttpServerOption} from './option/HttpServerOption';\nimport {ConstructorType} from '@dooboostore/core';\nimport {IncomingMessage, Server as HttpServer, ServerResponse} from 'http'\nimport {Server as HttpsServer} from 'https'; // Add HTTPS support\nimport {WebSocketServer, WebSocket} from 'ws';\nimport {RequestResponse} from './models/RequestResponse';\nimport {getUrlMapping, getUrlMappings, SaveMappingConfig, UrlMappingSituationType} from './decorators/MethodMapping';\nimport {HttpStatus} from './codes/HttpStatus';\nimport {HttpHeaders} from './codes/HttpHeaders';\nimport {Mimes} from './codes/Mimes';\nimport {Filter} from './filters/Filter';\nimport {ExceptionHandlerSituationType, targetExceptionHandler} from '@dooboostore/simple-boot';\nimport {getInject, SituationTypeContainer, SituationTypeContainers} from '@dooboostore/simple-boot';\nimport {EndPoint} from './endpoints/EndPoint';\nimport {ReflectUtils} from '@dooboostore/core';\nimport {ReqFormUrlBody} from './models/datas/body/ReqFormUrlBody';\nimport {ReqJsonBody} from './models/datas/body/ReqJsonBody';\nimport {ReqHeader} from './models/datas/ReqHeader';\nimport {RouterModule} from '@dooboostore/simple-boot';\nimport {ReqMultipartFormBody} from './models/datas/body/ReqMultipartFormBody';\nimport {execValidationInValid, getValidIndex} from '@dooboostore/simple-boot';\nimport {ValidException} from '@dooboostore/simple-boot';\nimport {HttpError} from './errors/HttpError';\nimport {getRoute} from '@dooboostore/simple-boot';\nimport {OnInit} from './lifecycle/OnInit';\nimport {URLSearchParams} from 'url';\nimport {HttpMethod} from './codes/HttpMethod';\nimport {SessionManager} from './session/SessionManager';\nimport {InjectSituationType} from './inject/InjectSituationType';\nimport {ReqSearchParamsObj} from \"./models/datas/path/ReqSearchParamsObj\";\nimport {SimConfig} from '@dooboostore/simple-boot';\nimport {ReqPathData} from './models/datas/path/ReqPathData';\nimport {WebSocketEndPoint} from './endpoints/WebSocketEndPoint';\n\nexport class SimpleBootHttpServer extends SimpleApplication {\n public server?: HttpServer | HttpsServer;\n private sessionManager: SessionManager;\n private webSocketClients = new Map<WebSocket, { request: IncomingMessage }>();\n\n constructor(public option: HttpServerOption = new HttpServerOption()) {\n super(option);\n this.sessionManager = new SessionManager(this.option);\n }\n\n\n public run(otherInstanceSim?: Map<ConstructorType<any> | Function | SimConfig | symbol, any>) {\n otherInstanceSim ??= new Map<ConstructorType<any> | Function | SimConfig | symbol, any>();\n otherInstanceSim.set(SimpleBootHttpServer, this);\n super.run(otherInstanceSim);\n const targets = [...this.option.closeEndPoints ?? [], ...this.option.errorEndPoints ?? [], ...this.option.requestEndPoints ?? [], ...(this.option.filters ?? []).map(it=>it.filter)];\n Promise.all(targets.map(it => (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it as ConstructorType<any>}) : it) as OnInit).map(it => it.onInit(this))).then(it => {\n this.startServer();\n });\n return this;\n }\n\n private startServer() {\n\n // const a = this.option.serverOption as HttpsServerOption;\n // this.option.serverOption?.\n\n if (this.option.serverOption && 'key' in this.option.serverOption && 'cert' in this.option.serverOption) {\n this.server = new HttpsServer(this.option.serverOption);\n const httpServer = new HttpServer();\n httpServer.on('request', (req: IncomingMessage, res: ServerResponse) => {\n res.writeHead(301, {Location: `https://${req.headers.host}${req.url}`});\n res.end();\n });\n httpServer.listen(80, this.option.listen.hostname, () => {\n console.log('HTTP redirect server running on port 80');\n });\n } else if (this.option.serverOption) {\n this.server = new HttpServer(this.option.serverOption);\n } else {\n this.server = new HttpServer();\n }\n // const thisRef = this;\n this.server.on('request', async (req: IncomingMessage, res: ServerResponse) => {\n // console.log('request', req.url);\n const transactionManager = this.option.transactionManagerFactory ? await this.option.transactionManagerFactory() : undefined;\n res.on('close', async () => {\n if (this.option.closeEndPoints) {\n for (const it of this.option.closeEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as EndPoint;\n const endPoint = execute?.endPoint(rr, this);\n if (endPoint instanceof Promise) {\n await endPoint;\n }\n } catch (e) {\n }\n }\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n res.on('error', async () => {\n if (this.option.errorEndPoints) {\n for (const it of this.option.errorEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as EndPoint;\n const endPoint = execute?.endPoint(rr, this);\n if (endPoint instanceof Promise) {\n await endPoint;\n }\n } catch (e) {\n }\n }\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n\n const rr = new RequestResponse(req, res, {sessionManager: this.sessionManager, option: this.option});\n /*\n default setting first\n */\n rr.resSetHeader(HttpHeaders.Server, 'simple-boot-http-server');\n const cookie = rr.reqCookieGet(this.option.sessionOption.key);\n if (!cookie) {\n const session = await this.sessionManager.session();\n\n const cookieParts: string[] = [];\n cookieParts.push(`${this.option.sessionOption.key}=${session.uuid}`);\n cookieParts.push(`Path=${this.option.sessionOption.path}`);\n if (this.option.sessionOption.httpOnly) cookieParts.push('HttpOnly');\n if (this.option.sessionOption.secure) cookieParts.push('Secure');\n if (this.option.sessionOption.sameSite != null && this.option.sessionOption.sameSite) cookieParts.push(`SameSite=${this.option.sessionOption.sameSite}`);\n const maxAge = (this.option.sessionOption as any).maxAge ?? (this.sessionManager.sessionOption)?.maxAge;\n if (maxAge != null) cookieParts.push(`Max-Age=${maxAge}`);\n rr.resSetHeader(HttpHeaders.SetCookie, cookieParts.join('; '));\n }\n\n const otherStorage = new Map<ConstructorType<any>, any>();\n otherStorage.set(RequestResponse, rr);\n otherStorage.set(IncomingMessage, req);\n otherStorage.set(ServerResponse, res);\n try {\n transactionManager?.try();\n if (this.option.requestEndPoints) {\n for (const it of this.option.requestEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim<EndPoint>({target: it}) : it) as EndPoint;\n execute?.endPoint(rr, this);\n } catch (e) {\n }\n }\n }\n\n const filter = {\n carrier: new Map<string, any>(),\n filters: [] as { filter: Filter, sw: boolean }[]\n };\n for (let i = 0; this.option.filters && i < this.option.filters.length; i++) {\n const it = this.option.filters[i];\n\n let isSkip = false;\n if (typeof it.isSupport === 'boolean') {\n isSkip = !it.isSupport;\n } else if (typeof it.isSupport === 'object') {\n isSkip = !it.isSupport.test(rr.reqUrlPathName)\n } else if (typeof it.isSupport === 'function') {\n isSkip = !it.isSupport(rr);\n }\n if(isSkip) {\n continue;\n }\n\n let sw = true;\n const itFilter = it.filter;\n const execute = (typeof itFilter === 'function' ? this.simstanceManager.getOrNewSim({target: itFilter}) : itFilter) as Filter;\n if (execute?.proceedBefore) {\n sw = await execute.proceedBefore({rr, app: this, carrier: filter.carrier});\n filter.filters.push({filter: execute, sw});\n }\n if (!sw) {\n break;\n }\n }\n\n // body.. something..\n if (!rr.resIsDone()) {\n const routerModule = await super.routing(rr.reqIntent);\n otherStorage.set(RouterModule, routerModule);\n const moduleInstance = routerModule?.getModuleInstance?.();\n let methods: SaveMappingConfig[] = [];\n if (routerModule && moduleInstance) {\n // router \uD074\uB798\uC2A4 \uB0B4\uBD80\uC5D0\uC11C \uC120\uC5B8\uB41C Route\uC77C\uB54C\n if (routerModule.propertyKeys) {\n const map = routerModule.propertyKeys?.map((it: string | symbol) => {\n return {propertyKey: it, config: getUrlMapping(moduleInstance, it)} as SaveMappingConfig\n });\n methods.push(...(map ?? []));\n } else {\n methods.push(...(getUrlMappings(moduleInstance).filter(it => !getRoute(moduleInstance, it.propertyKey)) ?? []));\n }\n\n // options\uB85C \uC694\uCCAD\uC624\uBA74\uC740 allow\uB85C \uB123\uACE0 \uADF8\uB0E5 200\uCC98\uB9AC\uD574\uC57C\uB428.\n if (rr.reqMethod()?.toUpperCase() === HttpMethod.OPTIONS.toUpperCase()) {\n rr.resSetHeader(HttpHeaders.Allow, methods.map(it => it.config.method).join(', '));\n rr.resStatusCode(HttpStatus.Ok);\n }\n\n // method \uCC3E\uAE30\n methods = methods.filter(it => it && it.propertyKey && it.config && rr.reqMethod()?.toUpperCase() === it.config.method.toUpperCase());\n methods.sort((a, b) => {\n return ((b.config?.req?.contentType?.length ?? 0) + (b.config?.req?.accept?.length ?? 0)) - ((a.config?.req?.contentType?.length ?? 0) + (a.config?.req?.accept?.length ?? 0));\n });\n methods = methods\n .filter(it => it.config?.req?.contentType ? (!!it.config?.req?.contentType?.find(sit => rr.reqHasContentTypeHeader(sit))) : true)\n .filter(it => it.config?.req?.accept ? (!!it.config?.req?.accept?.find(sit => rr.reqHasAcceptHeader(sit))) : true);\n\n if (methods[0]) {\n const it = methods[0];\n const paramTypes = ReflectUtils.getParameterTypes(moduleInstance, it.propertyKey)\n const injects = getInject(moduleInstance, it.propertyKey);\n const validIndexs = getValidIndex(moduleInstance, it.propertyKey);\n if (injects) {\n const isPathData = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_PATH_DATA);\n const isJson = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_JSON_BODY);\n const isSearchParamsObj = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_URL_SEARCH_PARAMS_OBJ);\n const isFormUrl = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_FORM_URL_BODY);\n // \uC6B0\uC120 \uB2E4\uC2DC \uC81C\uAC70\uD55C\uB2E4.. \uD2B8\uB79C\uC81D\uC158 \uC5B4\uB5BB\uAC8C \uD560\uC9C0 \uB2E4\uC2DC \uC0DD\uAC01\n // const isTransactionManager = injects.find(it => it.config?.situationType === InjectSituationType.TransactionManager);\n const siturationContainers = new SituationTypeContainers();\n if (isPathData) {\n let data = await routerModule.pathData\n if (isPathData.type) {\n data = Object.assign(new isPathData.type(), data);\n }\n if (validIndexs.includes(isPathData.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_PATH_DATA,\n data\n }));\n }\n if (isJson) {\n let data = await rr.reqBodyJsonData();\n if (data !== null && isJson.type) {\n data = Object.assign(new isJson.type(), data);\n }\n if (validIndexs.includes(isJson.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_JSON_BODY,\n data\n }));\n }\n if (isSearchParamsObj) {\n let data = rr.reqUrlSearchParamsObj\n if (validIndexs.includes(isSearchParamsObj.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_URL_SEARCH_PARAMS_OBJ,\n data\n }));\n }\n if (isFormUrl) {\n let data = await rr.reqBodyFormUrlData()\n if (isFormUrl.type) {\n data = Object.assign(new isFormUrl.type(), data);\n }\n if (validIndexs.includes(isFormUrl.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({situationType: UrlMappingSituationType.REQ_FORM_URL_BODY, data}));\n }\n // \uD2B8\uB79C\uC81D\uC158 \uC6B0\uC120 \uC81C\uAC70 \uB098\uC911\uC5D0 \uC5B4\uB5BB\uAC8C \uAD6C\uD604\uD560\uC9C0 \uC0DD\uAC01..\n // if (isTransactionManager && isTransactionManager.type && transactionManager && transactionManager.hasTransaction(isTransactionManager.type)) {\n // let data = await transactionManager.getTransaction(isTransactionManager.type);\n // if (data) {\n // data = await data.try(isTransactionManager.config.argument);\n // siturationContainers.push(new SituationTypeContainer({situationType: InjectSituationType.TransactionManager, data, index: isTransactionManager.index}));\n // }\n // }\n if (siturationContainers.length) {\n otherStorage.set(SituationTypeContainers, siturationContainers);\n }\n }\n\n for (const paramType of paramTypes) {\n if (paramType === ReqFormUrlBody) {\n otherStorage.set(ReqFormUrlBody, await rr.reqBodyReqFormUrlBody())\n } else if (paramType === ReqPathData) {\n otherStorage.set(ReqPathData, routerModule.pathData)\n } else if (paramType === ReqJsonBody) {\n otherStorage.set(ReqJsonBody, await rr.reqBodyReqJsonBody())\n } else if (paramType === ReqSearchParamsObj) {\n otherStorage.set(ReqSearchParamsObj, rr.reqUrlSearchParamsObj)\n } else if (paramType === URLSearchParams) {\n otherStorage.set(URLSearchParams, rr.reqUrlSearchParams)\n } else if (paramType === ReqMultipartFormBody) {\n otherStorage.set(ReqMultipartFormBody, rr.reqBodyMultipartFormData())\n } else if (paramType === ReqHeader) {\n otherStorage.set(ReqHeader, rr.reqHeaderObj)\n }\n }\n\n // execute !!!\n let data = await this.simstanceManager.executeBindParameterSimPromise({\n target: moduleInstance,\n targetKey: it.propertyKey\n }, otherStorage);\n /*\n \uC5EC\uAE30\uC5D0\uC11C \uC815\uD574\uC9C4 \uD0C0\uC785 \uB9AC\uD134\uC5D0 \uB530\uB978 \uC870\uCE58\n ...\n */\n if (it.config?.resolver) {\n const execute = typeof it.config.resolver === 'function' ? this.simstanceManager.getOrNewSim({target: it.config.resolver}) : it.config.resolver;\n data = await execute?.resolve?.(data, rr);\n }\n const status = it.config?.res?.status ?? HttpStatus.Ok;\n const headers = it.config?.res?.header ?? {};\n if (it.config?.res?.contentType) {\n headers[HttpHeaders.ContentType] = it.config?.res?.contentType;\n }\n if ((it.config?.res?.contentType?.toLowerCase().indexOf(Mimes.ApplicationJson.toLowerCase()) ?? -1) > -1) {\n data = JSON.stringify(data);\n } else if (data && typeof data === 'object') {\n data = JSON.stringify(data);\n }\n rr.resSetHeaders(headers)\n rr.resSetStatusCode(status);\n rr.resWrite(data);\n }\n }\n\n if (this.option.noSuchRouteEndPointMappingThrow && methods.length <= 0 && rr.reqMethod()?.toUpperCase() !== HttpMethod.OPTIONS) {\n throw this.option.noSuchRouteEndPointMappingThrow(rr);\n }\n }\n\n // after\n for (const it of filter.filters.reverse()) {\n if (it.filter?.proceedAfter && !await it.filter.proceedAfter({rr, app: this, before: it.sw, carrier: filter.carrier})) {\n break;\n }\n }\n } catch (e) {\n console.error('request error:', e);\n transactionManager?.catch(e);\n rr.resStatusCode(e instanceof HttpError ? e.status : HttpStatus.InternalServerError)\n const execute = typeof this.option.globalAdvice === 'function' ? this.simstanceManager.getOrNewSim(this.option.globalAdvice) : this.option.globalAdvice;\n if (!execute) {\n rr.resEnd();\n // rr.resEnd().catch(e => {\n // });\n return;\n }\n if (e && typeof e === 'object') {\n otherStorage.set(e.constructor as ConstructorType<any>, e);\n otherStorage.set(SituationTypeContainer, new SituationTypeContainer({\n situationType: ExceptionHandlerSituationType.ERROR_OBJECT,\n data: e\n }));\n }\n const target = targetExceptionHandler(execute, e);\n if (target) {\n await this.simstanceManager.executeBindParameterSimPromise({\n target: execute,\n targetKey: target.propertyKey\n }, otherStorage);\n }\n } finally {\n transactionManager?.finally();\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n\n if (this.option.webSocketEndPoints) {\n const webSocketServer = new WebSocketServer({server: this.server});\n const execute = this.option.webSocketEndPoints.map(it => typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it);\n webSocketServer.on('connection', async (ws, request) => {\n this.webSocketClients.set(ws, {request});\n const wsSet = {socket: ws, request};\n execute.forEach(it => it.connect?.(wsSet));\n ws.on('error', err => execute.forEach(it => it.error?.(wsSet, err)));\n ws.on('message', (data, isBinary) => execute.forEach(it => it.message(wsSet, {data, isBinary})));\n ws.on('ping', () => execute.forEach(it => it.ping?.(wsSet)));\n ws.on('close', () => {\n this.webSocketClients.delete(ws);\n execute.forEach(it => it.close?.(wsSet));\n });\n });\n }\n this.server.listen(this.option.listen.port, this.option.listen.hostname, this.option.listen.backlog, () => {\n this.option.listen.listeningListener?.(this, this.server);\n });\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAgC;AAChC,8BAA+B;AAE/B,kBAAoE;AACpE,mBAAoC;AACpC,gBAAyC;AACzC,6BAA8B;AAC9B,2BAAwF;AACxF,wBAAyB;AACzB,yBAA0B;AAC1B,mBAAoB;AAEpB,IAAAA,sBAAoE;AACpE,IAAAA,sBAAyE;AAEzE,IAAAC,eAA2B;AAC3B,4BAA6B;AAC7B,yBAA0B;AAC1B,uBAAwB;AACxB,IAAAD,sBAA2B;AAC3B,kCAAmC;AACnC,IAAAA,sBAAmD;AACnD,IAAAA,sBAA6B;AAC7B,uBAAwB;AACxB,IAAAA,sBAAuB;AAEvB,iBAA8B;AAC9B,wBAAyB;AACzB,4BAA6B;AAE7B,gCAAiC;AAEjC,yBAA0B;AAGnB,MAAM,6BAA6B,qCAAkB;AAAA,EAK1D,YAAmB,SAA2B,IAAI,yCAAiB,GAAG;AACpE,UAAM,MAAM;AADK;AAFnB,SAAQ,mBAAmB,oBAAI,IAA6C;AAI1E,SAAK,iBAAiB,IAAI,qCAAe,KAAK,MAAM;AAAA,EACtD;AAAA,EAGO,IAAI,kBAAmF;AAC5F,yBAAqB,oBAAI,IAA+D;AACxF,qBAAiB,IAAI,sBAAsB,IAAI;AAC/C,UAAM,IAAI,gBAAgB;AAC1B,UAAM,UAAU,CAAC,GAAG,KAAK,OAAO,kBAAkB,CAAC,GAAG,GAAG,KAAK,OAAO,kBAAkB,CAAC,GAAG,GAAG,KAAK,OAAO,oBAAoB,CAAC,GAAG,IAAI,KAAK,OAAO,WAAW,CAAC,GAAG,IAAI,QAAI,GAAG,MAAM,CAAC;AACnL,YAAQ,IAAI,QAAQ,IAAI,QAAO,OAAO,OAAO,aAAa,KAAK,iBAAiB,YAAY,EAAC,QAAQ,GAA0B,CAAC,IAAI,EAAa,EAAE,IAAI,QAAM,GAAG,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,QAAM;AACxL,WAAK,YAAY;AAAA,IACnB,CAAC;AACD,WAAO;AAAA,EACT;AAAA,EAEQ,cAAc;AAKpB,QAAI,KAAK,OAAO,gBAAgB,SAAS,KAAK,OAAO,gBAAgB,UAAU,KAAK,OAAO,cAAc;AACvG,WAAK,SAAS,IAAI,aAAAE,OAAY,KAAK,OAAO,YAAY;AACtD,YAAM,aAAa,IAAI,YAAAC,OAAW;AAClC,iBAAW,GAAG,WAAW,CAAC,KAAsB,QAAwB;AACtE,YAAI,UAAU,KAAK,EAAC,UAAU,WAAW,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,GAAE,CAAC;AACtE,YAAI,IAAI;AAAA,MACV,CAAC;AACD,iBAAW,OAAO,IAAI,KAAK,OAAO,OAAO,UAAU,MAAM;AACvD,gBAAQ,IAAI,yCAAyC;AAAA,MACvD,CAAC;AAAA,IACH,WAAW,KAAK,OAAO,cAAc;AACnC,WAAK,SAAS,IAAI,YAAAA,OAAW,KAAK,OAAO,YAAY;AAAA,IACvD,OAAO;AACL,WAAK,SAAS,IAAI,YAAAA,OAAW;AAAA,IAC/B;AAEA,SAAK,OAAO,GAAG,WAAW,OAAO,KAAsB,QAAwB;AAE7E,YAAM,qBAAqB,KAAK,OAAO,4BAA4B,MAAM,KAAK,OAAO,0BAA0B,IAAI;AACnH,UAAI,GAAG,SAAS,YAAY;AAC1B,YAAI,KAAK,OAAO,gBAAgB;AAC9B,qBAAW,MAAM,KAAK,OAAO,gBAAgB;AAC3C,gBAAI;AACF,oBAAM,UAAW,OAAO,OAAO,aAAa,KAAK,iBAAiB,YAAY,EAAC,QAAQ,GAAE,CAAC,IAAI;AAC9F,oBAAM,WAAW,SAAS,SAAS,IAAI,IAAI;AAC3C,kBAAI,oBAAoB,SAAS;AAC/B,sBAAM;AAAA,cACR;AAAA,YACF,SAAS,GAAG;AAAA,YACZ;AAAA,UACF;AAAA,QACF;AAEA,YAAI,CAAC,GAAG,UAAU,GAAG;AACnB,aAAG,OAAO;AAAA,QACZ;AAAA,MACF,CAAC;AACD,UAAI,GAAG,SAAS,YAAY;AAC1B,YAAI,KAAK,OAAO,gBAAgB;AAC9B,qBAAW,MAAM,KAAK,OAAO,gBAAgB;AAC3C,gBAAI;AACF,oBAAM,UAAW,OAAO,OAAO,aAAa,KAAK,iBAAiB,YAAY,EAAC,QAAQ,GAAE,CAAC,IAAI;AAC9F,oBAAM,WAAW,SAAS,SAAS,IAAI,IAAI;AAC3C,kBAAI,oBAAoB,SAAS;AAC/B,sBAAM;AAAA,cACR;AAAA,YACF,SAAS,GAAG;AAAA,YACZ;AAAA,UACF;AAAA,QACF;AAEA,YAAI,CAAC,GAAG,UAAU,GAAG;AACnB,aAAG,OAAO;AAAA,QACZ;AAAA,MACF,CAAC;AAED,YAAM,KAAK,IAAI,uCAAgB,KAAK,KAAK,EAAC,gBAAgB,KAAK,gBAAgB,QAAQ,KAAK,OAAM,CAAC;AAInG,SAAG,aAAa,+BAAY,QAAQ,yBAAyB;AAC7D,YAAM,SAAS,GAAG,aAAa,KAAK,OAAO,cAAc,GAAG;AAC5D,UAAI,CAAC,QAAQ;AACX,cAAM,UAAU,MAAM,KAAK,eAAe,QAAQ;AAElD,cAAM,cAAwB,CAAC;AAC/B,oBAAY,KAAK,GAAG,KAAK,OAAO,cAAc,GAAG,IAAI,QAAQ,IAAI,EAAE;AACnE,oBAAY,KAAK,QAAQ,KAAK,OAAO,cAAc,IAAI,EAAE;AACzD,YAAI,KAAK,OAAO,cAAc,SAAU,aAAY,KAAK,UAAU;AACnE,YAAI,KAAK,OAAO,cAAc,OAAQ,aAAY,KAAK,QAAQ;AAC/D,YAAI,KAAK,OAAO,cAAc,YAAY,QAAQ,KAAK,OAAO,cAAc,SAAU,aAAY,KAAK,YAAY,KAAK,OAAO,cAAc,QAAQ,EAAE;AACvJ,cAAM,SAAU,KAAK,OAAO,cAAsB,UAAW,KAAK,eAAe,eAAgB;AACjG,YAAI,UAAU,KAAM,aAAY,KAAK,WAAW,MAAM,EAAE;AACxD,WAAG,aAAa,+BAAY,WAAW,YAAY,KAAK,IAAI,CAAC;AAAA,MAC/D;AAEA,YAAM,eAAe,oBAAI,IAA+B;AACxD,mBAAa,IAAI,wCAAiB,EAAE;AACpC,mBAAa,IAAI,6BAAiB,GAAG;AACrC,mBAAa,IAAI,4BAAgB,GAAG;AACpC,UAAI;AACF,4BAAoB,IAAI;AACxB,YAAI,KAAK,OAAO,kBAAkB;AAChC,qBAAW,MAAM,KAAK,OAAO,kBAAkB;AAC7C,gBAAI;AACF,oBAAM,UAAW,OAAO,OAAO,aAAa,KAAK,iBAAiB,YAAsB,EAAC,QAAQ,GAAE,CAAC,IAAI;AACxG,uBAAS,SAAS,IAAI,IAAI;AAAA,YAC5B,SAAS,GAAG;AAAA,YACZ;AAAA,UACF;AAAA,QACF;AAEA,cAAM,SAAS;AAAA,UACb,SAAS,oBAAI,IAAiB;AAAA,UAC9B,SAAS,CAAC;AAAA,QACZ;AACA,iBAAS,IAAI,GAAG,KAAK,OAAO,WAAW,IAAI,KAAK,OAAO,QAAQ,QAAQ,KAAK;AAC1E,gBAAM,KAAK,KAAK,OAAO,QAAQ,CAAC;AAEhC,cAAI,SAAS;AACb,cAAI,OAAO,GAAG,cAAc,WAAW;AACrC,qBAAS,CAAC,GAAG;AAAA,UACf,WAAW,OAAO,GAAG,cAAc,UAAU;AAC3C,qBAAS,CAAC,GAAG,UAAU,KAAK,GAAG,cAAc;AAAA,UAC/C,WAAW,OAAO,GAAG,cAAc,YAAY;AAC7C,qBAAS,CAAC,GAAG,UAAU,EAAE;AAAA,UAC3B;AACA,cAAG,QAAQ;AACT;AAAA,UACF;AAEA,cAAI,KAAK;AACT,gBAAM,WAAW,GAAG;AACpB,gBAAM,UAAW,OAAO,aAAa,aAAa,KAAK,iBAAiB,YAAY,EAAC,QAAQ,SAAQ,CAAC,IAAI;AAC1G,cAAI,SAAS,eAAe;AAC1B,iBAAK,MAAM,QAAQ,cAAc,EAAC,IAAI,KAAK,MAAM,SAAS,OAAO,QAAO,CAAC;AACzE,mBAAO,QAAQ,KAAK,EAAC,QAAQ,SAAS,GAAE,CAAC;AAAA,UAC3C;AACA,cAAI,CAAC,IAAI;AACP;AAAA,UACF;AAAA,QACF;AAGA,YAAI,CAAC,GAAG,UAAU,GAAG;AACnB,gBAAM,eAAe,MAAM,MAAM,QAAQ,GAAG,SAAS;AACrD,uBAAa,IAAI,kCAAc,YAAY;AAC3C,gBAAM,iBAAiB,cAAc,oBAAoB;AACzD,cAAI,UAA+B,CAAC;AACpC,cAAI,gBAAgB,gBAAgB;AAElC,gBAAI,aAAa,cAAc;AAC7B,oBAAM,MAAM,aAAa,cAAc,IAAI,CAAC,OAAwB;AAClE,uBAAO,EAAC,aAAa,IAAI,YAAQ,oCAAc,gBAAgB,EAAE,EAAC;AAAA,cACpE,CAAC;AACD,sBAAQ,KAAK,GAAI,OAAO,CAAC,CAAE;AAAA,YAC7B,OAAO;AACL,sBAAQ,KAAK,OAAI,qCAAe,cAAc,EAAE,OAAO,QAAM,KAAC,8BAAS,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,CAAE;AAAA,YAChH;AAGA,gBAAI,GAAG,UAAU,GAAG,YAAY,MAAM,6BAAW,QAAQ,YAAY,GAAG;AACtE,iBAAG,aAAa,+BAAY,OAAO,QAAQ,IAAI,QAAM,GAAG,OAAO,MAAM,EAAE,KAAK,IAAI,CAAC;AACjF,iBAAG,cAAc,6BAAW,EAAE;AAAA,YAChC;AAGA,sBAAU,QAAQ,OAAO,QAAM,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,MAAM,GAAG,OAAO,OAAO,YAAY,CAAC;AACpI,oBAAQ,KAAK,CAAC,GAAG,MAAM;AACrB,sBAAS,EAAE,QAAQ,KAAK,aAAa,UAAU,MAAM,EAAE,QAAQ,KAAK,QAAQ,UAAU,OAAQ,EAAE,QAAQ,KAAK,aAAa,UAAU,MAAM,EAAE,QAAQ,KAAK,QAAQ,UAAU;AAAA,YAC7K,CAAC;AACD,sBAAU,QACP,OAAO,QAAM,GAAG,QAAQ,KAAK,cAAe,CAAC,CAAC,GAAG,QAAQ,KAAK,aAAa,KAAK,SAAO,GAAG,wBAAwB,GAAG,CAAC,IAAK,IAAI,EAC/H,OAAO,QAAM,GAAG,QAAQ,KAAK,SAAU,CAAC,CAAC,GAAG,QAAQ,KAAK,QAAQ,KAAK,SAAO,GAAG,mBAAmB,GAAG,CAAC,IAAK,IAAI;AAEnH,gBAAI,QAAQ,CAAC,GAAG;AACd,oBAAM,KAAK,QAAQ,CAAC;AACpB,oBAAM,aAAa,0BAAa,kBAAkB,gBAAgB,GAAG,WAAW;AAChF,oBAAM,cAAU,+BAAU,gBAAgB,GAAG,WAAW;AACxD,oBAAM,kBAAc,mCAAc,gBAAgB,GAAG,WAAW;AAChE,kBAAI,SAAS;AACX,sBAAM,aAAa,QAAQ,KAAK,CAAAC,QAAMA,IAAG,QAAQ,kBAAkB,6CAAwB,aAAa;AACxG,sBAAM,SAAS,QAAQ,KAAK,CAAAA,QAAMA,IAAG,QAAQ,kBAAkB,6CAAwB,aAAa;AACpG,sBAAM,oBAAoB,QAAQ,KAAK,CAAAA,QAAMA,IAAG,QAAQ,kBAAkB,6CAAwB,yBAAyB;AAC3H,sBAAM,YAAY,QAAQ,KAAK,CAAAA,QAAMA,IAAG,QAAQ,kBAAkB,6CAAwB,iBAAiB;AAG3G,sBAAM,uBAAuB,IAAI,4CAAwB;AACzD,oBAAI,YAAY;AACd,sBAAIC,QAAO,MAAM,aAAa;AAC9B,sBAAI,WAAW,MAAM;AACnB,oBAAAA,QAAO,OAAO,OAAO,IAAI,WAAW,KAAK,GAAGA,KAAI;AAAA,kBAClD;AACA,sBAAI,YAAY,SAAS,WAAW,KAAK,GAAG;AAC1C,0BAAM,cAAU,2CAAsBA,KAAI;AAC1C,yBAAK,SAAS,UAAU,KAAK,GAAG;AAC9B,4BAAM,IAAI,mCAAe,OAAO;AAAA,oBAClC;AAAA,kBACF;AACA,uCAAqB,KAAK,IAAI,2CAAuB;AAAA,oBACnD,eAAe,6CAAwB;AAAA,oBACvC,MAAAA;AAAA,kBACF,CAAC,CAAC;AAAA,gBACJ;AACA,oBAAI,QAAQ;AACV,sBAAIA,QAAO,MAAM,GAAG,gBAAgB;AACpC,sBAAIA,UAAS,QAAQ,OAAO,MAAM;AAChC,oBAAAA,QAAO,OAAO,OAAO,IAAI,OAAO,KAAK,GAAGA,KAAI;AAAA,kBAC9C;AACA,sBAAI,YAAY,SAAS,OAAO,KAAK,GAAG;AACtC,0BAAM,cAAU,2CAAsBA,KAAI;AAC1C,yBAAK,SAAS,UAAU,KAAK,GAAG;AAC9B,4BAAM,IAAI,mCAAe,OAAO;AAAA,oBAClC;AAAA,kBACF;AACA,uCAAqB,KAAK,IAAI,2CAAuB;AAAA,oBACnD,eAAe,6CAAwB;AAAA,oBACvC,MAAAA;AAAA,kBACF,CAAC,CAAC;AAAA,gBACJ;AACA,oBAAI,mBAAmB;AACrB,sBAAIA,QAAO,GAAG;AACd,sBAAI,YAAY,SAAS,kBAAkB,KAAK,GAAG;AACjD,0BAAM,cAAU,2CAAsBA,KAAI;AAC1C,yBAAK,SAAS,UAAU,KAAK,GAAG;AAC9B,4BAAM,IAAI,mCAAe,OAAO;AAAA,oBAClC;AAAA,kBACF;AACA,uCAAqB,KAAK,IAAI,2CAAuB;AAAA,oBACnD,eAAe,6CAAwB;AAAA,oBACvC,MAAAA;AAAA,kBACF,CAAC,CAAC;AAAA,gBACJ;AACA,oBAAI,WAAW;AACb,sBAAIA,QAAO,MAAM,GAAG,mBAAmB;AACvC,sBAAI,UAAU,MAAM;AAClB,oBAAAA,QAAO,OAAO,OAAO,IAAI,UAAU,KAAK,GAAGA,KAAI;AAAA,kBACjD;AACA,sBAAI,YAAY,SAAS,UAAU,KAAK,GAAG;AACzC,0BAAM,cAAU,2CAAsBA,KAAI;AAC1C,yBAAK,SAAS,UAAU,KAAK,GAAG;AAC9B,4BAAM,IAAI,mCAAe,OAAO;AAAA,oBAClC;AAAA,kBACF;AACA,uCAAqB,KAAK,IAAI,2CAAuB,EAAC,eAAe,6CAAwB,mBAAmB,MAAAA,MAAI,CAAC,CAAC;AAAA,gBACxH;AASA,oBAAI,qBAAqB,QAAQ;AAC/B,+BAAa,IAAI,6CAAyB,oBAAoB;AAAA,gBAChE;AAAA,cACF;AAEA,yBAAW,aAAa,YAAY;AAClC,oBAAI,cAAc,sCAAgB;AAChC,+BAAa,IAAI,sCAAgB,MAAM,GAAG,sBAAsB,CAAC;AAAA,gBACnE,WAAW,cAAc,gCAAa;AACpC,+BAAa,IAAI,gCAAa,aAAa,QAAQ;AAAA,gBACrD,WAAW,cAAc,gCAAa;AACpC,+BAAa,IAAI,gCAAa,MAAM,GAAG,mBAAmB,CAAC;AAAA,gBAC7D,WAAW,cAAc,8CAAoB;AAC3C,+BAAa,IAAI,8CAAoB,GAAG,qBAAqB;AAAA,gBAC/D,WAAW,cAAc,4BAAiB;AACxC,+BAAa,IAAI,4BAAiB,GAAG,kBAAkB;AAAA,gBACzD,WAAW,cAAc,kDAAsB;AAC7C,+BAAa,IAAI,kDAAsB,GAAG,yBAAyB,CAAC;AAAA,gBACtE,WAAW,cAAc,4BAAW;AAClC,+BAAa,IAAI,4BAAW,GAAG,YAAY;AAAA,gBAC7C;AAAA,cACF;AAGA,kBAAI,OAAO,MAAM,KAAK,iBAAiB,+BAA+B;AAAA,gBACpE,QAAQ;AAAA,gBACR,WAAW,GAAG;AAAA,cAChB,GAAG,YAAY;AAKf,kBAAI,GAAG,QAAQ,UAAU;AACvB,sBAAM,UAAU,OAAO,GAAG,OAAO,aAAa,aAAa,KAAK,iBAAiB,YAAY,EAAC,QAAQ,GAAG,OAAO,SAAQ,CAAC,IAAI,GAAG,OAAO;AACvI,uBAAO,MAAM,SAAS,UAAU,MAAM,EAAE;AAAA,cAC1C;AACA,oBAAM,SAAS,GAAG,QAAQ,KAAK,UAAU,6BAAW;AACpD,oBAAM,UAAU,GAAG,QAAQ,KAAK,UAAU,CAAC;AAC3C,kBAAI,GAAG,QAAQ,KAAK,aAAa;AAC/B,wBAAQ,+BAAY,WAAW,IAAI,GAAG,QAAQ,KAAK;AAAA,cACrD;AACA,mBAAK,GAAG,QAAQ,KAAK,aAAa,YAAY,EAAE,QAAQ,mBAAM,gBAAgB,YAAY,CAAC,KAAK,MAAM,IAAI;AACxG,uBAAO,KAAK,UAAU,IAAI;AAAA,cAC5B,WAAW,QAAQ,OAAO,SAAS,UAAU;AAC3C,uBAAO,KAAK,UAAU,IAAI;AAAA,cAC5B;AACA,iBAAG,cAAc,OAAO;AACxB,iBAAG,iBAAiB,MAAM;AAC1B,iBAAG,SAAS,IAAI;AAAA,YAClB;AAAA,UACF;AAEA,cAAI,KAAK,OAAO,mCAAmC,QAAQ,UAAU,KAAK,GAAG,UAAU,GAAG,YAAY,MAAM,6BAAW,SAAS;AAC9H,kBAAM,KAAK,OAAO,gCAAgC,EAAE;AAAA,UACtD;AAAA,QACF;AAGA,mBAAW,MAAM,OAAO,QAAQ,QAAQ,GAAG;AACzC,cAAI,GAAG,QAAQ,gBAAgB,CAAC,MAAM,GAAG,OAAO,aAAa,EAAC,IAAI,KAAK,MAAM,QAAQ,GAAG,IAAI,SAAS,OAAO,QAAO,CAAC,GAAG;AACrH;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,GAAG;AACV,gBAAQ,MAAM,kBAAkB,CAAC;AACjC,4BAAoB,MAAM,CAAC;AAC3B,WAAG,cAAc,aAAa,6BAAY,EAAE,SAAS,6BAAW,mBAAmB;AACnF,cAAM,UAAU,OAAO,KAAK,OAAO,iBAAiB,aAAa,KAAK,iBAAiB,YAAY,KAAK,OAAO,YAAY,IAAI,KAAK,OAAO;AAC3I,YAAI,CAAC,SAAS;AACZ,aAAG,OAAO;AAGV;AAAA,QACF;AACA,YAAI,KAAK,OAAO,MAAM,UAAU;AAC9B,uBAAa,IAAI,EAAE,aAAqC,CAAC;AACzD,uBAAa,IAAI,4CAAwB,IAAI,2CAAuB;AAAA,YAClE,eAAe,kDAA8B;AAAA,YAC7C,MAAM;AAAA,UACR,CAAC,CAAC;AAAA,QACJ;AACA,cAAM,aAAS,4CAAuB,SAAS,CAAC;AAChD,YAAI,QAAQ;AACV,gBAAM,KAAK,iBAAiB,+BAA+B;AAAA,YACzD,QAAQ;AAAA,YACR,WAAW,OAAO;AAAA,UACpB,GAAG,YAAY;AAAA,QACjB;AAAA,MACF,UAAE;AACA,4BAAoB,QAAQ;AAAA,MAC9B;AAEA,UAAI,CAAC,GAAG,UAAU,GAAG;AACnB,WAAG,OAAO;AAAA,MACZ;AAAA,IACF,CAAC;AAED,QAAI,KAAK,OAAO,oBAAoB;AAClC,YAAM,kBAAkB,IAAI,0BAAgB,EAAC,QAAQ,KAAK,OAAM,CAAC;AACjE,YAAM,UAAU,KAAK,OAAO,mBAAmB,IAAI,QAAM,OAAO,OAAO,aAAa,KAAK,iBAAiB,YAAY,EAAC,QAAQ,GAAE,CAAC,IAAI,EAAE;AACxI,sBAAgB,GAAG,cAAc,OAAO,IAAI,YAAY;AACtD,aAAK,iBAAiB,IAAI,IAAI,EAAC,QAAO,CAAC;AACvC,cAAM,QAAQ,EAAC,QAAQ,IAAI,QAAO;AAClC,gBAAQ,QAAQ,QAAM,GAAG,UAAU,KAAK,CAAC;AACzC,WAAG,GAAG,SAAS,SAAO,QAAQ,QAAQ,QAAM,GAAG,QAAQ,OAAO,GAAG,CAAC,CAAC;AACnE,WAAG,GAAG,WAAW,CAAC,MAAM,aAAa,QAAQ,QAAQ,QAAM,GAAG,QAAQ,OAAO,EAAC,MAAM,SAAQ,CAAC,CAAC,CAAC;AAC/F,WAAG,GAAG,QAAQ,MAAM,QAAQ,QAAQ,QAAM,GAAG,OAAO,KAAK,CAAC,CAAC;AAC3D,WAAG,GAAG,SAAS,MAAM;AACnB,eAAK,iBAAiB,OAAO,EAAE;AAC/B,kBAAQ,QAAQ,QAAM,GAAG,QAAQ,KAAK,CAAC;AAAA,QACzC,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AACA,SAAK,OAAO,OAAO,KAAK,OAAO,OAAO,MAAM,KAAK,OAAO,OAAO,UAAU,KAAK,OAAO,OAAO,SAAS,MAAM;AACzG,WAAK,OAAO,OAAO,oBAAoB,MAAM,KAAK,MAAM;AAAA,IAC1D,CAAC;AAAA,EACH;AACF;",
|
|
6
6
|
"names": ["import_simple_boot", "import_core", "HttpsServer", "HttpServer", "it", "data"]
|
|
7
7
|
}
|
package/dist/cjs/bundle-entry.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
5
11
|
var __copyProps = (to, from, except, desc) => {
|
|
6
12
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
13
|
for (let key of __getOwnPropNames(from))
|
|
@@ -11,34 +17,38 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
11
17
|
return to;
|
|
12
18
|
};
|
|
13
19
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
14
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
29
|
var bundle_entry_exports = {};
|
|
30
|
+
__export(bundle_entry_exports, {
|
|
31
|
+
Core: () => Core,
|
|
32
|
+
CoreNode: () => CoreNode,
|
|
33
|
+
CoreWeb: () => CoreWeb,
|
|
34
|
+
DomRender: () => DomRender,
|
|
35
|
+
SimpleBoot: () => SimpleBoot
|
|
36
|
+
});
|
|
16
37
|
module.exports = __toCommonJS(bundle_entry_exports);
|
|
17
|
-
|
|
18
|
-
__reExport(bundle_entry_exports, require("./
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
__reExport(bundle_entry_exports, require("./models"), module.exports);
|
|
25
|
-
__reExport(bundle_entry_exports, require("./option"), module.exports);
|
|
26
|
-
__reExport(bundle_entry_exports, require("./resolvers"), module.exports);
|
|
27
|
-
__reExport(bundle_entry_exports, require("./session"), module.exports);
|
|
28
|
-
__reExport(bundle_entry_exports, require("./SimpleBootHttpServer"), module.exports);
|
|
38
|
+
var import_reflect_metadata = require("reflect-metadata");
|
|
39
|
+
__reExport(bundle_entry_exports, require("./index"), module.exports);
|
|
40
|
+
var Core = __toESM(require("@dooboostore/core"), 1);
|
|
41
|
+
var CoreNode = __toESM(require("@dooboostore/core-node"), 1);
|
|
42
|
+
var CoreWeb = __toESM(require("@dooboostore/core-web"), 1);
|
|
43
|
+
var DomRender = __toESM(require("@dooboostore/dom-render"), 1);
|
|
44
|
+
var SimpleBoot = __toESM(require("@dooboostore/simple-boot"), 1);
|
|
29
45
|
// Annotate the CommonJS export names for ESM import in node:
|
|
30
46
|
0 && (module.exports = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
...require("./
|
|
37
|
-
...require("./lifecycle"),
|
|
38
|
-
...require("./models"),
|
|
39
|
-
...require("./option"),
|
|
40
|
-
...require("./resolvers"),
|
|
41
|
-
...require("./session"),
|
|
42
|
-
...require("./SimpleBootHttpServer")
|
|
47
|
+
Core,
|
|
48
|
+
CoreNode,
|
|
49
|
+
CoreWeb,
|
|
50
|
+
DomRender,
|
|
51
|
+
SimpleBoot,
|
|
52
|
+
...require("./index")
|
|
43
53
|
});
|
|
44
54
|
//# sourceMappingURL=bundle-entry.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/bundle-entry.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import 'reflect-metadata';\n\n// simple-boot-http-server itself\nexport * from './index';\n\n// Re-export peer dependencies so bundle consumers can access them\n// without separately importing each package\nexport * as Core from '@dooboostore/core';\nexport * as CoreNode from '@dooboostore/core-node';\nexport * as CoreWeb from '@dooboostore/core-web';\nexport * as DomRender from '@dooboostore/dom-render';\nexport * as SimpleBoot from '@dooboostore/simple-boot';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAO;AAGP,iCAAc,oBAHd;AAOA,WAAsB;AACtB,eAA0B;AAC1B,cAAyB;AACzB,gBAA2B;AAC3B,iBAA4B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -28,6 +28,8 @@ __export(MethodMapping_exports, {
|
|
|
28
28
|
TRACE: () => TRACE,
|
|
29
29
|
UrlMapping: () => UrlMapping,
|
|
30
30
|
UrlMappingSituationType: () => UrlMappingSituationType,
|
|
31
|
+
connectMethod: () => connectMethod,
|
|
32
|
+
deleteMethod: () => deleteMethod,
|
|
31
33
|
getCONNECT: () => getCONNECT,
|
|
32
34
|
getCONNECTS: () => getCONNECTS,
|
|
33
35
|
getDELETE: () => getDELETE,
|
|
@@ -36,6 +38,7 @@ __export(MethodMapping_exports, {
|
|
|
36
38
|
getGETS: () => getGETS,
|
|
37
39
|
getHEAD: () => getHEAD,
|
|
38
40
|
getHEADS: () => getHEADS,
|
|
41
|
+
getMethod: () => getMethod,
|
|
39
42
|
getOPTIONS: () => getOPTIONS,
|
|
40
43
|
getOPTIONSS: () => getOPTIONSS,
|
|
41
44
|
getPATCH: () => getPATCH,
|
|
@@ -47,7 +50,14 @@ __export(MethodMapping_exports, {
|
|
|
47
50
|
getTRACE: () => getTRACE,
|
|
48
51
|
getTRACES: () => getTRACES,
|
|
49
52
|
getUrlMapping: () => getUrlMapping,
|
|
50
|
-
getUrlMappings: () => getUrlMappings
|
|
53
|
+
getUrlMappings: () => getUrlMappings,
|
|
54
|
+
headMethod: () => headMethod,
|
|
55
|
+
optionsMethod: () => optionsMethod,
|
|
56
|
+
patchMethod: () => patchMethod,
|
|
57
|
+
postMethod: () => postMethod,
|
|
58
|
+
putMethod: () => putMethod,
|
|
59
|
+
traceMethod: () => traceMethod,
|
|
60
|
+
urlMapping: () => urlMapping
|
|
51
61
|
});
|
|
52
62
|
module.exports = __toCommonJS(MethodMapping_exports);
|
|
53
63
|
var import_core2 = require("@dooboostore/core");
|
|
@@ -59,7 +69,7 @@ var UrlMappingSituationType = /* @__PURE__ */ ((UrlMappingSituationType2) => {
|
|
|
59
69
|
UrlMappingSituationType2["REQ_FORM_URL_BODY"] = "SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_FORM_URL_BODY";
|
|
60
70
|
return UrlMappingSituationType2;
|
|
61
71
|
})(UrlMappingSituationType || {});
|
|
62
|
-
const MappingMetadataKey = Symbol("
|
|
72
|
+
const MappingMetadataKey = Symbol.for("simple-boot-http-server:mapping-metadata");
|
|
63
73
|
const process = (config, target, propertyKey, descriptor) => {
|
|
64
74
|
const saveMappingConfigs = import_core2.ReflectUtils.getMetadata(MappingMetadataKey, target.constructor) ?? [];
|
|
65
75
|
saveMappingConfigs.push({ propertyKey, config });
|
|
@@ -228,6 +238,16 @@ const getCONNECT = (target, propertyKey) => {
|
|
|
228
238
|
const getCONNECTS = (target) => {
|
|
229
239
|
return getUrlMappings(target)?.filter((it) => it.config?.method.toUpperCase() === import_HttpMethod.HttpMethod.CONNECT);
|
|
230
240
|
};
|
|
241
|
+
const urlMapping = UrlMapping;
|
|
242
|
+
const getMethod = GET;
|
|
243
|
+
const postMethod = POST;
|
|
244
|
+
const patchMethod = PATCH;
|
|
245
|
+
const putMethod = PUT;
|
|
246
|
+
const deleteMethod = DELETE;
|
|
247
|
+
const optionsMethod = OPTIONS;
|
|
248
|
+
const headMethod = HEAD;
|
|
249
|
+
const traceMethod = TRACE;
|
|
250
|
+
const connectMethod = CONNECT;
|
|
231
251
|
// Annotate the CommonJS export names for ESM import in node:
|
|
232
252
|
0 && (module.exports = {
|
|
233
253
|
CONNECT,
|
|
@@ -241,6 +261,8 @@ const getCONNECTS = (target) => {
|
|
|
241
261
|
TRACE,
|
|
242
262
|
UrlMapping,
|
|
243
263
|
UrlMappingSituationType,
|
|
264
|
+
connectMethod,
|
|
265
|
+
deleteMethod,
|
|
244
266
|
getCONNECT,
|
|
245
267
|
getCONNECTS,
|
|
246
268
|
getDELETE,
|
|
@@ -249,6 +271,7 @@ const getCONNECTS = (target) => {
|
|
|
249
271
|
getGETS,
|
|
250
272
|
getHEAD,
|
|
251
273
|
getHEADS,
|
|
274
|
+
getMethod,
|
|
252
275
|
getOPTIONS,
|
|
253
276
|
getOPTIONSS,
|
|
254
277
|
getPATCH,
|
|
@@ -260,6 +283,13 @@ const getCONNECTS = (target) => {
|
|
|
260
283
|
getTRACE,
|
|
261
284
|
getTRACES,
|
|
262
285
|
getUrlMapping,
|
|
263
|
-
getUrlMappings
|
|
286
|
+
getUrlMappings,
|
|
287
|
+
headMethod,
|
|
288
|
+
optionsMethod,
|
|
289
|
+
patchMethod,
|
|
290
|
+
postMethod,
|
|
291
|
+
putMethod,
|
|
292
|
+
traceMethod,
|
|
293
|
+
urlMapping
|
|
264
294
|
});
|
|
265
295
|
//# sourceMappingURL=MethodMapping.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/decorators/MethodMapping.ts"],
|
|
4
|
-
"sourcesContent": ["import { ConstructorType } from '@dooboostore/core';\nimport { ReflectMethod } from '@dooboostore/simple-boot';\nimport { ReflectUtils } from '@dooboostore/core';\nimport { Resolver } from '../resolvers/Resolver';\nimport { Mimes } from '../codes/Mimes';\nimport { HttpMethod } from '../codes/HttpMethod';\n\nexport enum UrlMappingSituationType {\n REQ_JSON_BODY = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_JSON_BODY',\n REQ_PATH_DATA = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_PATH_DATA',\n // REQ_URL_SEARCH_PARAMS = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_URL_SEARCH_PARAMS',\n REQ_URL_SEARCH_PARAMS_OBJ = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_URL_SEARCH_PARAMS_OBJ',\n REQ_FORM_URL_BODY = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_FORM_URL_BODY'\n}\nexport type MappingConfig = {\n method: HttpMethod | string,\n description?: {\n name?: string;\n detail?: string;\n };\n\n req?: {\n contentType?: (Mimes|string)[];\n accept?: (Mimes|string)[];\n };\n\n res?: {\n status?: number;\n header?: {[key: string]: string};\n contentType?: Mimes | string;\n }\n resolver?: Resolver|ConstructorType<Resolver>;\n}\nexport type SaveMappingConfig = {propertyKey: string | symbol; config: MappingConfig}\nconst MappingMetadataKey = Symbol('MappingMetadataKey');\n// const GETSMappingMetadataKey = Symbol('GET_METHODS');\n// const GETMappingMetadataKey = Symbol('GET_METHOD');\n\nconst process = (config: MappingConfig, target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const saveMappingConfigs = (ReflectUtils.getMetadata(MappingMetadataKey, target.constructor) ?? []) as SaveMappingConfig[];\n saveMappingConfigs.push({propertyKey, config});\n ReflectUtils.defineMetadata(MappingMetadataKey, saveMappingConfigs, target.constructor);\n ReflectUtils.defineMetadata(MappingMetadataKey, config, target, propertyKey);\n}\nexport function UrlMapping(config: MappingConfig): ReflectMethod;\nexport function UrlMapping(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function UrlMapping(configOrtarget?: MappingConfig | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.GET}, configOrtarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n process(configOrtarget, target, propertyKey, descriptor);\n }\n }\n}\nexport const getUrlMapping = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return ReflectUtils.getMetadata(MappingMetadataKey, target, propertyKey);\n}\n\nexport const getUrlMappings = (target: any): SaveMappingConfig[] => {\n if (target !== null && undefined !== target && typeof target === 'object') {\n target = target.constructor;\n }\n return ReflectUtils.getMetadata(MappingMetadataKey, target);\n}\nexport function GET(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function GET(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function GET(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.GET}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.GET;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getGET = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getGETS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function POST(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function POST(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function POST(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.POST}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.POST;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPOST = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPOSTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.POST);\n}\nexport function DELETE(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function DELETE(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function DELETE(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.DELETE}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.DELETE;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getDELETE = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getDELETES = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.DELETE);\n}\nexport function PUT(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function PUT(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function PUT(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.PUT}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.PUT;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPUT = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPUTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.PUT);\n}\nexport function PATCH(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function PATCH(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function PATCH(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.PATCH}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.PATCH;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPATCH = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPATCHS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function OPTIONS(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function OPTIONS(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function OPTIONS(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.OPTIONS}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.OPTIONS;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getOPTIONS = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getOPTIONSS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.OPTIONS);\n}\nexport function HEAD(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function HEAD(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function HEAD(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.HEAD}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.HEAD;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getHEAD = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getHEADS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function TRACE(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function TRACE(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function TRACE(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.TRACE}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.TRACE;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getTRACE = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getTRACES = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.TRACE);\n}\nexport function CONNECT(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function CONNECT(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function CONNECT(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.CONNECT}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.CONNECT;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getCONNECT = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getCONNECTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.CONNECT);\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,IAAAA,eAA6B;AAG7B,wBAA2B;AAEpB,IAAK,0BAAL,kBAAKC,6BAAL;AACH,EAAAA,yBAAA,mBAAgB;AAChB,EAAAA,yBAAA,mBAAgB;AAEhB,EAAAA,yBAAA,+BAA4B;AAC5B,EAAAA,yBAAA,uBAAoB;AALZ,SAAAA;AAAA,GAAA;AA2BZ,MAAM,qBAAqB,OAAO,
|
|
4
|
+
"sourcesContent": ["import { ConstructorType } from '@dooboostore/core';\nimport { ReflectMethod } from '@dooboostore/simple-boot';\nimport { ReflectUtils } from '@dooboostore/core';\nimport { Resolver } from '../resolvers/Resolver';\nimport { Mimes } from '../codes/Mimes';\nimport { HttpMethod } from '../codes/HttpMethod';\n\nexport enum UrlMappingSituationType {\n REQ_JSON_BODY = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_JSON_BODY',\n REQ_PATH_DATA = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_PATH_DATA',\n // REQ_URL_SEARCH_PARAMS = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_URL_SEARCH_PARAMS',\n REQ_URL_SEARCH_PARAMS_OBJ = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_URL_SEARCH_PARAMS_OBJ',\n REQ_FORM_URL_BODY = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_FORM_URL_BODY'\n}\nexport type MappingConfig = {\n method: HttpMethod | string,\n description?: {\n name?: string;\n detail?: string;\n };\n\n req?: {\n contentType?: (Mimes|string)[];\n accept?: (Mimes|string)[];\n };\n\n res?: {\n status?: number;\n header?: {[key: string]: string};\n contentType?: Mimes | string;\n }\n resolver?: Resolver|ConstructorType<Resolver>;\n}\nexport type SaveMappingConfig = {propertyKey: string | symbol; config: MappingConfig}\nconst MappingMetadataKey = Symbol.for('simple-boot-http-server:mapping-metadata');\n// const GETSMappingMetadataKey = Symbol('GET_METHODS');\n// const GETMappingMetadataKey = Symbol('GET_METHOD');\n\nconst process = (config: MappingConfig, target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const saveMappingConfigs = (ReflectUtils.getMetadata(MappingMetadataKey, target.constructor) ?? []) as SaveMappingConfig[];\n saveMappingConfigs.push({propertyKey, config});\n ReflectUtils.defineMetadata(MappingMetadataKey, saveMappingConfigs, target.constructor);\n ReflectUtils.defineMetadata(MappingMetadataKey, config, target, propertyKey);\n}\nexport function UrlMapping(config: MappingConfig): ReflectMethod;\nexport function UrlMapping(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function UrlMapping(configOrtarget?: MappingConfig | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.GET}, configOrtarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n process(configOrtarget, target, propertyKey, descriptor);\n }\n }\n}\nexport const getUrlMapping = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return ReflectUtils.getMetadata(MappingMetadataKey, target, propertyKey);\n}\n\nexport const getUrlMappings = (target: any): SaveMappingConfig[] => {\n if (target !== null && undefined !== target && typeof target === 'object') {\n target = target.constructor;\n }\n return ReflectUtils.getMetadata(MappingMetadataKey, target);\n}\nexport function GET(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function GET(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function GET(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.GET}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.GET;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getGET = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getGETS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function POST(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function POST(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function POST(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.POST}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.POST;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPOST = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPOSTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.POST);\n}\nexport function DELETE(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function DELETE(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function DELETE(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.DELETE}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.DELETE;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getDELETE = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getDELETES = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.DELETE);\n}\nexport function PUT(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function PUT(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function PUT(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.PUT}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.PUT;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPUT = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPUTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.PUT);\n}\nexport function PATCH(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function PATCH(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function PATCH(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.PATCH}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.PATCH;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPATCH = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPATCHS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function OPTIONS(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function OPTIONS(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function OPTIONS(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.OPTIONS}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.OPTIONS;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getOPTIONS = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getOPTIONSS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.OPTIONS);\n}\nexport function HEAD(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function HEAD(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function HEAD(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.HEAD}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.HEAD;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getHEAD = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getHEADS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function TRACE(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function TRACE(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function TRACE(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.TRACE}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.TRACE;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getTRACE = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getTRACES = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.TRACE);\n}\nexport function CONNECT(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function CONNECT(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function CONNECT(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.CONNECT}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.CONNECT;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getCONNECT = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getCONNECTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.CONNECT);\n}\n\n// Aliases for lowercase\nexport const urlMapping = UrlMapping;\nexport const getMethod = GET;\nexport const postMethod = POST;\nexport const patchMethod = PATCH;\nexport const putMethod = PUT;\nexport const deleteMethod = DELETE;\nexport const optionsMethod = OPTIONS;\nexport const headMethod = HEAD;\nexport const traceMethod = TRACE;\nexport const connectMethod = CONNECT;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_core", "UrlMappingSituationType", "propertyKey", "descriptor"]
|
|
7
7
|
}
|
|
@@ -23,7 +23,8 @@ module.exports = __toCommonJS(BadRequestError_exports);
|
|
|
23
23
|
var import_HttpError = require("./HttpError");
|
|
24
24
|
var import_HttpStatus = require("../codes/HttpStatus");
|
|
25
25
|
class BadRequestError extends import_HttpError.HttpError {
|
|
26
|
-
constructor(
|
|
26
|
+
constructor(input = {}) {
|
|
27
|
+
const { status = import_HttpStatus.HttpStatus.BadRequest, message = "Bad Request" } = typeof input === "string" ? { message: input } : input;
|
|
27
28
|
super({ status, message });
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/errors/BadRequestError.ts"],
|
|
4
|
-
"sourcesContent": ["import {HttpError} from './HttpError';\nimport {HttpStatus} from '../codes/HttpStatus';\n\nexport class BadRequestError extends HttpError {\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAwB;AACxB,wBAAyB;AAElB,MAAM,wBAAwB,2BAAU;AAAA,
|
|
4
|
+
"sourcesContent": ["import {HttpError} from './HttpError';\nimport {HttpStatus} from '../codes/HttpStatus';\n\nexport class BadRequestError extends HttpError {\n constructor(\n input: { status?: number; message?: string } | string = {},\n ) {\n const {status = HttpStatus.BadRequest, message = 'Bad Request'} =\n typeof input === 'string' ? {message: input} : input;\n super({status, message});\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAwB;AACxB,wBAAyB;AAElB,MAAM,wBAAwB,2BAAU;AAAA,EAC7C,YACE,QAAwD,CAAC,GACzD;AACA,UAAM,EAAC,SAAS,6BAAW,YAAY,UAAU,cAAa,IAC5D,OAAO,UAAU,WAAW,EAAC,SAAS,MAAK,IAAI;AACjD,UAAM,EAAC,QAAQ,QAAO,CAAC;AAAA,EACzB;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -23,7 +23,8 @@ module.exports = __toCommonJS(ForbiddenError_exports);
|
|
|
23
23
|
var import_HttpError = require("./HttpError");
|
|
24
24
|
var import_HttpStatus = require("../codes/HttpStatus");
|
|
25
25
|
class ForbiddenError extends import_HttpError.HttpError {
|
|
26
|
-
constructor(
|
|
26
|
+
constructor(input = {}) {
|
|
27
|
+
const { status = import_HttpStatus.HttpStatus.Forbidden, message = "Forbidden" } = typeof input === "string" ? { message: input } : input;
|
|
27
28
|
super({ status, message });
|
|
28
29
|
}
|
|
29
30
|
}
|