@nestia/core 2.1.8 → 2.2.0-dev.20231010

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.
Files changed (43) hide show
  1. package/lib/decorators/TypedQuery.d.ts +59 -0
  2. package/lib/decorators/TypedQuery.js +220 -0
  3. package/lib/decorators/TypedQuery.js.map +1 -1
  4. package/lib/decorators/internal/get_path_and_querify.d.ts +1 -0
  5. package/lib/decorators/internal/get_path_and_querify.js +164 -0
  6. package/lib/decorators/internal/get_path_and_querify.js.map +1 -0
  7. package/lib/options/IResponseBodyQuerifier.d.ts +20 -0
  8. package/lib/options/IResponseBodyQuerifier.js +3 -0
  9. package/lib/options/IResponseBodyQuerifier.js.map +1 -0
  10. package/lib/programmers/TypedQueryBodyProgrammer.d.ts +5 -0
  11. package/lib/programmers/TypedQueryBodyProgrammer.js +51 -0
  12. package/lib/programmers/TypedQueryBodyProgrammer.js.map +1 -0
  13. package/lib/programmers/TypedQueryRouteProgrammer.d.ts +5 -0
  14. package/lib/programmers/TypedQueryRouteProgrammer.js +50 -0
  15. package/lib/programmers/TypedQueryRouteProgrammer.js.map +1 -0
  16. package/lib/programmers/http/HttpAssertQuerifyProgrammer.d.ts +5 -0
  17. package/lib/programmers/http/HttpAssertQuerifyProgrammer.js +39 -0
  18. package/lib/programmers/http/HttpAssertQuerifyProgrammer.js.map +1 -0
  19. package/lib/programmers/http/HttpIsQuerifyProgrammer.d.ts +5 -0
  20. package/lib/programmers/http/HttpIsQuerifyProgrammer.js +37 -0
  21. package/lib/programmers/http/HttpIsQuerifyProgrammer.js.map +1 -0
  22. package/lib/programmers/http/HttpQuerifyProgrammer.d.ts +5 -0
  23. package/lib/programmers/http/HttpQuerifyProgrammer.js +80 -0
  24. package/lib/programmers/http/HttpQuerifyProgrammer.js.map +1 -0
  25. package/lib/programmers/http/HttpValidateQuerifyProgrammer.d.ts +5 -0
  26. package/lib/programmers/http/HttpValidateQuerifyProgrammer.js +38 -0
  27. package/lib/programmers/http/HttpValidateQuerifyProgrammer.js.map +1 -0
  28. package/lib/transformers/ParameterDecoratorTransformer.js +21 -1
  29. package/lib/transformers/ParameterDecoratorTransformer.js.map +1 -1
  30. package/lib/transformers/TypedRouteTransformer.js +13 -6
  31. package/lib/transformers/TypedRouteTransformer.js.map +1 -1
  32. package/package.json +13 -13
  33. package/src/decorators/TypedQuery.ts +197 -1
  34. package/src/decorators/internal/get_path_and_querify.ts +104 -0
  35. package/src/options/IResponseBodyQuerifier.ts +25 -0
  36. package/src/programmers/TypedQueryBodyProgrammer.ts +52 -0
  37. package/src/programmers/TypedQueryRouteProgrammer.ts +55 -0
  38. package/src/programmers/http/HttpAssertQuerifyProgrammer.ts +59 -0
  39. package/src/programmers/http/HttpIsQuerifyProgrammer.ts +63 -0
  40. package/src/programmers/http/HttpQuerifyProgrammer.ts +105 -0
  41. package/src/programmers/http/HttpValidateQuerifyProgrammer.ts +64 -0
  42. package/src/transformers/ParameterDecoratorTransformer.ts +23 -1
  43. package/src/transformers/TypedRouteTransformer.ts +15 -8
@@ -1,4 +1,5 @@
1
1
  import { IRequestQueryValidator } from "../options/IRequestQueryValidator";
