@iamnnort/request 1.11.5 → 1.11.7

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/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;// src/builder.ts
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/builder.ts
2
2
  var _qs = require('qs');
3
3
 
4
4
  // src/types.ts
@@ -32,6 +32,7 @@ var RequestBuilder = class {
32
32
  this.baseConfig = params.baseConfig;
33
33
  this.requestConfig = params.requestConfig;
34
34
  this.config = {
35
+ timeout: params.requestConfig.timeout || params.baseConfig.timeout,
35
36
  headers: {
36
37
  Accept: "application/json",
37
38
  "Content-Type": "application/json",
@@ -187,8 +188,10 @@ var MessageBuilder = class {
187
188
 
188
189
 
189
190
 
190
- constructor() {
191
+
192
+ constructor(config) {
191
193
  this.printQueue = [];
194
+ this.config = config;
192
195
  }
193
196
  setRequest(request) {
194
197
  this.request = request;
@@ -212,7 +215,15 @@ var MessageBuilder = class {
212
215
  if (url) {
213
216
  if (params) {
214
217
  delete params["0"];
215
- this.printQueue.push([url, _qs.stringify.call(void 0, params, { skipNulls: true })].filter((_) => _).join("?"));
218
+ this.printQueue.push(
219
+ [
220
+ url,
221
+ _qs.stringify.call(void 0, params, {
222
+ arrayFormat: _optionalChain([this, 'access', _29 => _29.config, 'access', _30 => _30.serializer, 'optionalAccess', _31 => _31.array]) || "brackets",
223
+ skipNulls: true
224
+ })
225
+ ].filter((_) => _).join("?")
226
+ );
216
227
  } else {
217
228
  this.printQueue.push(url);
218
229
  }
@@ -220,14 +231,14 @@ var MessageBuilder = class {
220
231
  return this;
221
232
  }
222
233
  makeMethodText() {
223
- const method = _optionalChain([this, 'access', _29 => _29.request, 'optionalAccess', _30 => _30.method]) || _optionalChain([this, 'access', _31 => _31.response, 'optionalAccess', _32 => _32.config, 'optionalAccess', _33 => _33.method]) || _optionalChain([this, 'access', _34 => _34.error, 'optionalAccess', _35 => _35.response, 'optionalAccess', _36 => _36.config, 'access', _37 => _37.method]);
234
+ const method = _optionalChain([this, 'access', _32 => _32.request, 'optionalAccess', _33 => _33.method]) || _optionalChain([this, 'access', _34 => _34.response, 'optionalAccess', _35 => _35.config, 'optionalAccess', _36 => _36.method]) || _optionalChain([this, 'access', _37 => _37.error, 'optionalAccess', _38 => _38.response, 'optionalAccess', _39 => _39.config, 'access', _40 => _40.method]);
224
235
  if (method) {
225
236
  this.printQueue.push(method.toUpperCase());
226
237
  }
227
238
  return this;
228
239
  }
229
240
  makeRequestData() {
230
- const data = _optionalChain([this, 'access', _38 => _38.request, 'optionalAccess', _39 => _39.data]) || _optionalChain([this, 'access', _40 => _40.response, 'optionalAccess', _41 => _41.config, 'optionalAccess', _42 => _42.data]) || _optionalChain([this, 'access', _43 => _43.error, 'optionalAccess', _44 => _44.response, 'optionalAccess', _45 => _45.config, 'access', _46 => _46.data]);
241
+ const data = _optionalChain([this, 'access', _41 => _41.request, 'optionalAccess', _42 => _42.data]) || _optionalChain([this, 'access', _43 => _43.response, 'optionalAccess', _44 => _44.config, 'optionalAccess', _45 => _45.data]) || _optionalChain([this, 'access', _46 => _46.error, 'optionalAccess', _47 => _47.response, 'optionalAccess', _48 => _48.config, 'access', _49 => _49.data]);
231
242
  if (data) {
232
243
  if (typeof data === "string") {
233
244
  this.printQueue.push(data);
@@ -241,7 +252,7 @@ var MessageBuilder = class {
241
252
  return this;
242
253
  }
243
254
  makeResponseDataText() {
244
- const data = _optionalChain([this, 'access', _47 => _47.response, 'optionalAccess', _48 => _48.data]) || _optionalChain([this, 'access', _49 => _49.error, 'optionalAccess', _50 => _50.response, 'optionalAccess', _51 => _51.data]);
255
+ const data = _optionalChain([this, 'access', _50 => _50.response, 'optionalAccess', _51 => _51.data]) || _optionalChain([this, 'access', _52 => _52.error, 'optionalAccess', _53 => _53.response, 'optionalAccess', _54 => _54.data]);
245
256
  if (data) {
246
257
  if (typeof data === "string") {
247
258
  this.printQueue.push(data);
@@ -255,10 +266,10 @@ var MessageBuilder = class {
255
266
  return this;
256
267
  }
257
268
  makeStatusText() {
258
- const status = _optionalChain([this, 'access', _52 => _52.response, 'optionalAccess', _53 => _53.status]) || _optionalChain([this, 'access', _54 => _54.error, 'optionalAccess', _55 => _55.response, 'optionalAccess', _56 => _56.status]);
269
+ const status = _optionalChain([this, 'access', _55 => _55.response, 'optionalAccess', _56 => _56.status]) || _optionalChain([this, 'access', _57 => _57.error, 'optionalAccess', _58 => _58.response, 'optionalAccess', _59 => _59.status]);
259
270
  if (status) {
260
271
  this.printQueue.push(`${status}`);
261
- const statusText = _optionalChain([this, 'access', _57 => _57.response, 'optionalAccess', _58 => _58.statusText]) || _optionalChain([this, 'access', _59 => _59.error, 'optionalAccess', _60 => _60.response, 'optionalAccess', _61 => _61.statusText]);
272
+ const statusText = _optionalChain([this, 'access', _60 => _60.response, 'optionalAccess', _61 => _61.statusText]) || _optionalChain([this, 'access', _62 => _62.error, 'optionalAccess', _63 => _63.response, 'optionalAccess', _64 => _64.statusText]);
262
273
  if (statusText) {
263
274
  this.printQueue.push(statusText);
264
275
  }
@@ -269,14 +280,14 @@ var MessageBuilder = class {
269
280
  return this.printQueue.join(" ");
270
281
  }
271
282
  makeMethod() {
272
- const method = _optionalChain([this, 'access', _62 => _62.request, 'optionalAccess', _63 => _63.method]) || _optionalChain([this, 'access', _64 => _64.response, 'optionalAccess', _65 => _65.config, 'optionalAccess', _66 => _66.method]) || _optionalChain([this, 'access', _67 => _67.error, 'optionalAccess', _68 => _68.response, 'optionalAccess', _69 => _69.config, 'access', _70 => _70.method]);
283
+ const method = _optionalChain([this, 'access', _65 => _65.request, 'optionalAccess', _66 => _66.method]) || _optionalChain([this, 'access', _67 => _67.response, 'optionalAccess', _68 => _68.config, 'optionalAccess', _69 => _69.method]) || _optionalChain([this, 'access', _70 => _70.error, 'optionalAccess', _71 => _71.response, 'optionalAccess', _72 => _72.config, 'access', _73 => _73.method]);
273
284
  if (!method) {
274
285
  return "get" /* GET */;
275
286
  }
276
287
  return method.toLowerCase();
277
288
  }
278
289
  makeResponseData() {
279
- const data = _optionalChain([this, 'access', _71 => _71.response, 'optionalAccess', _72 => _72.data]) || _optionalChain([this, 'access', _73 => _73.error, 'optionalAccess', _74 => _74.response, 'optionalAccess', _75 => _75.data]);
290
+ const data = _optionalChain([this, 'access', _74 => _74.response, 'optionalAccess', _75 => _75.data]) || _optionalChain([this, 'access', _76 => _76.error, 'optionalAccess', _77 => _77.response, 'optionalAccess', _78 => _78.data]);
280
291
  if (!data) {
281
292
  return "";
282
293
  }
@@ -286,7 +297,7 @@ var MessageBuilder = class {
286
297
  return JSON.stringify(data);
287
298
  }
288
299
  makeStatus() {
289
- const status = _optionalChain([this, 'access', _76 => _76.response, 'optionalAccess', _77 => _77.status]) || _optionalChain([this, 'access', _78 => _78.error, 'optionalAccess', _79 => _79.response, 'optionalAccess', _80 => _80.status]);
300
+ const status = _optionalChain([this, 'access', _79 => _79.response, 'optionalAccess', _80 => _80.status]) || _optionalChain([this, 'access', _81 => _81.error, 'optionalAccess', _82 => _82.response, 'optionalAccess', _83 => _83.status]);
290
301
  if (!status) {
291
302
  return 500 /* INTERNAL_SERVER_ERROR */;
292
303
  }
@@ -303,44 +314,44 @@ var MessageBuilder = class {
303
314
  };
304
315
 
305
316
  // src/logger/service.ts
306
- var LoggerService = (_class = class {
307
- __init() {this.context = ""}
308
- constructor(context = "") {;_class.prototype.__init.call(this);
309
- this.context = context;
317
+ var LoggerService = class {
318
+
319
+ constructor(config) {
320
+ this.config = config;
310
321
  }
311
322
  log(message, context) {
312
- const ctx = context || this.context || "";
323
+ const ctx = context || this.config.name || "";
313
324
  if (ctx) {
314
325
  return console.log(`[${ctx}] ${message}`);
315
326
  }
316
327
  return console.log(message);
317
328
  }
318
329
  logRequest(request) {
319
- const loggerMessageBuilder = new MessageBuilder();
330
+ const loggerMessageBuilder = new MessageBuilder(this.config);
320
331
  const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethodText().makeUrl().makeRequestData().build();
321
332
  return this.log(message);
322
333
  }
323
334
  logResponse(response) {
324
- const loggerMessageBuilder = new MessageBuilder();
335
+ const loggerMessageBuilder = new MessageBuilder(this.config);
325
336
  const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
326
337
  return this.log(message);
327
338
  }
328
339
  logRequestError(error) {
329
- const loggerMessageBuilder = new MessageBuilder();
340
+ const loggerMessageBuilder = new MessageBuilder(this.config);
330
341
  const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
331
342
  return this.log(message);
332
343
  }
333
344
  makeResponse(response) {
334
- const loggerMessageBuilder = new MessageBuilder();
345
+ const loggerMessageBuilder = new MessageBuilder(this.config);
335
346
  const responseData = loggerMessageBuilder.setResponse(response).makeResponse();
336
347
  return responseData;
337
348
  }
338
349
  makeErrorResponse(error) {
339
- const loggerMessageBuilder = new MessageBuilder();
350
+ const loggerMessageBuilder = new MessageBuilder(this.config);
340
351
  const errorResponseData = loggerMessageBuilder.setError(error).makeResponse();
341
352
  return errorResponseData;
342
353
  }
343
- }, _class);
354
+ };
344
355
 
345
356
  // src/data-source.ts
346
357
  var RequestDataSource = class {
@@ -349,7 +360,7 @@ var RequestDataSource = class {
349
360
  this.baseRequestConfig = baseRequestConfig;
350
361
  }
351
362
  common(requestConfig, responseConfig = {}) {
352
- const loggerService = new LoggerService(this.baseRequestConfig.name);
363
+ const loggerService = new LoggerService(this.baseRequestConfig);
353
364
  const requestBuilder = new RequestBuilder({
354
365
  baseConfig: this.baseRequestConfig,
355
366
  requestConfig
@@ -376,7 +387,7 @@ var RequestDataSource = class {
376
387
  if (responseConfig.raw) {
377
388
  return loggerService.makeErrorResponse(error);
378
389
  }
379
- throw _optionalChain([error, 'access', _81 => _81.response, 'optionalAccess', _82 => _82.data]) || error.response || new Error(error.message);
390
+ throw _optionalChain([error, 'access', _84 => _84.response, 'optionalAccess', _85 => _85.data]) || error.response || new Error(error.message);
380
391
  });
381
392
  }
382
393
  async *bulkCommon(requestConfig, responseConfig = {}) {
@@ -405,7 +416,7 @@ var RequestDataSource = class {
405
416
  }
406
417
  });
407
418
  pagination = response.pagination;
408
- if (!_optionalChain([response, 'access', _83 => _83.data, 'optionalAccess', _84 => _84.length])) {
419
+ if (!_optionalChain([response, 'access', _86 => _86.data, 'optionalAccess', _87 => _87.length])) {
409
420
  return;
410
421
  }
411
422
  yield response.data;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/request/request/dist/index.js","../src/builder.ts","../src/types.ts","../src/data-source.ts","../src/logger/builder.ts","../src/logger/service.ts","../src/helper.ts"],"names":["HttpMethods","HttpStatuses"],"mappings":"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","file":"/home/runner/work/request/request/dist/index.js","sourcesContent":[null,"import { AxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\nimport { BaseRequestConfig, HttpMethods, RequestConfig } from './types';\n\nexport class RequestBuilder {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n config: AxiosRequestConfig;\n\n constructor(params: { baseConfig: BaseRequestConfig; requestConfig: RequestConfig }) {\n this.baseConfig = params.baseConfig;\n this.requestConfig = params.requestConfig;\n this.config = {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...params.baseConfig.headers,\n ...params.requestConfig.headers,\n },\n };\n }\n\n makeContentType() {\n if (this.requestConfig.multipart) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'multipart/form-data',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.xml) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'text/xml',\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeAuth() {\n const auth = this.requestConfig.auth || this.baseConfig.auth;\n\n if (auth) {\n this.config = {\n ...this.config,\n auth,\n };\n\n return this;\n }\n\n const bearerToken = this.requestConfig.bearerToken || this.baseConfig.bearerToken;\n\n if (bearerToken) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n Authorization: `Bearer ${bearerToken}`,\n },\n };\n\n return this;\n }\n\n const apiKey = this.requestConfig.apiKey || this.baseConfig.apiKey;\n\n if (apiKey) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'x-api-key': apiKey,\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeUrl() {\n const baseUrlMap = this.requestConfig.baseUrlMap || this.baseConfig.baseUrlMap;\n const baseUrlName = this.requestConfig.baseUrlName || this.baseConfig.baseUrlName;\n\n const urlParts = [\n baseUrlMap && baseUrlName ? baseUrlMap[baseUrlName] : this.baseConfig.baseUrl,\n this.baseConfig.url,\n ...(this.baseConfig.urlParts || []),\n this.requestConfig.baseUrl,\n this.requestConfig.url,\n ...(this.requestConfig.urlParts || []),\n ].map((urlPart) => urlPart?.toString());\n\n const isSecureProtocol = urlParts.some((urlPart) => urlPart?.includes('https'));\n const protocol = isSecureProtocol ? 'https' : 'http';\n\n const actualUrlParts = urlParts\n .filter((urlPart) => urlPart)\n .map((urlPart) => {\n return urlPart?.replace(/^(https?:\\/\\/|\\/)?(.*?)(\\/?)$/, '$2');\n });\n\n const url = `${protocol}://${actualUrlParts.join('/')}`;\n\n this.config = {\n ...this.config,\n url,\n };\n\n return this;\n }\n\n makeMethod() {\n this.config = {\n ...this.config,\n method: this.requestConfig.method,\n };\n\n return this;\n }\n\n makeData() {\n if (this.requestConfig.method === HttpMethods.GET) {\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n data: stringify(this.requestConfig.data),\n };\n\n return this;\n }\n\n this.config = {\n ...this.config,\n data: this.requestConfig.data,\n };\n\n return this;\n }\n\n makeParams() {\n this.config = {\n ...this.config,\n params: this.requestConfig.params,\n };\n\n return this;\n }\n\n makeSerializer() {\n this.config = {\n ...this.config,\n paramsSerializer: (params: any) => {\n return stringify(params, {\n arrayFormat: this.baseConfig.serializer?.array || 'brackets',\n skipNulls: true,\n });\n },\n };\n\n return this;\n }\n\n build() {\n return this.config;\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport type RequestParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfigParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfig = Omit<AxiosRequestConfig, 'baseURL' | 'url'> & {\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n apiKey?: string;\n urlencoded?: boolean;\n multipart?: boolean;\n xml?: boolean;\n};\n\nexport type BaseRequestConfig = Pick<AxiosRequestConfig, 'auth' | 'headers' | 'timeout'> & {\n name?: string;\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n apiKey?: string;\n debug?: boolean;\n logger?: boolean;\n serializer?: {\n array?: 'indices' | 'brackets' | 'repeat' | 'comma';\n };\n};\n\nexport type ResponseConfig = {\n raw?: boolean;\n bulkCallback?: (page: number) => Promise<void>;\n};\n\nexport type Response<T = unknown> = {\n success: boolean;\n data?: T;\n errorCode?: string;\n};\n\nexport type RawResponse<T = unknown> = {\n success: boolean;\n status: HttpStatuses;\n method: HttpMethods;\n data: T;\n};\n\nexport enum HttpMethods {\n GET = 'get',\n POST = 'post',\n PUT = 'put',\n DELETE = 'delete',\n}\n\nexport enum HttpStatuses {\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NO_CONTENT = 204,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n CONFLICT = 409,\n INTERNAL_SERVER_ERROR = 500,\n}\n\nexport type PaginationDto = {\n pagination?: boolean | null;\n page?: number | null;\n pageSize?: number | null;\n bulkSize?: number | null;\n};\n\nexport type Pagination = {\n total: number;\n currentPage: number;\n lastPage: number;\n from: number;\n to: number;\n pageSize: number;\n};\n\nexport type PaginationResponse<T = unknown> = {\n data: T[];\n pagination: Pagination;\n};\n","import axios, { AxiosError, AxiosResponse } from 'axios';\nimport { RequestBuilder } from './builder';\nimport {\n BaseRequestConfig,\n HttpMethods,\n RequestConfig,\n RequestConfigParams,\n ResponseConfig,\n RawResponse,\n PaginationResponse,\n} from './types';\nimport { LoggerService } from './logger';\n\nexport class RequestDataSource<\n Entity extends Record<string, any> = any,\n SearchParams extends RequestConfigParams = any,\n SearchResponse extends Record<string, any> = any,\n CreateParams extends RequestConfigParams = any,\n UpdateParams extends RequestConfigParams = any,\n> {\n baseRequestConfig: BaseRequestConfig;\n\n constructor(baseRequestConfig: BaseRequestConfig) {\n this.baseRequestConfig = baseRequestConfig;\n }\n\n common<T>(requestConfig: RequestConfig): Promise<T>;\n\n common<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig): Promise<RawResponse<T>>;\n\n common<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig = {}) {\n const loggerService = new LoggerService(this.baseRequestConfig.name);\n\n const requestBuilder = new RequestBuilder({\n baseConfig: this.baseRequestConfig,\n requestConfig,\n });\n\n const request = requestBuilder\n .makeContentType()\n .makeAuth()\n .makeUrl()\n .makeMethod()\n .makeParams()\n .makeData()\n .makeSerializer()\n .build();\n\n if (this.baseRequestConfig.logger) {\n loggerService.logRequest(request as any);\n }\n\n return axios\n .request(request)\n .then((response: AxiosResponse<T>) => {\n if (this.baseRequestConfig.logger) {\n loggerService.logResponse(response as any);\n }\n\n if (responseConfig.raw) {\n return loggerService.makeResponse<T>(response as any);\n }\n\n return response.data;\n })\n .catch((error: AxiosError) => {\n if (this.baseRequestConfig.debug) {\n console.log('Error:', error);\n }\n\n if (this.baseRequestConfig.logger) {\n loggerService.logRequestError(error as any);\n }\n\n if (responseConfig.raw) {\n return loggerService.makeErrorResponse<T>(error as any);\n }\n\n throw error.response?.data || error.response || new Error(error.message);\n });\n }\n\n async *bulkCommon<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig = {}): AsyncGenerator<T[]> {\n const { params } = requestConfig;\n const { bulkCallback } = responseConfig;\n const { page, pageSize, bulkSize, ...searchDto } = params || {};\n\n const paginationDto = {\n page: page || 1,\n pageSize: pageSize || 30,\n };\n\n const maxPage = bulkSize ? paginationDto.page - 1 + bulkSize : null;\n\n let pagination = {\n total: 0,\n currentPage: 0,\n lastPage: 0,\n from: 0,\n to: 0,\n pageSize: 0,\n };\n\n do {\n const response = await this.common<PaginationResponse<T>>({\n ...requestConfig,\n params: {\n ...paginationDto,\n ...searchDto,\n },\n });\n\n pagination = response.pagination;\n\n if (!response.data?.length) {\n return;\n }\n\n yield response.data;\n\n paginationDto.page += 1;\n } while (pagination.currentPage !== pagination.lastPage && pagination.currentPage !== maxPage);\n\n if (pagination.currentPage !== pagination.lastPage) {\n if (bulkCallback) {\n await bulkCallback(paginationDto.page);\n }\n }\n }\n\n search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n bulkSearch(config: SearchParams = {} as SearchParams) {\n return this.bulkCommon<Entity>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n get(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.GET,\n url: id,\n });\n }\n\n create(config: CreateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.POST,\n });\n }\n\n bulkCreate(config: Omit<CreateParams, 'data'> & { data: CreateParams['data'][] }) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.POST,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n update(id: number | string, config: UpdateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.PUT,\n url: id,\n });\n }\n\n bulkUpdate(config: Omit<UpdateParams, 'data'> & { data: UpdateParams['data'][] }) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.PUT,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n remove(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<void>({\n ...config,\n method: HttpMethods.DELETE,\n url: id,\n });\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\nimport { HttpMethods, HttpStatuses } from '../types';\n\nexport class MessageBuilder {\n private printQueue: string[];\n\n private request!: InternalAxiosRequestConfig;\n private response!: AxiosResponse;\n private error!: AxiosError;\n\n constructor() {\n this.printQueue = [];\n }\n\n setRequest(request: InternalAxiosRequestConfig) {\n this.request = request;\n\n return this;\n }\n\n setResponse(response: AxiosResponse) {\n this.response = response;\n\n return this;\n }\n\n setError(error: AxiosError) {\n this.error = error;\n\n return this;\n }\n\n makeType(type: string) {\n this.printQueue.push(`[${type}]`);\n\n return this;\n }\n\n makeUrl() {\n const url = this.request?.url || this.response?.config?.url || this.error?.response?.config.url;\n\n const params = this.request?.params || this.response?.config?.params || this.error?.response?.config.params;\n\n if (url) {\n if (params) {\n delete params['0'];\n this.printQueue.push([url, stringify(params, { skipNulls: true })].filter((_) => _).join('?'));\n } else {\n this.printQueue.push(url);\n }\n }\n\n return this;\n }\n\n makeMethodText() {\n const method = this.request?.method || this.response?.config?.method || this.error?.response?.config.method;\n\n if (method) {\n this.printQueue.push(method.toUpperCase());\n }\n\n return this;\n }\n\n makeRequestData() {\n const data = this.request?.data || this.response?.config?.data || this.error?.response?.config.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeResponseDataText() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeStatusText() {\n const status = this.response?.status || this.error?.response?.status;\n\n if (status) {\n this.printQueue.push(`${status}`);\n\n const statusText = this.response?.statusText || this.error?.response?.statusText;\n\n if (statusText) {\n this.printQueue.push(statusText);\n }\n }\n\n return this;\n }\n\n build() {\n return this.printQueue.join(' ');\n }\n\n makeMethod() {\n const method = this.request?.method || this.response?.config?.method || this.error?.response?.config.method;\n\n if (!method) {\n return HttpMethods.GET;\n }\n\n return method.toLowerCase() as HttpMethods;\n }\n\n makeResponseData() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n }\n\n makeStatus() {\n const status = this.response?.status || this.error?.response?.status;\n\n if (!status) {\n return HttpStatuses.INTERNAL_SERVER_ERROR;\n }\n\n return status as HttpStatuses;\n }\n\n makeResponse<T>() {\n return {\n success: this.error === undefined,\n status: this.makeStatus(),\n method: this.makeMethod(),\n data: this.makeResponseData() as T,\n };\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { MessageBuilder } from './builder';\n\nexport class LoggerService {\n context: string = '';\n\n constructor(context: string = '') {\n this.context = context;\n }\n\n log(message: string, context?: string) {\n const ctx = context || this.context || '';\n\n if (ctx) {\n return console.log(`[${ctx}] ${message}`);\n }\n\n return console.log(message);\n }\n\n logRequest(request: InternalAxiosRequestConfig) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setRequest(request)\n .makeType('Request')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .build();\n\n return this.log(message);\n }\n\n logResponse(response: AxiosResponse) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setResponse(response)\n .makeType('Response')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .makeStatusText()\n .makeResponseDataText()\n .build();\n\n return this.log(message);\n }\n\n logRequestError(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setError(error)\n .makeType('Error')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .makeStatusText()\n .makeResponseDataText()\n .build();\n\n return this.log(message);\n }\n\n makeResponse<T>(response: AxiosResponse) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const responseData = loggerMessageBuilder.setResponse(response).makeResponse<T>();\n\n return responseData;\n }\n\n makeErrorResponse<T>(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const errorResponseData = loggerMessageBuilder.setError(error).makeResponse<T>();\n\n return errorResponseData;\n }\n}\n","export class RequestHelper {\n static sleep(seconds: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, seconds * 1000);\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/request/request/dist/index.js","../src/builder.ts","../src/types.ts","../src/data-source.ts","../src/logger/builder.ts","../src/logger/service.ts","../src/helper.ts"],"names":["HttpMethods","HttpStatuses"],"mappings":"AAAA;ACCA,wBAA0B;ADC1B;AACA;AEkDO,IAAK,YAAA,kBAAL,CAAA,CAAKA,YAAAA,EAAAA,GAAL;AACL,EAAAA,YAAAA,CAAA,KAAA,EAAA,EAAM,KAAA;AACN,EAAAA,YAAAA,CAAA,MAAA,EAAA,EAAO,MAAA;AACP,EAAAA,YAAAA,CAAA,KAAA,EAAA,EAAM,KAAA;AACN,EAAAA,YAAAA,CAAA,QAAA,EAAA,EAAS,QAAA;AAJC,EAAA,OAAAA,YAAAA;AAAA,CAAA,CAAA,CAAA,YAAA,GAAA,CAAA,CAAA,CAAA;AAOL,IAAK,aAAA,kBAAL,CAAA,CAAKC,aAAAA,EAAAA,GAAL;AACL,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,IAAA,EAAA,EAAK,GAAA,EAAA,EAAL,IAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,SAAA,EAAA,EAAU,GAAA,EAAA,EAAV,SAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,UAAA,EAAA,EAAW,GAAA,EAAA,EAAX,UAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,YAAA,EAAA,EAAa,GAAA,EAAA,EAAb,YAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,aAAA,EAAA,EAAc,GAAA,EAAA,EAAd,aAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,cAAA,EAAA,EAAe,GAAA,EAAA,EAAf,cAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,WAAA,EAAA,EAAY,GAAA,EAAA,EAAZ,WAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,WAAA,EAAA,EAAY,GAAA,EAAA,EAAZ,WAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,UAAA,EAAA,EAAW,GAAA,EAAA,EAAX,UAAA;AACA,EAAAA,aAAAA,CAAAA,aAAAA,CAAA,uBAAA,EAAA,EAAwB,GAAA,EAAA,EAAxB,uBAAA;AAVU,EAAA,OAAAA,aAAAA;AAAA,CAAA,CAAA,CAAA,aAAA,GAAA,CAAA,CAAA,CAAA;AFpCZ;AACA;ACpBO,IAAM,eAAA,EAAN,MAAqB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EAEA,WAAA,CAAY,MAAA,EAAyE;AACnF,IAAA,IAAA,CAAK,WAAA,EAAa,MAAA,CAAO,UAAA;AACzB,IAAA,IAAA,CAAK,cAAA,EAAgB,MAAA,CAAO,aAAA;AAC5B,IAAA,IAAA,CAAK,OAAA,EAAS;AAAA,MACZ,OAAA,EAAS,MAAA,CAAO,aAAA,CAAc,QAAA,GAAW,MAAA,CAAO,UAAA,CAAW,OAAA;AAAA,MAC3D,OAAA,EAAS;AAAA,QACP,MAAA,EAAQ,kBAAA;AAAA,QACR,cAAA,EAAgB,kBAAA;AAAA,QAChB,GAAG,MAAA,CAAO,UAAA,CAAW,OAAA;AAAA,QACrB,GAAG,MAAA,CAAO,aAAA,CAAc;AAAA,MAC1B;AAAA,IACF,CAAA;AAAA,EACF;AAAA,EAEA,eAAA,CAAA,EAAkB;AAChB,IAAA,GAAA,CAAI,IAAA,CAAK,aAAA,CAAc,SAAA,EAAW;AAChC,MAAA,IAAA,CAAK,OAAA,EAAS;AAAA,QACZ,GAAG,IAAA,CAAK,MAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACP,GAAG,IAAA,CAAK,MAAA,CAAO,OAAA;AAAA,UACf,cAAA,EAAgB;AAAA,QAClB;AAAA,MACF,CAAA;AAEA,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,GAAA,CAAI,IAAA,CAAK,aAAA,CAAc,UAAA,EAAY;AACjC,MAAA,IAAA,CAAK,OAAA,EAAS;AAAA,QACZ,GAAG,IAAA,CAAK,MAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACP,GAAG,IAAA,CAAK,MAAA,CAAO,OAAA;AAAA,UACf,cAAA,EAAgB;AAAA,QAClB;AAAA,MACF,CAAA;AAEA,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,GAAA,CAAI,IAAA,CAAK,aAAA,CAAc,GAAA,EAAK;AAC1B,MAAA,IAAA,CAAK,OAAA,EAAS;AAAA,QACZ,GAAG,IAAA,CAAK,MAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACP,GAAG,IAAA,CAAK,MAAA,CAAO,OAAA;AAAA,UACf,cAAA,EAAgB;AAAA,QAClB;AAAA,MACF,CAAA;AAEA,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEA,QAAA,CAAA,EAAW;AACT,IAAA,MAAM,KAAA,EAAO,IAAA,CAAK,aAAA,CAAc,KAAA,GAAQ,IAAA,CAAK,UAAA,CAAW,IAAA;AAExD,IAAA,GAAA,CAAI,IAAA,EAAM;AACR,MAAA,IAAA,CAAK,OAAA,EAAS;AAAA,QACZ,GAAG,IAAA,CAAK,MAAA;AAAA,QACR;AAAA,MACF,CAAA;AAEA,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,MAAM,YAAA,EAAc,IAAA,CAAK,aAAA,CAAc,YAAA,GAAe,IAAA,CAAK,UAAA,CAAW,WAAA;AAEtE,IAAA,GAAA,CAAI,WAAA,EAAa;AACf,MAAA,IAAA,CAAK,OAAA,EAAS;AAAA,QACZ,GAAG,IAAA,CAAK,MAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACP,GAAG,IAAA,CAAK,MAAA,CAAO,OAAA;AAAA,UACf,aAAA,EAAe,CAAA,OAAA,EAAU,WAAW,CAAA;AAAA,QAAA;AACtC,MAAA;AAGF,MAAA;AAAO,IAAA;AAGT,IAAA;AAEA,IAAA;AACE,MAAA;AAAc,QAAA;AACJ,QAAA;AACC,UAAA;AACQ,UAAA;AACF,QAAA;AACf,MAAA;AAGF,MAAA;AAAO,IAAA;AAGT,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AACA,IAAA;AAEA,IAAA;AAAiB,MAAA;AACuD,MAAA;AACtD,MAAA;AACiB,MAAA;AACd,MAAA;AACA,MAAA;AACiB,IAAA;AAGtC,IAAA;AACA,IAAA;AAEA,IAAA;AAGI,MAAA;AAA6D,IAAA;AAGjE,IAAA;AAEA,IAAA;AAAc,MAAA;AACJ,MAAA;AACR,IAAA;AAGF,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAAc,MAAA;AACJ,MAAA;AACmB,IAAA;AAG7B,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AACE,MAAA;AAAO,IAAA;AAGT,IAAA;AACE,MAAA;AAAc,QAAA;AACJ,QAAA;AAC+B,MAAA;AAGzC,MAAA;AAAO,IAAA;AAGT,IAAA;AAAc,MAAA;AACJ,MAAA;AACiB,IAAA;AAG3B,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAAc,MAAA;AACJ,MAAA;AACmB,IAAA;AAG7B,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAAc,MAAA;AACJ,MAAA;AAEN,QAAA;AAAyB,UAAA;AAC2B,UAAA;AACvC,QAAA;AACZ,MAAA;AACH,IAAA;AAGF,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAAY,EAAA;AAEhB;ADjBA;AACA;AGpLA;AHsLA;AACA;AItLA;AAGO;AAAqB,EAAA;AAClB,EAAA;AAEA,EAAA;AACA,EAAA;AACA,EAAA;AAEA,EAAA;AAGN,IAAA;AACA,IAAA;AAAc,EAAA;AAChB,EAAA;AAGE,IAAA;AAEA,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAEA,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAEA,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAEA,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAEA,IAAA;AAEA,IAAA;AACE,MAAA;AACE,QAAA;AACA,QAAA;AAAgB,UAAA;AACd,YAAA;AACE,YAAA;AACkB,cAAA;AAC8B,cAAA;AACnC,YAAA;AACZ,UAAA;AAGQ,QAAA;AACb,MAAA;AAEA,QAAA;AAAwB,MAAA;AAC1B,IAAA;AAGF,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAEA,IAAA;AACE,MAAA;AAAyC,IAAA;AAG3C,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAEA,IAAA;AACE,MAAA;AACE,QAAA;AAEA,QAAA;AAAO,MAAA;AAGT,MAAA;AACE,QAAA;AAEA,QAAA;AAAO,MAAA;AACT,IAAA;AAGF,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAEA,IAAA;AACE,MAAA;AACE,QAAA;AAEA,QAAA;AAAO,MAAA;AAGT,MAAA;AACE,QAAA;AAEA,QAAA;AAAO,MAAA;AACT,IAAA;AAGF,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAEA,IAAA;AACE,MAAA;AAEA,MAAA;AAEA,MAAA;AACE,QAAA;AAA+B,MAAA;AACjC,IAAA;AAGF,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAA+B,EAAA;AACjC,EAAA;AAGE,IAAA;AAEA,IAAA;AACE,MAAA;AAAA,IAAA;AAGF,IAAA;AAA0B,EAAA;AAC5B,EAAA;AAGE,IAAA;AAEA,IAAA;AACE,MAAA;AAAO,IAAA;AAGT,IAAA;AACE,MAAA;AAAO,IAAA;AAGT,IAAA;AAA0B,EAAA;AAC5B,EAAA;AAGE,IAAA;AAEA,IAAA;AACE,MAAA;AAAA,IAAA;AAGF,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAAO,MAAA;AACmB,MAAA;AACA,MAAA;AACA,MAAA;AACI,IAAA;AAC9B,EAAA;AAEJ;AJqIA;AACA;AKvTO;AAAoB,EAAA;AACjB,EAAA;AAGN,IAAA;AAAc,EAAA;AAChB,EAAA;AAGE,IAAA;AAEA,IAAA;AACE,MAAA;AAAwC,IAAA;AAG1C,IAAA;AAA0B,EAAA;AAC5B,EAAA;AAGE,IAAA;AAEA,IAAA;AAQA,IAAA;AAAuB,EAAA;AACzB,EAAA;AAGE,IAAA;AAEA,IAAA;AAUA,IAAA;AAAuB,EAAA;AACzB,EAAA;AAGE,IAAA;AAEA,IAAA;AAUA,IAAA;AAAuB,EAAA;AACzB,EAAA;AAGE,IAAA;AAEA,IAAA;AAEA,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAEA,IAAA;AAEA,IAAA;AAAO,EAAA;AAEX;ALgRA;AACA;AGtVO;AAML,EAAA;AACA,EAAA;AAGE,IAAA;AAAyB,EAAA;AAC3B,EAAA;AAOE,IAAA;AAEA,IAAA;AAA0C,MAAA;AACvB,MAAA;AACjB,IAAA;AAGF,IAAA;AAUA,IAAA;AACE,MAAA;AAAuC,IAAA;AAGzC,IAAA;AAGI,MAAA;AACE,QAAA;AAAyC,MAAA;AAG3C,MAAA;AACE,QAAA;AAAoD,MAAA;AAGtD,MAAA;AAAgB,IAAA;AAGhB,MAAA;AACE,QAAA;AAA2B,MAAA;AAG7B,MAAA;AACE,QAAA;AAA0C,MAAA;AAG5C,MAAA;AACE,QAAA;AAAsD,MAAA;AAGxD,MAAA;AAAuE,IAAA;AACxE,EAAA;AACL,EAAA;AAGE,IAAA;AACA,IAAA;AACA,IAAA;AAEA,IAAA;AAAsB,MAAA;AACN,MAAA;AACQ,IAAA;AAGxB,IAAA;AAEA,IAAA;AAAiB,MAAA;AACR,MAAA;AACM,MAAA;AACH,MAAA;AACJ,MAAA;AACF,MAAA;AACM,IAAA;AAGZ,IAAA;AACE,MAAA;AAA0D,QAAA;AACrD,QAAA;AACK,UAAA;AACH,UAAA;AACA,QAAA;AACL,MAAA;AAGF,MAAA;AAEA,MAAA;AACE,QAAA;AAAA,MAAA;AAGF,MAAA;AAEA,MAAA;AAAsB,IAAA;AAGxB,IAAA;AACE,MAAA;AACE,QAAA;AAAqC,MAAA;AACvC,IAAA;AACF,EAAA;AACF,EAAA;AAGE,IAAA;AAAmC,MAAA;AAC9B,MAAA;AACH,IAAA;AACD,EAAA;AACH,EAAA;AAGE,IAAA;AAA+B,MAAA;AAC1B,MAAA;AACH,IAAA;AACD,EAAA;AACH,EAAA;AAGE,IAAA;AAA2B,MAAA;AACtB,MAAA;AACH,MAAA;AACK,IAAA;AACN,EAAA;AACH,EAAA;AAGE,IAAA;AAA2B,MAAA;AACtB,MAAA;AACH,IAAA;AACD,EAAA;AACH,EAAA;AAGE,IAAA;AAA6B,MAAA;AACxB,MAAA;AACH,MAAA;AACK,MAAA;AACC,QAAA;AACS,MAAA;AACf,IAAA;AACD,EAAA;AACH,EAAA;AAGE,IAAA;AAA2B,MAAA;AACtB,MAAA;AACH,MAAA;AACK,IAAA;AACN,EAAA;AACH,EAAA;AAGE,IAAA;AAA6B,MAAA;AACxB,MAAA;AACH,MAAA;AACK,MAAA;AACC,QAAA;AACS,MAAA;AACf,IAAA;AACD,EAAA;AACH,EAAA;AAGE,IAAA;AAAyB,MAAA;AACpB,MAAA;AACH,MAAA;AACK,IAAA;AACN,EAAA;AAEL;AHsSA;AACA;AM3eO;AAAoB,EAAA;AAEvB,IAAA;AACE,MAAA;AAAkC,IAAA;AACnC,EAAA;AAEL;AN6eA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/request/request/dist/index.js","sourcesContent":[null,"import { AxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\nimport { BaseRequestConfig, HttpMethods, RequestConfig } from './types';\n\nexport class RequestBuilder {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n config: AxiosRequestConfig;\n\n constructor(params: { baseConfig: BaseRequestConfig; requestConfig: RequestConfig }) {\n this.baseConfig = params.baseConfig;\n this.requestConfig = params.requestConfig;\n this.config = {\n timeout: params.requestConfig.timeout || params.baseConfig.timeout,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...params.baseConfig.headers,\n ...params.requestConfig.headers,\n },\n };\n }\n\n makeContentType() {\n if (this.requestConfig.multipart) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'multipart/form-data',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.xml) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'text/xml',\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeAuth() {\n const auth = this.requestConfig.auth || this.baseConfig.auth;\n\n if (auth) {\n this.config = {\n ...this.config,\n auth,\n };\n\n return this;\n }\n\n const bearerToken = this.requestConfig.bearerToken || this.baseConfig.bearerToken;\n\n if (bearerToken) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n Authorization: `Bearer ${bearerToken}`,\n },\n };\n\n return this;\n }\n\n const apiKey = this.requestConfig.apiKey || this.baseConfig.apiKey;\n\n if (apiKey) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'x-api-key': apiKey,\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeUrl() {\n const baseUrlMap = this.requestConfig.baseUrlMap || this.baseConfig.baseUrlMap;\n const baseUrlName = this.requestConfig.baseUrlName || this.baseConfig.baseUrlName;\n\n const urlParts = [\n baseUrlMap && baseUrlName ? baseUrlMap[baseUrlName] : this.baseConfig.baseUrl,\n this.baseConfig.url,\n ...(this.baseConfig.urlParts || []),\n this.requestConfig.baseUrl,\n this.requestConfig.url,\n ...(this.requestConfig.urlParts || []),\n ].map((urlPart) => urlPart?.toString());\n\n const isSecureProtocol = urlParts.some((urlPart) => urlPart?.includes('https'));\n const protocol = isSecureProtocol ? 'https' : 'http';\n\n const actualUrlParts = urlParts\n .filter((urlPart) => urlPart)\n .map((urlPart) => {\n return urlPart?.replace(/^(https?:\\/\\/|\\/)?(.*?)(\\/?)$/, '$2');\n });\n\n const url = `${protocol}://${actualUrlParts.join('/')}`;\n\n this.config = {\n ...this.config,\n url,\n };\n\n return this;\n }\n\n makeMethod() {\n this.config = {\n ...this.config,\n method: this.requestConfig.method,\n };\n\n return this;\n }\n\n makeData() {\n if (this.requestConfig.method === HttpMethods.GET) {\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n data: stringify(this.requestConfig.data),\n };\n\n return this;\n }\n\n this.config = {\n ...this.config,\n data: this.requestConfig.data,\n };\n\n return this;\n }\n\n makeParams() {\n this.config = {\n ...this.config,\n params: this.requestConfig.params,\n };\n\n return this;\n }\n\n makeSerializer() {\n this.config = {\n ...this.config,\n paramsSerializer: (params: any) => {\n return stringify(params, {\n arrayFormat: this.baseConfig.serializer?.array || 'brackets',\n skipNulls: true,\n });\n },\n };\n\n return this;\n }\n\n build() {\n return this.config;\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport type RequestParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfigParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfig = Omit<AxiosRequestConfig, 'baseURL' | 'url'> & {\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n apiKey?: string;\n urlencoded?: boolean;\n multipart?: boolean;\n xml?: boolean;\n};\n\nexport type BaseRequestConfig = Pick<AxiosRequestConfig, 'auth' | 'headers' | 'timeout'> & {\n name?: string;\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n apiKey?: string;\n debug?: boolean;\n logger?: boolean;\n serializer?: {\n array?: 'indices' | 'brackets' | 'repeat' | 'comma';\n };\n};\n\nexport type ResponseConfig = {\n raw?: boolean;\n bulkCallback?: (page: number) => Promise<void>;\n};\n\nexport type Response<T = unknown> = {\n success: boolean;\n data?: T;\n errorCode?: string;\n};\n\nexport type RawResponse<T = unknown> = {\n success: boolean;\n status: HttpStatuses;\n method: HttpMethods;\n data: T;\n};\n\nexport enum HttpMethods {\n GET = 'get',\n POST = 'post',\n PUT = 'put',\n DELETE = 'delete',\n}\n\nexport enum HttpStatuses {\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NO_CONTENT = 204,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n CONFLICT = 409,\n INTERNAL_SERVER_ERROR = 500,\n}\n\nexport type PaginationDto = {\n pagination?: boolean | null;\n page?: number | null;\n pageSize?: number | null;\n bulkSize?: number | null;\n};\n\nexport type Pagination = {\n total: number;\n currentPage: number;\n lastPage: number;\n from: number;\n to: number;\n pageSize: number;\n};\n\nexport type PaginationResponse<T = unknown> = {\n data: T[];\n pagination: Pagination;\n};\n","import axios, { AxiosError, AxiosResponse } from 'axios';\nimport { RequestBuilder } from './builder';\nimport {\n BaseRequestConfig,\n HttpMethods,\n RequestConfig,\n RequestConfigParams,\n ResponseConfig,\n RawResponse,\n PaginationResponse,\n} from './types';\nimport { LoggerService } from './logger';\n\nexport class RequestDataSource<\n Entity extends Record<string, any> = any,\n SearchParams extends RequestConfigParams = any,\n SearchResponse extends Record<string, any> = any,\n CreateParams extends RequestConfigParams = any,\n UpdateParams extends RequestConfigParams = any,\n> {\n baseRequestConfig: BaseRequestConfig;\n\n constructor(baseRequestConfig: BaseRequestConfig) {\n this.baseRequestConfig = baseRequestConfig;\n }\n\n common<T>(requestConfig: RequestConfig): Promise<T>;\n\n common<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig): Promise<RawResponse<T>>;\n\n common<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig = {}) {\n const loggerService = new LoggerService(this.baseRequestConfig);\n\n const requestBuilder = new RequestBuilder({\n baseConfig: this.baseRequestConfig,\n requestConfig,\n });\n\n const request = requestBuilder\n .makeContentType()\n .makeAuth()\n .makeUrl()\n .makeMethod()\n .makeParams()\n .makeData()\n .makeSerializer()\n .build();\n\n if (this.baseRequestConfig.logger) {\n loggerService.logRequest(request as any);\n }\n\n return axios\n .request(request)\n .then((response: AxiosResponse<T>) => {\n if (this.baseRequestConfig.logger) {\n loggerService.logResponse(response as any);\n }\n\n if (responseConfig.raw) {\n return loggerService.makeResponse<T>(response as any);\n }\n\n return response.data;\n })\n .catch((error: AxiosError) => {\n if (this.baseRequestConfig.debug) {\n console.log('Error:', error);\n }\n\n if (this.baseRequestConfig.logger) {\n loggerService.logRequestError(error as any);\n }\n\n if (responseConfig.raw) {\n return loggerService.makeErrorResponse<T>(error as any);\n }\n\n throw error.response?.data || error.response || new Error(error.message);\n });\n }\n\n async *bulkCommon<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig = {}): AsyncGenerator<T[]> {\n const { params } = requestConfig;\n const { bulkCallback } = responseConfig;\n const { page, pageSize, bulkSize, ...searchDto } = params || {};\n\n const paginationDto = {\n page: page || 1,\n pageSize: pageSize || 30,\n };\n\n const maxPage = bulkSize ? paginationDto.page - 1 + bulkSize : null;\n\n let pagination = {\n total: 0,\n currentPage: 0,\n lastPage: 0,\n from: 0,\n to: 0,\n pageSize: 0,\n };\n\n do {\n const response = await this.common<PaginationResponse<T>>({\n ...requestConfig,\n params: {\n ...paginationDto,\n ...searchDto,\n },\n });\n\n pagination = response.pagination;\n\n if (!response.data?.length) {\n return;\n }\n\n yield response.data;\n\n paginationDto.page += 1;\n } while (pagination.currentPage !== pagination.lastPage && pagination.currentPage !== maxPage);\n\n if (pagination.currentPage !== pagination.lastPage) {\n if (bulkCallback) {\n await bulkCallback(paginationDto.page);\n }\n }\n }\n\n search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n bulkSearch(config: SearchParams = {} as SearchParams) {\n return this.bulkCommon<Entity>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n get(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.GET,\n url: id,\n });\n }\n\n create(config: CreateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.POST,\n });\n }\n\n bulkCreate(config: Omit<CreateParams, 'data'> & { data: CreateParams['data'][] }) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.POST,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n update(id: number | string, config: UpdateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.PUT,\n url: id,\n });\n }\n\n bulkUpdate(config: Omit<UpdateParams, 'data'> & { data: UpdateParams['data'][] }) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.PUT,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n remove(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<void>({\n ...config,\n method: HttpMethods.DELETE,\n url: id,\n });\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\nimport { BaseRequestConfig, HttpMethods, HttpStatuses } from '../types';\n\nexport class MessageBuilder {\n private printQueue: string[];\n\n private request!: InternalAxiosRequestConfig;\n private response!: AxiosResponse;\n private error!: AxiosError;\n\n private config: BaseRequestConfig;\n\n constructor(config: BaseRequestConfig) {\n this.printQueue = [];\n this.config = config;\n }\n\n setRequest(request: InternalAxiosRequestConfig) {\n this.request = request;\n\n return this;\n }\n\n setResponse(response: AxiosResponse) {\n this.response = response;\n\n return this;\n }\n\n setError(error: AxiosError) {\n this.error = error;\n\n return this;\n }\n\n makeType(type: string) {\n this.printQueue.push(`[${type}]`);\n\n return this;\n }\n\n makeUrl() {\n const url = this.request?.url || this.response?.config?.url || this.error?.response?.config.url;\n\n const params = this.request?.params || this.response?.config?.params || this.error?.response?.config.params;\n\n if (url) {\n if (params) {\n delete params['0'];\n this.printQueue.push(\n [\n url,\n stringify(params, {\n arrayFormat: this.config.serializer?.array || 'brackets',\n skipNulls: true,\n }),\n ]\n .filter((_) => _)\n .join('?'),\n );\n } else {\n this.printQueue.push(url);\n }\n }\n\n return this;\n }\n\n makeMethodText() {\n const method = this.request?.method || this.response?.config?.method || this.error?.response?.config.method;\n\n if (method) {\n this.printQueue.push(method.toUpperCase());\n }\n\n return this;\n }\n\n makeRequestData() {\n const data = this.request?.data || this.response?.config?.data || this.error?.response?.config.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeResponseDataText() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeStatusText() {\n const status = this.response?.status || this.error?.response?.status;\n\n if (status) {\n this.printQueue.push(`${status}`);\n\n const statusText = this.response?.statusText || this.error?.response?.statusText;\n\n if (statusText) {\n this.printQueue.push(statusText);\n }\n }\n\n return this;\n }\n\n build() {\n return this.printQueue.join(' ');\n }\n\n makeMethod() {\n const method = this.request?.method || this.response?.config?.method || this.error?.response?.config.method;\n\n if (!method) {\n return HttpMethods.GET;\n }\n\n return method.toLowerCase() as HttpMethods;\n }\n\n makeResponseData() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n }\n\n makeStatus() {\n const status = this.response?.status || this.error?.response?.status;\n\n if (!status) {\n return HttpStatuses.INTERNAL_SERVER_ERROR;\n }\n\n return status as HttpStatuses;\n }\n\n makeResponse<T>() {\n return {\n success: this.error === undefined,\n status: this.makeStatus(),\n method: this.makeMethod(),\n data: this.makeResponseData() as T,\n };\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { MessageBuilder } from './builder';\nimport { BaseRequestConfig } from '@src/types';\n\nexport class LoggerService {\n private config: BaseRequestConfig;\n\n constructor(config: BaseRequestConfig) {\n this.config = config;\n }\n\n log(message: string, context?: string) {\n const ctx = context || this.config.name || '';\n\n if (ctx) {\n return console.log(`[${ctx}] ${message}`);\n }\n\n return console.log(message);\n }\n\n logRequest(request: InternalAxiosRequestConfig) {\n const loggerMessageBuilder = new MessageBuilder(this.config);\n\n const message = loggerMessageBuilder\n .setRequest(request)\n .makeType('Request')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .build();\n\n return this.log(message);\n }\n\n logResponse(response: AxiosResponse) {\n const loggerMessageBuilder = new MessageBuilder(this.config);\n\n const message = loggerMessageBuilder\n .setResponse(response)\n .makeType('Response')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .makeStatusText()\n .makeResponseDataText()\n .build();\n\n return this.log(message);\n }\n\n logRequestError(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder(this.config);\n\n const message = loggerMessageBuilder\n .setError(error)\n .makeType('Error')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .makeStatusText()\n .makeResponseDataText()\n .build();\n\n return this.log(message);\n }\n\n makeResponse<T>(response: AxiosResponse) {\n const loggerMessageBuilder = new MessageBuilder(this.config);\n\n const responseData = loggerMessageBuilder.setResponse(response).makeResponse<T>();\n\n return responseData;\n }\n\n makeErrorResponse<T>(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder(this.config);\n\n const errorResponseData = loggerMessageBuilder.setError(error).makeResponse<T>();\n\n return errorResponseData;\n }\n}\n","export class RequestHelper {\n static sleep(seconds: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, seconds * 1000);\n });\n }\n}\n"]}
package/dist/index.mjs CHANGED
@@ -32,6 +32,7 @@ var RequestBuilder = class {
32
32
  this.baseConfig = params.baseConfig;
33
33
  this.requestConfig = params.requestConfig;
34
34
  this.config = {
35
+ timeout: params.requestConfig.timeout || params.baseConfig.timeout,
35
36
  headers: {
36
37
  Accept: "application/json",
37
38
  "Content-Type": "application/json",
@@ -187,8 +188,10 @@ var MessageBuilder = class {
187
188
  request;
188
189
  response;
189
190
  error;
190
- constructor() {
191
+ config;
192
+ constructor(config) {
191
193
  this.printQueue = [];
194
+ this.config = config;
192
195
  }
193
196
  setRequest(request) {
194
197
  this.request = request;
@@ -212,7 +215,15 @@ var MessageBuilder = class {
212
215
  if (url) {
213
216
  if (params) {
214
217
  delete params["0"];
215
- this.printQueue.push([url, stringify2(params, { skipNulls: true })].filter((_) => _).join("?"));
218
+ this.printQueue.push(
219
+ [
220
+ url,
221
+ stringify2(params, {
222
+ arrayFormat: this.config.serializer?.array || "brackets",
223
+ skipNulls: true
224
+ })
225
+ ].filter((_) => _).join("?")
226
+ );
216
227
  } else {
217
228
  this.printQueue.push(url);
218
229
  }
@@ -304,39 +315,39 @@ var MessageBuilder = class {
304
315
 
305
316
  // src/logger/service.ts
306
317
  var LoggerService = class {
307
- context = "";
308
- constructor(context = "") {
309
- this.context = context;
318
+ config;
319
+ constructor(config) {
320
+ this.config = config;
310
321
  }
311
322
  log(message, context) {
312
- const ctx = context || this.context || "";
323
+ const ctx = context || this.config.name || "";
313
324
  if (ctx) {
314
325
  return console.log(`[${ctx}] ${message}`);
315
326
  }
316
327
  return console.log(message);
317
328
  }
318
329
  logRequest(request) {
319
- const loggerMessageBuilder = new MessageBuilder();
330
+ const loggerMessageBuilder = new MessageBuilder(this.config);
320
331
  const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethodText().makeUrl().makeRequestData().build();
321
332
  return this.log(message);
322
333
  }
323
334
  logResponse(response) {
324
- const loggerMessageBuilder = new MessageBuilder();
335
+ const loggerMessageBuilder = new MessageBuilder(this.config);
325
336
  const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
326
337
  return this.log(message);
327
338
  }
328
339
  logRequestError(error) {
329
- const loggerMessageBuilder = new MessageBuilder();
340
+ const loggerMessageBuilder = new MessageBuilder(this.config);
330
341
  const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
331
342
  return this.log(message);
332
343
  }
333
344
  makeResponse(response) {
334
- const loggerMessageBuilder = new MessageBuilder();
345
+ const loggerMessageBuilder = new MessageBuilder(this.config);
335
346
  const responseData = loggerMessageBuilder.setResponse(response).makeResponse();
336
347
  return responseData;
337
348
  }
338
349
  makeErrorResponse(error) {
339
- const loggerMessageBuilder = new MessageBuilder();
350
+ const loggerMessageBuilder = new MessageBuilder(this.config);
340
351
  const errorResponseData = loggerMessageBuilder.setError(error).makeResponse();
341
352
  return errorResponseData;
342
353
  }
@@ -349,7 +360,7 @@ var RequestDataSource = class {
349
360
  this.baseRequestConfig = baseRequestConfig;
350
361
  }
351
362
  common(requestConfig, responseConfig = {}) {
352
- const loggerService = new LoggerService(this.baseRequestConfig.name);
363
+ const loggerService = new LoggerService(this.baseRequestConfig);
353
364
  const requestBuilder = new RequestBuilder({
354
365
  baseConfig: this.baseRequestConfig,
355
366
  requestConfig
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/builder.ts","../src/types.ts","../src/data-source.ts","../src/logger/builder.ts","../src/logger/service.ts","../src/helper.ts"],"sourcesContent":["import { AxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\nimport { BaseRequestConfig, HttpMethods, RequestConfig } from './types';\n\nexport class RequestBuilder {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n config: AxiosRequestConfig;\n\n constructor(params: { baseConfig: BaseRequestConfig; requestConfig: RequestConfig }) {\n this.baseConfig = params.baseConfig;\n this.requestConfig = params.requestConfig;\n this.config = {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...params.baseConfig.headers,\n ...params.requestConfig.headers,\n },\n };\n }\n\n makeContentType() {\n if (this.requestConfig.multipart) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'multipart/form-data',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.xml) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'text/xml',\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeAuth() {\n const auth = this.requestConfig.auth || this.baseConfig.auth;\n\n if (auth) {\n this.config = {\n ...this.config,\n auth,\n };\n\n return this;\n }\n\n const bearerToken = this.requestConfig.bearerToken || this.baseConfig.bearerToken;\n\n if (bearerToken) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n Authorization: `Bearer ${bearerToken}`,\n },\n };\n\n return this;\n }\n\n const apiKey = this.requestConfig.apiKey || this.baseConfig.apiKey;\n\n if (apiKey) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'x-api-key': apiKey,\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeUrl() {\n const baseUrlMap = this.requestConfig.baseUrlMap || this.baseConfig.baseUrlMap;\n const baseUrlName = this.requestConfig.baseUrlName || this.baseConfig.baseUrlName;\n\n const urlParts = [\n baseUrlMap && baseUrlName ? baseUrlMap[baseUrlName] : this.baseConfig.baseUrl,\n this.baseConfig.url,\n ...(this.baseConfig.urlParts || []),\n this.requestConfig.baseUrl,\n this.requestConfig.url,\n ...(this.requestConfig.urlParts || []),\n ].map((urlPart) => urlPart?.toString());\n\n const isSecureProtocol = urlParts.some((urlPart) => urlPart?.includes('https'));\n const protocol = isSecureProtocol ? 'https' : 'http';\n\n const actualUrlParts = urlParts\n .filter((urlPart) => urlPart)\n .map((urlPart) => {\n return urlPart?.replace(/^(https?:\\/\\/|\\/)?(.*?)(\\/?)$/, '$2');\n });\n\n const url = `${protocol}://${actualUrlParts.join('/')}`;\n\n this.config = {\n ...this.config,\n url,\n };\n\n return this;\n }\n\n makeMethod() {\n this.config = {\n ...this.config,\n method: this.requestConfig.method,\n };\n\n return this;\n }\n\n makeData() {\n if (this.requestConfig.method === HttpMethods.GET) {\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n data: stringify(this.requestConfig.data),\n };\n\n return this;\n }\n\n this.config = {\n ...this.config,\n data: this.requestConfig.data,\n };\n\n return this;\n }\n\n makeParams() {\n this.config = {\n ...this.config,\n params: this.requestConfig.params,\n };\n\n return this;\n }\n\n makeSerializer() {\n this.config = {\n ...this.config,\n paramsSerializer: (params: any) => {\n return stringify(params, {\n arrayFormat: this.baseConfig.serializer?.array || 'brackets',\n skipNulls: true,\n });\n },\n };\n\n return this;\n }\n\n build() {\n return this.config;\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport type RequestParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfigParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfig = Omit<AxiosRequestConfig, 'baseURL' | 'url'> & {\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n apiKey?: string;\n urlencoded?: boolean;\n multipart?: boolean;\n xml?: boolean;\n};\n\nexport type BaseRequestConfig = Pick<AxiosRequestConfig, 'auth' | 'headers' | 'timeout'> & {\n name?: string;\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n apiKey?: string;\n debug?: boolean;\n logger?: boolean;\n serializer?: {\n array?: 'indices' | 'brackets' | 'repeat' | 'comma';\n };\n};\n\nexport type ResponseConfig = {\n raw?: boolean;\n bulkCallback?: (page: number) => Promise<void>;\n};\n\nexport type Response<T = unknown> = {\n success: boolean;\n data?: T;\n errorCode?: string;\n};\n\nexport type RawResponse<T = unknown> = {\n success: boolean;\n status: HttpStatuses;\n method: HttpMethods;\n data: T;\n};\n\nexport enum HttpMethods {\n GET = 'get',\n POST = 'post',\n PUT = 'put',\n DELETE = 'delete',\n}\n\nexport enum HttpStatuses {\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NO_CONTENT = 204,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n CONFLICT = 409,\n INTERNAL_SERVER_ERROR = 500,\n}\n\nexport type PaginationDto = {\n pagination?: boolean | null;\n page?: number | null;\n pageSize?: number | null;\n bulkSize?: number | null;\n};\n\nexport type Pagination = {\n total: number;\n currentPage: number;\n lastPage: number;\n from: number;\n to: number;\n pageSize: number;\n};\n\nexport type PaginationResponse<T = unknown> = {\n data: T[];\n pagination: Pagination;\n};\n","import axios, { AxiosError, AxiosResponse } from 'axios';\nimport { RequestBuilder } from './builder';\nimport {\n BaseRequestConfig,\n HttpMethods,\n RequestConfig,\n RequestConfigParams,\n ResponseConfig,\n RawResponse,\n PaginationResponse,\n} from './types';\nimport { LoggerService } from './logger';\n\nexport class RequestDataSource<\n Entity extends Record<string, any> = any,\n SearchParams extends RequestConfigParams = any,\n SearchResponse extends Record<string, any> = any,\n CreateParams extends RequestConfigParams = any,\n UpdateParams extends RequestConfigParams = any,\n> {\n baseRequestConfig: BaseRequestConfig;\n\n constructor(baseRequestConfig: BaseRequestConfig) {\n this.baseRequestConfig = baseRequestConfig;\n }\n\n common<T>(requestConfig: RequestConfig): Promise<T>;\n\n common<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig): Promise<RawResponse<T>>;\n\n common<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig = {}) {\n const loggerService = new LoggerService(this.baseRequestConfig.name);\n\n const requestBuilder = new RequestBuilder({\n baseConfig: this.baseRequestConfig,\n requestConfig,\n });\n\n const request = requestBuilder\n .makeContentType()\n .makeAuth()\n .makeUrl()\n .makeMethod()\n .makeParams()\n .makeData()\n .makeSerializer()\n .build();\n\n if (this.baseRequestConfig.logger) {\n loggerService.logRequest(request as any);\n }\n\n return axios\n .request(request)\n .then((response: AxiosResponse<T>) => {\n if (this.baseRequestConfig.logger) {\n loggerService.logResponse(response as any);\n }\n\n if (responseConfig.raw) {\n return loggerService.makeResponse<T>(response as any);\n }\n\n return response.data;\n })\n .catch((error: AxiosError) => {\n if (this.baseRequestConfig.debug) {\n console.log('Error:', error);\n }\n\n if (this.baseRequestConfig.logger) {\n loggerService.logRequestError(error as any);\n }\n\n if (responseConfig.raw) {\n return loggerService.makeErrorResponse<T>(error as any);\n }\n\n throw error.response?.data || error.response || new Error(error.message);\n });\n }\n\n async *bulkCommon<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig = {}): AsyncGenerator<T[]> {\n const { params } = requestConfig;\n const { bulkCallback } = responseConfig;\n const { page, pageSize, bulkSize, ...searchDto } = params || {};\n\n const paginationDto = {\n page: page || 1,\n pageSize: pageSize || 30,\n };\n\n const maxPage = bulkSize ? paginationDto.page - 1 + bulkSize : null;\n\n let pagination = {\n total: 0,\n currentPage: 0,\n lastPage: 0,\n from: 0,\n to: 0,\n pageSize: 0,\n };\n\n do {\n const response = await this.common<PaginationResponse<T>>({\n ...requestConfig,\n params: {\n ...paginationDto,\n ...searchDto,\n },\n });\n\n pagination = response.pagination;\n\n if (!response.data?.length) {\n return;\n }\n\n yield response.data;\n\n paginationDto.page += 1;\n } while (pagination.currentPage !== pagination.lastPage && pagination.currentPage !== maxPage);\n\n if (pagination.currentPage !== pagination.lastPage) {\n if (bulkCallback) {\n await bulkCallback(paginationDto.page);\n }\n }\n }\n\n search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n bulkSearch(config: SearchParams = {} as SearchParams) {\n return this.bulkCommon<Entity>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n get(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.GET,\n url: id,\n });\n }\n\n create(config: CreateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.POST,\n });\n }\n\n bulkCreate(config: Omit<CreateParams, 'data'> & { data: CreateParams['data'][] }) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.POST,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n update(id: number | string, config: UpdateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.PUT,\n url: id,\n });\n }\n\n bulkUpdate(config: Omit<UpdateParams, 'data'> & { data: UpdateParams['data'][] }) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.PUT,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n remove(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<void>({\n ...config,\n method: HttpMethods.DELETE,\n url: id,\n });\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\nimport { HttpMethods, HttpStatuses } from '../types';\n\nexport class MessageBuilder {\n private printQueue: string[];\n\n private request!: InternalAxiosRequestConfig;\n private response!: AxiosResponse;\n private error!: AxiosError;\n\n constructor() {\n this.printQueue = [];\n }\n\n setRequest(request: InternalAxiosRequestConfig) {\n this.request = request;\n\n return this;\n }\n\n setResponse(response: AxiosResponse) {\n this.response = response;\n\n return this;\n }\n\n setError(error: AxiosError) {\n this.error = error;\n\n return this;\n }\n\n makeType(type: string) {\n this.printQueue.push(`[${type}]`);\n\n return this;\n }\n\n makeUrl() {\n const url = this.request?.url || this.response?.config?.url || this.error?.response?.config.url;\n\n const params = this.request?.params || this.response?.config?.params || this.error?.response?.config.params;\n\n if (url) {\n if (params) {\n delete params['0'];\n this.printQueue.push([url, stringify(params, { skipNulls: true })].filter((_) => _).join('?'));\n } else {\n this.printQueue.push(url);\n }\n }\n\n return this;\n }\n\n makeMethodText() {\n const method = this.request?.method || this.response?.config?.method || this.error?.response?.config.method;\n\n if (method) {\n this.printQueue.push(method.toUpperCase());\n }\n\n return this;\n }\n\n makeRequestData() {\n const data = this.request?.data || this.response?.config?.data || this.error?.response?.config.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeResponseDataText() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeStatusText() {\n const status = this.response?.status || this.error?.response?.status;\n\n if (status) {\n this.printQueue.push(`${status}`);\n\n const statusText = this.response?.statusText || this.error?.response?.statusText;\n\n if (statusText) {\n this.printQueue.push(statusText);\n }\n }\n\n return this;\n }\n\n build() {\n return this.printQueue.join(' ');\n }\n\n makeMethod() {\n const method = this.request?.method || this.response?.config?.method || this.error?.response?.config.method;\n\n if (!method) {\n return HttpMethods.GET;\n }\n\n return method.toLowerCase() as HttpMethods;\n }\n\n makeResponseData() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n }\n\n makeStatus() {\n const status = this.response?.status || this.error?.response?.status;\n\n if (!status) {\n return HttpStatuses.INTERNAL_SERVER_ERROR;\n }\n\n return status as HttpStatuses;\n }\n\n makeResponse<T>() {\n return {\n success: this.error === undefined,\n status: this.makeStatus(),\n method: this.makeMethod(),\n data: this.makeResponseData() as T,\n };\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { MessageBuilder } from './builder';\n\nexport class LoggerService {\n context: string = '';\n\n constructor(context: string = '') {\n this.context = context;\n }\n\n log(message: string, context?: string) {\n const ctx = context || this.context || '';\n\n if (ctx) {\n return console.log(`[${ctx}] ${message}`);\n }\n\n return console.log(message);\n }\n\n logRequest(request: InternalAxiosRequestConfig) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setRequest(request)\n .makeType('Request')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .build();\n\n return this.log(message);\n }\n\n logResponse(response: AxiosResponse) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setResponse(response)\n .makeType('Response')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .makeStatusText()\n .makeResponseDataText()\n .build();\n\n return this.log(message);\n }\n\n logRequestError(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const message = loggerMessageBuilder\n .setError(error)\n .makeType('Error')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .makeStatusText()\n .makeResponseDataText()\n .build();\n\n return this.log(message);\n }\n\n makeResponse<T>(response: AxiosResponse) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const responseData = loggerMessageBuilder.setResponse(response).makeResponse<T>();\n\n return responseData;\n }\n\n makeErrorResponse<T>(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder();\n\n const errorResponseData = loggerMessageBuilder.setError(error).makeResponse<T>();\n\n return errorResponseData;\n }\n}\n","export class RequestHelper {\n static sleep(seconds: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, seconds * 1000);\n });\n }\n}\n"],"mappings":"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","names":["HttpMethods","HttpStatuses","stringify","stringify"]}
1
+ {"version":3,"sources":["../src/builder.ts","../src/types.ts","../src/data-source.ts","../src/logger/builder.ts","../src/logger/service.ts","../src/helper.ts"],"sourcesContent":["import { AxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\n\nimport { BaseRequestConfig, HttpMethods, RequestConfig } from './types';\n\nexport class RequestBuilder {\n baseConfig: BaseRequestConfig;\n requestConfig: RequestConfig;\n config: AxiosRequestConfig;\n\n constructor(params: { baseConfig: BaseRequestConfig; requestConfig: RequestConfig }) {\n this.baseConfig = params.baseConfig;\n this.requestConfig = params.requestConfig;\n this.config = {\n timeout: params.requestConfig.timeout || params.baseConfig.timeout,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...params.baseConfig.headers,\n ...params.requestConfig.headers,\n },\n };\n }\n\n makeContentType() {\n if (this.requestConfig.multipart) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'multipart/form-data',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n };\n\n return this;\n }\n\n if (this.requestConfig.xml) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'Content-Type': 'text/xml',\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeAuth() {\n const auth = this.requestConfig.auth || this.baseConfig.auth;\n\n if (auth) {\n this.config = {\n ...this.config,\n auth,\n };\n\n return this;\n }\n\n const bearerToken = this.requestConfig.bearerToken || this.baseConfig.bearerToken;\n\n if (bearerToken) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n Authorization: `Bearer ${bearerToken}`,\n },\n };\n\n return this;\n }\n\n const apiKey = this.requestConfig.apiKey || this.baseConfig.apiKey;\n\n if (apiKey) {\n this.config = {\n ...this.config,\n headers: {\n ...this.config.headers,\n 'x-api-key': apiKey,\n },\n };\n\n return this;\n }\n\n return this;\n }\n\n makeUrl() {\n const baseUrlMap = this.requestConfig.baseUrlMap || this.baseConfig.baseUrlMap;\n const baseUrlName = this.requestConfig.baseUrlName || this.baseConfig.baseUrlName;\n\n const urlParts = [\n baseUrlMap && baseUrlName ? baseUrlMap[baseUrlName] : this.baseConfig.baseUrl,\n this.baseConfig.url,\n ...(this.baseConfig.urlParts || []),\n this.requestConfig.baseUrl,\n this.requestConfig.url,\n ...(this.requestConfig.urlParts || []),\n ].map((urlPart) => urlPart?.toString());\n\n const isSecureProtocol = urlParts.some((urlPart) => urlPart?.includes('https'));\n const protocol = isSecureProtocol ? 'https' : 'http';\n\n const actualUrlParts = urlParts\n .filter((urlPart) => urlPart)\n .map((urlPart) => {\n return urlPart?.replace(/^(https?:\\/\\/|\\/)?(.*?)(\\/?)$/, '$2');\n });\n\n const url = `${protocol}://${actualUrlParts.join('/')}`;\n\n this.config = {\n ...this.config,\n url,\n };\n\n return this;\n }\n\n makeMethod() {\n this.config = {\n ...this.config,\n method: this.requestConfig.method,\n };\n\n return this;\n }\n\n makeData() {\n if (this.requestConfig.method === HttpMethods.GET) {\n return this;\n }\n\n if (this.requestConfig.urlencoded) {\n this.config = {\n ...this.config,\n data: stringify(this.requestConfig.data),\n };\n\n return this;\n }\n\n this.config = {\n ...this.config,\n data: this.requestConfig.data,\n };\n\n return this;\n }\n\n makeParams() {\n this.config = {\n ...this.config,\n params: this.requestConfig.params,\n };\n\n return this;\n }\n\n makeSerializer() {\n this.config = {\n ...this.config,\n paramsSerializer: (params: any) => {\n return stringify(params, {\n arrayFormat: this.baseConfig.serializer?.array || 'brackets',\n skipNulls: true,\n });\n },\n };\n\n return this;\n }\n\n build() {\n return this.config;\n }\n}\n","import { AxiosRequestConfig } from 'axios';\n\nexport type RequestParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfigParams = Pick<AxiosRequestConfig, 'params' | 'data'>;\n\nexport type RequestConfig = Omit<AxiosRequestConfig, 'baseURL' | 'url'> & {\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n apiKey?: string;\n urlencoded?: boolean;\n multipart?: boolean;\n xml?: boolean;\n};\n\nexport type BaseRequestConfig = Pick<AxiosRequestConfig, 'auth' | 'headers' | 'timeout'> & {\n name?: string;\n baseUrl?: string;\n baseUrlName?: string;\n baseUrlMap?: Record<string, string>;\n url?: number | string;\n urlParts?: (number | string)[];\n bearerToken?: string;\n apiKey?: string;\n debug?: boolean;\n logger?: boolean;\n serializer?: {\n array?: 'indices' | 'brackets' | 'repeat' | 'comma';\n };\n};\n\nexport type ResponseConfig = {\n raw?: boolean;\n bulkCallback?: (page: number) => Promise<void>;\n};\n\nexport type Response<T = unknown> = {\n success: boolean;\n data?: T;\n errorCode?: string;\n};\n\nexport type RawResponse<T = unknown> = {\n success: boolean;\n status: HttpStatuses;\n method: HttpMethods;\n data: T;\n};\n\nexport enum HttpMethods {\n GET = 'get',\n POST = 'post',\n PUT = 'put',\n DELETE = 'delete',\n}\n\nexport enum HttpStatuses {\n OK = 200,\n CREATED = 201,\n ACCEPTED = 202,\n NO_CONTENT = 204,\n BAD_REQUEST = 400,\n UNAUTHORIZED = 401,\n FORBIDDEN = 403,\n NOT_FOUND = 404,\n CONFLICT = 409,\n INTERNAL_SERVER_ERROR = 500,\n}\n\nexport type PaginationDto = {\n pagination?: boolean | null;\n page?: number | null;\n pageSize?: number | null;\n bulkSize?: number | null;\n};\n\nexport type Pagination = {\n total: number;\n currentPage: number;\n lastPage: number;\n from: number;\n to: number;\n pageSize: number;\n};\n\nexport type PaginationResponse<T = unknown> = {\n data: T[];\n pagination: Pagination;\n};\n","import axios, { AxiosError, AxiosResponse } from 'axios';\nimport { RequestBuilder } from './builder';\nimport {\n BaseRequestConfig,\n HttpMethods,\n RequestConfig,\n RequestConfigParams,\n ResponseConfig,\n RawResponse,\n PaginationResponse,\n} from './types';\nimport { LoggerService } from './logger';\n\nexport class RequestDataSource<\n Entity extends Record<string, any> = any,\n SearchParams extends RequestConfigParams = any,\n SearchResponse extends Record<string, any> = any,\n CreateParams extends RequestConfigParams = any,\n UpdateParams extends RequestConfigParams = any,\n> {\n baseRequestConfig: BaseRequestConfig;\n\n constructor(baseRequestConfig: BaseRequestConfig) {\n this.baseRequestConfig = baseRequestConfig;\n }\n\n common<T>(requestConfig: RequestConfig): Promise<T>;\n\n common<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig): Promise<RawResponse<T>>;\n\n common<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig = {}) {\n const loggerService = new LoggerService(this.baseRequestConfig);\n\n const requestBuilder = new RequestBuilder({\n baseConfig: this.baseRequestConfig,\n requestConfig,\n });\n\n const request = requestBuilder\n .makeContentType()\n .makeAuth()\n .makeUrl()\n .makeMethod()\n .makeParams()\n .makeData()\n .makeSerializer()\n .build();\n\n if (this.baseRequestConfig.logger) {\n loggerService.logRequest(request as any);\n }\n\n return axios\n .request(request)\n .then((response: AxiosResponse<T>) => {\n if (this.baseRequestConfig.logger) {\n loggerService.logResponse(response as any);\n }\n\n if (responseConfig.raw) {\n return loggerService.makeResponse<T>(response as any);\n }\n\n return response.data;\n })\n .catch((error: AxiosError) => {\n if (this.baseRequestConfig.debug) {\n console.log('Error:', error);\n }\n\n if (this.baseRequestConfig.logger) {\n loggerService.logRequestError(error as any);\n }\n\n if (responseConfig.raw) {\n return loggerService.makeErrorResponse<T>(error as any);\n }\n\n throw error.response?.data || error.response || new Error(error.message);\n });\n }\n\n async *bulkCommon<T>(requestConfig: RequestConfig, responseConfig: ResponseConfig = {}): AsyncGenerator<T[]> {\n const { params } = requestConfig;\n const { bulkCallback } = responseConfig;\n const { page, pageSize, bulkSize, ...searchDto } = params || {};\n\n const paginationDto = {\n page: page || 1,\n pageSize: pageSize || 30,\n };\n\n const maxPage = bulkSize ? paginationDto.page - 1 + bulkSize : null;\n\n let pagination = {\n total: 0,\n currentPage: 0,\n lastPage: 0,\n from: 0,\n to: 0,\n pageSize: 0,\n };\n\n do {\n const response = await this.common<PaginationResponse<T>>({\n ...requestConfig,\n params: {\n ...paginationDto,\n ...searchDto,\n },\n });\n\n pagination = response.pagination;\n\n if (!response.data?.length) {\n return;\n }\n\n yield response.data;\n\n paginationDto.page += 1;\n } while (pagination.currentPage !== pagination.lastPage && pagination.currentPage !== maxPage);\n\n if (pagination.currentPage !== pagination.lastPage) {\n if (bulkCallback) {\n await bulkCallback(paginationDto.page);\n }\n }\n }\n\n search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n bulkSearch(config: SearchParams = {} as SearchParams) {\n return this.bulkCommon<Entity>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n get(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.GET,\n url: id,\n });\n }\n\n create(config: CreateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.POST,\n });\n }\n\n bulkCreate(config: Omit<CreateParams, 'data'> & { data: CreateParams['data'][] }) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.POST,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n update(id: number | string, config: UpdateParams) {\n return this.common<Entity>({\n ...config,\n method: HttpMethods.PUT,\n url: id,\n });\n }\n\n bulkUpdate(config: Omit<UpdateParams, 'data'> & { data: UpdateParams['data'][] }) {\n return this.common<Entity[]>({\n ...config,\n method: HttpMethods.PUT,\n url: '/bulk',\n data: {\n bulk: config.data,\n },\n });\n }\n\n remove(id: number | string, config: SearchParams = {} as SearchParams) {\n return this.common<void>({\n ...config,\n method: HttpMethods.DELETE,\n url: id,\n });\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { stringify } from 'qs';\nimport { BaseRequestConfig, HttpMethods, HttpStatuses } from '../types';\n\nexport class MessageBuilder {\n private printQueue: string[];\n\n private request!: InternalAxiosRequestConfig;\n private response!: AxiosResponse;\n private error!: AxiosError;\n\n private config: BaseRequestConfig;\n\n constructor(config: BaseRequestConfig) {\n this.printQueue = [];\n this.config = config;\n }\n\n setRequest(request: InternalAxiosRequestConfig) {\n this.request = request;\n\n return this;\n }\n\n setResponse(response: AxiosResponse) {\n this.response = response;\n\n return this;\n }\n\n setError(error: AxiosError) {\n this.error = error;\n\n return this;\n }\n\n makeType(type: string) {\n this.printQueue.push(`[${type}]`);\n\n return this;\n }\n\n makeUrl() {\n const url = this.request?.url || this.response?.config?.url || this.error?.response?.config.url;\n\n const params = this.request?.params || this.response?.config?.params || this.error?.response?.config.params;\n\n if (url) {\n if (params) {\n delete params['0'];\n this.printQueue.push(\n [\n url,\n stringify(params, {\n arrayFormat: this.config.serializer?.array || 'brackets',\n skipNulls: true,\n }),\n ]\n .filter((_) => _)\n .join('?'),\n );\n } else {\n this.printQueue.push(url);\n }\n }\n\n return this;\n }\n\n makeMethodText() {\n const method = this.request?.method || this.response?.config?.method || this.error?.response?.config.method;\n\n if (method) {\n this.printQueue.push(method.toUpperCase());\n }\n\n return this;\n }\n\n makeRequestData() {\n const data = this.request?.data || this.response?.config?.data || this.error?.response?.config.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeResponseDataText() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (data) {\n if (typeof data === 'string') {\n this.printQueue.push(data);\n\n return this;\n }\n\n if (Object.keys(data).length) {\n this.printQueue.push(JSON.stringify(data));\n\n return this;\n }\n }\n\n return this;\n }\n\n makeStatusText() {\n const status = this.response?.status || this.error?.response?.status;\n\n if (status) {\n this.printQueue.push(`${status}`);\n\n const statusText = this.response?.statusText || this.error?.response?.statusText;\n\n if (statusText) {\n this.printQueue.push(statusText);\n }\n }\n\n return this;\n }\n\n build() {\n return this.printQueue.join(' ');\n }\n\n makeMethod() {\n const method = this.request?.method || this.response?.config?.method || this.error?.response?.config.method;\n\n if (!method) {\n return HttpMethods.GET;\n }\n\n return method.toLowerCase() as HttpMethods;\n }\n\n makeResponseData() {\n const data = this.response?.data || this.error?.response?.data;\n\n if (!data) {\n return '';\n }\n\n if (typeof data === 'string') {\n return data;\n }\n\n return JSON.stringify(data);\n }\n\n makeStatus() {\n const status = this.response?.status || this.error?.response?.status;\n\n if (!status) {\n return HttpStatuses.INTERNAL_SERVER_ERROR;\n }\n\n return status as HttpStatuses;\n }\n\n makeResponse<T>() {\n return {\n success: this.error === undefined,\n status: this.makeStatus(),\n method: this.makeMethod(),\n data: this.makeResponseData() as T,\n };\n }\n}\n","import { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios';\nimport { MessageBuilder } from './builder';\nimport { BaseRequestConfig } from '@src/types';\n\nexport class LoggerService {\n private config: BaseRequestConfig;\n\n constructor(config: BaseRequestConfig) {\n this.config = config;\n }\n\n log(message: string, context?: string) {\n const ctx = context || this.config.name || '';\n\n if (ctx) {\n return console.log(`[${ctx}] ${message}`);\n }\n\n return console.log(message);\n }\n\n logRequest(request: InternalAxiosRequestConfig) {\n const loggerMessageBuilder = new MessageBuilder(this.config);\n\n const message = loggerMessageBuilder\n .setRequest(request)\n .makeType('Request')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .build();\n\n return this.log(message);\n }\n\n logResponse(response: AxiosResponse) {\n const loggerMessageBuilder = new MessageBuilder(this.config);\n\n const message = loggerMessageBuilder\n .setResponse(response)\n .makeType('Response')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .makeStatusText()\n .makeResponseDataText()\n .build();\n\n return this.log(message);\n }\n\n logRequestError(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder(this.config);\n\n const message = loggerMessageBuilder\n .setError(error)\n .makeType('Error')\n .makeMethodText()\n .makeUrl()\n .makeRequestData()\n .makeStatusText()\n .makeResponseDataText()\n .build();\n\n return this.log(message);\n }\n\n makeResponse<T>(response: AxiosResponse) {\n const loggerMessageBuilder = new MessageBuilder(this.config);\n\n const responseData = loggerMessageBuilder.setResponse(response).makeResponse<T>();\n\n return responseData;\n }\n\n makeErrorResponse<T>(error: AxiosError) {\n const loggerMessageBuilder = new MessageBuilder(this.config);\n\n const errorResponseData = loggerMessageBuilder.setError(error).makeResponse<T>();\n\n return errorResponseData;\n }\n}\n","export class RequestHelper {\n static sleep(seconds: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, seconds * 1000);\n });\n }\n}\n"],"mappings":";AACA,SAAS,iBAAiB;;;ACoDnB,IAAK,cAAL,kBAAKA,iBAAL;AACL,EAAAA,aAAA,SAAM;AACN,EAAAA,aAAA,UAAO;AACP,EAAAA,aAAA,SAAM;AACN,EAAAA,aAAA,YAAS;AAJC,SAAAA;AAAA,GAAA;AAOL,IAAK,eAAL,kBAAKC,kBAAL;AACL,EAAAA,4BAAA,QAAK,OAAL;AACA,EAAAA,4BAAA,aAAU,OAAV;AACA,EAAAA,4BAAA,cAAW,OAAX;AACA,EAAAA,4BAAA,gBAAa,OAAb;AACA,EAAAA,4BAAA,iBAAc,OAAd;AACA,EAAAA,4BAAA,kBAAe,OAAf;AACA,EAAAA,4BAAA,eAAY,OAAZ;AACA,EAAAA,4BAAA,eAAY,OAAZ;AACA,EAAAA,4BAAA,cAAW,OAAX;AACA,EAAAA,4BAAA,2BAAwB,OAAxB;AAVU,SAAAA;AAAA,GAAA;;;ADvDL,IAAM,iBAAN,MAAqB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,QAAyE;AACnF,SAAK,aAAa,OAAO;AACzB,SAAK,gBAAgB,OAAO;AAC5B,SAAK,SAAS;AAAA,MACZ,SAAS,OAAO,cAAc,WAAW,OAAO,WAAW;AAAA,MAC3D,SAAS;AAAA,QACP,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,GAAG,OAAO,WAAW;AAAA,QACrB,GAAG,OAAO,cAAc;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAAA,EAEA,kBAAkB;AAChB,QAAI,KAAK,cAAc,WAAW;AAChC,WAAK,SAAS;AAAA,QACZ,GAAG,KAAK;AAAA,QACR,SAAS;AAAA,UACP,GAAG,KAAK,OAAO;AAAA,UACf,gBAAgB;AAAA,QAClB;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,cAAc,YAAY;AACjC,WAAK,SAAS;AAAA,QACZ,GAAG,KAAK;AAAA,QACR,SAAS;AAAA,UACP,GAAG,KAAK,OAAO;AAAA,UACf,gBAAgB;AAAA,QAClB;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,cAAc,KAAK;AAC1B,WAAK,SAAS;AAAA,QACZ,GAAG,KAAK;AAAA,QACR,SAAS;AAAA,UACP,GAAG,KAAK,OAAO;AAAA,UACf,gBAAgB;AAAA,QAClB;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,UAAM,OAAO,KAAK,cAAc,QAAQ,KAAK,WAAW;AAExD,QAAI,MAAM;AACR,WAAK,SAAS;AAAA,QACZ,GAAG,KAAK;AAAA,QACR;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,cAAc,KAAK,cAAc,eAAe,KAAK,WAAW;AAEtE,QAAI,aAAa;AACf,WAAK,SAAS;AAAA,QACZ,GAAG,KAAK;AAAA,QACR,SAAS;AAAA,UACP,GAAG,KAAK,OAAO;AAAA,UACf,eAAe,UAAU,WAAW;AAAA,QACtC;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,UAAM,SAAS,KAAK,cAAc,UAAU,KAAK,WAAW;AAE5D,QAAI,QAAQ;AACV,WAAK,SAAS;AAAA,QACZ,GAAG,KAAK;AAAA,QACR,SAAS;AAAA,UACP,GAAG,KAAK,OAAO;AAAA,UACf,aAAa;AAAA,QACf;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,UAAU;AACR,UAAM,aAAa,KAAK,cAAc,cAAc,KAAK,WAAW;AACpE,UAAM,cAAc,KAAK,cAAc,eAAe,KAAK,WAAW;AAEtE,UAAM,WAAW;AAAA,MACf,cAAc,cAAc,WAAW,WAAW,IAAI,KAAK,WAAW;AAAA,MACtE,KAAK,WAAW;AAAA,MAChB,GAAI,KAAK,WAAW,YAAY,CAAC;AAAA,MACjC,KAAK,cAAc;AAAA,MACnB,KAAK,cAAc;AAAA,MACnB,GAAI,KAAK,cAAc,YAAY,CAAC;AAAA,IACtC,EAAE,IAAI,CAAC,YAAY,SAAS,SAAS,CAAC;AAEtC,UAAM,mBAAmB,SAAS,KAAK,CAAC,YAAY,SAAS,SAAS,OAAO,CAAC;AAC9E,UAAM,WAAW,mBAAmB,UAAU;AAE9C,UAAM,iBAAiB,SACpB,OAAO,CAAC,YAAY,OAAO,EAC3B,IAAI,CAAC,YAAY;AAChB,aAAO,SAAS,QAAQ,iCAAiC,IAAI;AAAA,IAC/D,CAAC;AAEH,UAAM,MAAM,GAAG,QAAQ,MAAM,eAAe,KAAK,GAAG,CAAC;AAErD,SAAK,SAAS;AAAA,MACZ,GAAG,KAAK;AAAA,MACR;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,SAAK,SAAS;AAAA,MACZ,GAAG,KAAK;AAAA,MACR,QAAQ,KAAK,cAAc;AAAA,IAC7B;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,WAAW;AACT,QAAI,KAAK,cAAc,4BAA4B;AACjD,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,cAAc,YAAY;AACjC,WAAK,SAAS;AAAA,QACZ,GAAG,KAAK;AAAA,QACR,MAAM,UAAU,KAAK,cAAc,IAAI;AAAA,MACzC;AAEA,aAAO;AAAA,IACT;AAEA,SAAK,SAAS;AAAA,MACZ,GAAG,KAAK;AAAA,MACR,MAAM,KAAK,cAAc;AAAA,IAC3B;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,SAAK,SAAS;AAAA,MACZ,GAAG,KAAK;AAAA,MACR,QAAQ,KAAK,cAAc;AAAA,IAC7B;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,SAAK,SAAS;AAAA,MACZ,GAAG,KAAK;AAAA,MACR,kBAAkB,CAAC,WAAgB;AACjC,eAAO,UAAU,QAAQ;AAAA,UACvB,aAAa,KAAK,WAAW,YAAY,SAAS;AAAA,UAClD,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ;AACN,WAAO,KAAK;AAAA,EACd;AACF;;;AEpMA,OAAO,WAA0C;;;ACCjD,SAAS,aAAAC,kBAAiB;AAGnB,IAAM,iBAAN,MAAqB;AAAA,EAClB;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAER,YAAY,QAA2B;AACrC,SAAK,aAAa,CAAC;AACnB,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,WAAW,SAAqC;AAC9C,SAAK,UAAU;AAEf,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,UAAyB;AACnC,SAAK,WAAW;AAEhB,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,OAAmB;AAC1B,SAAK,QAAQ;AAEb,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,MAAc;AACrB,SAAK,WAAW,KAAK,IAAI,IAAI,GAAG;AAEhC,WAAO;AAAA,EACT;AAAA,EAEA,UAAU;AACR,UAAM,MAAM,KAAK,SAAS,OAAO,KAAK,UAAU,QAAQ,OAAO,KAAK,OAAO,UAAU,OAAO;AAE5F,UAAM,SAAS,KAAK,SAAS,UAAU,KAAK,UAAU,QAAQ,UAAU,KAAK,OAAO,UAAU,OAAO;AAErG,QAAI,KAAK;AACP,UAAI,QAAQ;AACV,eAAO,OAAO,GAAG;AACjB,aAAK,WAAW;AAAA,UACd;AAAA,YACE;AAAA,YACAC,WAAU,QAAQ;AAAA,cAChB,aAAa,KAAK,OAAO,YAAY,SAAS;AAAA,cAC9C,WAAW;AAAA,YACb,CAAC;AAAA,UACH,EACG,OAAO,CAAC,MAAM,CAAC,EACf,KAAK,GAAG;AAAA,QACb;AAAA,MACF,OAAO;AACL,aAAK,WAAW,KAAK,GAAG;AAAA,MAC1B;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,UAAM,SAAS,KAAK,SAAS,UAAU,KAAK,UAAU,QAAQ,UAAU,KAAK,OAAO,UAAU,OAAO;AAErG,QAAI,QAAQ;AACV,WAAK,WAAW,KAAK,OAAO,YAAY,CAAC;AAAA,IAC3C;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,kBAAkB;AAChB,UAAM,OAAO,KAAK,SAAS,QAAQ,KAAK,UAAU,QAAQ,QAAQ,KAAK,OAAO,UAAU,OAAO;AAE/F,QAAI,MAAM;AACR,UAAI,OAAO,SAAS,UAAU;AAC5B,aAAK,WAAW,KAAK,IAAI;AAEzB,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,KAAK,IAAI,EAAE,QAAQ;AAC5B,aAAK,WAAW,KAAK,KAAK,UAAU,IAAI,CAAC;AAEzC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,uBAAuB;AACrB,UAAM,OAAO,KAAK,UAAU,QAAQ,KAAK,OAAO,UAAU;AAE1D,QAAI,MAAM;AACR,UAAI,OAAO,SAAS,UAAU;AAC5B,aAAK,WAAW,KAAK,IAAI;AAEzB,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,KAAK,IAAI,EAAE,QAAQ;AAC5B,aAAK,WAAW,KAAK,KAAK,UAAU,IAAI,CAAC;AAEzC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,UAAM,SAAS,KAAK,UAAU,UAAU,KAAK,OAAO,UAAU;AAE9D,QAAI,QAAQ;AACV,WAAK,WAAW,KAAK,GAAG,MAAM,EAAE;AAEhC,YAAM,aAAa,KAAK,UAAU,cAAc,KAAK,OAAO,UAAU;AAEtE,UAAI,YAAY;AACd,aAAK,WAAW,KAAK,UAAU;AAAA,MACjC;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ;AACN,WAAO,KAAK,WAAW,KAAK,GAAG;AAAA,EACjC;AAAA,EAEA,aAAa;AACX,UAAM,SAAS,KAAK,SAAS,UAAU,KAAK,UAAU,QAAQ,UAAU,KAAK,OAAO,UAAU,OAAO;AAErG,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AAEA,WAAO,OAAO,YAAY;AAAA,EAC5B;AAAA,EAEA,mBAAmB;AACjB,UAAM,OAAO,KAAK,UAAU,QAAQ,KAAK,OAAO,UAAU;AAE1D,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO;AAAA,IACT;AAEA,WAAO,KAAK,UAAU,IAAI;AAAA,EAC5B;AAAA,EAEA,aAAa;AACX,UAAM,SAAS,KAAK,UAAU,UAAU,KAAK,OAAO,UAAU;AAE9D,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,eAAkB;AAChB,WAAO;AAAA,MACL,SAAS,KAAK,UAAU;AAAA,MACxB,QAAQ,KAAK,WAAW;AAAA,MACxB,QAAQ,KAAK,WAAW;AAAA,MACxB,MAAM,KAAK,iBAAiB;AAAA,IAC9B;AAAA,EACF;AACF;;;ACjLO,IAAM,gBAAN,MAAoB;AAAA,EACjB;AAAA,EAER,YAAY,QAA2B;AACrC,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAI,SAAiB,SAAkB;AACrC,UAAM,MAAM,WAAW,KAAK,OAAO,QAAQ;AAE3C,QAAI,KAAK;AACP,aAAO,QAAQ,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE;AAAA,IAC1C;AAEA,WAAO,QAAQ,IAAI,OAAO;AAAA,EAC5B;AAAA,EAEA,WAAW,SAAqC;AAC9C,UAAM,uBAAuB,IAAI,eAAe,KAAK,MAAM;AAE3D,UAAM,UAAU,qBACb,WAAW,OAAO,EAClB,SAAS,SAAS,EAClB,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,MAAM;AAET,WAAO,KAAK,IAAI,OAAO;AAAA,EACzB;AAAA,EAEA,YAAY,UAAyB;AACnC,UAAM,uBAAuB,IAAI,eAAe,KAAK,MAAM;AAE3D,UAAM,UAAU,qBACb,YAAY,QAAQ,EACpB,SAAS,UAAU,EACnB,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,MAAM;AAET,WAAO,KAAK,IAAI,OAAO;AAAA,EACzB;AAAA,EAEA,gBAAgB,OAAmB;AACjC,UAAM,uBAAuB,IAAI,eAAe,KAAK,MAAM;AAE3D,UAAM,UAAU,qBACb,SAAS,KAAK,EACd,SAAS,OAAO,EAChB,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,MAAM;AAET,WAAO,KAAK,IAAI,OAAO;AAAA,EACzB;AAAA,EAEA,aAAgB,UAAyB;AACvC,UAAM,uBAAuB,IAAI,eAAe,KAAK,MAAM;AAE3D,UAAM,eAAe,qBAAqB,YAAY,QAAQ,EAAE,aAAgB;AAEhF,WAAO;AAAA,EACT;AAAA,EAEA,kBAAqB,OAAmB;AACtC,UAAM,uBAAuB,IAAI,eAAe,KAAK,MAAM;AAE3D,UAAM,oBAAoB,qBAAqB,SAAS,KAAK,EAAE,aAAgB;AAE/E,WAAO;AAAA,EACT;AACF;;;AFrEO,IAAM,oBAAN,MAML;AAAA,EACA;AAAA,EAEA,YAAY,mBAAsC;AAChD,SAAK,oBAAoB;AAAA,EAC3B;AAAA,EAMA,OAAU,eAA8B,iBAAiC,CAAC,GAAG;AAC3E,UAAM,gBAAgB,IAAI,cAAc,KAAK,iBAAiB;AAE9D,UAAM,iBAAiB,IAAI,eAAe;AAAA,MACxC,YAAY,KAAK;AAAA,MACjB;AAAA,IACF,CAAC;AAED,UAAM,UAAU,eACb,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAS,EACT,eAAe,EACf,MAAM;AAET,QAAI,KAAK,kBAAkB,QAAQ;AACjC,oBAAc,WAAW,OAAc;AAAA,IACzC;AAEA,WAAO,MACJ,QAAQ,OAAO,EACf,KAAK,CAAC,aAA+B;AACpC,UAAI,KAAK,kBAAkB,QAAQ;AACjC,sBAAc,YAAY,QAAe;AAAA,MAC3C;AAEA,UAAI,eAAe,KAAK;AACtB,eAAO,cAAc,aAAgB,QAAe;AAAA,MACtD;AAEA,aAAO,SAAS;AAAA,IAClB,CAAC,EACA,MAAM,CAAC,UAAsB;AAC5B,UAAI,KAAK,kBAAkB,OAAO;AAChC,gBAAQ,IAAI,UAAU,KAAK;AAAA,MAC7B;AAEA,UAAI,KAAK,kBAAkB,QAAQ;AACjC,sBAAc,gBAAgB,KAAY;AAAA,MAC5C;AAEA,UAAI,eAAe,KAAK;AACtB,eAAO,cAAc,kBAAqB,KAAY;AAAA,MACxD;AAEA,YAAM,MAAM,UAAU,QAAQ,MAAM,YAAY,IAAI,MAAM,MAAM,OAAO;AAAA,IACzE,CAAC;AAAA,EACL;AAAA,EAEA,OAAO,WAAc,eAA8B,iBAAiC,CAAC,GAAwB;AAC3G,UAAM,EAAE,OAAO,IAAI;AACnB,UAAM,EAAE,aAAa,IAAI;AACzB,UAAM,EAAE,MAAM,UAAU,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC;AAE9D,UAAM,gBAAgB;AAAA,MACpB,MAAM,QAAQ;AAAA,MACd,UAAU,YAAY;AAAA,IACxB;AAEA,UAAM,UAAU,WAAW,cAAc,OAAO,IAAI,WAAW;AAE/D,QAAI,aAAa;AAAA,MACf,OAAO;AAAA,MACP,aAAa;AAAA,MACb,UAAU;AAAA,MACV,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,UAAU;AAAA,IACZ;AAEA,OAAG;AACD,YAAM,WAAW,MAAM,KAAK,OAA8B;AAAA,QACxD,GAAG;AAAA,QACH,QAAQ;AAAA,UACN,GAAG;AAAA,UACH,GAAG;AAAA,QACL;AAAA,MACF,CAAC;AAED,mBAAa,SAAS;AAEtB,UAAI,CAAC,SAAS,MAAM,QAAQ;AAC1B;AAAA,MACF;AAEA,YAAM,SAAS;AAEf,oBAAc,QAAQ;AAAA,IACxB,SAAS,WAAW,gBAAgB,WAAW,YAAY,WAAW,gBAAgB;AAEtF,QAAI,WAAW,gBAAgB,WAAW,UAAU;AAClD,UAAI,cAAc;AAChB,cAAM,aAAa,cAAc,IAAI;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,SAAuB,CAAC,GAAmB;AAChD,WAAO,KAAK,OAAuB;AAAA,MACjC,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,SAAuB,CAAC,GAAmB;AACpD,WAAO,KAAK,WAAmB;AAAA,MAC7B,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,IAAqB,SAAuB,CAAC,GAAmB;AAClE,WAAO,KAAK,OAAe;AAAA,MACzB,GAAG;AAAA,MACH;AAAA,MACA,KAAK;AAAA,IACP,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,QAAsB;AAC3B,WAAO,KAAK,OAAe;AAAA,MACzB,GAAG;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,QAAuE;AAChF,WAAO,KAAK,OAAiB;AAAA,MAC3B,GAAG;AAAA,MACH;AAAA,MACA,KAAK;AAAA,MACL,MAAM;AAAA,QACJ,MAAM,OAAO;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,IAAqB,QAAsB;AAChD,WAAO,KAAK,OAAe;AAAA,MACzB,GAAG;AAAA,MACH;AAAA,MACA,KAAK;AAAA,IACP,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,QAAuE;AAChF,WAAO,KAAK,OAAiB;AAAA,MAC3B,GAAG;AAAA,MACH;AAAA,MACA,KAAK;AAAA,MACL,MAAM;AAAA,QACJ,MAAM,OAAO;AAAA,MACf;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,IAAqB,SAAuB,CAAC,GAAmB;AACrE,WAAO,KAAK,OAAa;AAAA,MACvB,GAAG;AAAA,MACH;AAAA,MACA,KAAK;AAAA,IACP,CAAC;AAAA,EACH;AACF;;;AGpMO,IAAM,gBAAN,MAAoB;AAAA,EACzB,OAAO,MAAM,SAAiB;AAC5B,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,iBAAW,SAAS,UAAU,GAAI;AAAA,IACpC,CAAC;AAAA,EACH;AACF;","names":["HttpMethods","HttpStatuses","stringify","stringify"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamnnort/request",
3
- "version": "1.11.5",
3
+ "version": "1.11.7",
4
4
  "description": "Request handler for Node.js - Fast - Interactive - Simple",
5
5
  "keywords": [
6
6
  "request",