@pristine-ts/networking 0.0.221 → 0.0.224

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.
@@ -5,12 +5,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
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
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
8
14
  Object.defineProperty(exports, "__esModule", { value: true });
9
15
  exports.QueryParameterDecoratorResolver = void 0;
10
16
  const tsyringe_1 = require("tsyringe");
11
17
  const common_1 = require("@pristine-ts/common");
12
18
  const networking_module_keyname_1 = require("../networking.module.keyname");
13
- const url_1 = require("url");
19
+ const url_util_1 = require("../utils/url.util");
14
20
  /**
15
21
  * The QueryParameterDecoratorResolver resolves the value of the query parameter with the name passed to the decorator
16
22
  * of the request so that it can be injected it into the parameter of the route of the controller that was annotated
@@ -18,6 +24,9 @@ const url_1 = require("url");
18
24
  * It is tagged as an MethodParameterDecoratorResolver so it can be automatically injected with the all the other MethodParameterDecoratorResolvers.
19
25
  */
20
26
  let QueryParameterDecoratorResolver = class QueryParameterDecoratorResolver {
27
+ constructor(logHandler) {
28
+ this.logHandler = logHandler;
29
+ }
21
30
  /**
22
31
  * Resolves the value of the query parameter with the specified name of the request.
23
32
  * The router than injects that value into the parameter of the controller method.
@@ -28,8 +37,14 @@ let QueryParameterDecoratorResolver = class QueryParameterDecoratorResolver {
28
37
  */
29
38
  resolve(methodArgument, request, routeParameters, identity) {
30
39
  var _a;
31
- const url = new url_1.URL(request.url);
32
- return Promise.resolve((_a = url.searchParams.get(methodArgument.queryParameterName)) !== null && _a !== void 0 ? _a : null);
40
+ try {
41
+ const url = url_util_1.UrlUtil.getUrlFromRequestWithDefaultHost(request);
42
+ return Promise.resolve((_a = url.searchParams.get(methodArgument.queryParameterName)) !== null && _a !== void 0 ? _a : null);
43
+ }
44
+ catch (e) {
45
+ this.logHandler.error("There was an error resolving the query parameter", { methodArgument, request, routeParameters, identity });
46
+ return Promise.resolve(null);
47
+ }
33
48
  }
34
49
  /**
35
50
  * Returns whether or not the resolver support such a method argument.
@@ -43,7 +58,9 @@ let QueryParameterDecoratorResolver = class QueryParameterDecoratorResolver {
43
58
  QueryParameterDecoratorResolver = __decorate([
44
59
  (0, common_1.moduleScoped)(networking_module_keyname_1.NetworkingModuleKeyname),
45
60
  (0, common_1.tag)(common_1.ServiceDefinitionTagEnum.MethodParameterDecoratorResolver),
46
- (0, tsyringe_1.injectable)()
61
+ (0, tsyringe_1.injectable)(),
62
+ __param(0, (0, tsyringe_1.inject)("LogHandlerInterface")),
63
+ __metadata("design:paramtypes", [Object])
47
64
  ], QueryParameterDecoratorResolver);
48
65
  exports.QueryParameterDecoratorResolver = QueryParameterDecoratorResolver;
49
66
  //# sourceMappingURL=query-parameter-decorator.resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AAGpC,gDAAmG;AACnG,4EAAqE;AACrE,6BAA0B;AAI1B;;;;;GAKG;AAII,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAgD,EAChD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC,mCAAI,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC/G,CAAC;CACJ,CAAA;AA3BY,+BAA+B;IAH3C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;GACA,+BAA+B,CA2B3C;AA3BY,0EAA+B"}
1
+ {"version":3,"file":"query-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA4C;AAG5C,gDAAmG;AACnG,4EAAqE;AAKrE,gDAA0C;AAE1C;;;;;GAKG;AAII,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IACxC,YAA4D,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAC3F,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,cAAgD,EAChD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,IAAI;YACJ,MAAM,GAAG,GAAG,kBAAO,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;YAE9D,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC,mCAAI,IAAI,CAAC,CAAC;SAC3F;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,kDAAkD,EAAE,EAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAC,CAAC,CAAA;YAC/H,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAC/B;IACD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC/G,CAAC;CACJ,CAAA;AAlCY,+BAA+B;IAH3C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;IAEI,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;;GADjC,+BAA+B,CAkC3C;AAlCY,0EAA+B"}
@@ -16,7 +16,7 @@ exports.QueryParametersDecoratorResolver = void 0;
16
16
  const tsyringe_1 = require("tsyringe");
17
17
  const common_1 = require("@pristine-ts/common");
18
18
  const networking_module_keyname_1 = require("../networking.module.keyname");
19
- const url_1 = require("url");
19
+ const url_util_1 = require("../utils/url.util");
20
20
  /**
21
21
  * The QueryParametersDecoratorResolver resolves the value (a map) of the query parameters of the request so that it can be injected it into the
22
22
  * parameter of the route of the controller that was annotated with the @queryParameters decorator.
@@ -36,7 +36,7 @@ let QueryParametersDecoratorResolver = class QueryParametersDecoratorResolver {
36
36
  */
37
37
  resolve(methodArgument, request, routeParameters, identity) {
38
38
  try {
39
- const url = new url_1.URL(request.url);
39
+ const url = url_util_1.UrlUtil.getUrlFromRequestWithDefaultHost(request);
40
40
  let queryParameters = undefined;
41
41
  for (const [key, value] of url.searchParams.entries()) {
42
42
  if (queryParameters === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"query-parameters-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameters-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA4C;AAG5C,gDAAmG;AACnG,4EAAqE;AACrE,6BAA0B;AAK1B;;;;GAIG;AAII,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAEzC,YAA4D,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAC3F,CAAC;IACD;;;;;;;OAOG;IACH,OAAO,CAAC,cAAiD,EACjD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,IAAI;YACA,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,eAAe,GAAuC,SAAS,CAAC;YAEpE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;gBACnD,IAAG,eAAe,KAAK,SAAS,EAAE;oBAC9B,eAAe,GAAG,EAAE,CAAC;iBACxB;gBAED,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAChC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,CAAC,CAAC;SACnD;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mDAAmD,EAAE,EAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAC,CAAC,CAAA;YAChI,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAC/B;IACL,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAChH,CAAC;CACJ,CAAA;AA3CY,gCAAgC;IAH5C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;IAGI,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;;GAFjC,gCAAgC,CA2C5C;AA3CY,4EAAgC"}
1
+ {"version":3,"file":"query-parameters-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameters-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uCAA4C;AAG5C,gDAAmG;AACnG,4EAAqE;AAKrE,gDAA0C;AAE1C;;;;GAIG;AAII,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAEzC,YAA4D,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAC3F,CAAC;IACD;;;;;;;OAOG;IACH,OAAO,CAAC,cAAiD,EACjD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,IAAI;YACA,MAAM,GAAG,GAAG,kBAAO,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;YAE9D,IAAI,eAAe,GAAuC,SAAS,CAAC;YAEpE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;gBACnD,IAAG,eAAe,KAAK,SAAS,EAAE;oBAC9B,eAAe,GAAG,EAAE,CAAC;iBACxB;gBAED,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAChC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,CAAC,CAAC;SACnD;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mDAAmD,EAAE,EAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAC,CAAC,CAAA;YAChI,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAC/B;IACL,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAChH,CAAC;CACJ,CAAA;AA3CY,gCAAgC;IAH5C,IAAA,qBAAY,EAAC,mDAAuB,CAAC;IACrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,gCAAgC,CAAC;IAC9D,IAAA,qBAAU,GAAE;IAGI,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;;GAFjC,gCAAgC,CA2C5C;AA3CY,4EAAgC"}
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UrlUtil = void 0;
4
- /**
5
- * This class provides a bunch of utilities to deal with Urls.
6
- */
7
4
  class UrlUtil {
8
5
  /**
9
6
  * This method receives a path parameter (e.g. /api/2.0/dogs/id/puppies) and returns an array where each url segment is split:
@@ -61,6 +58,13 @@ class UrlUtil {
61
58
  static isPathACatchAll(path) {
62
59
  return path.startsWith("/*");
63
60
  }
61
+ static getUrlFromRequestWithDefaultHost(request) {
62
+ let host = request.host;
63
+ if (host === undefined) {
64
+ host = "https://default.com";
65
+ }
66
+ return new URL(request.url, host);
67
+ }
64
68
  }
65
69
  exports.UrlUtil = UrlUtil;
66
70
  //# sourceMappingURL=url.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.util.js","sourceRoot":"","sources":["../../../../src/utils/url.util.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,OAAO;IAChB;;;;;;;;;OASG;IACI,MAAM,CAAC,SAAS,CAAC,IAAY;QAChC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,KAAK,GAAa,EAAE,CAAC;QAEzB,gHAAgH;QAChH,4FAA4F;QAC5F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAChB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;gBACzB,MAAM,GAAG,EAAE,CAAC;aACf;iBACI;gBACD,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;aACpB;SACJ;QAED,uEAAuE;QACvE,IAAG,MAAM,KAAK,EAAE,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;SAC5B;QAED,kFAAkF;QAClF,IAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;YAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC5C;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,IAAY;QAC5C,gFAAgF;QAChF,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC;SACf;QAED,oEAAoE;QACpE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACJ;AAlED,0BAkEC"}
1
+ {"version":3,"file":"url.util.js","sourceRoot":"","sources":["../../../../src/utils/url.util.ts"],"names":[],"mappings":";;;AAKA,MAAa,OAAO;IAChB;;;;;;;;;OASG;IACI,MAAM,CAAC,SAAS,CAAC,IAAY;QAChC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,KAAK,GAAa,EAAE,CAAC;QAEzB,gHAAgH;QAChH,4FAA4F;QAC5F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAChB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;gBACzB,MAAM,GAAG,EAAE,CAAC;aACf;iBACI;gBACD,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;aACpB;SACJ;QAED,uEAAuE;QACvE,IAAG,MAAM,KAAK,EAAE,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;SAC5B;QAED,kFAAkF;QAClF,IAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;YAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC5C;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,IAAY;QAC5C,gFAAgF;QAChF,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC;SACf;QAED,oEAAoE;QACpE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,gCAAgC,CAAC,OAAgB;QAC3D,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACxB,IAAG,IAAI,KAAK,SAAS,EAAE;YACpB,IAAI,GAAG,qBAAqB,CAAC;SAC/B;QAED,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;CACJ;AA3ED,0BA2EC"}
@@ -4,10 +4,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  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;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { injectable } from "tsyringe";
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { injectable, inject } from "tsyringe";
8
14
  import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
9
15
  import { NetworkingModuleKeyname } from "../networking.module.keyname";
10
- import { URL } from 'url';
16
+ import { UrlUtil } from "../utils/url.util";
11
17
  /**
12
18
  * The QueryParameterDecoratorResolver resolves the value of the query parameter with the name passed to the decorator
13
19
  * of the request so that it can be injected it into the parameter of the route of the controller that was annotated
@@ -15,6 +21,9 @@ import { URL } from 'url';
15
21
  * It is tagged as an MethodParameterDecoratorResolver so it can be automatically injected with the all the other MethodParameterDecoratorResolvers.
16
22
  */
17
23
  let QueryParameterDecoratorResolver = class QueryParameterDecoratorResolver {
24
+ constructor(logHandler) {
25
+ this.logHandler = logHandler;
26
+ }
18
27
  /**
19
28
  * Resolves the value of the query parameter with the specified name of the request.
20
29
  * The router than injects that value into the parameter of the controller method.
@@ -25,8 +34,14 @@ let QueryParameterDecoratorResolver = class QueryParameterDecoratorResolver {
25
34
  */
26
35
  resolve(methodArgument, request, routeParameters, identity) {
27
36
  var _a;
28
- const url = new URL(request.url);
29
- return Promise.resolve((_a = url.searchParams.get(methodArgument.queryParameterName)) !== null && _a !== void 0 ? _a : null);
37
+ try {
38
+ const url = UrlUtil.getUrlFromRequestWithDefaultHost(request);
39
+ return Promise.resolve((_a = url.searchParams.get(methodArgument.queryParameterName)) !== null && _a !== void 0 ? _a : null);
40
+ }
41
+ catch (e) {
42
+ this.logHandler.error("There was an error resolving the query parameter", { methodArgument, request, routeParameters, identity });
43
+ return Promise.resolve(null);
44
+ }
30
45
  }
31
46
  /**
32
47
  * Returns whether or not the resolver support such a method argument.
@@ -40,7 +55,9 @@ let QueryParameterDecoratorResolver = class QueryParameterDecoratorResolver {
40
55
  QueryParameterDecoratorResolver = __decorate([
41
56
  moduleScoped(NetworkingModuleKeyname),
42
57
  tag(ServiceDefinitionTagEnum.MethodParameterDecoratorResolver),
43
- injectable()
58
+ injectable(),
59
+ __param(0, inject("LogHandlerInterface")),
60
+ __metadata("design:paramtypes", [Object])
44
61
  ], QueryParameterDecoratorResolver);
45
62
  export { QueryParameterDecoratorResolver };
46
63
  //# sourceMappingURL=query-parameter-decorator.resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAGpC,OAAO,EAAoB,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B;;;;;GAKG;AAII,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAgD,EAChD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC,mCAAI,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC/G,CAAC;CACJ,CAAA;AA3BY,+BAA+B;IAH3C,YAAY,CAAC,uBAAuB,CAAC;IACrC,GAAG,CAAC,wBAAwB,CAAC,gCAAgC,CAAC;IAC9D,UAAU,EAAE;GACA,+BAA+B,CA2B3C;SA3BY,+BAA+B"}
1
+ {"version":3,"file":"query-parameter-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameter-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAC,UAAU,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAoB,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAKrE,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAE1C;;;;;GAKG;AAII,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IACxC,YAA4D,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAC3F,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,cAAgD,EAChD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;;QAChC,IAAI;YACJ,MAAM,GAAG,GAAG,OAAO,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;YAE9D,OAAO,OAAO,CAAC,OAAO,CAAC,MAAA,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC,mCAAI,IAAI,CAAC,CAAC;SAC3F;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,kDAAkD,EAAE,EAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAC,CAAC,CAAA;YAC/H,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAC/B;IACD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC;IAC/G,CAAC;CACJ,CAAA;AAlCY,+BAA+B;IAH3C,YAAY,CAAC,uBAAuB,CAAC;IACrC,GAAG,CAAC,wBAAwB,CAAC,gCAAgC,CAAC;IAC9D,UAAU,EAAE;IAEI,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;;GADjC,+BAA+B,CAkC3C;SAlCY,+BAA+B"}
@@ -13,7 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
13
13
  import { injectable, inject } from "tsyringe";
14
14
  import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
15
15
  import { NetworkingModuleKeyname } from "../networking.module.keyname";
16
- import { URL } from 'url';
16
+ import { UrlUtil } from "../utils/url.util";
17
17
  /**
18
18
  * The QueryParametersDecoratorResolver resolves the value (a map) of the query parameters of the request so that it can be injected it into the
19
19
  * parameter of the route of the controller that was annotated with the @queryParameters decorator.
@@ -33,7 +33,7 @@ let QueryParametersDecoratorResolver = class QueryParametersDecoratorResolver {
33
33
  */
34
34
  resolve(methodArgument, request, routeParameters, identity) {
35
35
  try {
36
- const url = new URL(request.url);
36
+ const url = UrlUtil.getUrlFromRequestWithDefaultHost(request);
37
37
  let queryParameters = undefined;
38
38
  for (const [key, value] of url.searchParams.entries()) {
39
39
  if (queryParameters === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"query-parameters-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameters-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAC,UAAU,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAoB,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAK1B;;;;GAIG;AAII,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAEzC,YAA4D,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAC3F,CAAC;IACD;;;;;;;OAOG;IACH,OAAO,CAAC,cAAiD,EACjD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,IAAI;YACA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,eAAe,GAAuC,SAAS,CAAC;YAEpE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;gBACnD,IAAG,eAAe,KAAK,SAAS,EAAE;oBAC9B,eAAe,GAAG,EAAE,CAAC;iBACxB;gBAED,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAChC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,CAAC,CAAC;SACnD;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mDAAmD,EAAE,EAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAC,CAAC,CAAA;YAChI,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAC/B;IACL,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAChH,CAAC;CACJ,CAAA;AA3CY,gCAAgC;IAH5C,YAAY,CAAC,uBAAuB,CAAC;IACrC,GAAG,CAAC,wBAAwB,CAAC,gCAAgC,CAAC;IAC9D,UAAU,EAAE;IAGI,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;;GAFjC,gCAAgC,CA2C5C;SA3CY,gCAAgC"}
1
+ {"version":3,"file":"query-parameters-decorator.resolver.js","sourceRoot":"","sources":["../../../../src/resolvers/query-parameters-decorator.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAC,UAAU,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAoB,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAKrE,OAAO,EAAC,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAE1C;;;;GAIG;AAII,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAEzC,YAA4D,UAA+B;QAA/B,eAAU,GAAV,UAAU,CAAqB;IAC3F,CAAC;IACD;;;;;;;OAOG;IACH,OAAO,CAAC,cAAiD,EACjD,OAAgB,EAChB,eAAwC,EACxC,QAA4B;QAChC,IAAI;YACA,MAAM,GAAG,GAAG,OAAO,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC;YAE9D,IAAI,eAAe,GAAuC,SAAS,CAAC;YAEpE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE;gBACnD,IAAG,eAAe,KAAK,SAAS,EAAE;oBAC9B,eAAe,GAAG,EAAE,CAAC;iBACxB;gBAED,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAChC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,CAAC,CAAC;SACnD;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mDAAmD,EAAE,EAAC,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAC,CAAC,CAAA;YAChI,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;SAC/B;IACL,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAA2C;QAChD,OAAO,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAChH,CAAC;CACJ,CAAA;AA3CY,gCAAgC;IAH5C,YAAY,CAAC,uBAAuB,CAAC;IACrC,GAAG,CAAC,wBAAwB,CAAC,gCAAgC,CAAC;IAC9D,UAAU,EAAE;IAGI,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;;GAFjC,gCAAgC,CA2C5C;SA3CY,gCAAgC"}
@@ -1,6 +1,3 @@
1
- /**
2
- * This class provides a bunch of utilities to deal with Urls.
3
- */
4
1
  export class UrlUtil {
5
2
  /**
6
3
  * This method receives a path parameter (e.g. /api/2.0/dogs/id/puppies) and returns an array where each url segment is split:
@@ -58,5 +55,12 @@ export class UrlUtil {
58
55
  static isPathACatchAll(path) {
59
56
  return path.startsWith("/*");
60
57
  }
58
+ static getUrlFromRequestWithDefaultHost(request) {
59
+ let host = request.host;
60
+ if (host === undefined) {
61
+ host = "https://default.com";
62
+ }
63
+ return new URL(request.url, host);
64
+ }
61
65
  }
62
66
  //# sourceMappingURL=url.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"url.util.js","sourceRoot":"","sources":["../../../../src/utils/url.util.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,OAAO;IAChB;;;;;;;;;OASG;IACI,MAAM,CAAC,SAAS,CAAC,IAAY;QAChC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,KAAK,GAAa,EAAE,CAAC;QAEzB,gHAAgH;QAChH,4FAA4F;QAC5F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAChB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;gBACzB,MAAM,GAAG,EAAE,CAAC;aACf;iBACI;gBACD,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;aACpB;SACJ;QAED,uEAAuE;QACvE,IAAG,MAAM,KAAK,EAAE,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;SAC5B;QAED,kFAAkF;QAClF,IAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;YAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC5C;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,IAAY;QAC5C,gFAAgF;QAChF,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC;SACf;QAED,oEAAoE;QACpE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACJ"}
1
+ {"version":3,"file":"url.util.js","sourceRoot":"","sources":["../../../../src/utils/url.util.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,OAAO;IAChB;;;;;;;;;OASG;IACI,MAAM,CAAC,SAAS,CAAC,IAAY;QAChC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,KAAK,GAAa,EAAE,CAAC;QAEzB,gHAAgH;QAChH,4FAA4F;QAC5F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,IAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAChB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;gBACzB,MAAM,GAAG,EAAE,CAAC;aACf;iBACI;gBACD,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;aACpB;SACJ;QAED,uEAAuE;QACvE,IAAG,MAAM,KAAK,EAAE,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;SAC5B;QAED,kFAAkF;QAClF,IAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;YAChC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC5C;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,IAAY;QAC5C,gFAAgF;QAChF,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC;SACf;QAED,oEAAoE;QACpE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,gCAAgC,CAAC,OAAgB;QAC3D,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACxB,IAAG,IAAI,KAAK,SAAS,EAAE;YACpB,IAAI,GAAG,qBAAqB,CAAC;SAC/B;QAED,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;CACJ"}
@@ -3,6 +3,7 @@ import { Request } from "@pristine-ts/common";
3
3
  import { IdentityInterface } from "@pristine-ts/common";
4
4
  import { ParameterDecoratorInterface } from "../interfaces/parameter-decorator.interface";
5
5
  import { QueryParameterDecoratorInterface } from "../interfaces/query-parameter-decorator.interface";
6
+ import { LogHandlerInterface } from "@pristine-ts/logging";
6
7
  /**
7
8
  * The QueryParameterDecoratorResolver resolves the value of the query parameter with the name passed to the decorator
8
9
  * of the request so that it can be injected it into the parameter of the route of the controller that was annotated
@@ -10,6 +11,8 @@ import { QueryParameterDecoratorInterface } from "../interfaces/query-parameter-
10
11
  * It is tagged as an MethodParameterDecoratorResolver so it can be automatically injected with the all the other MethodParameterDecoratorResolvers.
11
12
  */
12
13
  export declare class QueryParameterDecoratorResolver implements ControllerMethodParameterDecoratorResolverInterface {
14
+ private readonly logHandler;
15
+ constructor(logHandler: LogHandlerInterface);
13
16
  /**
14
17
  * Resolves the value of the query parameter with the specified name of the request.
15
18
  * The router than injects that value into the parameter of the controller method.
@@ -1,6 +1,8 @@
1
+ /// <reference types="node" />
1
2
  /**
2
3
  * This class provides a bunch of utilities to deal with Urls.
3
4
  */
5
+ import { Request } from "@pristine-ts/common";
4
6
  export declare class UrlUtil {
5
7
  /**
6
8
  * This method receives a path parameter (e.g. /api/2.0/dogs/id/puppies) and returns an array where each url segment is split:
@@ -23,4 +25,5 @@ export declare class UrlUtil {
23
25
  * @param path Must start with a '/'.
24
26
  */
25
27
  static isPathACatchAll(path: string): boolean;
28
+ static getUrlFromRequestWithDefaultHost(request: Request): URL;
26
29
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pristine-ts/networking",
3
- "version": "0.0.221",
3
+ "version": "0.0.224",
4
4
  "description": "",
5
5
  "module": "dist/lib/esm/networking.module.js",
6
6
  "main": "dist/lib/cjs/networking.module.js",
@@ -20,10 +20,10 @@
20
20
  "access": "public"
21
21
  },
22
22
  "dependencies": {
23
- "@pristine-ts/common": "^0.0.221",
24
- "@pristine-ts/core": "^0.0.221",
25
- "@pristine-ts/security": "^0.0.221",
26
- "@pristine-ts/telemetry": "^0.0.221",
23
+ "@pristine-ts/common": "^0.0.224",
24
+ "@pristine-ts/core": "^0.0.224",
25
+ "@pristine-ts/security": "^0.0.224",
26
+ "@pristine-ts/telemetry": "^0.0.224",
27
27
  "lodash": "^4.17.21"
28
28
  },
29
29
  "jest": {
@@ -60,5 +60,5 @@
60
60
  "src/*.{js,ts}"
61
61
  ]
62
62
  },
63
- "gitHead": "a5ce9f322920b04766accd5347477e9d08270a2e"
63
+ "gitHead": "7b7a162a0587f85bc772139e59182e5b588560b6"
64
64
  }