2
+ import { IResponseBodyQuerifier } from "../options/IResponseBodyQuerifier";
2
3
  /**
3
4
  * Type safe URL query decorator.
4
5
  *
@@ -19,3 +20,61 @@ import { IRequestQueryValidator } from "../options/IRequestQueryValidator";
19
20
  * @author Jeongho Nam - https://github.com/samchon
20
21
  */
21
22
  export declare function TypedQuery<T extends object>(validator?: IRequestQueryValidator<T>): ParameterDecorator;
23
+ export declare namespace TypedQuery {
24
+ function Body<T extends object>(validator?: IRequestQueryValidator<T>): ParameterDecorator;
25
+ /**
26
+ * Router decorator function for the GET method.
27
+ *
28
+ * @param path Path of the HTTP request
29
+ * @returns Method decorator
30
+ */
31
+ const Get: {
32
+ (path?: string | string[]): MethodDecorator;
33
+ <T>(stringify?: IResponseBodyQuerifier<T> | undefined): MethodDecorator;
34
+ <T_1>(path: string | string[], stringify?: IResponseBodyQuerifier<T_1> | undefined): MethodDecorator;
35
+ };
36
+ /**
37
+ * Router decorator function for the POST method.
38
+ *
39
+ * @param path Path of the HTTP request
40
+ * @returns Method decorator
41
+ */
42
+ const Post: {
43
+ (path?: string | string[]): MethodDecorator;
44
+ <T>(stringify?: IResponseBodyQuerifier<T> | undefined): MethodDecorator;
45
+ <T_1>(path: string | string[], stringify?: IResponseBodyQuerifier<T_1> | undefined): MethodDecorator;
46
+ };
47
+ /**
48
+ * Router decorator function for the PATH method.
49
+ *
50
+ * @param path Path of the HTTP request
51
+ * @returns Method decorator
52
+ */
53
+ const Patch: {
54
+ (path?: string | string[]): MethodDecorator;
55
+ <T>(stringify?: IResponseBodyQuerifier<T> | undefined): MethodDecorator;
56
+ <T_1>(path: string | string[], stringify?: IResponseBodyQuerifier<T_1> | undefined): MethodDecorator;
57
+ };
58
+ /**
59
+ * Router decorator function for the PUT method.
60
+ *
61
+ * @param path Path of the HTTP request
62
+ * @returns Method decorator
63
+ */
64
+ const Put: {
65
+ (path?: string | string[]): MethodDecorator;
66
+ <T>(stringify?: IResponseBodyQuerifier<T> | undefined): MethodDecorator;
67
+ <T_1>(path: string | string[], stringify?: IResponseBodyQuerifier<T_1> | undefined): MethodDecorator;
68
+ };
69
+ /**
70
+ * Router decorator function for the DELETE method.
71
+ *
72
+ * @param path Path of the HTTP request
73
+ * @returns Method decorator
74
+ */
75
+ const Delete: {
76
+ (path?: string | string[]): MethodDecorator;
77
+ <T>(stringify?: IResponseBodyQuerifier<T> | undefined): MethodDecorator;
78
+ <T_1>(path: string | string[], stringify?: IResponseBodyQuerifier<T_1> | undefined): MethodDecorator;
79
+ };
80
+ }
@@ -1,11 +1,50 @@
1
1
  "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ var __values = (this && this.__values) || function(o) {
28
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
29
+ if (m) return m.call(o);
30
+ if (o && typeof o.length === "number") return {
31
+ next: function () {
32
+ if (o && i >= o.length) o = void 0;
33
+ return { value: o && o[i++], done: !o };
34
+ }
35
+ };
36
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
37
+ };
2
38
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
40
  };
5
41
  Object.defineProperty(exports, "__esModule", { value: true });
6
42
  exports.TypedQuery = void 0;
7
43
  var common_1 = require("@nestjs/common");
44
+ var rxjs_1 = require("rxjs");
8
45
  var typia_1 = __importDefault(require("typia"));
