@iamnnort/request 1.11.4 → 1.11.6

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
@@ -187,8 +187,10 @@ var MessageBuilder = class {
187
187
 
188
188
 
189
189
 
190
- constructor() {
190
+
191
+ constructor(config) {
191
192
  this.printQueue = [];
193
+ this.config = config;
192
194
  }
193
195
  setRequest(request) {
194
196
  this.request = request;
@@ -212,7 +214,15 @@ var MessageBuilder = class {
212
214
  if (url) {
213
215
  if (params) {
214
216
  delete params["0"];
215
- this.printQueue.push([url, _qs.stringify.call(void 0, params)].filter((_) => _).join("?"));
217
+ this.printQueue.push(
218
+ [
219
+ url,
220
+ _qs.stringify.call(void 0, params, {
221
+ arrayFormat: _optionalChain([this, 'access', _29 => _29.config, 'access', _30 => _30.serializer, 'optionalAccess', _31 => _31.array]) || "brackets",
222
+ skipNulls: true
223
+ })
224
+ ].filter((_) => _).join("?")
225
+ );
216
226
  } else {
217
227
  this.printQueue.push(url);
218
228
  }
@@ -220,14 +230,14 @@ var MessageBuilder = class {
220
230
  return this;
221
231
  }
222
232
  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]);
233
+ 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
234
  if (method) {
225
235
  this.printQueue.push(method.toUpperCase());
226
236
  }
227
237
  return this;
228
238
  }
229
239
  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]);
240
+ 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
241
  if (data) {
232
242
  if (typeof data === "string") {
233
243
  this.printQueue.push(data);
@@ -241,7 +251,7 @@ var MessageBuilder = class {
241
251
  return this;
242
252
  }
243
253
  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]);
254
+ 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
255
  if (data) {
246
256
  if (typeof data === "string") {
247
257
  this.printQueue.push(data);
@@ -255,10 +265,10 @@ var MessageBuilder = class {
255
265
  return this;
256
266
  }
257
267
  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]);
268
+ 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
269
  if (status) {
260
270
  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]);
271
+ 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
272
  if (statusText) {
263
273
  this.printQueue.push(statusText);
264
274
  }
@@ -269,14 +279,14 @@ var MessageBuilder = class {
269
279
  return this.printQueue.join(" ");
270
280
  }
271
281
  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]);
282
+ 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
283
  if (!method) {
274
284
  return "get" /* GET */;
275
285
  }
276
286
  return method.toLowerCase();
277
287
  }
278
288
  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]);
289
+ 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
290
  if (!data) {
281
291
  return "";
282
292
  }
@@ -286,7 +296,7 @@ var MessageBuilder = class {
286
296
  return JSON.stringify(data);
287
297
  }
288
298
  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]);
299
+ 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
300
  if (!status) {
291
301
  return 500 /* INTERNAL_SERVER_ERROR */;
292
302
  }
@@ -303,44 +313,44 @@ var MessageBuilder = class {
303
313
  };
304
314
 
305
315
  // 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;
316
+ var LoggerService = class {
317
+
318
+ constructor(config) {
319
+ this.config = config;
310
320
  }
311
321
  log(message, context) {
312
- const ctx = context || this.context || "";
322
+ const ctx = context || this.config.name || "";
313
323
  if (ctx) {
314
324
  return console.log(`[${ctx}] ${message}`);
315
325
  }
316
326
  return console.log(message);
317
327
  }
318
328
  logRequest(request) {
319
- const loggerMessageBuilder = new MessageBuilder();
329
+ const loggerMessageBuilder = new MessageBuilder(this.config);
320
330
  const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethodText().makeUrl().makeRequestData().build();
321
331
  return this.log(message);
322
332
  }
323
333
  logResponse(response) {
324
- const loggerMessageBuilder = new MessageBuilder();
334
+ const loggerMessageBuilder = new MessageBuilder(this.config);
325
335
  const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
326
336
  return this.log(message);
327
337
  }
328
338
  logRequestError(error) {
329
- const loggerMessageBuilder = new MessageBuilder();
339
+ const loggerMessageBuilder = new MessageBuilder(this.config);
330
340
  const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
331
341
  return this.log(message);
332
342
  }
333
343
  makeResponse(response) {
334
- const loggerMessageBuilder = new MessageBuilder();
344
+ const loggerMessageBuilder = new MessageBuilder(this.config);
335
345
  const responseData = loggerMessageBuilder.setResponse(response).makeResponse();
336
346
  return responseData;
337
347
  }
338
348
  makeErrorResponse(error) {
339
- const loggerMessageBuilder = new MessageBuilder();
349
+ const loggerMessageBuilder = new MessageBuilder(this.config);
340
350
  const errorResponseData = loggerMessageBuilder.setError(error).makeResponse();
341
351
  return errorResponseData;
342
352
  }
343
- }, _class);
353
+ };
344
354
 
345
355
  // src/data-source.ts
