@nestia/core 3.0.0-dev.20231209 → 3.0.0
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 +12 -9
- package/lib/decorators/DynamicModule.js +3 -3
- package/lib/decorators/DynamicModule.js.map +1 -1
- package/lib/decorators/EncryptedBody.js +14 -13
- package/lib/decorators/EncryptedBody.js.map +1 -1
- package/lib/decorators/EncryptedModule.d.ts +1 -1
- package/lib/decorators/EncryptedModule.js +45 -21
- package/lib/decorators/EncryptedModule.js.map +1 -1
- package/lib/decorators/EncryptedRoute.d.ts +5 -5
- package/lib/decorators/EncryptedRoute.js +12 -29
- package/lib/decorators/EncryptedRoute.js.map +1 -1
- package/lib/decorators/PlainBody.js +3 -0
- package/lib/decorators/PlainBody.js.map +1 -1
- package/lib/decorators/SwaggerCustomizer.d.ts +79 -0
- package/lib/decorators/SwaggerCustomizer.js +32 -0
- package/lib/decorators/SwaggerCustomizer.js.map +1 -0
- package/lib/decorators/TypedBody.js +3 -0
- package/lib/decorators/TypedBody.js.map +1 -1
- package/lib/decorators/TypedException.d.ts +0 -1
- package/lib/decorators/TypedException.js +0 -1
- package/lib/decorators/TypedException.js.map +1 -1
- package/lib/decorators/TypedFormData.d.ts +60 -0
- package/lib/decorators/TypedFormData.js +403 -0
- package/lib/decorators/TypedFormData.js.map +1 -0
- package/lib/decorators/TypedQuery.d.ts +11 -6
- package/lib/decorators/TypedQuery.js +6 -1
- package/lib/decorators/TypedQuery.js.map +1 -1
- package/lib/decorators/TypedRoute.d.ts +5 -5
- package/lib/decorators/internal/get_path_and_querify.js +3 -0
- package/lib/decorators/internal/get_path_and_querify.js.map +1 -1
- package/lib/decorators/internal/load_controller.js.map +1 -1
- package/lib/decorators/internal/validate_request_body.d.ts +1 -3
- package/lib/decorators/internal/validate_request_body.js +15 -0
- package/lib/decorators/internal/validate_request_body.js.map +1 -1
- package/lib/decorators/internal/validate_request_form_data.js +79 -0
- package/lib/decorators/internal/validate_request_form_data.js.map +1 -0
- package/lib/decorators/internal/validate_request_headers.d.ts +1 -3
- package/lib/decorators/internal/validate_request_headers.js +15 -0
- package/lib/decorators/internal/validate_request_headers.js.map +1 -1
- package/lib/decorators/internal/validate_request_query.d.ts +1 -3
- package/lib/decorators/internal/validate_request_query.js +15 -0
- package/lib/decorators/internal/validate_request_query.js.map +1 -1
- package/lib/module.d.ts +2 -0
- package/lib/module.js +2 -0
- package/lib/module.js.map +1 -1
- package/lib/options/IRequestFormDataProps.d.ts +23 -0
- package/lib/options/IRequestFormDataProps.js +3 -0
- package/lib/options/IRequestFormDataProps.js.map +1 -0
- package/lib/programmers/PlainBodyProgrammer.js +1 -1
- package/lib/programmers/PlainBodyProgrammer.js.map +1 -1
- package/lib/programmers/TypedExceptionProgrammer.js +5 -5
- package/lib/programmers/TypedExceptionProgrammer.js.map +1 -1
- package/lib/programmers/TypedFormDataBodyProgrammer.d.ts +6 -0
- package/lib/programmers/TypedFormDataBodyProgrammer.js +84 -0
- package/lib/programmers/TypedFormDataBodyProgrammer.js.map +1 -0
- package/lib/programmers/http/HttpQuerifyProgrammer.js +2 -2
- package/lib/programmers/http/HttpQuerifyProgrammer.js.map +1 -1
- package/lib/transformers/NodeTransformer.js.map +1 -1
- package/lib/transformers/ParameterDecoratorTransformer.js +7 -1
- package/lib/transformers/ParameterDecoratorTransformer.js.map +1 -1
- package/lib/transformers/TypedExceptionTransformer.js +1 -1
- package/lib/transformers/TypedExceptionTransformer.js.map +1 -1
- package/lib/transformers/TypedRouteTransformer.js +1 -1
- package/lib/transformers/TypedRouteTransformer.js.map +1 -1
- package/package.json +15 -16
- package/src/decorators/DynamicModule.ts +39 -39
- package/src/decorators/EncryptedBody.ts +105 -107
- package/src/decorators/EncryptedController.ts +38 -38
- package/src/decorators/EncryptedModule.ts +96 -79
- package/src/decorators/EncryptedRoute.ts +182 -206
- package/src/decorators/PlainBody.ts +75 -72
- package/src/decorators/SwaggerCustomizer.ts +115 -0
- package/src/decorators/TypedBody.ts +62 -59
- package/src/decorators/TypedException.ts +90 -89
- package/src/decorators/TypedFormData.ts +219 -0
- package/src/decorators/TypedHeaders.ts +69 -69
- package/src/decorators/TypedParam.ts +65 -65
- package/src/decorators/TypedQuery.ts +251 -246
- package/src/decorators/TypedRoute.ts +144 -144
- package/src/decorators/internal/EncryptedConstant.ts +4 -4
- package/src/decorators/internal/NoTransformConfigureError.ts +8 -8
- package/src/decorators/internal/get_path_and_querify.ts +106 -103
- package/src/decorators/internal/get_path_and_stringify.ts +91 -91
- package/src/decorators/internal/get_text_body.ts +20 -20
- package/src/decorators/internal/headers_to_object.ts +13 -13
- package/src/decorators/internal/load_controller.ts +51 -51
- package/src/decorators/internal/route_error.ts +45 -45
- package/src/decorators/internal/validate_request_body.ts +72 -57
- package/src/decorators/internal/validate_request_form_data.ts +75 -0
- package/src/decorators/internal/validate_request_headers.ts +83 -68
- package/src/decorators/internal/validate_request_query.ts +71 -56
- package/src/index.ts +5 -5
- package/src/module.ts +16 -14
- package/src/options/INestiaTransformOptions.ts +17 -17
- package/src/options/INestiaTransformProject.ts +7 -7
- package/src/options/IRequestBodyValidator.ts +20 -20
- package/src/options/IRequestFormDataProps.ts +27 -0
- package/src/options/IRequestHeadersValidator.ts +22 -22
- package/src/options/IRequestQueryValidator.ts +20 -20
- package/src/options/IResponseBodyQuerifier.ts +25 -25
- package/src/options/IResponseBodyStringifier.ts +25 -25
- package/src/programmers/PlainBodyProgrammer.ts +52 -52
- package/src/programmers/TypedBodyProgrammer.ts +108 -108
- package/src/programmers/TypedExceptionProgrammer.ts +71 -72
- package/src/programmers/TypedFormDataBodyProgrammer.ts +108 -0
- package/src/programmers/TypedHeadersProgrammer.ts +56 -56
- package/src/programmers/TypedParamProgrammer.ts +24 -24
- package/src/programmers/TypedQueryBodyProgrammer.ts +56 -56
- package/src/programmers/TypedQueryProgrammer.ts +56 -56
- package/src/programmers/TypedQueryRouteProgrammer.ts +51 -51
- package/src/programmers/TypedRouteProgrammer.ts +51 -51
- package/src/programmers/http/HttpAssertQuerifyProgrammer.ts +58 -58
- package/src/programmers/http/HttpIsQuerifyProgrammer.ts +62 -62
- package/src/programmers/http/HttpQuerifyProgrammer.ts +96 -96
- package/src/programmers/http/HttpValidateQuerifyProgrammer.ts +63 -63
- package/src/programmers/internal/CoreMetadataUtil.ts +21 -21
- package/src/transform.ts +35 -35
- package/src/transformers/FileTransformer.ts +66 -66
- package/src/transformers/MethodTransformer.ts +94 -94
- package/src/transformers/NodeTransformer.ts +16 -16
- package/src/transformers/ParameterDecoratorTransformer.ts +120 -121
- package/src/transformers/ParameterTransformer.ts +48 -48
- package/src/transformers/TypedExceptionTransformer.ts +48 -49
- package/src/transformers/TypedRouteTransformer.ts +88 -95
- package/src/typings/Creator.ts +3 -3
- package/src/utils/ExceptionManager.ts +112 -112
- package/src/utils/Singleton.ts +20 -20
- package/src/utils/SourceFinder.ts +57 -57
- package/lib/decorators/internal/get_binary_body.js +0 -66
- package/lib/decorators/internal/get_binary_body.js.map +0 -1
- package/src/decorators/internal/get_binary_body.ts +0 -18
- /package/lib/decorators/internal/{get_binary_body.d.ts → validate_request_form_data.d.ts} +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { IRequestFormDataProps } from "../options/IRequestFormDataProps";
|
|
2
|
+
/**
|
|
3
|
+
* Type safe multipart/form-data decorator.
|
|
4
|
+
*
|
|
5
|
+
* `TypedFormData.Body()` is a request body decorator function for the
|
|
6
|
+
* `multipart/form-data` content type. It automatically casts property type
|
|
7
|
+
* following its DTO definition, and performs the type validation too.
|
|
8
|
+
*
|
|
9
|
+
* Also, `TypedFormData.Body()` is much easier and type safer than `@nest.UploadFile()`.
|
|
10
|
+
* If you're considering the [SDK library](https://nestia.io/docs/sdk/sdk) generation,
|
|
11
|
+
* only `TypedFormData.Body()` can do it. Therefore, I recommend you to use
|
|
12
|
+
* `TypedFormData.Body()` instead of the `@nest.UploadFile()` function.
|
|
13
|
+
*
|
|
14
|
+
* For reference, target type `T` must follow such restriction. Of course, if actual
|
|
15
|
+
* form-data values are different with their promised type `T`,
|
|
16
|
+
* `BadRequestException` error (status code: 400) would be thrown.
|
|
17
|
+
*
|
|
18
|
+
* 1. Type `T` must be an object type
|
|
19
|
+
* 2. Do not allow dynamic property
|
|
20
|
+
* 3. Only `boolean`, `bigint`, `number`, `string`, `Blob`, `File` or their array types are allowed
|
|
21
|
+
* 4. By the way, union type never be not allowed
|
|
22
|
+
*
|
|
23
|
+
* By the way, if you're using `fastify`, you have to setup `@fastify/multipart`
|
|
24
|
+
* and configure like below when composing the NestJS application. If you don't do
|
|
25
|
+
* that, `@TypedFormData.Body()` will not work properly, and throw 500 internal
|
|
26
|
+
* server error when `Blob` or `File` type being utilized.
|
|
27
|
+
*
|
|
28
|
+
* ```typescript
|
|
29
|
+
* import multipart from "fastify-multipart";
|
|
30
|
+
* import { NestFactory } from "@nestjs/core";
|
|
31
|
+
* import {
|
|
32
|
+
* FastifyAdapter,
|
|
33
|
+
* NestFastifyApplication
|
|
34
|
+
* } from "@nestjs/platform-fastify";
|
|
35
|
+
*
|
|
36
|
+
* export async function main() {
|
|
37
|
+
* const app = await NestFactory.create<NestFastifyApplication>(
|
|
38
|
+
* AppModule,
|
|
39
|
+
* new FastifyAdapter(),
|
|
40
|
+
* );
|
|
41
|
+
* app.register(multipart);
|
|
42
|
+
* await app.listen(3000);
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @todo Change to ReadableStream through configuring storage engine of multer
|
|
47
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
48
|
+
*/
|
|
49
|
+
export declare namespace TypedFormData {
|
|
50
|
+
/**
|
|
51
|
+
* Request body decorator.
|
|
52
|
+
*
|
|
53
|
+
* Request body decorator for the `multipart/form-data` type.
|
|
54
|
+
*
|
|
55
|
+
* Much easier and type safer than `@nest.UploadFile()` decorator.
|
|
56
|
+
*
|
|
57
|
+
* @param props Automatically filled by transformer
|
|
58
|
+
*/
|
|
59
|
+
function Body<T extends object>(props?: IRequestFormDataProps<T>): ParameterDecorator;
|
|
60
|
+
}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
50
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
51
|
+
var m = o[Symbol.asyncIterator], i;
|
|
52
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
53
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
54
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
55
|
+
};
|
|
56
|
+
var __values = (this && this.__values) || function(o) {
|
|
57
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
58
|
+
if (m) return m.call(o);
|
|
59
|
+
if (o && typeof o.length === "number") return {
|
|
60
|
+
next: function () {
|
|
61
|
+
if (o && i >= o.length) o = void 0;
|
|
62
|
+
return { value: o && o[i++], done: !o };
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
66
|
+
};
|
|
67
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
68
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
69
|
+
if (!m) return o;
|
|
70
|
+
var i = m.call(o), r, ar = [], e;
|
|
71
|
+
try {
|
|
72
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
73
|
+
}
|
|
74
|
+
catch (error) { e = { error: error }; }
|
|
75
|
+
finally {
|
|
76
|
+
try {
|
|
77
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
78
|
+
}
|
|
79
|
+
finally { if (e) throw e.error; }
|
|
80
|
+
}
|
|
81
|
+
return ar;
|
|
82
|
+
};
|
|
83
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
84
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
85
|
+
};
|
|
86
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
87
|
+
exports.TypedFormData = void 0;
|
|
88
|
+
var common_1 = require("@nestjs/common");
|
|
89
|
+
var multer_1 = __importDefault(require("multer"));
|
|
90
|
+
var typia_1 = __importDefault(require("typia"));
|
|
91
|
+
var Singleton_1 = require("../utils/Singleton");
|
|
92
|
+
var validate_request_form_data_1 = require("./internal/validate_request_form_data");
|
|
93
|
+
/**
|
|
94
|
+
* Type safe multipart/form-data decorator.
|
|
95
|
+
*
|
|
96
|
+
* `TypedFormData.Body()` is a request body decorator function for the
|
|
97
|
+
* `multipart/form-data` content type. It automatically casts property type
|
|
98
|
+
* following its DTO definition, and performs the type validation too.
|
|
99
|
+
*
|
|
100
|
+
* Also, `TypedFormData.Body()` is much easier and type safer than `@nest.UploadFile()`.
|
|
101
|
+
* If you're considering the [SDK library](https://nestia.io/docs/sdk/sdk) generation,
|
|
102
|
+
* only `TypedFormData.Body()` can do it. Therefore, I recommend you to use
|
|
103
|
+
* `TypedFormData.Body()` instead of the `@nest.UploadFile()` function.
|
|
104
|
+
*
|
|
105
|
+
* For reference, target type `T` must follow such restriction. Of course, if actual
|
|
106
|
+
* form-data values are different with their promised type `T`,
|
|
107
|
+
* `BadRequestException` error (status code: 400) would be thrown.
|
|
108
|
+
*
|
|
109
|
+
* 1. Type `T` must be an object type
|
|
110
|
+
* 2. Do not allow dynamic property
|
|
111
|
+
* 3. Only `boolean`, `bigint`, `number`, `string`, `Blob`, `File` or their array types are allowed
|
|
112
|
+
* 4. By the way, union type never be not allowed
|
|
113
|
+
*
|
|
114
|
+
* By the way, if you're using `fastify`, you have to setup `@fastify/multipart`
|
|
115
|
+
* and configure like below when composing the NestJS application. If you don't do
|
|
116
|
+
* that, `@TypedFormData.Body()` will not work properly, and throw 500 internal
|
|
117
|
+
* server error when `Blob` or `File` type being utilized.
|
|
118
|
+
*
|
|
119
|
+
* ```typescript
|
|
120
|
+
* import multipart from "fastify-multipart";
|
|
121
|
+
* import { NestFactory } from "@nestjs/core";
|
|
122
|
+
* import {
|
|
123
|
+
* FastifyAdapter,
|
|
124
|
+
* NestFastifyApplication
|
|
125
|
+
* } from "@nestjs/platform-fastify";
|
|
126
|
+
*
|
|
127
|
+
* export async function main() {
|
|
128
|
+
* const app = await NestFactory.create<NestFastifyApplication>(
|
|
129
|
+
* AppModule,
|
|
130
|
+
* new FastifyAdapter(),
|
|
131
|
+
* );
|
|
132
|
+
* app.register(multipart);
|
|
133
|
+
* await app.listen(3000);
|
|
134
|
+
* }
|
|
135
|
+
* ```
|
|
136
|
+
*
|
|
137
|
+
* @todo Change to ReadableStream through configuring storage engine of multer
|
|
138
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
139
|
+
*/
|
|
140
|
+
var TypedFormData;
|
|
141
|
+
(function (TypedFormData) {
|
|
142
|
+
/**
|
|
143
|
+
* Request body decorator.
|
|
144
|
+
*
|
|
145
|
+
* Request body decorator for the `multipart/form-data` type.
|
|
146
|
+
*
|
|
147
|
+
* Much easier and type safer than `@nest.UploadFile()` decorator.
|
|
148
|
+
*
|
|
149
|
+
* @param props Automatically filled by transformer
|
|
150
|
+
*/
|
|
151
|
+
function Body(props) {
|
|
152
|
+
var checker = (0, validate_request_form_data_1.validate_request_form_data)(props);
|
|
153
|
+
var predicator = function (type) {
|
|
154
|
+
return new Singleton_1.Singleton(function () {
|
|
155
|
+
return type === "express" ? decodeExpress(props) : decodeFastify(props);
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
return (0, common_1.createParamDecorator)(function TypedFormDataBody(_unknown, context) {
|
|
159
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
160
|
+
var http, request, decoder, data, output;
|
|
161
|
+
return __generator(this, function (_a) {
|
|
162
|
+
switch (_a.label) {
|
|
163
|
+
case 0:
|
|
164
|
+
http = context.switchToHttp();
|
|
165
|
+
request = http.getRequest();
|
|
166
|
+
if (isMultipartFormData(request.headers["content-type"]) === false)
|
|
167
|
+
throw new common_1.BadRequestException("Request body type is not \"multipart/form-data\".");
|
|
168
|
+
decoder = isExpressRequest(request)
|
|
169
|
+
? predicator("express").get()
|
|
170
|
+
: predicator("fastify").get();
|
|
171
|
+
return [4 /*yield*/, decoder({
|
|
172
|
+
request: request,
|
|
173
|
+
response: http.getResponse(),
|
|
174
|
+
})];
|
|
175
|
+
case 1:
|
|
176
|
+
data = _a.sent();
|
|
177
|
+
output = checker(data);
|
|
178
|
+
if (output instanceof Error)
|
|
179
|
+
throw output;
|
|
180
|
+
return [2 /*return*/, output];
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
})();
|
|
185
|
+
}
|
|
186
|
+
TypedFormData.Body = Body;
|
|
187
|
+
Object.assign(Body, typia_1.default.http.assertFormData);
|
|
188
|
+
Object.assign(Body, typia_1.default.http.isFormData);
|
|
189
|
+
Object.assign(Body, typia_1.default.http.validateFormData);
|
|
190
|
+
})(TypedFormData || (exports.TypedFormData = TypedFormData = {}));
|
|
191
|
+
/**
|
|
192
|
+
* @internal
|
|
193
|
+
*/
|
|
194
|
+
var decodeExpress = function (props) {
|
|
195
|
+
var upload = multerApplication.get().fields(props.files.map(function (file) { return (__assign({ name: file.name }, (file.limit === 1 ? { maxCount: 1 } : {}))); }));
|
|
196
|
+
var interceptor = function (request, response) {
|
|
197
|
+
return new Promise(function (resolve, reject) {
|
|
198
|
+
return upload(request, response, function (error) {
|
|
199
|
+
if (error)
|
|
200
|
+
reject(error);
|
|
201
|
+
else
|
|
202
|
+
resolve();
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
};
|
|
206
|
+
return function (socket) { return __awaiter(void 0, void 0, void 0, function () {
|
|
207
|
+
var data, _a, _b, _c, key, value, _d, _e, elem;
|
|
208
|
+
var e_1, _f, e_2, _g;
|
|
209
|
+
return __generator(this, function (_h) {
|
|
210
|
+
switch (_h.label) {
|
|
211
|
+
case 0: return [4 /*yield*/, interceptor(socket.request, socket.response)];
|
|
212
|
+
case 1:
|
|
213
|
+
_h.sent();
|
|
214
|
+
data = new FormData();
|
|
215
|
+
try {
|
|
216
|
+
for (_a = __values(Object.entries(socket.request.body)), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
217
|
+
_c = __read(_b.value, 2), key = _c[0], value = _c[1];
|
|
218
|
+
try {
|
|
219
|
+
for (_d = (e_2 = void 0, __values(String(value).split(","))), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
220
|
+
elem = _e.value;
|
|
221
|
+
data.append(key, elem);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
225
|
+
finally {
|
|
226
|
+
try {
|
|
227
|
+
if (_e && !_e.done && (_g = _d.return)) _g.call(_d);
|
|
228
|
+
}
|
|
229
|
+
finally { if (e_2) throw e_2.error; }
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
234
|
+
finally {
|
|
235
|
+
try {
|
|
236
|
+
if (_b && !_b.done && (_f = _a.return)) _f.call(_a);
|
|
237
|
+
}
|
|
238
|
+
finally { if (e_1) throw e_1.error; }
|
|
239
|
+
}
|
|
240
|
+
if (socket.request.files)
|
|
241
|
+
parseFiles(data)(socket.request.files);
|
|
242
|
+
return [2 /*return*/, data];
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
}); };
|
|
246
|
+
};
|
|
247
|
+
/**
|
|
248
|
+
* @internal
|
|
249
|
+
*/
|
|
250
|
+
var decodeFastify = function (_props) {
|
|
251
|
+
return function (socket) { return __awaiter(void 0, void 0, void 0, function () {
|
|
252
|
+
var data, _a, _b, _c, key, value, _d, _e, elem, _f, _g, _h, file, _j, _k, _l, _m, e_3_1;
|
|
253
|
+
var e_4, _o, e_5, _p;
|
|
254
|
+
var _q, e_3, _r, _s;
|
|
255
|
+
var _t;
|
|
256
|
+
return __generator(this, function (_u) {
|
|
257
|
+
switch (_u.label) {
|
|
258
|
+
case 0:
|
|
259
|
+
if (socket.request.files === undefined ||
|
|
260
|
+
typeof socket.request.files !== "function")
|
|
261
|
+
throw new common_1.InternalServerErrorException("Have not configured the `fastify-multipart` plugin yet. Inquiry to the backend developer.");
|
|
262
|
+
data = new FormData();
|
|
263
|
+
try {
|
|
264
|
+
for (_a = __values(Object.entries((_t = socket.request.body) !== null && _t !== void 0 ? _t : {})), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
265
|
+
_c = __read(_b.value, 2), key = _c[0], value = _c[1];
|
|
266
|
+
try {
|
|
267
|
+
for (_d = (e_5 = void 0, __values(String(value).split(","))), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
268
|
+
elem = _e.value;
|
|
269
|
+
data.append(key, elem);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
273
|
+
finally {
|
|
274
|
+
try {
|
|
275
|
+
if (_e && !_e.done && (_p = _d.return)) _p.call(_d);
|
|
276
|
+
}
|
|
277
|
+
finally { if (e_5) throw e_5.error; }
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
282
|
+
finally {
|
|
283
|
+
try {
|
|
284
|
+
if (_b && !_b.done && (_o = _a.return)) _o.call(_a);
|
|
285
|
+
}
|
|
286
|
+
finally { if (e_4) throw e_4.error; }
|
|
287
|
+
}
|
|
288
|
+
_u.label = 1;
|
|
289
|
+
case 1:
|
|
290
|
+
_u.trys.push([1, 7, 8, 13]);
|
|
291
|
+
_f = true, _g = __asyncValues(socket.request.files());
|
|
292
|
+
_u.label = 2;
|
|
293
|
+
case 2: return [4 /*yield*/, _g.next()];
|
|
294
|
+
case 3:
|
|
295
|
+
if (!(_h = _u.sent(), _q = _h.done, !_q)) return [3 /*break*/, 6];
|
|
296
|
+
_s = _h.value;
|
|
297
|
+
_f = false;
|
|
298
|
+
file = _s;
|
|
299
|
+
_k = (_j = data).append;
|
|
300
|
+
_l = [file.fieldname];
|
|
301
|
+
_m = File.bind;
|
|
302
|
+
return [4 /*yield*/, file.toBuffer()];
|
|
303
|
+
case 4:
|
|
304
|
+
_k.apply(_j, _l.concat([new (_m.apply(File, [void 0, [_u.sent()], file.filename, {
|
|
305
|
+
type: file.mimetype,
|
|
306
|
+
}]))()]));
|
|
307
|
+
_u.label = 5;
|
|
308
|
+
case 5:
|
|
309
|
+
_f = true;
|
|
310
|
+
return [3 /*break*/, 2];
|
|
311
|
+
case 6: return [3 /*break*/, 13];
|
|
312
|
+
case 7:
|
|
313
|
+
e_3_1 = _u.sent();
|
|
314
|
+
e_3 = { error: e_3_1 };
|
|
315
|
+
return [3 /*break*/, 13];
|
|
316
|
+
case 8:
|
|
317
|
+
_u.trys.push([8, , 11, 12]);
|
|
318
|
+
if (!(!_f && !_q && (_r = _g.return))) return [3 /*break*/, 10];
|
|
319
|
+
return [4 /*yield*/, _r.call(_g)];
|
|
320
|
+
case 9:
|
|
321
|
+
_u.sent();
|
|
322
|
+
_u.label = 10;
|
|
323
|
+
case 10: return [3 /*break*/, 12];
|
|
324
|
+
case 11:
|
|
325
|
+
if (e_3) throw e_3.error;
|
|
326
|
+
return [7 /*endfinally*/];
|
|
327
|
+
case 12: return [7 /*endfinally*/];
|
|
328
|
+
case 13: return [2 /*return*/, data];
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
}); };
|
|
332
|
+
};
|
|
333
|
+
/**
|
|
334
|
+
* @internal
|
|
335
|
+
*/
|
|
336
|
+
var parseFiles = function (data) {
|
|
337
|
+
return function (files) {
|
|
338
|
+
var e_6, _a, e_7, _b, e_8, _c;
|
|
339
|
+
if (Array.isArray(files))
|
|
340
|
+
try {
|
|
341
|
+
for (var files_1 = __values(files), files_1_1 = files_1.next(); !files_1_1.done; files_1_1 = files_1.next()) {
|
|
342
|
+
var file = files_1_1.value;
|
|
343
|
+
data.append(file.fieldname, new File([file.buffer], file.originalname, {
|
|
344
|
+
type: file.mimetype,
|
|
345
|
+
}));
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
349
|
+
finally {
|
|
350
|
+
try {
|
|
351
|
+
if (files_1_1 && !files_1_1.done && (_a = files_1.return)) _a.call(files_1);
|
|
352
|
+
}
|
|
353
|
+
finally { if (e_6) throw e_6.error; }
|
|
354
|
+
}
|
|
355
|
+
else
|
|
356
|
+
try {
|
|
357
|
+
for (var _d = __values(Object.entries(files)), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
358
|
+
var _f = __read(_e.value, 2), key = _f[0], value = _f[1];
|
|
359
|
+
try {
|
|
360
|
+
for (var value_1 = (e_8 = void 0, __values(value)), value_1_1 = value_1.next(); !value_1_1.done; value_1_1 = value_1.next()) {
|
|
361
|
+
var file = value_1_1.value;
|
|
362
|
+
data.append(key, new File([file.buffer], file.originalname, {
|
|
363
|
+
type: file.mimetype,
|
|
364
|
+
}));
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
368
|
+
finally {
|
|
369
|
+
try {
|
|
370
|
+
if (value_1_1 && !value_1_1.done && (_c = value_1.return)) _c.call(value_1);
|
|
371
|
+
}
|
|
372
|
+
finally { if (e_8) throw e_8.error; }
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
377
|
+
finally {
|
|
378
|
+
try {
|
|
379
|
+
if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
|
|
380
|
+
}
|
|
381
|
+
finally { if (e_7) throw e_7.error; }
|
|
382
|
+
}
|
|
383
|
+
};
|
|
384
|
+
};
|
|
385
|
+
/**
|
|
386
|
+
* @internal
|
|
387
|
+
*/
|
|
388
|
+
var isMultipartFormData = function (text) {
|
|
389
|
+
return text !== undefined &&
|
|
390
|
+
text
|
|
391
|
+
.split(";")
|
|
392
|
+
.map(function (str) { return str.trim(); })
|
|
393
|
+
.some(function (str) { return str === "multipart/form-data"; });
|
|
394
|
+
};
|
|
395
|
+
/**
|
|
396
|
+
* @internal
|
|
397
|
+
*/
|
|
398
|
+
var isExpressRequest = function (request) { return request.app !== undefined; };
|
|
399
|
+
/**
|
|
400
|
+
* @internal
|
|
401
|
+
*/
|
|
402
|
+
var multerApplication = new Singleton_1.Singleton(function () { return (0, multer_1.default)(); });
|
|
403
|
+
//# sourceMappingURL=TypedFormData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypedFormData.js","sourceRoot":"","sources":["../../src/decorators/TypedFormData.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { IResponseBodyQuerifier } from "../options/IResponseBodyQuerifier";
|
|
|
7
7
|
* same with {@link nest.Query}, but it can automatically cast property type following
|
|
8
8
|
* its DTO definition. Also, `TypedQuery` performs type validation.
|
|
9
9
|
*
|
|
10
|
-
* For reference, target type `T` must
|
|
10
|
+
* For reference, target type `T` must follow such restriction. Also, if actual URL
|
|
11
11
|
* query parameter values are different with their promised type `T`,
|
|
12
12
|
* `BadRequestException` error (status code: 400) would be thrown.
|
|
13
13
|
*
|
|
@@ -21,6 +21,11 @@ import { IResponseBodyQuerifier } from "../options/IResponseBodyQuerifier";
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function TypedQuery<T extends object>(validator?: IRequestQueryValidator<T>): ParameterDecorator;
|
|
23
23
|
export declare namespace TypedQuery {
|
|
24
|
+
/**
|
|
25
|
+
* Request body decorator.
|
|
26
|
+
*
|
|
27
|
+
* Request body decorator for the `application/x-www-form-urlencoded` type.
|
|
28
|
+
*/
|
|
24
29
|
function Body<T extends object>(validator?: IRequestQueryValidator<T>): ParameterDecorator;
|
|
25
30
|
/**
|
|
26
31
|
* Router decorator function for the GET method.
|
|
@@ -30,7 +35,7 @@ export declare namespace TypedQuery {
|
|
|
30
35
|
*/
|
|
31
36
|
const Get: {
|
|
32
37
|
(path?: string | string[]): MethodDecorator;
|
|
33
|
-
<T>(stringify?: IResponseBodyQuerifier<T>
|
|
38
|
+
<T>(stringify?: IResponseBodyQuerifier<T>): MethodDecorator;
|
|
34
39
|
<T_1>(path: string | string[], stringify?: IResponseBodyQuerifier<T_1> | undefined): MethodDecorator;
|
|
35
40
|
};
|
|
36
41
|
/**
|
|
@@ -41,7 +46,7 @@ export declare namespace TypedQuery {
|
|
|
41
46
|
*/
|
|
42
47
|
const Post: {
|
|
43
48
|
(path?: string | string[]): MethodDecorator;
|
|
44
|
-
<T>(stringify?: IResponseBodyQuerifier<T>
|
|
49
|
+
<T>(stringify?: IResponseBodyQuerifier<T>): MethodDecorator;
|
|
45
50
|
<T_1>(path: string | string[], stringify?: IResponseBodyQuerifier<T_1> | undefined): MethodDecorator;
|
|
46
51
|
};
|
|
47
52
|
/**
|
|
@@ -52,7 +57,7 @@ export declare namespace TypedQuery {
|
|
|
52
57
|
*/
|
|
53
58
|
const Patch: {
|
|
54
59
|
(path?: string | string[]): MethodDecorator;
|
|
55
|
-
<T>(stringify?: IResponseBodyQuerifier<T>
|
|
60
|
+
<T>(stringify?: IResponseBodyQuerifier<T>): MethodDecorator;
|
|
56
61
|
<T_1>(path: string | string[], stringify?: IResponseBodyQuerifier<T_1> | undefined): MethodDecorator;
|
|
57
62
|
};
|
|
58
63
|
/**
|
|
@@ -63,7 +68,7 @@ export declare namespace TypedQuery {
|
|
|
63
68
|
*/
|
|
64
69
|
const Put: {
|
|
65
70
|
(path?: string | string[]): MethodDecorator;
|
|
66
|
-
<T>(stringify?: IResponseBodyQuerifier<T>
|
|
71
|
+
<T>(stringify?: IResponseBodyQuerifier<T>): MethodDecorator;
|
|
67
72
|
<T_1>(path: string | string[], stringify?: IResponseBodyQuerifier<T_1> | undefined): MethodDecorator;
|
|
68
73
|
};
|
|
69
74
|
/**
|
|
@@ -74,7 +79,7 @@ export declare namespace TypedQuery {
|
|
|
74
79
|
*/
|
|
75
80
|
const Delete: {
|
|
76
81
|
(path?: string | string[]): MethodDecorator;
|
|
77
|
-
<T>(stringify?: IResponseBodyQuerifier<T>
|
|
82
|
+
<T>(stringify?: IResponseBodyQuerifier<T>): MethodDecorator;
|
|
78
83
|
<T_1>(path: string | string[], stringify?: IResponseBodyQuerifier<T_1> | undefined): MethodDecorator;
|
|
79
84
|
};
|
|
80
85
|
}
|
|
@@ -53,7 +53,7 @@ var validate_request_query_1 = require("./internal/validate_request_query");
|
|
|
53
53
|
* same with {@link nest.Query}, but it can automatically cast property type following
|
|
54
54
|
* its DTO definition. Also, `TypedQuery` performs type validation.
|
|
55
55
|
*
|
|
56
|
-
* For reference, target type `T` must
|
|
56
|
+
* For reference, target type `T` must follow such restriction. Also, if actual URL
|
|
57
57
|
* query parameter values are different with their promised type `T`,
|
|
58
58
|
* `BadRequestException` error (status code: 400) would be thrown.
|
|
59
59
|
*
|
|
@@ -81,6 +81,11 @@ function TypedQuery(validator) {
|
|
|
81
81
|
exports.TypedQuery = TypedQuery;
|
|
82
82
|
(function (TypedQuery) {
|
|
83
83
|
var e_1, _a, e_2, _b, e_3, _c;
|
|
84
|
+
/**
|
|
85
|
+
* Request body decorator.
|
|
86
|
+
*
|
|
87
|
+
* Request body decorator for the `application/x-www-form-urlencoded` type.
|
|
88
|
+
*/
|
|
84
89
|
function Body(validator) {
|
|
85
90
|
var checker = (0, validate_request_query_1.validate_request_query)(validator);
|
|
86
91
|
return (0, common_1.createParamDecorator)(function TypedQueryBody(_unknown, context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedQuery.js","sourceRoot":"","sources":["../../src/decorators/TypedQuery.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAawB;AAIxB,6BAAuC;AACvC,gDAA0B;AAI1B,wEAAuE;AACvE,sDAAqD;AACrD,4EAA2E;AAE3E;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,UAAU,CACxB,SAAqC;IAErC,IAAM,OAAO,GAAG,IAAA,+CAAsB,EAAC,SAAS,CAAC,CAAC;IAClD,OAAO,IAAA,6BAAoB,EAAC,SAAS,UAAU,CAC7C,QAAa,EACb,OAAyB;QAEzB,IAAM,OAAO,GAAqC,OAAO;aACtD,YAAY,EAAE;aACd,UAAU,EAAE,CAAC;QAChB,IAAM,MAAM,GAAoB,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAEvE,IAAM,MAAM,GAAc,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,MAAM,YAAY,KAAK;YAAE,MAAM,MAAM,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,CAAC;AACP,CAAC;AAjBD,gCAiBC;AACD,WAAiB,UAAU;;IACzB,SAAgB,IAAI,CAClB,SAAqC;QAErC,IAAM,OAAO,GAAG,IAAA,+CAAsB,EAAC,SAAS,CAAC,CAAC;QAClD,OAAO,IAAA,6BAAoB,EAAC,SAAS,cAAc,CACjD,QAAa,EACb,OAAyB;YAEzB,IAAM,OAAO,GAAqC,OAAO;iBACtD,YAAY,EAAE;iBACd,UAAU,EAAE,CAAC;YAChB,IAAI,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,KAAK;gBAC/D,MAAM,IAAI,4BAAmB,CAC3B,iEAA+D,CAChE,CAAC;YACJ,IAAM,MAAM,GACV,OAAO,CAAC,IAAI,YAAY,eAAe;gBACrC,CAAC,CAAC,OAAO,CAAC,IAAI;gBACd,CAAC,CAAE,IAAI,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAS,CAAC;YAErD,IAAM,MAAM,GAAc,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,MAAM,YAAY,KAAK;gBAAE,MAAM,MAAM,CAAC;YAC1C,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAxBe,eAAI,OAwBnB,CAAA;IACD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE9C;;;;;OAKG;IACU,cAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEpC;;;;;OAKG;IACU,eAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEtC;;;;;OAKG;IACU,gBAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAExC;;;;;OAKG;IACU,cAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEpC;;;;;OAKG;IACU,iBAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE1C;;OAEG;IACH,SAAS,SAAS,CAAC,MAAmD;QAQpE,SAAS,KAAK;YAAC,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YACrB,IAAA,KAAA,OAAoB,IAAA,2CAAoB,EAAC,qBAAc,MAAM,CAAE,CAAC,wCACjE,IAAI,cACR,EAFM,IAAI,QAAA,EAAE,SAAS,QAErB,CAAC;YACF,OAAO,IAAA,wBAAe,EACpB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EACrB,IAAA,wBAAe,EAAC,IAAI,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAC3D,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;QACD,KAAqB,IAAA,KAAA,SAAA,CAAC,eAAK,CAAC,MAAM,EAAE,eAAK,CAAC,EAAE,EAAE,eAAK,CAAC,QAAQ,CAAC,CAAA,gBAAA;YAAxD,IAAM,MAAM,WAAA;;gBACf,KAA2B,IAAA,oBAAA,SAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,CAAA,gBAAA;oBAAtC,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;;wBACpB,KAAmB,IAAA,oBAAA,SAAA;4BACjB,UAAU,CAAC,GAAG;4BACd,UAAU,CAAC,MAAM;4BACjB,UAAU,CAAC,IAAI;4BACf,UAAU,CAAC,GAAG;4BACd,UAAU,CAAC,KAAK;yBACjB,CAAA,CAAA,gBAAA;4BANI,IAAM,IAAI,WAAA;4BAOZ,IAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;yBAAA;;;;;;;;;iBAAA;;;;;;;;;SAAA;;;;;;;;;AACnC,CAAC,
|
|
1
|
+
{"version":3,"file":"TypedQuery.js","sourceRoot":"","sources":["../../src/decorators/TypedQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ export declare namespace TypedRoute {
|
|
|
23
23
|
*/
|
|
24
24
|
const Get: {
|
|
25
25
|
(path?: string | string[]): MethodDecorator;
|
|
26
|
-
<T>(stringify?: IResponseBodyStringifier<T>
|
|
26
|
+
<T>(stringify?: IResponseBodyStringifier<T>): MethodDecorator;
|
|
27
27
|
<T_1>(path: string | string[], stringify?: IResponseBodyStringifier<T_1> | undefined): MethodDecorator;
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
@@ -34,7 +34,7 @@ export declare namespace TypedRoute {
|
|
|
34
34
|
*/
|
|
35
35
|
const Post: {
|
|
36
36
|
(path?: string | string[]): MethodDecorator;
|
|
37
|
-
<T>(stringify?: IResponseBodyStringifier<T>
|
|
37
|
+
<T>(stringify?: IResponseBodyStringifier<T>): MethodDecorator;
|
|
38
38
|
<T_1>(path: string | string[], stringify?: IResponseBodyStringifier<T_1> | undefined): MethodDecorator;
|
|
39
39
|
};
|
|
40
40
|
/**
|
|
@@ -45,7 +45,7 @@ export declare namespace TypedRoute {
|
|
|
45
45
|
*/
|
|
46
46
|
const Patch: {
|
|
47
47
|
(path?: string | string[]): MethodDecorator;
|
|
48
|
-
<T>(stringify?: IResponseBodyStringifier<T>
|
|
48
|
+
<T>(stringify?: IResponseBodyStringifier<T>): MethodDecorator;
|
|
49
49
|
<T_1>(path: string | string[], stringify?: IResponseBodyStringifier<T_1> | undefined): MethodDecorator;
|
|
50
50
|
};
|
|
51
51
|
/**
|
|
@@ -56,7 +56,7 @@ export declare namespace TypedRoute {
|
|
|
56
56
|
*/
|
|
57
57
|
const Put: {
|
|
58
58
|
(path?: string | string[]): MethodDecorator;
|
|
59
|
-
<T>(stringify?: IResponseBodyStringifier<T>
|
|
59
|
+
<T>(stringify?: IResponseBodyStringifier<T>): MethodDecorator;
|
|
60
60
|
<T_1>(path: string | string[], stringify?: IResponseBodyStringifier<T_1> | undefined): MethodDecorator;
|
|
61
61
|
};
|
|
62
62
|
/**
|
|
@@ -67,7 +67,7 @@ export declare namespace TypedRoute {
|
|
|
67
67
|
*/
|
|
68
68
|
const Delete: {
|
|
69
69
|
(path?: string | string[]): MethodDecorator;
|
|
70
|
-
<T>(stringify?: IResponseBodyStringifier<T>
|
|
70
|
+
<T>(stringify?: IResponseBodyStringifier<T>): MethodDecorator;
|
|
71
71
|
<T_1>(path: string | string[], stringify?: IResponseBodyStringifier<T_1> | undefined): MethodDecorator;
|
|
72
72
|
};
|
|
73
73
|
}
|
|
@@ -73,6 +73,9 @@ var take = function (method) {
|
|
|
73
73
|
throw new Error("Error on nestia.core.".concat(method, "(): invalid typed stringify function."));
|
|
74
74
|
};
|
|
75
75
|
};
|
|
76
|
+
/**
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
76
79
|
var querify = function (input) {
|
|
77
80
|
var e_1, _a, e_2, _b;
|
|
78
81
|
var output = new URLSearchParams();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_path_and_querify.js","sourceRoot":"","sources":["../../../src/decorators/internal/get_path_and_querify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"get_path_and_querify.js","sourceRoot":"","sources":["../../../src/decorators/internal/get_path_and_querify.ts"],"names":[],"mappings":"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"}
|