46
+ var get_path_and_querify_1 = require("./internal/get_path_and_querify");
47
+ var route_error_1 = require("./internal/route_error");
9
48
  var validate_request_query_1 = require("./internal/validate_request_query");
10
49
  /**
11
50
  * Type safe URL query decorator.
@@ -40,6 +79,122 @@ function TypedQuery(validator) {
40
79
  })();
41
80
  }
42
81
  exports.TypedQuery = TypedQuery;
82
+ (function (TypedQuery) {
83
+ var e_1, _a, e_2, _b, e_3, _c;
84
+ function Body(validator) {
85
+ var checker = (0, validate_request_query_1.validate_request_query)(validator);
86
+ return (0, common_1.createParamDecorator)(function TypedQueryBody(_unknown, context) {
87
+ var request = context
88
+ .switchToHttp()
89
+ .getRequest();
90
+ if (isApplicationQuery(request.headers["content-type"]) === false)
91
+ throw new common_1.BadRequestException("Request body type is not \"application/x-www-form-urlencoded\".");
92
+ var params = request.body instanceof URLSearchParams
93
+ ? request.body
94
+ : new FakeURLSearchParams(request.body);
95
+ var output = checker(params);
96
+ if (output instanceof Error)
97
+ throw output;
98
+ return output;
99
+ })();
100
+ }
101
+ TypedQuery.Body = Body;
102
+ Object.assign(Body, typia_1.default.http.assertQuery);
103
+ Object.assign(Body, typia_1.default.http.isQuery);
104
+ Object.assign(Body, typia_1.default.http.validateQuery);
105
+ /**
106
+ * Router decorator function for the GET method.
107
+ *
108
+ * @param path Path of the HTTP request
109
+ * @returns Method decorator
110
+ */
111
+ TypedQuery.Get = Generator("Get");
112
+ /**
113
+ * Router decorator function for the POST method.
114
+ *
115
+ * @param path Path of the HTTP request
116
+ * @returns Method decorator
117
+ */
118
+ TypedQuery.Post = Generator("Post");
119
+ /**
120
+ * Router decorator function for the PATH method.
121
+ *
122
+ * @param path Path of the HTTP request
123
+ * @returns Method decorator
124
+ */
125
+ TypedQuery.Patch = Generator("Patch");
126
+ /**
127
+ * Router decorator function for the PUT method.
128
+ *
129
+ * @param path Path of the HTTP request
130
+ * @returns Method decorator
131
+ */
132
+ TypedQuery.Put = Generator("Put");
133
+ /**
134
+ * Router decorator function for the DELETE method.
135
+ *
136
+ * @param path Path of the HTTP request
137
+ * @returns Method decorator
138
+ */
139
+ TypedQuery.Delete = Generator("Delete");
140
+ /**
141
+ * @internal
142
+ */
143
+ function Generator(method) {
144
+ function route() {
145
+ var args = [];
146
+ for (var _i = 0; _i < arguments.length; _i++) {
147
+ args[_i] = arguments[_i];
148
+ }
149
+ var _a = __read((0, get_path_and_querify_1.get_path_and_querify)("TypedQuery.".concat(method)).apply(void 0, __spreadArray([], __read(args), false)), 2), path = _a[0], stringify = _a[1];
150
+ return (0, common_1.applyDecorators)(ROUTERS[method](path), (0, common_1.UseInterceptors)(new TypedQueryRouteInterceptor(stringify)));
151
+ }
152
+ return route;
153
+ }
154
+ try {
155
+ for (var _d = __values([typia_1.default.assert, typia_1.default.is, typia_1.default.validate]), _e = _d.next(); !_e.done; _e = _d.next()) {
156
+ var method = _e.value;
157
+ try {
158
+ for (var _f = (e_2 = void 0, __values(Object.entries(method))), _g = _f.next(); !_g.done; _g = _f.next()) {
159
+ var _h = __read(_g.value, 2), key = _h[0], value = _h[1];
160
+ try {
161
+ for (var _j = (e_3 = void 0, __values([
162
+ TypedQuery.Get,
163
+ TypedQuery.Delete,
164
+ TypedQuery.Post,
165
+ TypedQuery.Put,
166
+ TypedQuery.Patch,
167
+ ])), _k = _j.next(); !_k.done; _k = _j.next()) {
168
+ var deco = _k.value;
169
+ deco[key] = value;
170
+ }
171
+ }
172
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
173
+ finally {
174
+ try {
175
+ if (_k && !_k.done && (_c = _j.return)) _c.call(_j);
176
+ }
177
+ finally { if (e_3) throw e_3.error; }
178
+ }
179
+ }
180
+ }
181
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
182
+ finally {
183
+ try {
184
+ if (_g && !_g.done && (_b = _f.return)) _b.call(_f);
185
+ }
186
+ finally { if (e_2) throw e_2.error; }
187
+ }
188
+ }
189
+ }
190
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
191
+ finally {
192
+ try {
193
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
194
+ }
195
+ finally { if (e_1) throw e_1.error; }
196
+ }
197
+ })(TypedQuery || (exports.TypedQuery = TypedQuery = {}));
43
198
  Object.assign(TypedQuery, typia_1.default.http.assertQuery);
