ismx-nexo-node-app 0.4.175 → 0.4.176

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.
@@ -15,6 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const Repository_1 = __importDefault(require("./Repository"));
16
16
  const QueryUtils_1 = __importDefault(require("./utils/QueryUtils"));
17
17
  const DateUtils_1 = __importDefault(require("../business/utils/DateUtils"));
18
+ const node_fetch_1 = __importDefault(require("node-fetch"));
18
19
  class RepositoryRest extends Repository_1.default {
19
20
  constructor(baseUrl, options = {}) {
20
21
  super();
@@ -24,7 +25,7 @@ class RepositoryRest extends Repository_1.default {
24
25
  }
25
26
  call() {
26
27
  return __awaiter(this, arguments, void 0, function* (method = 'GET', endpoint = '/', request = {}) {
27
- var _a, _b, _c, _d, _e, _f, _g;
28
+ var _a, _b, _c, _d, _e, _f, _g, _h;
28
29
  // Especifica el método de la llamada HTTP al recurso.
29
30
  request.method = method;
30
31
  request.endpoint = endpoint;
@@ -45,8 +46,10 @@ class RepositoryRest extends Repository_1.default {
45
46
  for (const [header, value] of Object.entries((_e = request.headers) !== null && _e !== void 0 ? _e : {}))
46
47
  headers.set(header, (_g = (_f = request.headers) === null || _f === void 0 ? void 0 : _f[header]) !== null && _g !== void 0 ? _g : "");
47
48
  // Realiza la llamada a la API con las cabeceras y la URL base de la llamada.
48
- let call = fetch(request.url + QueryUtils_1.default.map(request.query), Object.assign(Object.assign({}, request), { body: method !== "GET" ? body : undefined, headers }));
49
+ const _fetch = (_h = this.options.fetch) !== null && _h !== void 0 ? _h : node_fetch_1.default;
50
+ let call = _fetch(request.url + QueryUtils_1.default.map(request.query), Object.assign(Object.assign({}, request), { body: method !== "GET" ? body : undefined, headers: headers }));
49
51
  // Añade información adicional a la respuesta y devuelve el resultado (o el error en su caso).
52
+ // @ts-ignore
50
53
  return call.then((res) => __awaiter(this, void 0, void 0, function* () {
51
54
  var _a, _b, _c, _d, _e;
52
55
  let headers = {};
@@ -6,6 +6,7 @@ export interface RestOptions {
6
6
  onResponse?: (request: HttpRequest, response: HttpResponse) => void;
7
7
  onRawResponse?: (request: HttpRequest, response: string) => void;
8
8
  onError?: (request: HttpRequest, error: Error) => void;
9
+ fetch?: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
9
10
  }
10
11
  export default class RepositoryRest<Body = any, Res = any> extends Repository {
11
12
  private readonly baseUrl;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ismx-nexo-node-app",
3
- "version": "0.4.175",
3
+ "version": "0.4.176",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "build": "rm -rf ./dist && npx tsc",
@@ -2,6 +2,7 @@ import Repository from "./Repository";
2
2
  import {HttpRequest, HttpResponse} from "../api/Service";
3
3
  import QueryUtils from "./utils/QueryUtils";
4
4
  import DateUtils from "../business/utils/DateUtils";
5
+ import fetch from "node-fetch";
5
6
 
6
7
  export interface RestOptions {
7
8
  interceptor?: (endpoint: string, request: HttpRequest) => HttpRequest | undefined
@@ -9,14 +10,16 @@ export interface RestOptions {
9
10
  onResponse?: (request: HttpRequest, response: HttpResponse) => void;
10
11
  onRawResponse?: (request: HttpRequest, response: string) => void;
11
12
  onError?: (request: HttpRequest, error: Error) => void
13
+ fetch?: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>
12
14
  }
13
15
 
14
16
  export default class RepositoryRest<Body=any,Res=any> extends Repository
15
17
  {
16
18
  private readonly baseUrl: string;
19
+
17
20
  private readonly options: RestOptions
18
21
 
19
- constructor(baseUrl: string, options: RestOptions={}) {
22
+ constructor(baseUrl: string, options: RestOptions = {}) {
20
23
  super();
21
24
  this.baseUrl = baseUrl;
22
25
  this.options = options;
@@ -55,11 +58,13 @@ export default class RepositoryRest<Body=any,Res=any> extends Repository
55
58
  headers.set(header, request.headers?.[header] ?? "");
56
59
 
57
60
  // Realiza la llamada a la API con las cabeceras y la URL base de la llamada.
58
- let call = fetch(request.url + QueryUtils.map(request.query), {
59
- ...request, body: method !== "GET" ? body : undefined, headers
61
+ const _fetch = this.options.fetch ?? fetch;
62
+ let call = _fetch(request.url + QueryUtils.map(request.query), {
63
+ ...request, body: method !== "GET" ? body : undefined, headers: headers as unknown as Record<string, string>
60
64
  });
61
65
 
62
66
  // Añade información adicional a la respuesta y devuelve el resultado (o el error en su caso).
67
+ // @ts-ignore
63
68
  return call.then(async (res: Response) => {
64
69
  let headers: any = {}; res.headers.forEach((value, key) => headers[key.toLowerCase()] = value);
65
70
  let content: string | E = await res.text();