@nestia/core 1.4.5 → 1.5.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/lib/decorators/EncryptedRoute.d.ts +4 -4
- package/lib/decorators/EncryptedRoute.js +4 -4
- package/lib/decorators/TypedBody.d.ts +1 -1
- package/lib/decorators/TypedBody.js +1 -1
- package/lib/decorators/TypedHeaders.d.ts +42 -0
- package/lib/decorators/TypedHeaders.js +114 -0
- package/lib/decorators/TypedHeaders.js.map +1 -0
- package/lib/decorators/TypedQuery.d.ts +10 -3
- package/lib/decorators/TypedQuery.js +9 -2
- package/lib/decorators/TypedQuery.js.map +1 -1
- package/lib/decorators/TypedRoute.d.ts +5 -4
- package/lib/decorators/TypedRoute.js +5 -4
- package/lib/decorators/TypedRoute.js.map +1 -1
- package/lib/module.d.ts +1 -0
- package/lib/module.js +1 -0
- package/lib/module.js.map +1 -1
- package/lib/programmers/TypedHeadersProgrammer.d.ts +5 -0
- package/lib/programmers/TypedHeadersProgrammer.js +300 -0
- package/lib/programmers/TypedHeadersProgrammer.js.map +1 -0
- package/lib/programmers/TypedQueryProgrammer.js +11 -8
- package/lib/programmers/TypedQueryProgrammer.js.map +1 -1
- package/lib/transformers/ParameterDecoratorTransformer.js +6 -0
- package/lib/transformers/ParameterDecoratorTransformer.js.map +1 -1
- package/package.json +6 -6
- package/src/decorators/EncryptedRoute.ts +4 -4
- package/src/decorators/TypedBody.ts +1 -1
- package/src/decorators/TypedHeaders.ts +95 -0
- package/src/decorators/TypedQuery.ts +10 -3
- package/src/decorators/TypedRoute.ts +5 -4
- package/src/module.ts +1 -0
- package/src/programmers/TypedHeadersProgrammer.ts +304 -0
- package/src/programmers/TypedQueryProgrammer.ts +31 -25
- package/src/transformers/ParameterDecoratorTransformer.ts +5 -0
|
@@ -0,0 +1,300 @@
|
|
|
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 __values = (this && this.__values) || function(o) {
|
|
14
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
15
|
+
if (m) return m.call(o);
|
|
16
|
+
if (o && typeof o.length === "number") return {
|
|
17
|
+
next: function () {
|
|
18
|
+
if (o && i >= o.length) o = void 0;
|
|
19
|
+
return { value: o && o[i++], done: !o };
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
23
|
+
};
|
|
24
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
25
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
26
|
+
if (!m) return o;
|
|
27
|
+
var i = m.call(o), r, ar = [], e;
|
|
28
|
+
try {
|
|
29
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
30
|
+
}
|
|
31
|
+
catch (error) { e = { error: error }; }
|
|
32
|
+
finally {
|
|
33
|
+
try {
|
|
34
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
35
|
+
}
|
|
36
|
+
finally { if (e) throw e.error; }
|
|
37
|
+
}
|
|
38
|
+
return ar;
|
|
39
|
+
};
|
|
40
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
41
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
42
|
+
if (ar || !(i in from)) {
|
|
43
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
44
|
+
ar[i] = from[i];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
48
|
+
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.TypedHeadersProgrammer = void 0;
|
|
54
|
+
var typescript_1 = __importDefault(require("typescript"));
|
|
55
|
+
var IdentifierFactory_1 = require("typia/lib/factories/IdentifierFactory");
|
|
56
|
+
var MetadataCollection_1 = require("typia/lib/factories/MetadataCollection");
|
|
57
|
+
var MetadataFactory_1 = require("typia/lib/factories/MetadataFactory");
|
|
58
|
+
var StatementFactory_1 = require("typia/lib/factories/StatementFactory");
|
|
59
|
+
var AssertProgrammer_1 = require("typia/lib/programmers/AssertProgrammer");
|
|
60
|
+
var FunctionImporeter_1 = require("typia/lib/programmers/helpers/FunctionImporeter");
|
|
61
|
+
var Escaper_1 = require("typia/lib/utils/Escaper");
|
|
62
|
+
var TypedHeadersProgrammer;
|
|
63
|
+
(function (TypedHeadersProgrammer) {
|
|
64
|
+
TypedHeadersProgrammer.generate = function (project) {
|
|
65
|
+
return function (modulo) {
|
|
66
|
+
return function (type) {
|
|
67
|
+
var object = getObject(project.checker)(type);
|
|
68
|
+
return decode(project, modulo)(type, object);
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
var getObject = function (checker) {
|
|
73
|
+
return function (type) {
|
|
74
|
+
var e_1, _a;
|
|
75
|
+
var collection = new MetadataCollection_1.MetadataCollection();
|
|
76
|
+
var metadata = MetadataFactory_1.MetadataFactory.analyze(checker)({
|
|
77
|
+
resolve: false,
|
|
78
|
+
constant: true,
|
|
79
|
+
absorb: true,
|
|
80
|
+
})(collection)(type);
|
|
81
|
+
if (metadata.objects.length !== 1 || metadata.bucket() !== 1)
|
|
82
|
+
throw new Error(ErrorMessages.object(metadata)("only one object type is allowed."));
|
|
83
|
+
else if (metadata.nullable === true)
|
|
84
|
+
throw new Error(ErrorMessages.object(metadata)("query parameter cannot be null."));
|
|
85
|
+
else if (metadata.isRequired() === false)
|
|
86
|
+
throw new Error(ErrorMessages.object(metadata)("query parameter cannot be undefined."));
|
|
87
|
+
var object = metadata.objects[0];
|
|
88
|
+
if (object.properties.some(function (p) { return !p.key.isSoleLiteral(); }))
|
|
89
|
+
throw new Error(ErrorMessages.object(metadata)("dynamic property is not allowed."));
|
|
90
|
+
try {
|
|
91
|
+
for (var _b = __values(object.properties), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
92
|
+
var property = _c.value;
|
|
93
|
+
var key = property.key.constants[0]
|
|
94
|
+
.values[0];
|
|
95
|
+
var value = property.value;
|
|
96
|
+
validate(object)(key)(value, 0);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
100
|
+
finally {
|
|
101
|
+
try {
|
|
102
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
103
|
+
}
|
|
104
|
+
finally { if (e_1) throw e_1.error; }
|
|
105
|
+
}
|
|
106
|
+
return object;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
var validate = function (obj) {
|
|
110
|
+
return function (key) {
|
|
111
|
+
return function (value, depth) {
|
|
112
|
+
var e_2, _a, e_3, _b, e_4, _c, e_5, _d, e_6, _e;
|
|
113
|
+
if (depth === 1 && value.isRequired() === false)
|
|
114
|
+
throw new Error(ErrorMessages.property(obj)(key)("optional type is not allowed in array."));
|
|
115
|
+
else if (value.nullable === true)
|
|
116
|
+
throw new Error(ErrorMessages.property(obj)(key)("nullable type is not allowed."));
|
|
117
|
+
else if (value.maps.length ||
|
|
118
|
+
value.sets.length ||
|
|
119
|
+
value.objects.length)
|
|
120
|
+
throw new Error(ErrorMessages.property(obj)(key)("object type is not allowed"));
|
|
121
|
+
var atom = [];
|
|
122
|
+
try {
|
|
123
|
+
for (var _f = __values(value.atomics), _g = _f.next(); !_g.done; _g = _f.next()) {
|
|
124
|
+
var type = _g.value;
|
|
125
|
+
atom.push(type);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
129
|
+
finally {
|
|
130
|
+
try {
|
|
131
|
+
if (_g && !_g.done && (_a = _f.return)) _a.call(_f);
|
|
132
|
+
}
|
|
133
|
+
finally { if (e_2) throw e_2.error; }
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
for (var _h = __values(value.constants), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
137
|
+
var type = _j.value.type;
|
|
138
|
+
atom.push(type);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
142
|
+
finally {
|
|
143
|
+
try {
|
|
144
|
+
if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
|
|
145
|
+
}
|
|
146
|
+
finally { if (e_3) throw e_3.error; }
|
|
147
|
+
}
|
|
148
|
+
if (depth === 0 && (value.arrays.length || value.arrays.length)) {
|
|
149
|
+
if (atom.length)
|
|
150
|
+
throw new Error(ErrorMessages.property(obj)(key)("union type is not allowed"));
|
|
151
|
+
try {
|
|
152
|
+
for (var _k = __values(value.arrays), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
153
|
+
var array = _l.value;
|
|
154
|
+
atom.push.apply(atom, __spreadArray([], __read(validate(obj)(key)(array.value, depth + 1)), false));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
158
|
+
finally {
|
|
159
|
+
try {
|
|
160
|
+
if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
|
|
161
|
+
}
|
|
162
|
+
finally { if (e_4) throw e_4.error; }
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
for (var _m = __values(value.tuples), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
166
|
+
var tuple = _o.value;
|
|
167
|
+
try {
|
|
168
|
+
for (var _p = (e_6 = void 0, __values(tuple.elements)), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
169
|
+
var elem = _q.value;
|
|
170
|
+
atom.push.apply(atom, __spreadArray([], __read(validate(obj)(key)(elem, depth + 1)), false));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
174
|
+
finally {
|
|
175
|
+
try {
|
|
176
|
+
if (_q && !_q.done && (_e = _p.return)) _e.call(_p);
|
|
177
|
+
}
|
|
178
|
+
finally { if (e_6) throw e_6.error; }
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
183
|
+
finally {
|
|
184
|
+
try {
|
|
185
|
+
if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
|
|
186
|
+
}
|
|
187
|
+
finally { if (e_5) throw e_5.error; }
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else if (value.arrays.length || value.tuples.length)
|
|
191
|
+
throw new Error(ErrorMessages.property(obj)(key)("double-array type is not allowed"));
|
|
192
|
+
var size = new Set(atom).size;
|
|
193
|
+
if (size === 0)
|
|
194
|
+
throw new Error(ErrorMessages.property(obj)(key)("unknown type"));
|
|
195
|
+
else if (size > 1)
|
|
196
|
+
throw new Error(ErrorMessages.property(obj)(key)("union type is not allowed"));
|
|
197
|
+
return atom;
|
|
198
|
+
};
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
var decode = function (project, modulo) {
|
|
202
|
+
return function (type, object) {
|
|
203
|
+
return typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("input")], undefined, undefined, decode_object(project, modulo)(type, object));
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
var decode_object = function (project, modulo) {
|
|
207
|
+
return function (type, object) {
|
|
208
|
+
var assert = AssertProgrammer_1.AssertProgrammer.write(__assign(__assign({}, project), { options: {
|
|
209
|
+
numeric: true,
|
|
210
|
+
finite: true,
|
|
211
|
+
} }))(modulo)(false)(type);
|
|
212
|
+
var output = typescript_1.default.factory.createIdentifier("output");
|
|
213
|
+
var importer = new FunctionImporeter_1.FunctionImporter();
|
|
214
|
+
var statements = [
|
|
215
|
+
StatementFactory_1.StatementFactory.constant("output", typescript_1.default.factory.createObjectLiteralExpression(object.properties.map(function (prop) {
|
|
216
|
+
return decode_regular_property(importer)(object)(prop);
|
|
217
|
+
}), true)),
|
|
218
|
+
typescript_1.default.factory.createReturnStatement(typescript_1.default.factory.createCallExpression(assert, undefined, [
|
|
219
|
+
output,
|
|
220
|
+
])),
|
|
221
|
+
];
|
|
222
|
+
return typescript_1.default.factory.createBlock(__spreadArray(__spreadArray([], __read(importer.declare(modulo)), false), __read(statements), false), true);
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
var decode_regular_property = function (importer) {
|
|
226
|
+
return function (object) {
|
|
227
|
+
return function (property) {
|
|
228
|
+
var key = property.key.constants[0].values[0];
|
|
229
|
+
var value = property.value;
|
|
230
|
+
var _a = __read(value.atomics
|
|
231
|
+
.length
|
|
232
|
+
? [value.atomics[0], false]
|
|
233
|
+
: value.constants.length
|
|
234
|
+
? [value.constants[0].type, false]
|
|
235
|
+
: (function () {
|
|
236
|
+
var _a, _b;
|
|
237
|
+
var meta = (_b = (_a = value.arrays[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : value.tuples[0].elements[0];
|
|
238
|
+
return meta.atomics.length
|
|
239
|
+
? [meta.atomics[0], true]
|
|
240
|
+
: [meta.constants[0].type, true];
|
|
241
|
+
})(), 2), type = _a[0], isArray = _a[1];
|
|
242
|
+
if (key.toLowerCase() !== key)
|
|
243
|
+
throw new Error(ErrorMessages.property(object)(key)("property \"".concat(key, "\" must be lower case.")));
|
|
244
|
+
else if (isArray && SINGULAR.has(key))
|
|
245
|
+
throw new Error(ErrorMessages.property(object)(key)("property \"".concat(key, "\" cannot be array.")));
|
|
246
|
+
else if (!isArray && key === "set-cookie")
|
|
247
|
+
throw new Error(ErrorMessages.property(object)(key)("property \"".concat(key, "\" must be array.")));
|
|
248
|
+
var accessor = IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createIdentifier("input"))(key);
|
|
249
|
+
return typescript_1.default.factory.createPropertyAssignment(Escaper_1.Escaper.variable(key)
|
|
250
|
+
? key
|
|
251
|
+
: typescript_1.default.factory.createStringLiteral(key), isArray
|
|
252
|
+
? key === "set-cookie"
|
|
253
|
+
? accessor
|
|
254
|
+
: typescript_1.default.factory.createCallChain(typescript_1.default.factory.createPropertyAccessChain(typescript_1.default.factory.createCallChain(typescript_1.default.factory.createPropertyAccessChain(accessor, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), typescript_1.default.factory.createIdentifier("split")), undefined, undefined, [
|
|
255
|
+
typescript_1.default.factory.createStringLiteral(key === "cookie" ? "; " : ", "),
|
|
256
|
+
]), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionDotToken), typescript_1.default.factory.createIdentifier("map")), undefined, undefined, [importer.use(type)])
|
|
257
|
+
: decode_value(importer)(type)(accessor));
|
|
258
|
+
};
|
|
259
|
+
};
|
|
260
|
+
};
|
|
261
|
+
var decode_value = function (importer) {
|
|
262
|
+
return function (type) {
|
|
263
|
+
return function (value) {
|
|
264
|
+
return type === "string"
|
|
265
|
+
? value
|
|
266
|
+
: typescript_1.default.factory.createCallExpression(importer.use(type), undefined, [value]);
|
|
267
|
+
};
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
})(TypedHeadersProgrammer || (exports.TypedHeadersProgrammer = TypedHeadersProgrammer = {}));
|
|
271
|
+
var ErrorMessages;
|
|
272
|
+
(function (ErrorMessages) {
|
|
273
|
+
ErrorMessages.object = function (type) { return function (message) {
|
|
274
|
+
return "Error on nestia.core.TypedHeaders<".concat(type.getName(), ">(): ").concat(message);
|
|
275
|
+
}; };
|
|
276
|
+
ErrorMessages.property = function (obj) { return function (key) { return function (message) {
|
|
277
|
+
return "Error on nestia.core.TypedHeaders<".concat(obj.name, ">(): property \"").concat(key, "\" - ").concat(message);
|
|
278
|
+
}; }; };
|
|
279
|
+
})(ErrorMessages || (ErrorMessages = {}));
|
|
280
|
+
var SINGULAR = new Set([
|
|
281
|
+
"age",
|
|
282
|
+
"authorization",
|
|
283
|
+
"content-length",
|
|
284
|
+
"content-type",
|
|
285
|
+
"etag",
|
|
286
|
+
"expires",
|
|
287
|
+
"from",
|
|
288
|
+
"host",
|
|
289
|
+
"if-modified-since",
|
|
290
|
+
"if-unmodified-since",
|
|
291
|
+
"last-modified",
|
|
292
|
+
"location",
|
|
293
|
+
"max-forwards",
|
|
294
|
+
"proxy-authorization",
|
|
295
|
+
"referer",
|
|
296
|
+
"retry-after",
|
|
297
|
+
"server",
|
|
298
|
+
"user-agent",
|
|
299
|
+
]);
|
|
300
|
+
//# sourceMappingURL=TypedHeadersProgrammer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypedHeadersProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedHeadersProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2EAA0E;AAC1E,6EAA4E;AAC5E,uEAAsE;AACtE,yEAAwE;AAIxE,2EAA0E;AAC1E,qFAAmF;AAEnF,mDAAkD;AAIlD,IAAiB,sBAAsB,CAiQtC;AAjQD,WAAiB,sBAAsB;IACtB,+BAAQ,GACjB,UAAC,OAAgC;QACjC,OAAA,UAAC,MAAiC;YAClC,OAAA,UAAC,IAAa;gBACV,IAAM,MAAM,GAAmB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;gBAChE,OAAO,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACjD,CAAC;QAHD,CAGC;IAJD,CAIC,CAAC;IAEN,IAAM,SAAS,GACX,UAAC,OAAuB;QACxB,OAAA,UAAC,IAAa;;YACV,IAAM,UAAU,GAAuB,IAAI,uCAAkB,EAAE,CAAC;YAChE,IAAM,QAAQ,GAAa,iCAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACxD,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;aACf,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;gBACxD,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC1B,kCAAkC,CACrC,CACJ,CAAC;iBACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;gBAC/B,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC1B,iCAAiC,CACpC,CACJ,CAAC;iBACD,IAAI,QAAQ,CAAC,UAAU,EAAE,KAAK,KAAK;gBACpC,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC1B,sCAAsC,CACzC,CACJ,CAAC;YAEN,IAAM,MAAM,GAAmB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;YACpD,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAE,CAAC,CAAC,GAAW,CAAC,aAAa,EAAE,EAA/B,CAA+B,CAAC;gBAC9D,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC1B,kCAAkC,CACrC,CACJ,CAAC;;gBAEN,KAAuB,IAAA,KAAA,SAAA,MAAM,CAAC,UAAU,CAAA,gBAAA,4BAAE;oBAArC,IAAM,QAAQ,WAAA;oBACf,IAAM,GAAG,GAAW,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;yBACxC,MAAM,CAAC,CAAC,CAAW,CAAC;oBACzB,IAAM,KAAK,GAAa,QAAQ,CAAC,KAAK,CAAC;oBACvC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACnC;;;;;;;;;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;IAzCD,CAyCC,CAAC;IAEN,IAAM,QAAQ,GACV,UAAC,GAAmB;QACpB,OAAA,UAAC,GAAW;YACZ,OAAA,UAAC,KAAe,EAAE,KAAa;;gBAC3B,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,KAAK,KAAK;oBAC3C,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAC5B,wCAAwC,CAC3C,CACJ,CAAC;qBACD,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;oBAC5B,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAC5B,+BAA+B,CAClC,CACJ,CAAC;qBACD,IACD,KAAK,CAAC,IAAI,CAAC,MAAM;oBACjB,KAAK,CAAC,IAAI,CAAC,MAAM;oBACjB,KAAK,CAAC,OAAO,CAAC,MAAM;oBAEpB,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAC5B,4BAA4B,CAC/B,CACJ,CAAC;gBAEN,IAAM,IAAI,GAAa,EAAE,CAAC;;oBAC1B,KAAmB,IAAA,KAAA,SAAA,KAAK,CAAC,OAAO,CAAA,gBAAA;wBAA3B,IAAM,IAAI,WAAA;wBAAmB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAAA;;;;;;;;;;oBAClD,KAAuB,IAAA,KAAA,SAAA,KAAK,CAAC,SAAS,CAAA,gBAAA;wBAAzB,IAAA,IAAI,gBAAA;wBAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAAA;;;;;;;;;gBAExD,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;oBAC7D,IAAI,IAAI,CAAC,MAAM;wBACX,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAC5B,2BAA2B,CAC9B,CACJ,CAAC;;wBACN,KAAoB,IAAA,KAAA,SAAA,KAAK,CAAC,MAAM,CAAA,gBAAA;4BAA3B,IAAM,KAAK,WAAA;4BACZ,IAAI,CAAC,IAAI,OAAT,IAAI,2BAAS,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,WAAE;yBAAA;;;;;;;;;;wBAC7D,KAAoB,IAAA,KAAA,SAAA,KAAK,CAAC,MAAM,CAAA,gBAAA;4BAA3B,IAAM,KAAK,WAAA;;gCACZ,KAAmB,IAAA,oBAAA,SAAA,KAAK,CAAC,QAAQ,CAAA,CAAA,gBAAA;oCAA5B,IAAM,IAAI,WAAA;oCACX,IAAI,CAAC,IAAI,OAAT,IAAI,2BAAS,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,WAAE;iCAAA;;;;;;;;;yBAAA;;;;;;;;;iBAC7D;qBAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM;oBACjD,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAC5B,kCAAkC,CACrC,CACJ,CAAC;gBAEN,IAAM,IAAI,GAAW,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBACxC,IAAI,IAAI,KAAK,CAAC;oBACV,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CACnD,CAAC;qBACD,IAAI,IAAI,GAAG,CAAC;oBACb,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAC5B,2BAA2B,CAC9B,CACJ,CAAC;gBACN,OAAO,IAAI,CAAC;YAChB,CAAC;QA3DD,CA2DC;IA5DD,CA4DC,CAAC;IAEN,IAAM,MAAM,GACR,UAAC,OAAgC,EAAE,MAAiC;QACpE,OAAA,UAAC,IAAa,EAAE,MAAsB;YAClC,OAAA,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC1B,SAAS,EACT,SAAS,EACT,CAAC,qCAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EACtC,SAAS,EACT,SAAS,EACT,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAC/C;QAPD,CAOC;IARL,CAQK,CAAC;IAEV,IAAM,aAAa,GACf,UAAC,OAAgC,EAAE,MAAiC;QACpE,OAAA,UAAC,IAAa,EAAE,MAAsB;YAClC,IAAM,MAAM,GAAqB,mCAAgB,CAAC,KAAK,uBAChD,OAAO,KACV,OAAO,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,IAAI;iBACf,IACH,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;YACxB,IAAM,MAAM,GAAkB,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEpE,IAAM,QAAQ,GAAqB,IAAI,oCAAgB,EAAE,CAAC;YAC1D,IAAM,UAAU,GAAmB;gBAC/B,mCAAgB,CAAC,QAAQ,CACrB,QAAQ,EACR,oBAAE,CAAC,OAAO,CAAC,6BAA6B,CACpC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI;oBACvB,OAAA,uBAAuB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;gBAA/C,CAA+C,CAClD,EACD,IAAI,CACP,CACJ;gBACD,oBAAE,CAAC,OAAO,CAAC,qBAAqB,CAC5B,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE;oBAC/C,MAAM;iBACT,CAAC,CACL;aACJ,CAAC;YAEF,OAAO,oBAAE,CAAC,OAAO,CAAC,WAAW,wCACrB,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAK,UAAU,WAC3C,IAAI,CACP,CAAC;QACN,CAAC;IAhCD,CAgCC,CAAC;IAEN,IAAM,uBAAuB,GACzB,UAAC,QAA0B;QAC3B,OAAA,UAAC,MAAsB;YACvB,OAAA,UAAC,QAA0B;gBACvB,IAAM,GAAG,GAAW,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAW,CAAC;gBACnE,IAAM,KAAK,GAAa,QAAQ,CAAC,KAAK,CAAC;gBAEjC,IAAA,KAAA,OAA6C,KAAK,CAAC,OAAO;qBAC3D,MAAM;oBACP,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;oBAC3B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;wBACxB,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,KAAK,CAAC;wBACnC,CAAC,CAAC,CAAC;;4BACG,IAAM,IAAI,GACN,MAAA,MAAA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAE,KAAK,mCAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;gCACtB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;gCACzB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC1C,CAAC,CAAC,EAAE,IAAA,EAXH,IAAI,QAAA,EAAE,OAAO,QAWV,CAAC;gBACX,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG;oBACzB,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAC/B,qBAAa,GAAG,2BAAuB,CAC1C,CACJ,CAAC;qBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;oBACjC,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAC/B,qBAAa,GAAG,wBAAoB,CACvC,CACJ,CAAC;qBACD,IAAI,CAAC,OAAO,IAAI,GAAG,KAAK,YAAY;oBACrC,MAAM,IAAI,KAAK,CACX,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAC/B,qBAAa,GAAG,sBAAkB,CACrC,CACJ,CAAC;gBAEN,IAAM,QAAQ,GAAG,qCAAiB,CAAC,MAAM,CACrC,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CACvC,CAAC,GAAG,CAAC,CAAC;gBAEP,OAAO,oBAAE,CAAC,OAAO,CAAC,wBAAwB,CACtC,iBAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;oBACjB,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,EACzC,OAAO;oBACH,CAAC,CAAC,GAAG,KAAK,YAAY;wBAClB,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,eAAe,CACtB,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAChC,oBAAE,CAAC,OAAO,CAAC,eAAe,CACtB,oBAAE,CAAC,OAAO,CAAC,yBAAyB,CAChC,QAAQ,EACR,oBAAE,CAAC,OAAO,CAAC,WAAW,CAClB,oBAAE,CAAC,UAAU,CAAC,gBAAgB,CACjC,EACD,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CACvC,EACD,SAAS,EACT,SAAS,EACT;4BACI,oBAAE,CAAC,OAAO,CAAC,mBAAmB,CAC1B,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACjC;yBACJ,CACJ,EACD,oBAAE,CAAC,OAAO,CAAC,WAAW,CAClB,oBAAE,CAAC,UAAU,CAAC,gBAAgB,CACjC,EACD,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CACrC,EACD,SAAS,EACT,SAAS,EACT,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CACvB;oBACP,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAC/C,CAAC;YACN,CAAC;QA3ED,CA2EC;IA5ED,CA4EC,CAAC;IAEN,IAAM,YAAY,GACd,UAAC,QAA0B;QAC3B,OAAA,UAAC,IAAoB;YACrB,OAAA,UAAC,KAAoB;gBACjB,OAAA,IAAI,KAAK,QAAQ;oBACb,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAC3B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAClB,SAAS,EACT,CAAC,KAAK,CAAC,CACV;YANP,CAMO;QAPX,CAOW;IARX,CAQW,CAAC;AACpB,CAAC,EAjQgB,sBAAsB,sCAAtB,sBAAsB,QAiQtC;AAED,IAAU,aAAa,CAOtB;AAPD,WAAU,aAAa;IACN,oBAAM,GAAG,UAAC,IAAc,IAAK,OAAA,UAAC,OAAe;QACtD,OAAA,4CAAqC,IAAI,CAAC,OAAO,EAAE,kBAAQ,OAAO,CAAE;IAApE,CAAoE,EAD9B,CAC8B,CAAC;IAE5D,sBAAQ,GACjB,UAAC,GAAmB,IAAK,OAAA,UAAC,GAAW,IAAK,OAAA,UAAC,OAAe;QACtD,OAAA,4CAAqC,GAAG,CAAC,IAAI,6BAAkB,GAAG,kBAAO,OAAO,CAAE;IAAlF,CAAkF,EAD5C,CAC4C,EAD7D,CAC6D,CAAC;AAC/F,CAAC,EAPS,aAAa,KAAb,aAAa,QAOtB;AAED,IAAM,QAAQ,GAAgB,IAAI,GAAG,CAAC;IAClC,KAAK;IACL,eAAe;IACf,gBAAgB;IAChB,cAAc;IACd,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;IACN,mBAAmB;IACnB,qBAAqB;IACrB,eAAe;IACf,UAAU;IACV,cAAc;IACd,qBAAqB;IACrB,SAAS;IACT,aAAa;IACb,QAAQ;IACR,YAAY;CACf,CAAC,CAAC"}
|
|
@@ -58,6 +58,7 @@ var MetadataFactory_1 = require("typia/lib/factories/MetadataFactory");
|
|
|
58
58
|
var StatementFactory_1 = require("typia/lib/factories/StatementFactory");
|
|
59
59
|
var AssertProgrammer_1 = require("typia/lib/programmers/AssertProgrammer");
|
|
60
60
|
var FunctionImporeter_1 = require("typia/lib/programmers/helpers/FunctionImporeter");
|
|
61
|
+
var Escaper_1 = require("typia/lib/utils/Escaper");
|
|
61
62
|
var TypedQueryProgrammer;
|
|
62
63
|
(function (TypedQueryProgrammer) {
|
|
63
64
|
TypedQueryProgrammer.generate = function (project) {
|
|
@@ -84,10 +85,13 @@ var TypedQueryProgrammer;
|
|
|
84
85
|
else if (metadata.isRequired() === false)
|
|
85
86
|
throw new Error(ErrorMessages.object(metadata)("query parameter cannot be undefined."));
|
|
86
87
|
var object = metadata.objects[0];
|
|
88
|
+
if (object.properties.some(function (p) { return !p.key.isSoleLiteral(); }))
|
|
89
|
+
throw new Error(ErrorMessages.object(metadata)("dynamic property is not allowed."));
|
|
87
90
|
try {
|
|
88
91
|
for (var _b = __values(object.properties), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
89
92
|
var property = _c.value;
|
|
90
|
-
var key = property.key
|
|
93
|
+
var key = property.key.constants[0]
|
|
94
|
+
.values[0];
|
|
91
95
|
var value = property.value;
|
|
92
96
|
validate(object)(key)(value, 0);
|
|
93
97
|
}
|
|
@@ -207,15 +211,12 @@ var TypedQueryProgrammer;
|
|
|
207
211
|
var importer = new FunctionImporeter_1.FunctionImporter();
|
|
208
212
|
var optionalArrays = [];
|
|
209
213
|
var statements = __spreadArray(__spreadArray([
|
|
210
|
-
StatementFactory_1.StatementFactory.constant("output", typescript_1.default.factory.createObjectLiteralExpression(object.properties
|
|
211
|
-
.filter(function (prop) { return prop.key.isSoleLiteral(); })
|
|
212
|
-
.map(function (prop) {
|
|
214
|
+
StatementFactory_1.StatementFactory.constant("output", typescript_1.default.factory.createObjectLiteralExpression(object.properties.map(function (prop) {
|
|
213
215
|
if (!prop.value.isRequired() &&
|
|
214
216
|
prop.value.arrays.length +
|
|
215
217
|
prop.value.tuples.length >
|
|
216
218
|
0)
|
|
217
|
-
optionalArrays.push(prop.key.constants[0]
|
|
218
|
-
.values[0]);
|
|
219
|
+
optionalArrays.push(prop.key.constants[0].values[0]);
|
|
219
220
|
return decode_regular_property(importer)(prop);
|
|
220
221
|
}), true))
|
|
221
222
|
], __read(optionalArrays.map(function (key) {
|
|
@@ -245,7 +246,9 @@ var TypedQueryProgrammer;
|
|
|
245
246
|
? [meta.atomics[0], true]
|
|
246
247
|
: [meta.constants[0].type, true];
|
|
247
248
|
})(), 2), type = _a[0], isArray = _a[1];
|
|
248
|
-
return typescript_1.default.factory.createPropertyAssignment(key
|
|
249
|
+
return typescript_1.default.factory.createPropertyAssignment(Escaper_1.Escaper.variable(key)
|
|
250
|
+
? key
|
|
251
|
+
: typescript_1.default.factory.createStringLiteral(key), isArray
|
|
249
252
|
? typescript_1.default.factory.createCallExpression(IdentifierFactory_1.IdentifierFactory.access(typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("input.getAll"), undefined, [typescript_1.default.factory.createStringLiteral(key)]))("map"), undefined, [
|
|
250
253
|
typescript_1.default.factory.createArrowFunction(undefined, undefined, [IdentifierFactory_1.IdentifierFactory.parameter("elem")], undefined, undefined, decode_value(importer)(type)(typescript_1.default.factory.createIdentifier("elem"))),
|
|
251
254
|
])
|
|
@@ -268,7 +271,7 @@ var ErrorMessages;
|
|
|
268
271
|
return "Error on nestia.core.TypedQuery<".concat(type.getName(), ">(): ").concat(message);
|
|
269
272
|
}; };
|
|
270
273
|
ErrorMessages.property = function (obj) { return function (key) { return function (message) {
|
|
271
|
-
return "Error on nestia.core.TypedQuery<".concat(obj.name, ">(): property ").concat(key
|
|
274
|
+
return "Error on nestia.core.TypedQuery<".concat(obj.name, ">(): property \"").concat(key, "\" - ").concat(message);
|
|
272
275
|
}; }; };
|
|
273
276
|
})(ErrorMessages || (ErrorMessages = {}));
|
|
274
277
|
//# sourceMappingURL=TypedQueryProgrammer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypedQueryProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryProgrammer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4B;AAE5B,2EAA0E;AAC1E,6EAA4E;AAC5E,uEAAsE;AACtE,yEAAwE;AAIxE,2EAA0E;AAC1E,qFAAmF;
|
|
1
|
+
{"version":3,"file":"TypedQueryProgrammer.js","sourceRoot":"","sources":["../../src/programmers/TypedQueryProgrammer.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ var path_1 = __importDefault(require("path"));
|
|
|
8
8
|
var typescript_1 = __importDefault(require("typescript"));
|
|
9
9
|
var PlainBodyProgrammer_1 = require("../programmers/PlainBodyProgrammer");
|
|
10
10
|
var TypedBodyProgrammer_1 = require("../programmers/TypedBodyProgrammer");
|
|
11
|
+
var TypedHeadersProgrammer_1 = require("../programmers/TypedHeadersProgrammer");
|
|
11
12
|
var TypedParamProgrammer_1 = require("../programmers/TypedParamProgrammer");
|
|
12
13
|
var TypedQueryProgrammer_1 = require("../programmers/TypedQueryProgrammer");
|
|
13
14
|
var ParameterDecoratorTransformer;
|
|
@@ -58,6 +59,11 @@ var FUNCTORS = {
|
|
|
58
59
|
? parameters
|
|
59
60
|
: [TypedBodyProgrammer_1.TypedBodyProgrammer.generate(project)(modulo)(type)];
|
|
60
61
|
}; }; }; },
|
|
62
|
+
TypedHeaders: function (project) { return function (modulo) { return function (parameters) { return function (type) {
|
|
63
|
+
return parameters.length
|
|
64
|
+
? parameters
|
|
65
|
+
: [TypedHeadersProgrammer_1.TypedHeadersProgrammer.generate(project)(modulo)(type)];
|
|
66
|
+
}; }; }; },
|
|
61
67
|
TypedParam: function (project) { return function () { return TypedParamProgrammer_1.TypedParamProgrammer.generate(project); }; },
|
|
62
68
|
TypedQuery: function (project) { return function (modulo) { return function (parameters) { return function (type) {
|
|
63
69
|
return parameters.length
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParameterDecoratorTransformer.js","sourceRoot":"","sources":["../../src/transformers/ParameterDecoratorTransformer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ParameterDecoratorTransformer.js","sourceRoot":"","sources":["../../src/transformers/ParameterDecoratorTransformer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Super-fast validation decorators of NestJS",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"homepage": "https://nestia.io",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@nestia/fetcher": "^1.
|
|
37
|
+
"@nestia/fetcher": "^1.5.0",
|
|
38
38
|
"@nestjs/common": ">= 7.0.1",
|
|
39
39
|
"@nestjs/core": ">= 7.0.1",
|
|
40
40
|
"@nestjs/platform-express": ">= 7.0.1",
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"raw-body": ">= 2.0.0",
|
|
45
45
|
"reflect-metadata": ">= 0.1.12",
|
|
46
46
|
"rxjs": ">= 6.0.0",
|
|
47
|
-
"typia": "^4.1.
|
|
47
|
+
"typia": "^4.1.13"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@nestia/fetcher": ">= 1.
|
|
50
|
+
"@nestia/fetcher": ">= 1.5.0",
|
|
51
51
|
"@nestjs/common": ">= 7.0.1",
|
|
52
52
|
"@nestjs/core": ">= 7.0.1",
|
|
53
53
|
"@nestjs/platform-express": ">= 7.0.1",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"reflect-metadata": ">= 0.1.12",
|
|
57
57
|
"rxjs": ">= 6.0.0",
|
|
58
58
|
"typescript": ">= 4.7.4",
|
|
59
|
-
"typia": ">= 4.1.
|
|
59
|
+
"typia": ">= 4.1.13"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"ts-node": "^10.9.1",
|
|
76
76
|
"ts-patch": "^3.0.0",
|
|
77
77
|
"tstl": "^2.5.13",
|
|
78
|
-
"typescript": "^5.1.
|
|
78
|
+
"typescript": "^5.1.6",
|
|
79
79
|
"typescript-transform-paths": "^3.4.6"
|
|
80
80
|
},
|
|
81
81
|
"files": [
|
|
@@ -38,10 +38,10 @@ import { route_error } from "./internal/route_error";
|
|
|
38
38
|
* up JSON string conversion speed about 50x times faster than `class-transformer`,
|
|
39
39
|
* even type safe through [typia](https://github.com/samchon/typia).
|
|
40
40
|
*
|
|
41
|
-
* For reference,
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
41
|
+
* For reference, if you try to invalid data that is not following the promised
|
|
42
|
+
* type `T`, 500 internal server error would be thrown. Also, as `EncryptedRoute`
|
|
43
|
+
* composes JSON string through `typia.assertStringify<T>()` function, it is not
|
|
44
|
+
* possible to modify response data through interceptors.
|
|
45
45
|
*
|
|
46
46
|
* - AES-128/256
|
|
47
47
|
* - CBC mode
|
|
@@ -17,7 +17,7 @@ import { validate_request_body } from "./internal/validate_request_body";
|
|
|
17
17
|
* `TypedBody` is a decoratur function getting `application/json` typed data from
|
|
18
18
|
* request body. Also, it validates the request body data type through
|
|
19
19
|
* [typia](https://github.com/samchon/typia) and the validation speed is
|
|
20
|
-
* maximum
|
|
20
|
+
* maximum 20,000x times faster than `class-validator`.
|
|
21
21
|
*
|
|
22
22
|
* For reference, when the request body data is not following the promised type `T`,
|
|
23
23
|
* `BadRequestException` error (status code: 400) would be thrown.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BadRequestException,
|
|
3
|
+
ExecutionContext,
|
|
4
|
+
createParamDecorator,
|
|
5
|
+
} from "@nestjs/common";
|
|
6
|
+
import type express from "express";
|
|
7
|
+
import type { FastifyRequest } from "fastify";
|
|
8
|
+
|
|
9
|
+
import typia, { TypeGuardError, assert } from "typia";
|
|
10
|
+
|
|
11
|
+
import { TransformError } from "./internal/TransformError";
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Type safe HTTP headers decorator.
|
|
15
|
+
*
|
|
16
|
+
* `TypedHeaders` is a decorator function that can parse HTTP headers. It is almost
|
|
17
|
+
* same with {@link nest.Headers}, but it can automatically cast property type following
|
|
18
|
+
* its DTO definition. Also, `TypedHeaders` performs type validation.
|
|
19
|
+
*
|
|
20
|
+
* For reference, target type `T` must follow such restrictions. Also, if actual HTTP
|
|
21
|
+
* header values are different with their promised type `T`, `BadRequestException`
|
|
22
|
+
* error (status code: 400) would be thrown.
|
|
23
|
+
*
|
|
24
|
+
* 1. Type `T` must be an object type
|
|
25
|
+
* 2. Do not allow dynamic property
|
|
26
|
+
* 3. Property key must be lower case
|
|
27
|
+
* 4. Property value cannot be `null`, but `undefined` is possible
|
|
28
|
+
* 5. Only `boolean`, `bigint`, `number`, `string` or their array types are allowed
|
|
29
|
+
* 6. By the way, union type never be not allowed
|
|
30
|
+
* 7. Property `set-cookie` must be array type
|
|
31
|
+
* 8. Those properties cannot be array type
|
|
32
|
+
* - age
|
|
33
|
+
* - authorization
|
|
34
|
+
* - content-length
|
|
35
|
+
* - content-type
|
|
36
|
+
* - etag
|
|
37
|
+
* - expires
|
|
38
|
+
* - from
|
|
39
|
+
* - host
|
|
40
|
+
* - if-modified-since
|
|
41
|
+
* - if-unmodified-since
|
|
42
|
+
* - last-modified
|
|
43
|
+
* - location
|
|
44
|
+
* - max-forwards
|
|
45
|
+
* - proxy-authorization
|
|
46
|
+
* - referer
|
|
47
|
+
* - retry-after
|
|
48
|
+
* - server
|
|
49
|
+
* - user-agent
|
|
50
|
+
*
|
|
51
|
+
* @returns Parameter decorator
|
|
52
|
+
* @author Jeongho Nam - https://github.com/samchon
|
|
53
|
+
*/
|
|
54
|
+
export function TypedHeaders<T extends object>(
|
|
55
|
+
decoder?: (headers: Record<string, string | string[] | undefined>) => T,
|
|
56
|
+
): ParameterDecorator {
|
|
57
|
+
if (decoder === undefined) throw TransformError("TypedHeaders");
|
|
58
|
+
|
|
59
|
+
return createParamDecorator(function TypedHeaders(
|
|
60
|
+
_unknown: any,
|
|
61
|
+
context: ExecutionContext,
|
|
62
|
+
) {
|
|
63
|
+
const request: express.Request | FastifyRequest = context
|
|
64
|
+
.switchToHttp()
|
|
65
|
+
.getRequest();
|
|
66
|
+
try {
|
|
67
|
+
return decoder(request.headers);
|
|
68
|
+
} catch (exp) {
|
|
69
|
+
if (typia.is<TypeGuardError>(exp))
|
|
70
|
+
throw new BadRequestException({
|
|
71
|
+
path: exp.path,
|
|
72
|
+
reason: exp.message,
|
|
73
|
+
expected: exp.expected,
|
|
74
|
+
value: exp.value,
|
|
75
|
+
message:
|
|
76
|
+
"Request query parameters are not following the promised type.",
|
|
77
|
+
});
|
|
78
|
+
throw exp;
|
|
79
|
+
}
|
|
80
|
+
})();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @internal
|
|
85
|
+
*/
|
|
86
|
+
export namespace TypedHeaders {
|
|
87
|
+
export const boolean = (value: string | undefined) =>
|
|
88
|
+
value !== undefined ? value === "true" : undefined;
|
|
89
|
+
export const bigint = (value: string | undefined) =>
|
|
90
|
+
value !== undefined ? BigInt(value) : undefined;
|
|
91
|
+
export const number = (value: string | undefined) =>
|
|
92
|
+
value !== undefined ? Number(value) : undefined;
|
|
93
|
+
export const string = (value: string | undefined) => value;
|
|
94
|
+
}
|
|
95
|
+
Object.assign(TypedHeaders, assert);
|