44
199
  Object.assign(TypedQuery, typia_1.default.http.isQuery);
45
200
  Object.assign(TypedQuery, typia_1.default.http.validateQuery);
@@ -50,4 +205,69 @@ function tail(url) {
50
205
  var index = url.indexOf("?");
51
206
  return index === -1 ? "" : url.substring(index + 1);
52
207
  }
208
+ /**
209
+ * @internal
210
+ */
211
+ function isApplicationQuery(text) {
212
+ return (text !== undefined &&
213
+ text
214
+ .split(";")
215
+ .map(function (str) { return str.trim(); })
216
+ .some(function (str) { return str === "application/x-www-form-urlencoded"; }));
217
+ }
218
+ /**
219
+ * @internal
220
+ */
221
+ var FakeURLSearchParams = /** @class */ (function () {
222
+ function FakeURLSearchParams(target) {
223
+ this.target = target;
224
+ }
225
+ FakeURLSearchParams.prototype.has = function (key) {
226
+ return this.target[key] !== undefined;
227
+ };
228
+ FakeURLSearchParams.prototype.get = function (key) {
229
+ var _a;
230
+ var value = this.target[key];
231
+ return value === undefined
232
+ ? null
233
+ : Array.isArray(value)
234
+ ? (_a = value[0]) !== null && _a !== void 0 ? _a : null
235
+ : value;
236
+ };
237
+ FakeURLSearchParams.prototype.getAll = function (key) {
238
+ var value = this.target[key];
239
+ return value === undefined
240
+ ? []
241
+ : Array.isArray(value)
242
+ ? value
243
+ : [value];
244
+ };
245
+ return FakeURLSearchParams;
246
+ }());
247
+ /**
248
+ * @internal
249
+ */
250
+ var TypedQueryRouteInterceptor = /** @class */ (function () {
251
+ function TypedQueryRouteInterceptor(toSearchParams) {
252
+ this.toSearchParams = toSearchParams;
253
+ }
254
+ TypedQueryRouteInterceptor.prototype.intercept = function (context, next) {
255
+ var _this = this;
256
+ var http = context.switchToHttp();
257
+ var response = http.getResponse();
258
+ response.header("Content-Type", "application/x-www-form-urlencoded");
259
+ return next.handle().pipe((0, rxjs_1.map)(function (value) { return _this.toSearchParams(value).toString(); }), (0, rxjs_1.catchError)(function (err) { return (0, route_error_1.route_error)(http.getRequest(), err); }));
260
+ };
261
+ return TypedQueryRouteInterceptor;
262
+ }());
263
+ /**
264
+ * @internal
265
+ */
266
+ var ROUTERS = {
267
+ Get: common_1.Get,
268
+ Post: common_1.Post,
269
+ Patch: common_1.Patch,
270
+ Put: common_1.Put,
271
+ Delete: common_1.Delete,
272
+ };
53
273
  //# sourceMappingURL=TypedQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TypedQuery.js","sourceRoot":"","sources":["../../src/decorators/TypedQuery.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAwE;AAIxE,gDAA0B;AAG1B,4EAA2E;AAE3E;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,UAAU,CACtB,SAAqC;IAErC,IAAM,OAAO,GAAG,IAAA,+CAAsB,EAAC,SAAS,CAAC,CAAC;IAClD,OAAO,IAAA,6BAAoB,EAAC,SAAS,UAAU,CAC3C,QAAa,EACb,OAAyB;QAEzB,IAAM,OAAO,GAAqC,OAAO;aACpD,YAAY,EAAE;aACd,UAAU,EAAE,CAAC;QAClB,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;IAClB,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAjBD,gCAiBC;AACD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAEpD;;GAEG;AACH,SAAS,IAAI,CAAC,GAAW;IACrB,IAAM,KAAK,GAAW,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"TypedQuery.js","sourceRoot":"","sources":["../../src/decorators/TypedQuery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ var __importDefault = (this && this.__importDefault) || function (mod) {
