@spinajs/http 1.0.14 → 1.2.103
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 +11 -0
- package/lib/config/http.js +17 -17
- package/lib/config/http.js.map +1 -1
- package/lib/controllers.d.ts +6 -4
- package/lib/controllers.js +53 -184
- package/lib/controllers.js.map +1 -1
- package/lib/decorators.d.ts +49 -24
- package/lib/decorators.js +97 -40
- package/lib/decorators.js.map +1 -1
- package/lib/exceptions.d.ts +0 -0
- package/lib/exceptions.js +1 -0
- package/lib/exceptions.js.map +1 -0
- package/lib/http.d.ts +0 -0
- package/lib/http.js +1 -0
- package/lib/http.js.map +1 -0
- package/lib/hydrators/datetime.d.ts +8 -0
- package/lib/hydrators/datetime.js +63 -0
- package/lib/hydrators/datetime.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +8 -3
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +44 -15
- package/lib/interfaces.js +31 -12
- package/lib/interfaces.js.map +1 -1
- package/lib/response-methods/badRequest.d.ts +3 -2
- package/lib/response-methods/badRequest.js +1 -1
- package/lib/response-methods/badRequest.js.map +1 -1
- package/lib/response-methods/conflict.d.ts +3 -2
- package/lib/response-methods/conflict.js +1 -1
- package/lib/response-methods/conflict.js.map +1 -1
- package/lib/response-methods/cookieResponse.d.ts +3 -2
- package/lib/response-methods/cookieResponse.js +9 -5
- package/lib/response-methods/cookieResponse.js.map +1 -1
- package/lib/response-methods/created.d.ts +3 -2
- package/lib/response-methods/created.js +1 -1
- package/lib/response-methods/created.js.map +1 -1
- package/lib/response-methods/file.d.ts +16 -2
- package/lib/response-methods/file.js +67 -5
- package/lib/response-methods/file.js.map +1 -1
- package/lib/response-methods/forbidden.d.ts +3 -2
- package/lib/response-methods/forbidden.js +1 -1
- package/lib/response-methods/forbidden.js.map +1 -1
- package/lib/response-methods/index.js +6 -2
- package/lib/response-methods/index.js.map +1 -1
- package/lib/response-methods/noContent.d.ts +3 -2
- package/lib/response-methods/noContent.js +1 -1
- package/lib/response-methods/noContent.js.map +1 -1
- package/lib/response-methods/notFound.d.ts +3 -2
- package/lib/response-methods/notFound.js +1 -1
- package/lib/response-methods/notFound.js.map +1 -1
- package/lib/response-methods/ok.d.ts +3 -2
- package/lib/response-methods/ok.js +1 -1
- package/lib/response-methods/ok.js.map +1 -1
- package/lib/response-methods/pug.d.ts +3 -2
- package/lib/response-methods/pug.js +1 -1
- package/lib/response-methods/pug.js.map +1 -1
- package/lib/response-methods/redirect.d.ts +2 -2
- package/lib/response-methods/redirect.js +2 -4
- package/lib/response-methods/redirect.js.map +1 -1
- package/lib/response-methods/serverError.d.ts +3 -2
- package/lib/response-methods/serverError.js +1 -1
- package/lib/response-methods/serverError.js.map +1 -1
- package/lib/response-methods/unauthorized.d.ts +3 -2
- package/lib/response-methods/unauthorized.js +1 -1
- package/lib/response-methods/unauthorized.js.map +1 -1
- package/lib/responses.d.ts +1 -1
- package/lib/responses.js +28 -11
- package/lib/responses.js.map +1 -1
- package/lib/route-args/ArgAsRequest.d.ts +11 -0
- package/lib/{transformers/PureFormatter.js → route-args/ArgAsRequest.js} +13 -12
- package/lib/route-args/ArgAsRequest.js.map +1 -0
- package/lib/route-args/ArgAsResponse.d.ts +10 -0
- package/lib/{dto/order-dto.js → route-args/ArgAsResponse.js} +16 -18
- package/lib/route-args/ArgAsResponse.js.map +1 -0
- package/lib/route-args/ArgHydrator.d.ts +3 -0
- package/lib/route-args/ArgHydrator.js +7 -0
- package/lib/route-args/ArgHydrator.js.map +1 -0
- package/lib/route-args/FromBody.d.ts +10 -0
- package/lib/route-args/FromBody.js +44 -0
- package/lib/route-args/FromBody.js.map +1 -0
- package/lib/route-args/FromCoockie.d.ts +13 -0
- package/lib/route-args/FromCoockie.js +71 -0
- package/lib/route-args/FromCoockie.js.map +1 -0
- package/lib/route-args/FromCookie.d.ts +13 -0
- package/lib/route-args/FromCookie.js +74 -0
- package/lib/route-args/FromCookie.js.map +1 -0
- package/lib/route-args/FromDi.d.ts +14 -0
- package/lib/route-args/FromDi.js +36 -0
- package/lib/route-args/FromDi.js.map +1 -0
- package/lib/route-args/FromForm.d.ts +82 -0
- package/lib/route-args/FromForm.js +259 -0
- package/lib/route-args/FromForm.js.map +1 -0
- package/lib/route-args/FromHeaderArg.d.ts +12 -0
- package/lib/route-args/FromHeaderArg.js +30 -0
- package/lib/route-args/FromHeaderArg.js.map +1 -0
- package/lib/route-args/FromParams.d.ts +10 -0
- package/lib/route-args/FromParams.js +25 -0
- package/lib/route-args/FromParams.js.map +1 -0
- package/lib/route-args/FromQuery.d.ts +10 -0
- package/lib/{dto/limit-dto.js → route-args/FromQuery.js} +16 -18
- package/lib/route-args/FromQuery.js.map +1 -0
- package/lib/route-args/RouteArgs.d.ts +19 -0
- package/lib/route-args/RouteArgs.js +64 -0
- package/lib/route-args/RouteArgs.js.map +1 -0
- package/lib/route-args/index.d.ts +11 -0
- package/lib/route-args/index.js +28 -0
- package/lib/route-args/index.js.map +1 -0
- package/lib/schemas/RouteArgsSchemas.d.ts +15 -0
- package/lib/schemas/RouteArgsSchemas.js +19 -0
- package/lib/schemas/RouteArgsSchemas.js.map +1 -0
- package/lib/server.d.ts +3 -2
- package/lib/server.js +30 -14
- package/lib/server.js.map +1 -1
- package/lib/transformers/PureTransformer.d.ts +1 -1
- package/lib/transformers/PureTransformer.js +2 -2
- package/lib/transformers/PureTransformer.js.map +1 -1
- package/package.json +27 -54
- package/lib/dto/index.d.ts +0 -2
- package/lib/dto/index.js +0 -15
- package/lib/dto/index.js.map +0 -1
- package/lib/dto/limit-dto.d.ts +0 -32
- package/lib/dto/limit-dto.js.map +0 -1
- package/lib/dto/order-dto.d.ts +0 -32
- package/lib/dto/order-dto.js.map +0 -1
- package/lib/schemas.d.ts +0 -24
- package/lib/schemas.js +0 -96
- package/lib/schemas.js.map +0 -1
- package/lib/static/favicon.ico +0 -0
- package/lib/static/style.css +0 -15
- package/lib/transformers/PureFormatter.d.ts +0 -7
- package/lib/transformers/PureFormatter.js.map +0 -1
- package/lib/views/responses/badRequest.pug +0 -13
- package/lib/views/responses/conflict.pug +0 -13
- package/lib/views/responses/forbidden.pug +0 -13
- package/lib/views/responses/noContent.pug +0 -13
- package/lib/views/responses/notFound.pug +0 -13
- package/lib/views/responses/ok.pug +0 -12
- package/lib/views/responses/serverError.pug +0 -13
- package/lib/views/responses/unauthorized.pug +0 -13
package/lib/responses.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -14,7 +18,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
18
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
19
|
if (mod && mod.__esModule) return mod;
|
|
16
20
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
22
|
__setModuleDefault(result, mod);
|
|
19
23
|
return result;
|
|
20
24
|
};
|
|
@@ -111,22 +115,31 @@ const __translateH = (text) => {
|
|
|
111
115
|
* @param status - optional status code
|
|
112
116
|
*/
|
|
113
117
|
function pugResponse(file, model, status) {
|
|
114
|
-
const cfg = di_1.DI.
|
|
118
|
+
const cfg = di_1.DI.get(configuration_1.Configuration);
|
|
115
119
|
return (req, res) => {
|
|
120
|
+
if (!req.accepts('html')) {
|
|
121
|
+
httpResponse({
|
|
122
|
+
error: {
|
|
123
|
+
message: 'invalid request content type',
|
|
124
|
+
code: 400,
|
|
125
|
+
},
|
|
126
|
+
}, interfaces_1.HTTP_STATUS_CODE.BAD_REQUEST, 'responses/serverError.pug')(req, res);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
116
129
|
res.set('Content-Type', 'text/html');
|
|
117
130
|
try {
|
|
118
131
|
try {
|
|
119
132
|
_render(file, model, status);
|
|
120
133
|
}
|
|
121
134
|
catch (err) {
|
|
122
|
-
const log = di_1.DI.
|
|
135
|
+
const log = di_1.DI.resolve(log_1.Log, ['http']);
|
|
123
136
|
log.warn(`Cannot render pug file ${file}, error: ${err.message}:${err.stack}`, err);
|
|
124
137
|
// try to render server error response
|
|
125
138
|
_render('responses/serverError.pug', { error: err }, interfaces_1.HTTP_STATUS_CODE.INTERNAL_ERROR);
|
|
126
139
|
}
|
|
127
140
|
}
|
|
128
141
|
catch (err) {
|
|
129
|
-
const log = di_1.DI.resolve(log_1.
|
|
142
|
+
const log = di_1.DI.resolve(log_1.Log, ['http']);
|
|
130
143
|
// final fallback rendering error fails, we render embedded html error page
|
|
131
144
|
const ticketNo = randomstring.generate(7);
|
|
132
145
|
log.warn(`Cannot render pug file error: ${err.message}, ticket: ${ticketNo}`, err);
|
|
@@ -149,8 +162,8 @@ function pugResponse(file, model, status) {
|
|
|
149
162
|
function getView(viewFile) {
|
|
150
163
|
const views = cfg
|
|
151
164
|
.get('system.dirs.views')
|
|
152
|
-
.map(p => path_1.normalize(path_1.join(p, viewFile)))
|
|
153
|
-
.filter(f => fs.existsSync(f));
|
|
165
|
+
.map((p) => (0, path_1.normalize)((0, path_1.join)(p, viewFile)))
|
|
166
|
+
.filter((f) => fs.existsSync(f));
|
|
154
167
|
if (_.isEmpty(views)) {
|
|
155
168
|
throw new exceptions_1.IOFail(`View file ${viewFile} not exists.`);
|
|
156
169
|
}
|
|
@@ -170,21 +183,25 @@ exports.pugResponse = pugResponse;
|
|
|
170
183
|
* to `Accept` header
|
|
171
184
|
*/
|
|
172
185
|
function httpResponse(model, code, template) {
|
|
173
|
-
const cfg = di_1.DI.
|
|
186
|
+
const cfg = di_1.DI.get(configuration_1.Configuration);
|
|
174
187
|
const acceptedHeaders = cfg.get('http.AcceptHeaders');
|
|
175
|
-
const transformers = di_1.DI.resolve(Array.ofType(interfaces_1.DataTransformer));
|
|
176
188
|
return (req, res) => {
|
|
177
189
|
if (req.accepts('html') && (acceptedHeaders & interfaces_1.HttpAcceptHeaders.HTML) === interfaces_1.HttpAcceptHeaders.HTML) {
|
|
178
190
|
pugResponse(`${template}.pug`, model, code)(req, res);
|
|
179
191
|
}
|
|
180
192
|
else if (req.accepts('json') && (acceptedHeaders & interfaces_1.HttpAcceptHeaders.JSON) === interfaces_1.HttpAcceptHeaders.JSON) {
|
|
181
193
|
if (req.headers['x-data-transform']) {
|
|
182
|
-
const transformer =
|
|
194
|
+
const transformer = di_1.DI.resolve(req.headers['x-data-transform']);
|
|
183
195
|
if (transformer) {
|
|
184
196
|
jsonResponse(transformer.transform(model, req), code)(req, res);
|
|
185
197
|
}
|
|
186
198
|
else {
|
|
187
|
-
jsonResponse(
|
|
199
|
+
jsonResponse({
|
|
200
|
+
error: {
|
|
201
|
+
message: "invalid data transformer, remove header 'x-data-transform' to return raw data or set proper data transformer",
|
|
202
|
+
code: 400,
|
|
203
|
+
},
|
|
204
|
+
}, interfaces_1.HTTP_STATUS_CODE.BAD_REQUEST)(req, res);
|
|
188
205
|
}
|
|
189
206
|
}
|
|
190
207
|
else {
|
package/lib/responses.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="qs" />
|
|
2
|
+
import { RouteArgs } from './RouteArgs';
|
|
3
|
+
import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
|
|
4
|
+
import * as express from 'express';
|
|
5
|
+
export declare class ArgAsRequest extends RouteArgs {
|
|
6
|
+
get SupportedType(): ParameterType;
|
|
7
|
+
extract(callData: IRouteCall, _param: IRouteParameter, req: express.Request): Promise<{
|
|
8
|
+
CallData: IRouteCall;
|
|
9
|
+
Args: express.Request<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
@@ -6,19 +6,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.ArgAsRequest = void 0;
|
|
10
|
+
const RouteArgs_1 = require("./RouteArgs");
|
|
10
11
|
const interfaces_1 = require("../interfaces");
|
|
11
12
|
const di_1 = require("@spinajs/di");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return
|
|
13
|
+
let ArgAsRequest = class ArgAsRequest extends RouteArgs_1.RouteArgs {
|
|
14
|
+
get SupportedType() {
|
|
15
|
+
return interfaces_1.ParameterType.Req;
|
|
16
|
+
}
|
|
17
|
+
async extract(callData, _param, req) {
|
|
18
|
+
return { CallData: callData, Args: req };
|
|
18
19
|
}
|
|
19
20
|
};
|
|
20
|
-
|
|
21
|
-
di_1.
|
|
22
|
-
],
|
|
23
|
-
exports.
|
|
24
|
-
//# sourceMappingURL=
|
|
21
|
+
ArgAsRequest = __decorate([
|
|
22
|
+
(0, di_1.Injectable)(RouteArgs_1.RouteArgs)
|
|
23
|
+
], ArgAsRequest);
|
|
24
|
+
exports.ArgAsRequest = ArgAsRequest;
|
|
25
|
+
//# sourceMappingURL=ArgAsRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArgAsRequest.js","sourceRoot":"","sources":["../../src/route-args/ArgAsRequest.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8CAA2E;AAE3E,oCAAyC;AAGzC,IAAa,YAAY,GAAzB,MAAa,YAAa,SAAQ,qBAAS;IACzC,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,GAAG,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,MAAuB,EAAE,GAAoB;QACtF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;CACF,CAAA;AARY,YAAY;IADxB,IAAA,eAAU,EAAC,qBAAS,CAAC;GACT,YAAY,CAQxB;AARY,oCAAY"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RouteArgs } from './RouteArgs';
|
|
2
|
+
import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
|
|
3
|
+
import * as express from 'express';
|
|
4
|
+
export declare class ArgAsResponse extends RouteArgs {
|
|
5
|
+
get SupportedType(): ParameterType;
|
|
6
|
+
extract(callData: IRouteCall, _param: IRouteParameter, _req: express.Request, res: express.Response): Promise<{
|
|
7
|
+
CallData: IRouteCall;
|
|
8
|
+
Args: express.Response<any, Record<string, any>>;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
@@ -6,22 +6,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
9
|
+
exports.ArgAsResponse = void 0;
|
|
10
|
+
const RouteArgs_1 = require("./RouteArgs");
|
|
11
|
+
const interfaces_1 = require("../interfaces");
|
|
12
|
+
const di_1 = require("@spinajs/di");
|
|
13
|
+
let ArgAsResponse = class ArgAsResponse extends RouteArgs_1.RouteArgs {
|
|
14
|
+
get SupportedType() {
|
|
15
|
+
return interfaces_1.ParameterType.Res;
|
|
16
|
+
}
|
|
17
|
+
async extract(callData, _param, _req, res) {
|
|
18
|
+
return { CallData: callData, Args: res };
|
|
19
|
+
}
|
|
17
20
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
OrderDto = __decorate([
|
|
24
|
-
decorators_1.Schema(exports.OrderDtoSchema)
|
|
25
|
-
], OrderDto);
|
|
26
|
-
exports.OrderDto = OrderDto;
|
|
27
|
-
//# sourceMappingURL=order-dto.js.map
|
|
21
|
+
ArgAsResponse = __decorate([
|
|
22
|
+
(0, di_1.Injectable)(RouteArgs_1.RouteArgs)
|
|
23
|
+
], ArgAsResponse);
|
|
24
|
+
exports.ArgAsResponse = ArgAsResponse;
|
|
25
|
+
//# sourceMappingURL=ArgAsResponse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArgAsResponse.js","sourceRoot":"","sources":["../../src/route-args/ArgAsResponse.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8CAA2E;AAE3E,oCAAyC;AAGzC,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,qBAAS;IAC1C,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,GAAG,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,MAAuB,EAAE,IAAqB,EAAE,GAAqB;QAC9G,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;CACF,CAAA;AARY,aAAa;IADzB,IAAA,eAAU,EAAC,qBAAS,CAAC;GACT,aAAa,CAQzB;AARY,sCAAa"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArgHydrator.js","sourceRoot":"","sources":["../../src/route-args/ArgHydrator.ts"],"names":[],"mappings":";;;AAAA,MAAsB,WAAW;CAEhC;AAFD,kCAEC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RouteArgs } from './RouteArgs';
|
|
2
|
+
import { IRouteParameter, ParameterType, IRouteCall, IRoute } from '../interfaces';
|
|
3
|
+
import * as express from 'express';
|
|
4
|
+
export declare class FromBody extends RouteArgs {
|
|
5
|
+
get SupportedType(): ParameterType;
|
|
6
|
+
extract(callData: IRouteCall, param: IRouteParameter, req: express.Request, _res: express.Response, route: IRoute): Promise<{
|
|
7
|
+
CallData: IRouteCall;
|
|
8
|
+
Args: any;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.FromBody = void 0;
|
|
10
|
+
const RouteArgs_1 = require("./RouteArgs");
|
|
11
|
+
const interfaces_1 = require("../interfaces");
|
|
12
|
+
const di_1 = require("@spinajs/di");
|
|
13
|
+
let FromBody = class FromBody extends RouteArgs_1.RouteArgs {
|
|
14
|
+
get SupportedType() {
|
|
15
|
+
return interfaces_1.ParameterType.FromBody;
|
|
16
|
+
}
|
|
17
|
+
async extract(callData, param, req, _res, route) {
|
|
18
|
+
const arg = req.body[param.Name] ? req.body[param.Name] : route.Parameters.size === 1 ? req.body : null;
|
|
19
|
+
let result = null;
|
|
20
|
+
const [hydrated, hValue] = await this.tryHydrateObject(arg, param);
|
|
21
|
+
if (hydrated) {
|
|
22
|
+
result = hValue;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
switch (param.RuntimeType.name) {
|
|
26
|
+
case 'String':
|
|
27
|
+
case 'Number':
|
|
28
|
+
case 'Boolean':
|
|
29
|
+
case 'Object':
|
|
30
|
+
result = arg;
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
result = param.RuntimeType.name === 'Array' ? arg : new param.RuntimeType(arg);
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return { CallData: callData, Args: result };
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
FromBody = __decorate([
|
|
41
|
+
(0, di_1.Injectable)()
|
|
42
|
+
], FromBody);
|
|
43
|
+
exports.FromBody = FromBody;
|
|
44
|
+
//# sourceMappingURL=FromBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FromBody.js","sourceRoot":"","sources":["../../src/route-args/FromBody.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,8CAAmF;AAEnF,oCAAyC;AAGzC,IAAa,QAAQ,GAArB,MAAa,QAAS,SAAQ,qBAAS;IACrC,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QAC5H,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACxG,IAAI,MAAM,GAAG,IAAI,CAAC;QAElB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACnE,IAAI,QAAQ,EAAE;YACZ,MAAM,GAAG,MAAM,CAAC;SACjB;aAAM;YACL,QAAQ,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE;gBAC9B,KAAK,QAAQ,CAAC;gBACd,KAAK,QAAQ,CAAC;gBACd,KAAK,SAAS,CAAC;gBACf,KAAK,QAAQ;oBACX,MAAM,GAAG,GAAG,CAAC;oBACb,MAAM;gBACR;oBACE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;oBAC/E,MAAM;aACT;SACF;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AA5BY,QAAQ;IADpB,IAAA,eAAU,GAAE;GACA,QAAQ,CA4BpB;AA5BY,4BAAQ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RouteArgs } from './RouteArgs';
|
|
2
|
+
import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
|
|
3
|
+
import * as express from 'express';
|
|
4
|
+
import { Configuration } from '@spinajs/configuration';
|
|
5
|
+
export declare class FromCoockie extends RouteArgs {
|
|
6
|
+
protected _coockieSecret: string;
|
|
7
|
+
constructor(cfg: Configuration);
|
|
8
|
+
get SupportedType(): ParameterType;
|
|
9
|
+
extract(callData: IRouteCall, param: IRouteParameter, req: express.Request): Promise<{
|
|
10
|
+
CallData: IRouteCall;
|
|
11
|
+
Args: string | false;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.FromCoockie = void 0;
|
|
36
|
+
const RouteArgs_1 = require("./RouteArgs");
|
|
37
|
+
const interfaces_1 = require("../interfaces");
|
|
38
|
+
const di_1 = require("@spinajs/di");
|
|
39
|
+
const configuration_1 = require("@spinajs/configuration");
|
|
40
|
+
const cs = __importStar(require("cookie-signature"));
|
|
41
|
+
let FromCoockie = class FromCoockie extends RouteArgs_1.RouteArgs {
|
|
42
|
+
constructor(cfg) {
|
|
43
|
+
super();
|
|
44
|
+
this._coockieSecret = cfg.get('http.coockie.secret');
|
|
45
|
+
}
|
|
46
|
+
get SupportedType() {
|
|
47
|
+
return interfaces_1.ParameterType.FromCookie;
|
|
48
|
+
}
|
|
49
|
+
async extract(callData, param, req) {
|
|
50
|
+
const arg = req.cookies[param.Name];
|
|
51
|
+
if (arg !== null) {
|
|
52
|
+
let result = cs.unsign(arg, this._coockieSecret);
|
|
53
|
+
if (result === false) {
|
|
54
|
+
return { CallData: callData, Args: null };
|
|
55
|
+
}
|
|
56
|
+
const [hydrated, hValue] = await this.tryHydrateObject(arg, param);
|
|
57
|
+
if (hydrated) {
|
|
58
|
+
result = hValue;
|
|
59
|
+
}
|
|
60
|
+
return { CallData: callData, Args: result };
|
|
61
|
+
}
|
|
62
|
+
return { CallData: callData, Args: null };
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
FromCoockie = __decorate([
|
|
66
|
+
(0, di_1.Inject)(configuration_1.Configuration),
|
|
67
|
+
(0, di_1.Injectable)(RouteArgs_1.RouteArgs),
|
|
68
|
+
__metadata("design:paramtypes", [configuration_1.Configuration])
|
|
69
|
+
], FromCoockie);
|
|
70
|
+
exports.FromCoockie = FromCoockie;
|
|
71
|
+
//# sourceMappingURL=FromCoockie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FromCoockie.js","sourceRoot":"","sources":["../../src/route-args/FromCoockie.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,8CAA2E;AAE3E,oCAAiD;AACjD,0DAAuD;AACvD,qDAAuC;AAIvC,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,qBAAS;IAGxC,YAAY,GAAkB;QAC5B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,GAAG,CAAS,qBAAqB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,UAAU,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB;QACrF,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAEjD,IAAI,MAAM,KAAK,KAAK,EAAE;gBACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aAC3C;YAED,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,QAAQ,EAAE;gBACZ,MAAM,GAAG,MAAM,CAAC;aACjB;YAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SAC7C;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF,CAAA;AAjCY,WAAW;IAFvB,IAAA,WAAM,EAAC,6BAAa,CAAC;IACrB,IAAA,eAAU,EAAC,qBAAS,CAAC;qCAIH,6BAAa;GAHnB,WAAW,CAiCvB;AAjCY,kCAAW"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RouteArgs } from './RouteArgs';
|
|
2
|
+
import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
|
|
3
|
+
import * as express from 'express';
|
|
4
|
+
import { Configuration } from '@spinajs/configuration';
|
|
5
|
+
export declare class FromCookie extends RouteArgs {
|
|
6
|
+
protected _coockieSecret: string;
|
|
7
|
+
constructor(cfg: Configuration);
|
|
8
|
+
get SupportedType(): ParameterType;
|
|
9
|
+
extract(callData: IRouteCall, param: IRouteParameter, req: express.Request): Promise<{
|
|
10
|
+
CallData: IRouteCall;
|
|
11
|
+
Args: any;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.FromCookie = void 0;
|
|
36
|
+
const RouteArgs_1 = require("./RouteArgs");
|
|
37
|
+
const interfaces_1 = require("../interfaces");
|
|
38
|
+
const di_1 = require("@spinajs/di");
|
|
39
|
+
const configuration_1 = require("@spinajs/configuration");
|
|
40
|
+
const cs = __importStar(require("cookie-signature"));
|
|
41
|
+
let FromCookie = class FromCookie extends RouteArgs_1.RouteArgs {
|
|
42
|
+
constructor(cfg) {
|
|
43
|
+
super();
|
|
44
|
+
this._coockieSecret = cfg.get('http.coockie.secret');
|
|
45
|
+
}
|
|
46
|
+
get SupportedType() {
|
|
47
|
+
return interfaces_1.ParameterType.FromCookie;
|
|
48
|
+
}
|
|
49
|
+
async extract(callData, param, req) {
|
|
50
|
+
var _a;
|
|
51
|
+
const arg = req.cookies[param.Name];
|
|
52
|
+
if (arg !== null) {
|
|
53
|
+
let result = null;
|
|
54
|
+
if ((_a = param.Options) === null || _a === void 0 ? void 0 : _a.secure) {
|
|
55
|
+
result = cs.unsign(arg, this._coockieSecret);
|
|
56
|
+
if (result === false) {
|
|
57
|
+
return { CallData: callData, Args: null };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
result = arg;
|
|
62
|
+
}
|
|
63
|
+
return { CallData: callData, Args: await this.tryHydrateParam(result, param) };
|
|
64
|
+
}
|
|
65
|
+
return { CallData: callData, Args: null };
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
FromCookie = __decorate([
|
|
69
|
+
(0, di_1.Inject)(configuration_1.Configuration),
|
|
70
|
+
(0, di_1.Injectable)(),
|
|
71
|
+
__metadata("design:paramtypes", [configuration_1.Configuration])
|
|
72
|
+
], FromCookie);
|
|
73
|
+
exports.FromCookie = FromCookie;
|
|
74
|
+
//# sourceMappingURL=FromCookie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FromCookie.js","sourceRoot":"","sources":["../../src/route-args/FromCookie.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,8CAA2E;AAE3E,oCAAiD;AACjD,0DAAuD;AACvD,qDAAuC;AAIvC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,qBAAS;IAGvC,YAAY,GAAkB;QAC5B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,GAAG,CAAS,qBAAqB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,UAAU,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB;;QACrF,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,MAAA,KAAK,CAAC,OAAO,0CAAE,MAAM,EAAE;gBACzB,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC7C,IAAI,MAAM,KAAK,KAAK,EAAE;oBACpB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;iBAC3C;aACF;iBAAM;gBACL,MAAM,GAAG,GAAG,CAAC;aACd;YAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;SAChF;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF,CAAA;AAhCY,UAAU;IAFtB,IAAA,WAAM,EAAC,6BAAa,CAAC;IACrB,IAAA,eAAU,GAAE;qCAIM,6BAAa;GAHnB,UAAU,CAgCtB;AAhCY,gCAAU"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IRouteArgs } from './RouteArgs';
|
|
2
|
+
import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
|
|
3
|
+
import * as express from 'express';
|
|
4
|
+
import { AsyncModule, IContainer } from '@spinajs/di';
|
|
5
|
+
export declare class FromDi extends AsyncModule implements IRouteArgs {
|
|
6
|
+
protected Container: IContainer;
|
|
7
|
+
constructor(c: IContainer);
|
|
8
|
+
resolveAsync(): Promise<void>;
|
|
9
|
+
get SupportedType(): ParameterType;
|
|
10
|
+
extract(callData: IRouteCall, param: IRouteParameter, _req: express.Request): Promise<{
|
|
11
|
+
CallData: IRouteCall;
|
|
12
|
+
Args: unknown;
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.FromDi = void 0;
|
|
13
|
+
const RouteArgs_1 = require("./RouteArgs");
|
|
14
|
+
const interfaces_1 = require("../interfaces");
|
|
15
|
+
const di_1 = require("@spinajs/di");
|
|
16
|
+
let FromDi = class FromDi extends di_1.AsyncModule {
|
|
17
|
+
constructor(c) {
|
|
18
|
+
super();
|
|
19
|
+
this.Container = c;
|
|
20
|
+
}
|
|
21
|
+
async resolveAsync() { }
|
|
22
|
+
get SupportedType() {
|
|
23
|
+
return interfaces_1.ParameterType.FromDi;
|
|
24
|
+
}
|
|
25
|
+
async extract(callData, param, _req) {
|
|
26
|
+
const srv = await this.Container.resolve(param.RuntimeType, param.Options);
|
|
27
|
+
return { CallData: callData, Args: srv };
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
FromDi = __decorate([
|
|
31
|
+
(0, di_1.Injectable)(RouteArgs_1.RouteArgs),
|
|
32
|
+
(0, di_1.Inject)(di_1.Container),
|
|
33
|
+
__metadata("design:paramtypes", [Object])
|
|
34
|
+
], FromDi);
|
|
35
|
+
exports.FromDi = FromDi;
|
|
36
|
+
//# sourceMappingURL=FromDi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FromDi.js","sourceRoot":"","sources":["../../src/route-args/FromDi.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoD;AACpD,8CAA2E;AAE3E,oCAAqF;AAIrF,IAAa,MAAM,GAAnB,MAAa,MAAO,SAAQ,gBAAW;IAGrC,YAAY,CAAa;QACvB,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,YAAY,KAAmB,CAAC;IAEtC,IAAW,aAAa;QACtB,OAAO,0BAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,IAAqB;QACtF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3E,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC3C,CAAC;CACF,CAAA;AAnBY,MAAM;IAFlB,IAAA,eAAU,EAAC,qBAAS,CAAC;IACrB,IAAA,WAAM,EAAC,cAAS,CAAC;;GACL,MAAM,CAmBlB;AAnBY,wBAAM"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { RouteArgs } from './RouteArgs';
|
|
2
|
+
import { IRouteParameter, ParameterType, IRouteCall } from '../interfaces';
|
|
3
|
+
import * as express from 'express';
|
|
4
|
+
import { Fields, Files } from 'formidable';
|
|
5
|
+
import { Configuration } from '@spinajs/configuration';
|
|
6
|
+
interface FormData {
|
|
7
|
+
Fields: Fields;
|
|
8
|
+
Files: Files;
|
|
9
|
+
}
|
|
10
|
+
export declare type FormOptionsCallback = (conf: Configuration) => Promise<FormOptions>;
|
|
11
|
+
export interface FormOptions {
|
|
12
|
+
encoding?: string;
|
|
13
|
+
uploadDir?: string;
|
|
14
|
+
keepExtensions?: boolean;
|
|
15
|
+
maxFileSize?: number;
|
|
16
|
+
maxFieldsSize?: number;
|
|
17
|
+
maxFields?: number;
|
|
18
|
+
hash?: string | boolean;
|
|
19
|
+
multiples?: boolean;
|
|
20
|
+
type?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare abstract class FromFormBase extends RouteArgs {
|
|
23
|
+
Data: FormData;
|
|
24
|
+
protected parseForm(callData: IRouteCall, param: IRouteParameter, req: express.Request): Promise<void>;
|
|
25
|
+
protected parse(req: express.Request, options: FormOptions | FormOptionsCallback): Promise<void>;
|
|
26
|
+
private _parse;
|
|
27
|
+
}
|
|
28
|
+
export declare class FromFile extends FromFormBase {
|
|
29
|
+
get SupportedType(): ParameterType;
|
|
30
|
+
constructor(data: any);
|
|
31
|
+
extract(callData: IRouteCall, param: IRouteParameter, req: express.Request): Promise<any>;
|
|
32
|
+
}
|
|
33
|
+
export declare class JsonFileRouteArgs extends FromFile {
|
|
34
|
+
get SupportedType(): ParameterType;
|
|
35
|
+
constructor(data: any);
|
|
36
|
+
extract(callData: IRouteCall, param: IRouteParameter, req: express.Request): Promise<{
|
|
37
|
+
CallData: {
|
|
38
|
+
Payload: {
|
|
39
|
+
Form: FormData;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
Args: any;
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
45
|
+
export declare class CsvFileRouteArgs extends FromFile {
|
|
46
|
+
get SupportedType(): ParameterType;
|
|
47
|
+
constructor(data: any);
|
|
48
|
+
extract(callData: IRouteCall, param: IRouteParameter, req: express.Request): Promise<{
|
|
49
|
+
CallData: {
|
|
50
|
+
Payload: {
|
|
51
|
+
Form: FormData;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
Args: unknown;
|
|
55
|
+
}>;
|
|
56
|
+
protected parseCvs(path: string, options: any): Promise<unknown>;
|
|
57
|
+
}
|
|
58
|
+
export declare class FromFormField extends FromFormBase {
|
|
59
|
+
get SupportedType(): ParameterType;
|
|
60
|
+
constructor(data: any);
|
|
61
|
+
extract(callData: IRouteCall, param: IRouteParameter, req: express.Request): Promise<{
|
|
62
|
+
CallData: {
|
|
63
|
+
Payload: {
|
|
64
|
+
Form: FormData;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
Args: string | string[];
|
|
68
|
+
}>;
|
|
69
|
+
}
|
|
70
|
+
export declare class FromForm extends FromFormBase {
|
|
71
|
+
get SupportedType(): ParameterType;
|
|
72
|
+
constructor(data: any);
|
|
73
|
+
extract(callData: IRouteCall, param: IRouteParameter, req: express.Request): Promise<{
|
|
74
|
+
CallData: {
|
|
75
|
+
Payload: {
|
|
76
|
+
Form: FormData;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
Args: Fields;
|
|
80
|
+
}>;
|
|
81
|
+
}
|
|
82
|
+
export {};
|