@spinajs/http 2.0.146 → 2.0.147
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/cjs/bootstrap.d.ts +5 -0
- package/lib/cjs/bootstrap.d.ts.map +1 -0
- package/lib/cjs/bootstrap.js +30 -0
- package/lib/cjs/bootstrap.js.map +1 -0
- package/lib/cjs/controllers.d.ts.map +1 -1
- package/lib/cjs/controllers.js +5 -1
- package/lib/cjs/controllers.js.map +1 -1
- package/lib/cjs/hydrators/DateTimeHydrator.d.ts +6 -0
- package/lib/cjs/hydrators/DateTimeHydrator.d.ts.map +1 -0
- package/lib/cjs/hydrators/DateTimeHydrator.js +37 -0
- package/lib/cjs/hydrators/DateTimeHydrator.js.map +1 -0
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +3 -3
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/response-methods/file.d.ts.map +1 -1
- package/lib/cjs/response-methods/file.js +2 -0
- package/lib/cjs/response-methods/file.js.map +1 -1
- package/lib/cjs/route-args/FromForm.d.ts +2 -1
- package/lib/cjs/route-args/FromForm.d.ts.map +1 -1
- package/lib/cjs/route-args/FromForm.js +12 -6
- package/lib/cjs/route-args/FromForm.js.map +1 -1
- package/lib/cjs/route-args/FromHeaderArg.d.ts +0 -2
- package/lib/cjs/route-args/FromHeaderArg.d.ts.map +1 -1
- package/lib/cjs/route-args/FromHeaderArg.js +0 -4
- package/lib/cjs/route-args/FromHeaderArg.js.map +1 -1
- package/lib/cjs/route-args/FromParams.d.ts.map +1 -1
- package/lib/cjs/route-args/FromParams.js +2 -3
- package/lib/cjs/route-args/FromParams.js.map +1 -1
- package/lib/cjs/route-args/FromQuery.d.ts.map +1 -1
- package/lib/cjs/route-args/FromQuery.js +2 -3
- package/lib/cjs/route-args/FromQuery.js.map +1 -1
- package/lib/cjs/route-args/RouteArgs.d.ts +0 -2
- package/lib/cjs/route-args/RouteArgs.d.ts.map +1 -1
- package/lib/cjs/route-args/RouteArgs.js +13 -22
- package/lib/cjs/route-args/RouteArgs.js.map +1 -1
- package/lib/mjs/bootstrap.d.ts +5 -0
- package/lib/mjs/bootstrap.d.ts.map +1 -0
- package/lib/mjs/bootstrap.js +27 -0
- package/lib/mjs/bootstrap.js.map +1 -0
- package/lib/mjs/controllers.d.ts.map +1 -1
- package/lib/mjs/controllers.js +5 -1
- package/lib/mjs/controllers.js.map +1 -1
- package/lib/mjs/hydrators/DateTimeHydrator.d.ts +6 -0
- package/lib/mjs/hydrators/DateTimeHydrator.d.ts.map +1 -0
- package/lib/mjs/hydrators/DateTimeHydrator.js +31 -0
- package/lib/mjs/hydrators/DateTimeHydrator.js.map +1 -0
- package/lib/mjs/index.d.ts +1 -0
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +1 -0
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +3 -3
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/response-methods/file.d.ts.map +1 -1
- package/lib/mjs/response-methods/file.js +2 -0
- package/lib/mjs/response-methods/file.js.map +1 -1
- package/lib/mjs/route-args/FromForm.d.ts +2 -1
- package/lib/mjs/route-args/FromForm.d.ts.map +1 -1
- package/lib/mjs/route-args/FromForm.js +12 -6
- package/lib/mjs/route-args/FromForm.js.map +1 -1
- package/lib/mjs/route-args/FromHeaderArg.d.ts +0 -2
- package/lib/mjs/route-args/FromHeaderArg.d.ts.map +1 -1
- package/lib/mjs/route-args/FromHeaderArg.js +0 -4
- package/lib/mjs/route-args/FromHeaderArg.js.map +1 -1
- package/lib/mjs/route-args/FromParams.d.ts.map +1 -1
- package/lib/mjs/route-args/FromParams.js +2 -3
- package/lib/mjs/route-args/FromParams.js.map +1 -1
- package/lib/mjs/route-args/FromQuery.d.ts.map +1 -1
- package/lib/mjs/route-args/FromQuery.js +2 -3
- package/lib/mjs/route-args/FromQuery.js.map +1 -1
- package/lib/mjs/route-args/RouteArgs.d.ts +0 -2
- package/lib/mjs/route-args/RouteArgs.d.ts.map +1 -1
- package/lib/mjs/route-args/RouteArgs.js +13 -22
- package/lib/mjs/route-args/RouteArgs.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FromParams.js","sourceRoot":"","sources":["../../../src/route-args/FromParams.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS;IACvC,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,UAAU,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;
|
|
1
|
+
{"version":3,"file":"FromParams.js","sourceRoot":"","sources":["../../../src/route-args/FromParams.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,SAAS;IACvC,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,UAAU,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QAC5H,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;SACvE,CAAC;IACJ,CAAC;CACF,CAAA;AAXY,UAAU;IADtB,UAAU,EAAE;GACA,UAAU,CAWtB;SAXY,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FromQuery.d.ts","sourceRoot":"","sources":["../../../src/route-args/FromQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;;;;
|
|
1
|
+
{"version":3,"file":"FromQuery.d.ts","sourceRoot":"","sources":["../../../src/route-args/FromQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;;;;CAM/H"}
|
|
@@ -13,9 +13,8 @@ let FromQuery = class FromQuery extends RouteArgs {
|
|
|
13
13
|
}
|
|
14
14
|
async extract(callData, param, req, _res, route) {
|
|
15
15
|
return {
|
|
16
|
-
CallData: callData,
|
|
17
|
-
|
|
18
|
-
: req.query[param.Name], param, route)
|
|
16
|
+
CallData: callData,
|
|
17
|
+
Args: await this.tryHydrateParam(req.query[param.Name], param, route),
|
|
19
18
|
};
|
|
20
19
|
}
|
|
21
20
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FromQuery.js","sourceRoot":"","sources":["../../../src/route-args/FromQuery.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIlC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,SAAS,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QAC5H,OAAO;YACL,QAAQ,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"FromQuery.js","sourceRoot":"","sources":["../../../src/route-args/FromQuery.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIlC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,SAAS,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QAC5H,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;SACtE,CAAC;IACJ,CAAC;CACF,CAAA;AAXY,SAAS;IADrB,UAAU,EAAE;GACA,SAAS,CAWrB;SAXY,SAAS"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ParameterType, IRouteParameter, IRouteCall, IRoute, Request } from './../interfaces.js';
|
|
2
2
|
import * as express from 'express';
|
|
3
|
-
import { DateTime } from 'luxon';
|
|
4
3
|
import { DataValidator } from '@spinajs/validation';
|
|
5
4
|
export interface IRouteArgsResult {
|
|
6
5
|
CallData: IRouteCall;
|
|
@@ -14,7 +13,6 @@ export declare abstract class RouteArgs implements IRouteArgs {
|
|
|
14
13
|
protected Validator: DataValidator;
|
|
15
14
|
abstract get SupportedType(): ParameterType | string;
|
|
16
15
|
abstract extract(callData: IRouteCall, routeParameter: IRouteParameter, req: Request, res: express.Response, route?: IRoute): Promise<IRouteArgsResult>;
|
|
17
|
-
protected handleDate(arg: any): DateTime;
|
|
18
16
|
protected tryHydrateParam(arg: any, routeParameter: IRouteParameter, route: IRoute): Promise<any>;
|
|
19
17
|
protected tryHydrateObject(arg: any, param: IRouteParameter): Promise<any>;
|
|
20
18
|
protected fromRuntimeType(param: IRouteParameter, arg: any): any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteArgs.d.ts","sourceRoot":"","sources":["../../../src/route-args/RouteArgs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"RouteArgs.d.ts","sourceRoot":"","sources":["../../../src/route-args/RouteArgs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,aAAa,GAAG,MAAM,CAAC;IAEtC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChJ;AAED,8BAAsB,SAAU,YAAW,UAAU;IAEnD,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;IAEnC,QAAQ,KAAK,aAAa,IAAI,aAAa,GAAG,MAAM,CAAC;aAErC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;cAE9I,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM;cAgCxE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe;IAwBjE,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG;CAoB3D"}
|
|
@@ -7,22 +7,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { Autoinject, TypedArray } from '@spinajs/di';
|
|
11
|
-
import { DI } from '@spinajs/di';
|
|
10
|
+
import { DI, Autoinject, TypedArray, isClass } from '@spinajs/di';
|
|
12
11
|
import _ from 'lodash';
|
|
13
|
-
import { DateTime } from 'luxon';
|
|
14
12
|
import { DataValidator } from '@spinajs/validation';
|
|
15
13
|
export class RouteArgs {
|
|
16
|
-
handleDate(arg) {
|
|
17
|
-
const milis = Number(arg);
|
|
18
|
-
if (!Number.isNaN(milis)) {
|
|
19
|
-
return DateTime.fromSeconds(milis);
|
|
20
|
-
}
|
|
21
|
-
if (_.isString(arg)) {
|
|
22
|
-
return DateTime.fromISO(arg);
|
|
23
|
-
}
|
|
24
|
-
return DateTime.invalid('no iso or unix timestamp');
|
|
25
|
-
}
|
|
26
14
|
async tryHydrateParam(arg, routeParameter, route) {
|
|
27
15
|
let result = null;
|
|
28
16
|
let schema = null;
|
|
@@ -43,12 +31,12 @@ export class RouteArgs {
|
|
|
43
31
|
if (result && typeof result === 'object') {
|
|
44
32
|
schema = this.Validator.extractSchema(result);
|
|
45
33
|
}
|
|
46
|
-
if (schema) {
|
|
47
|
-
this.Validator.validate(schema, arg);
|
|
48
|
-
}
|
|
49
34
|
if (!result) {
|
|
50
35
|
result = this.fromRuntimeType(routeParameter, arg);
|
|
51
36
|
}
|
|
37
|
+
if (schema) {
|
|
38
|
+
this.Validator.validate(schema, result);
|
|
39
|
+
}
|
|
52
40
|
return result;
|
|
53
41
|
}
|
|
54
42
|
async tryHydrateObject(arg, param) {
|
|
@@ -63,20 +51,17 @@ export class RouteArgs {
|
|
|
63
51
|
const hInstance = await DI.resolve(hydrator.hydrator, hydrator.options);
|
|
64
52
|
return await hInstance.hydrate(arg, param);
|
|
65
53
|
}
|
|
54
|
+
else if (isClass(param.RuntimeType)) {
|
|
55
|
+
return new param.RuntimeType(_.isString(arg) ? JSON.parse(arg) : arg);
|
|
56
|
+
}
|
|
66
57
|
else if (param.RuntimeType.name === 'Object' || param.RuntimeType.name === 'Array') {
|
|
67
58
|
return _.isString(arg) ? JSON.parse(arg) : arg;
|
|
68
59
|
}
|
|
69
|
-
else if (param.RuntimeType.name === 'DateTime') {
|
|
70
|
-
return this.handleDate(arg);
|
|
71
|
-
}
|
|
72
60
|
else if (param.RuntimeType instanceof TypedArray) {
|
|
73
61
|
const type = param.RuntimeType.Type;
|
|
74
62
|
const arrData = _.isString(arg) ? JSON.parse(arg) : arg;
|
|
75
63
|
return arrData ? arrData.map((x) => new type(x)) : [];
|
|
76
64
|
}
|
|
77
|
-
else if (['Number', 'String', 'Boolean', 'Null', 'Undefined', 'BigInt', 'Symbol'].indexOf(param.RuntimeType.name) === -1) {
|
|
78
|
-
return new param.RuntimeType(_.isString(arg) ? JSON.parse(arg) : arg);
|
|
79
|
-
}
|
|
80
65
|
return undefined;
|
|
81
66
|
}
|
|
82
67
|
fromRuntimeType(param, arg) {
|
|
@@ -87,8 +72,14 @@ export class RouteArgs {
|
|
|
87
72
|
return arg;
|
|
88
73
|
case 'Number':
|
|
89
74
|
return arg ? Number(arg) : undefined;
|
|
75
|
+
case 'BigInt':
|
|
76
|
+
return BigInt(arg);
|
|
90
77
|
case 'Boolean':
|
|
91
78
|
return arg ? (arg === 1 ? true : arg.toLowerCase() === 'true' ? true : false) : false;
|
|
79
|
+
case 'Undefined':
|
|
80
|
+
return undefined;
|
|
81
|
+
case 'Null':
|
|
82
|
+
return null;
|
|
92
83
|
default:
|
|
93
84
|
return new param.RuntimeType(_.isString(arg) ? JSON.parse(arg) : arg);
|
|
94
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteArgs.js","sourceRoot":"","sources":["../../../src/route-args/RouteArgs.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RouteArgs.js","sourceRoot":"","sources":["../../../src/route-args/RouteArgs.ts"],"names":[],"mappings":"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"}
|