346
356
  var RequestDataSource = class {
@@ -349,7 +359,7 @@ var RequestDataSource = class {
349
359
  this.baseRequestConfig = baseRequestConfig;
350
360
  }
351
361
  common(requestConfig, responseConfig = {}) {
352
- const loggerService = new LoggerService(this.baseRequestConfig.name);
362
+ const loggerService = new LoggerService(this.baseRequestConfig);
353
363
  const requestBuilder = new RequestBuilder({
354
364
  baseConfig: this.baseRequestConfig,
355
365
  requestConfig
@@ -376,7 +386,7 @@ var RequestDataSource = class {
376
386
  if (responseConfig.raw) {
377
387
  return loggerService.makeErrorResponse(error);
378
388
  }
379
- throw _optionalChain([error, 'access', _81 => _81.response, 'optionalAccess', _82 => _82.data]) || error.response || new Error(error.message);
389
+ throw _optionalChain([error, 'access', _84 => _84.response, 'optionalAccess', _85 => _85.data]) || error.response || new Error(error.message);
380
390
  });
381
391
  }
382
392
  async *bulkCommon(requestConfig, responseConfig = {}) {
@@ -405,7 +415,7 @@ var RequestDataSource = class {
405
415
  }
406
416
  });
407
417
  pagination = response.pagination;
408
- if (!_optionalChain([response, 'access', _83 => _83.data, 'optionalAccess', _84 => _84.length])) {
418
+ if (!_optionalChain([response, 'access', _86 => _86.data, 'optionalAccess', _87 => _87.length])) {
409
419
  return;
410
420
  }
411
421
  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)].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":"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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);\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
@@ -187,8 +187,10 @@ var MessageBuilder = class {
187
187
  request;
188
188
  response;
189
189
  error;
190
- constructor() {
190
+ config;
191
+ constructor(config) {
191
192
  this.printQueue = [];
193
+ this.config = config;
192
194
  }
193
195
  setRequest(request) {
194
196
  this.request = request;
@@ -212,7 +214,15 @@ var MessageBuilder = class {
212
214
  if (url) {
213
215
  if (params) {
214
216
  delete params["0"];
215
- this.printQueue.push([url, stringify2(params)].filter((_) => _).join("?"));
217
+ this.printQueue.push(
218
+ [
219
+ url,
220
+ stringify2(params, {
221
+ arrayFormat: this.config.serializer?.array || "brackets",
222
+ skipNulls: true
223
+ })
224
+ ].filter((_) => _).join("?")
225
+ );
216
226
  } else {
217
227
  this.printQueue.push(url);
218
228
  }
@@ -304,39 +314,39 @@ var MessageBuilder = class {
304
314
 
305
315
  // src/logger/service.ts
306
316
  var LoggerService = class {
307
- context = "";
308
- constructor(context = "") {
309
- this.context = context;
317
+ config;
318
+ constructor(config) {
319
+ this.config = config;
310
320
  }
311
321
  log(message, context) {
312
- const ctx = context || this.context || "";
322
+ const ctx = context || this.config.name || "";
313
323
  if (ctx) {
314
324
  return console.log(`[${ctx}] ${message}`);
315
325
  }
316
326
  return console.log(message);
317
327
  }
318
328
  logRequest(request) {
319
- const loggerMessageBuilder = new MessageBuilder();
329
+ const loggerMessageBuilder = new MessageBuilder(this.config);
320
330
  const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethodText().makeUrl().makeRequestData().build();
321
331
  return this.log(message);
322
332
  }
323
333
  logResponse(response) {
324
- const loggerMessageBuilder = new MessageBuilder();
334
+ const loggerMessageBuilder = new MessageBuilder(this.config);
325
335
  const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
326
336
  return this.log(message);
327
337
  }
328
338
  logRequestError(error) {
329
- const loggerMessageBuilder = new MessageBuilder();
339
+ const loggerMessageBuilder = new MessageBuilder(this.config);
330
340
  const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
331
341
  return this.log(message);
332
342
  }
333
343
  makeResponse(response) {
334
- const loggerMessageBuilder = new MessageBuilder();
344
+ const loggerMessageBuilder = new MessageBuilder(this.config);
335
345
  const responseData = loggerMessageBuilder.setResponse(response).makeResponse();
336
346
  return responseData;
337
347
  }
338
348
  makeErrorResponse(error) {
339
- const loggerMessageBuilder = new MessageBuilder();
349
+ const loggerMessageBuilder = new MessageBuilder(this.config);
340
350
  const errorResponseData = loggerMessageBuilder.setError(error).makeResponse();
341
351
  return errorResponseData;
342
352
  }
@@ -349,7 +359,7 @@ var RequestDataSource = class {
349
359
  this.baseRequestConfig = baseRequestConfig;
350
360
  }
351
361
  common(requestConfig, responseConfig = {}) {
352
- const loggerService = new LoggerService(this.baseRequestConfig.name);
362
+ const loggerService = new LoggerService(this.baseRequestConfig);
353
363
  const requestBuilder = new RequestBuilder({
354
364
  baseConfig: this.baseRequestConfig,
355
365
  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)].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 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":"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","names":["HttpMethods","HttpStatuses","stringify","stringify"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamnnort/request",
3
- "version": "1.11.4",
3
+ "version": "1.11.6",
4
4
  "description": "Request handler for Node.js - Fast - Interactive - Simple",
5
5
  "keywords": [
6
6
  "request",