30
+ return (mod && mod.__esModule) ? mod : { "default": mod };
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.get_path_and_querify = void 0;
34
+ var common_1 = require("@nestjs/common");
35
+ var typia_1 = __importDefault(require("typia"));
36
+ var NoTransformConfigureError_1 = require("./NoTransformConfigureError");
37
+ /**
38
+ * @internal
39
+ */
40
+ var get_path_and_querify = function (method) {
41
+ return function () {
42
+ var args = [];
43
+ for (var _i = 0; _i < arguments.length; _i++) {
44
+ args[_i] = arguments[_i];
45
+ }
46
+ var path = args[0] === undefined ||
47
+ typeof args[0] === "string" ||
48
+ Array.isArray(args[0])
49
+ ? args[0]
50
+ : null;
51
+ var functor = path === null ? args[0] : args[1];
52
+ return [path !== null && path !== void 0 ? path : undefined, take(method)(functor)];
53
+ };
54
+ };
55
+ exports.get_path_and_querify = get_path_and_querify;
56
+ /**
57
+ * @internal
58
+ */
59
+ var take = function (method) {
60
+ return function (functor) {
61
+ if (functor === undefined)
62
+ throw (0, NoTransformConfigureError_1.NoTransformConfigureError)(method);
63
+ else if (functor === null)
64
+ return querify;
65
+ else if (functor.type === "stringify")
66
+ return functor.stringify;
67
+ else if (functor.type === "assert")
68
+ return assert(functor.assert);
69
+ else if (functor.type === "is")
70
+ return is(functor.is);
71
+ else if (functor.type === "validate")
72
+ return validate(functor.validate);
73
+ throw new Error("Error on nestia.core.".concat(method, "(): invalid typed stringify function."));
74
+ };
75
+ };
76
+ var querify = function (input) {
77
+ var e_1, _a, e_2, _b;
78
+ var output = new URLSearchParams();
79
+ try {
80
+ for (var _c = __values(Object.entries(input)), _d = _c.next(); !_d.done; _d = _c.next()) {
81
+ var _e = __read(_d.value, 2), key = _e[0], value = _e[1];
82
+ if (key === undefined)
83
+ continue;
84
+ else if (Array.isArray(value))
85
+ try {
86
+ for (var value_1 = (e_2 = void 0, __values(value)), value_1_1 = value_1.next(); !value_1_1.done; value_1_1 = value_1.next()) {
87
+ var elem = value_1_1.value;
88
+ output.append(key, String(elem));
89
+ }
90
+ }
91
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
92
+ finally {
93
+ try {
94
+ if (value_1_1 && !value_1_1.done && (_b = value_1.return)) _b.call(value_1);
95
+ }
96
+ finally { if (e_2) throw e_2.error; }
97
+ }
98
+ else
99
+ output.append(key, String(value));
100
+ }
101
+ }
102
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
103
+ finally {
104
+ try {
105
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
106
+ }
107
+ finally { if (e_1) throw e_1.error; }
108
+ }
109
+ return output;
110
+ };
111
+ /**
112
+ * @internal
113
+ */
114
+ var assert = function (closure) {
115
+ return function (data) {
116
+ try {
117
+ return closure(data);
118
+ }
119
+ catch (exp) {
120
+ if ((function (input) {
121
+ var $io0 = function (input) { return "string" === typeof input.method && (undefined === input.path || "string" === typeof input.path) && "string" === typeof input.expected && true && "string" === typeof input.name && "string" === typeof input.message && (undefined === input.stack || "string" === typeof input.stack); };
122
+ return "object" === typeof input && null !== input && $io0(input);
123
+ })(exp))
124
+ throw new common_1.InternalServerErrorException({
125
+ path: exp.path,
126
+ reason: exp.message,
127
+ expected: exp.expected,
128
+ value: exp.value,
129
+ message: MESSAGE,
130
+ });
131
+ throw exp;
132
+ }
133
+ };
134
+ };
135
+ /**
136
+ * @internal
137
+ */
138
+ var is = function (closure) {
139
+ return function (data) {
140
+ var result = closure(data);
141
+ if (result === null)
142
+ throw new common_1.InternalServerErrorException(MESSAGE);
143
+ return result;
144
+ };
145
+ };
146
+ /**
147
+ * @internal
148
+ */
149
+ var validate = function (closure) {
150
+ return function (data) {
151
+ var result = closure(data);
152
+ if (result.success === false)
153
+ throw new common_1.InternalServerErrorException({
154
+ errors: result.errors,
155
+ message: MESSAGE,
156
+ });
157
+ return result.data;
158
+ };
159
+ };
160
+ /**
161
+ * @internal
162
+ */
163
+ var MESSAGE = "Response body data is not following the promised type.";
164
+ //# sourceMappingURL=get_path_and_querify.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,20 @@
1
+ import { IValidation } from "typia";
2
+ export type IResponseBodyQuerifier<T> = IResponseBodyquerifier.IStringify<T> | IResponseBodyquerifier.IIs<T> | IResponseBodyquerifier.IAssert<T> | IResponseBodyquerifier.IValidate<T>;
3
+ export declare namespace IResponseBodyquerifier {
4
+ interface IStringify<T> {
5
+ type: "stringify";
6
+ stringify: (input: T) => URLSearchParams;
7
+ }
8
+ interface IIs<T> {
9
+ type: "is";
10
+ is: (input: T) => URLSearchParams | null;
11
+ }
12
+ interface IAssert<T> {
13
+ type: "assert";
14
+ assert: (input: T) => URLSearchParams;
15
+ }
16
+ interface IValidate<T> {
17
+ type: "validate";
18
+ validate: (input: T) => IValidation<URLSearchParams>;
19
+ }
20
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IResponseBodyQuerifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IResponseBodyQuerifier.js","sourceRoot":"","sources":["../../src/options/IResponseBodyQuerifier.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
+ export declare namespace TypedQueryBodyProgrammer {
4
+ const generate: (project: INestiaTransformProject) => (modulo: ts.LeftHandSideExpression) => (type: ts.Type) => ts.ObjectLiteralExpression;
5
+ }
@@ -0,0 +1,51 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.TypedQueryBodyProgrammer = void 0;
18
+ var typescript_1 = __importDefault(require("typescript"));
19
+ var HttpAssertQueryProgrammer_1 = require("typia/lib/programmers/http/HttpAssertQueryProgrammer");
20
+ var HttpIsQueryProgrammer_1 = require("typia/lib/programmers/http/HttpIsQueryProgrammer");
21
+ var HttpValidateQueryProgrammer_1 = require("typia/lib/programmers/http/HttpValidateQueryProgrammer");
22
+ var TypedQueryBodyProgrammer;
23
+ (function (TypedQueryBodyProgrammer) {
24
+ TypedQueryBodyProgrammer.generate = function (project) {
25
+ return function (modulo) {
26
+ return function (type) {
27
+ // GENERATE VALIDATION PLAN
28
+ var parameter = function (key) {
29
+ return function (programmer) {
30
+ return typescript_1.default.factory.createObjectLiteralExpression([
31
+ typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(key)),
32
+ typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), programmer(__assign(__assign({}, project), { options: {
33
+ numeric: false,
34
+ finite: false,
35
+ functional: false,
36
+ } }))(modulo)(type)),
37
+ ]);
38
+ };
39
+ };
40
+ // RETURNS
41
+ var category = project.options.validate;
42
+ if (category === "is" || category === "equals")
43
+ return parameter("is")(HttpIsQueryProgrammer_1.HttpIsQueryProgrammer.write);
44
+ else if (category === "validate" || category === "validateEquals")
45
+ return parameter("validate")(HttpValidateQueryProgrammer_1.HttpValidateQueryProgrammer.write);
46
+ return parameter("assert")(HttpAssertQueryProgrammer_1.HttpAssertQueryProgrammer.write);
47
+ };
48
+ };
49
+ };
50
+ })(TypedQueryBodyProgrammer || (exports.TypedQueryBodyProgrammer = TypedQueryBodyProgrammer = {}));
51
+ //# sourceMappingURL=TypedQueryBodyProgrammer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypedQueryBodyProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryBodyProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,kGAAiG;AACjG,0FAAyF;AACzF,sGAAqG;AAMrG,IAAiB,wBAAwB,CAyCxC;AAzCD,WAAiB,wBAAwB;IACxB,iCAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,2BAA2B;gBAC3B,IAAM,SAAS,GACX,UAAC,GAAwC;oBACzC,OAAA,UACI,UAIwC;wBAExC,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;4BACrC,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACnC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CACtC;4BACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,UAAU,uBACH,OAAO,KACV,OAAO,EAAE;oCACL,OAAO,EAAE,KAAK;oCACd,MAAM,EAAE,KAAK;oCACb,UAAU,EAAE,KAAK;iCACpB,IACH,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CACnB;yBACJ,CAAC;oBAhBF,CAgBE;gBAvBN,CAuBM,CAAC;gBAEX,UAAU;gBACV,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC1C,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ;oBAC1C,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,6CAAqB,CAAC,KAAK,CAAC,CAAC;qBACnD,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,gBAAgB;oBAC7D,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC,yDAA2B,CAAC,KAAK,CAAC,CAAC;gBACpE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC,qDAAyB,CAAC,KAAK,CAAC,CAAC;YAChE,CAAC;QApCD,CAoCC;IArCD,CAqCC,CAAC;AACV,CAAC,EAzCgB,wBAAwB,wCAAxB,wBAAwB,QAyCxC"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { INestiaTransformProject } from "../options/INestiaTransformProject";
3
+ export declare namespace TypedQueryRouteProgrammer {
4
+ const generate: (project: INestiaTransformProject) => (modulo: ts.LeftHandSideExpression) => (type: ts.Type) => ts.Expression;
5
+ }
@@ -0,0 +1,50 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.TypedQueryRouteProgrammer = void 0;
18
+ var typescript_1 = __importDefault(require("typescript"));
19
+ var HttpAssertQuerifyProgrammer_1 = require("./http/HttpAssertQuerifyProgrammer");
20
+ var HttpIsQuerifyProgrammer_1 = require("./http/HttpIsQuerifyProgrammer");
21
+ var HttpQuerifyProgrammer_1 = require("./http/HttpQuerifyProgrammer");
22
+ var HttpValidateQuerifyProgrammer_1 = require("./http/HttpValidateQuerifyProgrammer");
23
+ var TypedQueryRouteProgrammer;
24
+ (function (TypedQueryRouteProgrammer) {
25
+ TypedQueryRouteProgrammer.generate = function (project) {
26
+ return function (modulo) {
27
+ return function (type) {
28
+ // GENERATE STRINGIFY PLAN
29
+ var parameter = function (key, programmer) {
30
+ return typescript_1.default.factory.createObjectLiteralExpression([
31
+ typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier("type"), typescript_1.default.factory.createStringLiteral(key)),
32
+ typescript_1.default.factory.createPropertyAssignment(typescript_1.default.factory.createIdentifier(key), programmer(__assign(__assign({}, project), { options: {} }))(modulo)(type)),
33
+ ]);
34
+ };
35
+ // RETURNS
36
+ if (project.options.stringify === "is")
37
+ return parameter("is", HttpIsQuerifyProgrammer_1.HttpIsQuerifyProgrammer.write);
38
+ else if (project.options.stringify === "validate")
39
+ return parameter("validate", HttpValidateQuerifyProgrammer_1.HttpValidateQuerifyProgrammer.write);
40
+ else if (project.options.stringify === "stringify")
41
+ return parameter("stringify", HttpQuerifyProgrammer_1.HttpQuerifyProgrammer.write);
42
+ else if (project.options.stringify === null)
43
+ return typescript_1.default.factory.createNull();
44
+ // ASSERT IS DEFAULT
45
+ return parameter("assert", HttpAssertQuerifyProgrammer_1.HttpAssertQuerifyProgrammer.write);
46
+ };
47
+ };
48
+ };
49
+ })(TypedQueryRouteProgrammer || (exports.TypedQueryRouteProgrammer = TypedQueryRouteProgrammer = {}));
50
+ //# sourceMappingURL=TypedQueryRouteProgrammer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypedQueryRouteProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryRouteProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAK5B,kFAAiF;AACjF,0EAAyE;AACzE,sEAAqE;AACrE,sFAAqF;AAErF,IAAiB,yBAAyB,CA4CzC;AA5CD,WAAiB,yBAAyB;IACzB,kCAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,0BAA0B;gBAC1B,IAAM,SAAS,GAAG,UACd,GAAW,EACX,UAIwC;oBAExC,OAAA,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC;wBACrC,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,EACnC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CACtC;wBACD,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CAC/B,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAChC,UAAU,uBACH,OAAO,KACV,OAAO,EAAE,EAAE,IACb,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CACnB;qBACJ,CAAC;gBAZF,CAYE,CAAC;gBAEP,UAAU;gBACV,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI;oBAClC,OAAO,SAAS,CAAC,IAAI,EAAE,iDAAuB,CAAC,KAAK,CAAC,CAAC;qBACrD,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,UAAU;oBAC7C,OAAO,SAAS,CACZ,UAAU,EACV,6DAA6B,CAAC,KAAK,CACtC,CAAC;qBACD,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,WAAW;oBAC9C,OAAO,SAAS,CAAC,WAAW,EAAE,6CAAqB,CAAC,KAAK,CAAC,CAAC;qBAC1D,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI;oBACvC,OAAO,oBAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAEnC,oBAAoB;gBACpB,OAAO,SAAS,CAAC,QAAQ,EAAE,yDAA2B,CAAC,KAAK,CAAC,CAAC;YAClE,CAAC;QAvCD,CAuCC;IAxCD,CAwCC,CAAC;AACV,CAAC,EA5CgB,yBAAyB,yCAAzB,yBAAyB,QA4CzC"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { IProject } from "typia/lib/transformers/IProject";
3
+ export declare namespace HttpAssertQuerifyProgrammer {
4
+ const write: (project: IProject) => (modulo: ts.LeftHandSideExpression) => (type: ts.Type, name?: string) => ts.ArrowFunction;
5
+ }