@iamnnort/request 1.10.0 → 1.10.2

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.d.mts CHANGED
@@ -96,9 +96,13 @@ declare class RequestDataSource<Entity extends Record<string, any> = any, Search
96
96
  bulkSearch(config?: SearchParams): AsyncGenerator<Entity[]>;
97
97
  get(id: number | string, config?: SearchParams): Promise<Entity>;
98
98
  create(config: CreateParams): Promise<Entity>;
99
- bulkCreate(config: CreateParams): Promise<Entity[]>;
99
+ bulkCreate(config: Omit<CreateParams, 'data'> & {
100
+ data: CreateParams['data'][];
101
+ }): Promise<Entity[]>;
100
102
  update(id: number | string, config: UpdateParams): Promise<Entity>;
101
- bulkUpdate(config: UpdateParams): Promise<Entity[]>;
103
+ bulkUpdate(config: Omit<UpdateParams, 'data'> & {
104
+ data: UpdateParams['data'][];
105
+ }): Promise<Entity[]>;
102
106
  remove(id: number | string, config?: SearchParams): Promise<void>;
103
107
  }
104
108
 
package/dist/index.d.ts CHANGED
@@ -96,9 +96,13 @@ declare class RequestDataSource<Entity extends Record<string, any> = any, Search
96
96
  bulkSearch(config?: SearchParams): AsyncGenerator<Entity[]>;
97
97
  get(id: number | string, config?: SearchParams): Promise<Entity>;
98
98
  create(config: CreateParams): Promise<Entity>;
99
- bulkCreate(config: CreateParams): Promise<Entity[]>;
99
+ bulkCreate(config: Omit<CreateParams, 'data'> & {
100
+ data: CreateParams['data'][];
101
+ }): Promise<Entity[]>;
100
102
  update(id: number | string, config: UpdateParams): Promise<Entity>;
101
- bulkUpdate(config: UpdateParams): Promise<Entity[]>;
103
+ bulkUpdate(config: Omit<UpdateParams, 'data'> & {
104
+ data: UpdateParams['data'][];
105
+ }): Promise<Entity[]>;
102
106
  remove(id: number | string, config?: SearchParams): Promise<void>;
103
107
  }
104
108
 
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; }// 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; } var _class;// src/builder.ts
2
2
  var _qs = require('qs');
3
3
 
4
4
  // src/types.ts
@@ -179,126 +179,168 @@ var RequestBuilder = class {
179
179
  // src/data-source.ts
180
180
  var _axios = require('axios'); var _axios2 = _interopRequireDefault(_axios);
181
181
 
182
- // src/logger/logger.ts
182
+ // src/logger/builder.ts
183
183
 
184
- var makeType = (type) => {
185
- return `[${type}]`;
186
- };
187
- var makeUrl = (dto = {}) => {
188
- const url = _optionalChain([dto, 'access', _11 => _11.request, 'optionalAccess', _12 => _12.url]) || _optionalChain([dto, 'access', _13 => _13.response, 'optionalAccess', _14 => _14.config, 'optionalAccess', _15 => _15.url]) || _optionalChain([dto, 'access', _16 => _16.error, 'optionalAccess', _17 => _17.response, 'optionalAccess', _18 => _18.config, 'access', _19 => _19.url]);
189
- const params = _optionalChain([dto, 'access', _20 => _20.request, 'optionalAccess', _21 => _21.params]) || _optionalChain([dto, 'access', _22 => _22.response, 'optionalAccess', _23 => _23.config, 'optionalAccess', _24 => _24.params]) || _optionalChain([dto, 'access', _25 => _25.error, 'optionalAccess', _26 => _26.response, 'optionalAccess', _27 => _27.config, 'access', _28 => _28.params]);
190
- if (!url) {
191
- return "";
192
- }
193
- if (params) {
194
- delete params["0"];
195
- return [url, _qs.stringify.call(void 0, params)].filter((_) => _).join("?");
196
- } else {
197
- return url;
184
+ var MessageBuilder = class {
185
+
186
+
187
+
188
+
189
+ constructor() {
190
+ this.printQueue = [];
198
191
  }
199
- };
200
- var makeMethod = (dto = {}) => {
201
- const method = _optionalChain([dto, 'access', _29 => _29.request, 'optionalAccess', _30 => _30.method]) || _optionalChain([dto, 'access', _31 => _31.response, 'optionalAccess', _32 => _32.config, 'optionalAccess', _33 => _33.method]) || _optionalChain([dto, 'access', _34 => _34.error, 'optionalAccess', _35 => _35.response, 'optionalAccess', _36 => _36.config, 'access', _37 => _37.method]);
202
- if (!method) {
203
- return "get" /* GET */;
192
+ setRequest(request) {
193
+ this.request = request;
194
+ return this;
204
195
  }
205
- return method.toLowerCase();
206
- };
207
- var makeMethodText = (dto = {}) => {
208
- const method = _optionalChain([dto, 'access', _38 => _38.request, 'optionalAccess', _39 => _39.method]) || _optionalChain([dto, 'access', _40 => _40.response, 'optionalAccess', _41 => _41.config, 'optionalAccess', _42 => _42.method]) || _optionalChain([dto, 'access', _43 => _43.error, 'optionalAccess', _44 => _44.response, 'optionalAccess', _45 => _45.config, 'access', _46 => _46.method]);
209
- if (!method) {
210
- return "";
196
+ setResponse(response) {
197
+ this.response = response;
198
+ return this;
211
199
  }
212
- return method.toUpperCase();
213
- };
214
- var makeRequestData = (dto = {}) => {
215
- const data = _optionalChain([dto, 'access', _47 => _47.request, 'optionalAccess', _48 => _48.body]) || _optionalChain([dto, 'access', _49 => _49.request, 'optionalAccess', _50 => _50.data]) || _optionalChain([dto, 'access', _51 => _51.response, 'optionalAccess', _52 => _52.config, 'optionalAccess', _53 => _53.data]) || _optionalChain([dto, 'access', _54 => _54.error, 'optionalAccess', _55 => _55.response, 'optionalAccess', _56 => _56.config, 'access', _57 => _57.data]);
216
- if (!data) {
217
- return "";
200
+ setError(error) {
201
+ this.error = error;
202
+ return this;
218
203
  }
219
- if (typeof data === "string") {
220
- return data;
204
+ makeType(type) {
205
+ this.printQueue.push(`[${type}]`);
206
+ return this;
221
207
  }
222
- return JSON.stringify(data);
223
- };
224
- var makeResponseData = (dto = {}) => {
225
- const data = _optionalChain([dto, 'access', _58 => _58.response, 'optionalAccess', _59 => _59.data]) || _optionalChain([dto, 'access', _60 => _60.error, 'optionalAccess', _61 => _61.response, 'optionalAccess', _62 => _62.data]);
226
- if (!data) {
227
- return "";
208
+ makeUrl() {
209
+ const url = _optionalChain([this, 'access', _11 => _11.request, 'optionalAccess', _12 => _12.url]) || _optionalChain([this, 'access', _13 => _13.response, 'optionalAccess', _14 => _14.config, 'optionalAccess', _15 => _15.url]) || _optionalChain([this, 'access', _16 => _16.error, 'optionalAccess', _17 => _17.response, 'optionalAccess', _18 => _18.config, 'access', _19 => _19.url]);
210
+ const params = _optionalChain([this, 'access', _20 => _20.request, 'optionalAccess', _21 => _21.params]) || _optionalChain([this, 'access', _22 => _22.response, 'optionalAccess', _23 => _23.config, 'optionalAccess', _24 => _24.params]) || _optionalChain([this, 'access', _25 => _25.error, 'optionalAccess', _26 => _26.response, 'optionalAccess', _27 => _27.config, 'access', _28 => _28.params]);
211
+ if (url) {
212
+ if (params) {
213
+ delete params["0"];
214
+ this.printQueue.push([url, _qs.stringify.call(void 0, params)].filter((_) => _).join("?"));
215
+ } else {
216
+ this.printQueue.push(url);
217
+ }
218
+ }
219
+ return this;
228
220
  }
229
- if (typeof data === "string") {
230
- return data;
221
+ makeMethodText() {
222
+ 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]);
223
+ if (method) {
224
+ this.printQueue.push(method.toUpperCase());
225
+ }
226
+ return this;
231
227
  }
232
- return JSON.stringify(data);
233
- };
234
- var makeStatus = (dto = {}) => {
235
- const status = _optionalChain([dto, 'access', _63 => _63.response, 'optionalAccess', _64 => _64.status]) || _optionalChain([dto, 'access', _65 => _65.error, 'optionalAccess', _66 => _66.response, 'optionalAccess', _67 => _67.status]);
236
- if (!status) {
237
- return 500 /* INTERNAL_SERVER_ERROR */;
228
+ makeRequestData() {
229
+ 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]);
230
+ if (data) {
231
+ if (typeof data === "string") {
232
+ this.printQueue.push(data);
233
+ return this;
234
+ }
235
+ if (Object.keys(data).length) {
236
+ this.printQueue.push(JSON.stringify(data));
237
+ return this;
238
+ }
239
+ }
240
+ return this;
238
241
  }
239
- return status;
240
- };
241
- var makeStatusText = (dto = {}) => {
242
- const status = _optionalChain([dto, 'access', _68 => _68.response, 'optionalAccess', _69 => _69.status]) || _optionalChain([dto, 'access', _70 => _70.error, 'optionalAccess', _71 => _71.response, 'optionalAccess', _72 => _72.status]);
243
- if (!status) {
244
- return "";
242
+ makeResponseDataText() {
243
+ 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]);
244
+ if (data) {
245
+ if (typeof data === "string") {
246
+ this.printQueue.push(data);
247
+ return this;
248
+ }
249
+ if (Object.keys(data).length) {
250
+ this.printQueue.push(JSON.stringify(data));
251
+ return this;
252
+ }
253
+ }
254
+ return this;
245
255
  }
246
- const statusText = _optionalChain([dto, 'access', _73 => _73.response, 'optionalAccess', _74 => _74.statusText]) || _optionalChain([dto, 'access', _75 => _75.error, 'optionalAccess', _76 => _76.response, 'optionalAccess', _77 => _77.statusText]);
247
- if (statusText) {
248
- return `${status} ${statusText}`;
256
+ makeStatusText() {
257
+ 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]);
258
+ if (status) {
259
+ this.printQueue.push(`${status}`);
260
+ 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]);
261
+ if (statusText) {
262
+ this.printQueue.push(statusText);
263
+ }
264
+ }
265
+ return this;
266
+ }
267
+ build() {
268
+ return this.printQueue.join(" ");
269
+ }
270
+ makeMethod() {
271
+ 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]);
272
+ if (!method) {
273
+ return "get" /* GET */;
274
+ }
275
+ return method.toLowerCase();
276
+ }
277
+ makeResponseData() {
278
+ 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]);
279
+ if (!data) {
280
+ return "";
281
+ }
282
+ if (typeof data === "string") {
283
+ return data;
284
+ }
285
+ return JSON.stringify(data);
286
+ }
287
+ makeStatus() {
288
+ 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]);
289
+ if (!status) {
290
+ return 500 /* INTERNAL_SERVER_ERROR */;
291
+ }
292
+ return status;
293
+ }
294
+ makeResponse() {
295
+ return {
296
+ success: this.error === void 0,
297
+ status: this.makeStatus(),
298
+ method: this.makeMethod(),
299
+ data: this.makeResponseData()
300
+ };
249
301
  }
250
- return `${status}`;
251
- };
252
- var makeResponse = (dto = {}) => {
253
- return {
254
- success: dto.error === void 0,
255
- status: makeStatus(dto),
256
- method: makeMethod(dto),
257
- data: makeResponseData(dto)
258
- };
259
- };
260
- var logRequest = (request) => {
261
- log([makeType("Request"), makeMethodText({ request }), makeUrl({ request }), makeRequestData({ request })]);
262
- };
263
- var logResponse = (response) => {
264
- log([
265
- makeType("Response"),
266
- makeMethodText({ response }),
267
- makeUrl({ response }),
268
- makeRequestData({ response }),
269
- makeStatusText({ response }),
270
- makeResponseData({ response })
271
- ]);
272
- };
273
- var logRequestError = (error) => {
274
- log([
275
- makeType("Error"),
276
- makeMethodText({ error }),
277
- makeUrl({ error }),
278
- makeRequestData({ error }),
279
- makeStatusText({ error }),
280
- makeResponseData({ error })
281
- ]);
282
- };
283
- var log = (messageParts) => {
284
- const message = messageParts.filter((_) => _).join(" ");
285
- console.log(message);
286
- };
287
- var loggerHelper = {
288
- makeType,
289
- makeUrl,
290
- makeMethod,
291
- makeMethodText,
292
- makeRequestData,
293
- makeResponseData,
294
- makeStatus,
295
- makeStatusText,
296
- makeResponse,
297
- logRequest,
298
- logResponse,
299
- logRequestError
300
302
  };
301
303
 
304
+ // src/logger/service.ts
305
+ var LoggerService = (_class = class {
306
+ __init() {this.context = ""}
307
+ constructor(context = "") {;_class.prototype.__init.call(this);
308
+ this.context = context;
309
+ }
310
+ log(message, context) {
311
+ const ctx = context || this.context || "";
312
+ if (ctx) {
313
+ return console.log(`[${ctx}] ${message}`);
314
+ }
315
+ return console.log(message);
316
+ }
317
+ logRequest(request) {
318
+ const loggerMessageBuilder = new MessageBuilder();
319
+ const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethodText().makeUrl().makeRequestData().build();
320
+ return this.log(message);
321
+ }
322
+ logResponse(response) {
323
+ const loggerMessageBuilder = new MessageBuilder();
324
+ const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
325
+ return this.log(message);
326
+ }
327
+ logRequestError(error) {
328
+ const loggerMessageBuilder = new MessageBuilder();
329
+ const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
330
+ return this.log(message);
331
+ }
332
+ makeResponse(response) {
333
+ const loggerMessageBuilder = new MessageBuilder();
334
+ const responseData = loggerMessageBuilder.setResponse(response).makeResponse();
335
+ return responseData;
336
+ }
337
+ makeErrorResponse(error) {
338
+ const loggerMessageBuilder = new MessageBuilder();
339
+ const errorResponseData = loggerMessageBuilder.setError(error).makeResponse();
340
+ return errorResponseData;
341
+ }
342
+ }, _class);
343
+
302
344
  // src/data-source.ts
303
345
  var RequestDataSource = class {
304
346
 
@@ -306,20 +348,21 @@ var RequestDataSource = class {
306
348
  this.baseRequestConfig = baseRequestConfig;
307
349
  }
308
350
  common(requestConfig, responseConfig = {}) {
351
+ const loggerService = new LoggerService(this.baseRequestConfig.name);
309
352
  const requestBuilder = new RequestBuilder({
310
353
  baseConfig: this.baseRequestConfig,
311
354
  requestConfig
312
355
  });
313
356
  const request = requestBuilder.makeContentType().makeAuth().makeUrl().makeMethod().makeParams().makeData().makeSerializer().build();
314
357
  if (this.baseRequestConfig.logger) {
315
- loggerHelper.logRequest(request);
358
+ loggerService.logRequest(request);
316
359
  }
317
360
  return _axios2.default.request(request).then((response) => {
318
361
  if (this.baseRequestConfig.logger) {
319
- loggerHelper.logResponse(response);
362
+ loggerService.logResponse(response);
320
363
  }
321
364
  if (responseConfig.raw) {
322
- return loggerHelper.makeResponse({ response });
365
+ return loggerService.makeResponse(response);
323
366
  }
324
367
  return response.data;
325
368
  }).catch((error) => {
@@ -327,12 +370,12 @@ var RequestDataSource = class {
327
370
  console.log("Error:", error);
328
371
  }
329
372
  if (this.baseRequestConfig.logger) {
330
- loggerHelper.logRequestError(error);
373
+ loggerService.logRequestError(error);
331
374
  }
332
375
  if (responseConfig.raw) {
333
- return loggerHelper.makeResponse({ error });
376
+ return loggerService.makeErrorResponse(error);
334
377
  }
335
- throw _optionalChain([error, 'access', _78 => _78.response, 'optionalAccess', _79 => _79.data]) || error.response || new Error(error.message);
378
+ throw _optionalChain([error, 'access', _81 => _81.response, 'optionalAccess', _82 => _82.data]) || error.response || new Error(error.message);
336
379
  });
337
380
  }
338
381
  search(config = {}) {
@@ -344,11 +387,11 @@ var RequestDataSource = class {
344
387
  async *bulkSearch(config = {}) {
345
388
  let pagination = {
346
389
  total: 0,
347
- currentPage: _optionalChain([config, 'access', _80 => _80.params, 'optionalAccess', _81 => _81.page]) || 0,
390
+ currentPage: _optionalChain([config, 'access', _83 => _83.params, 'optionalAccess', _84 => _84.page]) || 0,
348
391
  lastPage: 0,
349
392
  from: 0,
350
393
  to: 0,
351
- pageSize: _optionalChain([config, 'access', _82 => _82.params, 'optionalAccess', _83 => _83.pageSize]) || 30
394
+ pageSize: _optionalChain([config, 'access', _85 => _85.params, 'optionalAccess', _86 => _86.pageSize]) || 30
352
395
  };
353
396
  do {
354
397
  const response = await this.common({
@@ -360,7 +403,7 @@ var RequestDataSource = class {
360
403
  pageSize: pagination.pageSize
361
404
  }
362
405
  });
363
- if (!_optionalChain([response, 'access', _84 => _84.data, 'optionalAccess', _85 => _85.length])) {
406
+ if (!_optionalChain([response, 'access', _87 => _87.data, 'optionalAccess', _88 => _88.length])) {
364
407
  return [];
365
408
  }
366
409
  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/logger.ts","../src/helper.ts"],"names":["HttpMethods","HttpStatuses"],"mappings":"AAAA;ACCA,wBAA0B;ADC1B;AACA;AE2CO,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;AF7BZ;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;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;AACkB,QAAA;AAC1C,MAAA;AACH,IAAA;AAGF,IAAA;AAAO,EAAA;AACT,EAAA;AAGE,IAAA;AAAY,EAAA;AAEhB;ADjBA;AACA;AGlLA;AHoLA;AACA;AIpLA;AASA;AACE,EAAA;AACF;AAEA;AACE,EAAA;AAEA,EAAA;AAEA,EAAA;AACE,IAAA;AAAO,EAAA;AAGT,EAAA;AACE,IAAA;AACA,IAAA;AAAyD,EAAA;AAEzD,IAAA;AAAO,EAAA;AAEX;AAEA;AACE,EAAA;AAEA,EAAA;AACE,IAAA;AAAA,EAAA;AAGF,EAAA;AACF;AAEA;AACE,EAAA;AAEA,EAAA;AACE,IAAA;AAAO,EAAA;AAGT,EAAA;AACF;AAEA;AACE,EAAA;AAEA,EAAA;AACE,IAAA;AAAO,EAAA;AAGT,EAAA;AACE,IAAA;AAAO,EAAA;AAGT,EAAA;AACF;AAEA;AACE,EAAA;AAEA,EAAA;AACE,IAAA;AAAO,EAAA;AAGT,EAAA;AACE,IAAA;AAAO,EAAA;AAGT,EAAA;AACF;AAEA;AACE,EAAA;AAEA,EAAA;AACE,IAAA;AAAA,EAAA;AAGF,EAAA;AACF;AAEA;AACE,EAAA;AAEA,EAAA;AACE,IAAA;AAAO,EAAA;AAGT,EAAA;AAEA,EAAA;AACE,IAAA;AAA8B,EAAA;AAGhC,EAAA;AACF;AAEA;AACE,EAAA;AAAO,IAAA;AACkB,IAAA;AACD,IAAA;AACA,IAAA;AACI,EAAA;AAE9B;AAEA;AACE,EAAA;AACF;AAEA;AACE,EAAA;AAAI,IAAA;AACiB,IAAA;AACQ,IAAA;AACP,IAAA;AACQ,IAAA;AACD,IAAA;AACE,EAAA;AAEjC;AAEA;AACE,EAAA;AAAI,IAAA;AACc,IAAA;AACQ,IAAA;AACP,IAAA;AACQ,IAAA;AACD,IAAA;AACE,EAAA;AAE9B;AAEA;AACE,EAAA;AAEA,EAAA;AACF;AAEO;AAAqB,EAAA;AAC1B,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AAEF;AJ6IA;AACA;AG/RO;AAML,EAAA;AACA,EAAA;AAGE,IAAA;AAAyB,EAAA;AAC3B,EAAA;AAOE,IAAA;AAA0C,MAAA;AACvB,MAAA;AACjB,IAAA;AAGF,IAAA;AAUA,IAAA;AACE,MAAA;AAAsC,IAAA;AAGxC,IAAA;AAGI,MAAA;AACE,QAAA;AAAwC,MAAA;AAG1C,MAAA;AACE,QAAA;AAAuD,MAAA;AAGzD,MAAA;AAAgB,IAAA;AAGhB,MAAA;AACE,QAAA;AAA2B,MAAA;AAG7B,MAAA;AACE,QAAA;AAAyC,MAAA;AAG3C,MAAA;AACE,QAAA;AAAoD,MAAA;AAGtD,MAAA;AAAuE,IAAA;AACxE,EAAA;AACL,EAAA;AAGE,IAAA;AAAmC,MAAA;AAC9B,MAAA;AACH,IAAA;AACD,EAAA;AACH,EAAA;AAGE,IAAA;AAA6B,MAAA;AACpB,MAAA;AAC6B,MAAA;AAC1B,MAAA;AACJ,MAAA;AACF,MAAA;AACiC,IAAA;AAGvC,IAAA;AACE,MAAA;AAA+D,QAAA;AAC1D,QAAA;AACH,QAAA;AACQ,UAAA;AACI,UAAA;AACqB,UAAA;AACV,QAAA;AACvB,MAAA;AAGF,MAAA;AACE,QAAA;AAAQ,MAAA;AAGV,MAAA;AAEA,MAAA;AAAsB,IAAA;AACuB,EAAA;AACjD,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;AHsPA;AACA;AKlaO;AAAoB,EAAA;AAEvB,IAAA;AACE,MAAA;AAAkC,IAAA;AACnC,EAAA;AAEL;ALoaA;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 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,\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};\n\nexport type RawResponse<T> = {\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 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> = {\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 Pagination,\n PaginationResponse,\n} from './types';\nimport { loggerHelper } from './logger/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 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 loggerHelper.logRequest(request as any);\n }\n\n return axios\n .request(request)\n .then((response: AxiosResponse<T>) => {\n if (this.baseRequestConfig.logger) {\n loggerHelper.logResponse(response as any);\n }\n\n if (responseConfig.raw) {\n return loggerHelper.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 loggerHelper.logRequestError(error as any);\n }\n\n if (responseConfig.raw) {\n return loggerHelper.makeResponse<T>({ error } as any);\n }\n\n throw error.response?.data || error.response || new Error(error.message);\n });\n }\n\n search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n async *bulkSearch(config: SearchParams = {} as SearchParams): AsyncGenerator<Entity[]> {\n let pagination: Pagination = {\n total: 0,\n currentPage: config.params?.page || 0,\n lastPage: 0,\n from: 0,\n to: 0,\n pageSize: config.params?.pageSize || 30,\n };\n\n do {\n const response = await this.common<PaginationResponse<Entity>>({\n ...config,\n method: HttpMethods.GET,\n params: {\n ...config.params,\n page: pagination.currentPage + 1,\n pageSize: pagination.pageSize,\n },\n });\n\n if (!response.data?.length) {\n return [];\n }\n\n yield response.data;\n\n pagination = response.pagination;\n } while (pagination.currentPage !== pagination.lastPage);\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: CreateParams) {\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: UpdateParams) {\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\ntype LoggerDto = {\n request?: InternalAxiosRequestConfig & Request;\n response?: AxiosResponse & Response;\n error?: AxiosError;\n};\n\nconst makeType = (type: string) => {\n return `[${type}]`;\n};\n\nconst makeUrl = (dto: LoggerDto = {}) => {\n const url = dto.request?.url || dto.response?.config?.url || dto.error?.response?.config.url;\n\n const params = dto.request?.params || dto.response?.config?.params || dto.error?.response?.config.params;\n\n if (!url) {\n return '';\n }\n\n if (params) {\n delete params['0'];\n return [url, stringify(params)].filter((_) => _).join('?');\n } else {\n return url;\n }\n};\n\nconst makeMethod = (dto: LoggerDto = {}) => {\n const method = dto.request?.method || dto.response?.config?.method || dto.error?.response?.config.method;\n\n if (!method) {\n return HttpMethods.GET;\n }\n\n return method.toLowerCase() as HttpMethods;\n};\n\nconst makeMethodText = (dto: LoggerDto = {}) => {\n const method = dto.request?.method || dto.response?.config?.method || dto.error?.response?.config.method;\n\n if (!method) {\n return '';\n }\n\n return method.toUpperCase();\n};\n\nconst makeRequestData = (dto: LoggerDto = {}) => {\n const data = dto.request?.body || dto.request?.data || dto.response?.config?.data || dto.error?.response?.config.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\nconst makeResponseData = (dto: LoggerDto = {}) => {\n const data = dto.response?.data || dto.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\nconst makeStatus = (dto: LoggerDto = {}) => {\n const status = dto.response?.status || dto.error?.response?.status;\n\n if (!status) {\n return HttpStatuses.INTERNAL_SERVER_ERROR;\n }\n\n return status as HttpStatuses;\n};\n\nconst makeStatusText = (dto: LoggerDto = {}) => {\n const status = dto.response?.status || dto.error?.response?.status;\n\n if (!status) {\n return '';\n }\n\n const statusText = dto.response?.statusText || dto.error?.response?.statusText;\n\n if (statusText) {\n return `${status} ${statusText}`;\n }\n\n return `${status}`;\n};\n\nconst makeResponse = <T>(dto: LoggerDto = {}) => {\n return {\n success: dto.error === undefined,\n status: makeStatus(dto),\n method: makeMethod(dto),\n data: makeResponseData(dto) as T,\n };\n};\n\nconst logRequest = (request: InternalAxiosRequestConfig & Request) => {\n log([makeType('Request'), makeMethodText({ request }), makeUrl({ request }), makeRequestData({ request })]);\n};\n\nconst logResponse = (response: AxiosResponse & Response) => {\n log([\n makeType('Response'),\n makeMethodText({ response }),\n makeUrl({ response }),\n makeRequestData({ response }),\n makeStatusText({ response }),\n makeResponseData({ response }),\n ]);\n};\n\nconst logRequestError = (error: AxiosError) => {\n log([\n makeType('Error'),\n makeMethodText({ error }),\n makeUrl({ error }),\n makeRequestData({ error }),\n makeStatusText({ error }),\n makeResponseData({ error }),\n ]);\n};\n\nconst log = (messageParts: string[]) => {\n const message = messageParts.filter((_) => _).join(' ');\n\n console.log(message);\n};\n\nexport const loggerHelper = {\n makeType,\n makeUrl,\n makeMethod,\n makeMethodText,\n makeRequestData,\n makeResponseData,\n makeStatus,\n makeStatusText,\n makeResponse,\n logRequest,\n logResponse,\n logRequestError,\n};\n","export class RequestHelper {\n 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,\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};\n\nexport type RawResponse<T> = {\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 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> = {\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 Pagination,\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 search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n async *bulkSearch(config: SearchParams = {} as SearchParams): AsyncGenerator<Entity[]> {\n let pagination: Pagination = {\n total: 0,\n currentPage: config.params?.page || 0,\n lastPage: 0,\n from: 0,\n to: 0,\n pageSize: config.params?.pageSize || 30,\n };\n\n do {\n const response = await this.common<PaginationResponse<Entity>>({\n ...config,\n method: HttpMethods.GET,\n params: {\n ...config.params,\n page: pagination.currentPage + 1,\n pageSize: pagination.pageSize,\n },\n });\n\n if (!response.data?.length) {\n return [];\n }\n\n yield response.data;\n\n pagination = response.pagination;\n } while (pagination.currentPage !== pagination.lastPage);\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 sleep(seconds: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, seconds * 1000);\n });\n }\n}\n"]}
package/dist/index.mjs CHANGED
@@ -179,124 +179,166 @@ var RequestBuilder = class {
179
179
  // src/data-source.ts
180
180
  import axios from "axios";
181
181
 
182
- // src/logger/logger.ts
182
+ // src/logger/builder.ts
183
183
  import { stringify as stringify2 } from "qs";
184
- var makeType = (type) => {
185
- return `[${type}]`;
186
- };
187
- var makeUrl = (dto = {}) => {
188
- const url = dto.request?.url || dto.response?.config?.url || dto.error?.response?.config.url;
189
- const params = dto.request?.params || dto.response?.config?.params || dto.error?.response?.config.params;
190
- if (!url) {
191
- return "";
192
- }
193
- if (params) {
194
- delete params["0"];
195
- return [url, stringify2(params)].filter((_) => _).join("?");
196
- } else {
197
- return url;
184
+ var MessageBuilder = class {
185
+ printQueue;
186
+ request;
187
+ response;
188
+ error;
189
+ constructor() {
190
+ this.printQueue = [];
198
191
  }
199
- };
200
- var makeMethod = (dto = {}) => {
201
- const method = dto.request?.method || dto.response?.config?.method || dto.error?.response?.config.method;
202
- if (!method) {
203
- return "get" /* GET */;
192
+ setRequest(request) {
193
+ this.request = request;
194
+ return this;
204
195
  }
205
- return method.toLowerCase();
206
- };
207
- var makeMethodText = (dto = {}) => {
208
- const method = dto.request?.method || dto.response?.config?.method || dto.error?.response?.config.method;
209
- if (!method) {
210
- return "";
196
+ setResponse(response) {
197
+ this.response = response;
198
+ return this;
211
199
  }
212
- return method.toUpperCase();
213
- };
214
- var makeRequestData = (dto = {}) => {
215
- const data = dto.request?.body || dto.request?.data || dto.response?.config?.data || dto.error?.response?.config.data;
216
- if (!data) {
217
- return "";
200
+ setError(error) {
201
+ this.error = error;
202
+ return this;
218
203
  }
219
- if (typeof data === "string") {
220
- return data;
204
+ makeType(type) {
205
+ this.printQueue.push(`[${type}]`);
206
+ return this;
221
207
  }
222
- return JSON.stringify(data);
223
- };
224
- var makeResponseData = (dto = {}) => {
225
- const data = dto.response?.data || dto.error?.response?.data;
226
- if (!data) {
227
- return "";
208
+ makeUrl() {
209
+ const url = this.request?.url || this.response?.config?.url || this.error?.response?.config.url;
210
+ const params = this.request?.params || this.response?.config?.params || this.error?.response?.config.params;
211
+ if (url) {
212
+ if (params) {
213
+ delete params["0"];
214
+ this.printQueue.push([url, stringify2(params)].filter((_) => _).join("?"));
215
+ } else {
216
+ this.printQueue.push(url);
217
+ }
218
+ }
219
+ return this;
228
220
  }
229
- if (typeof data === "string") {
230
- return data;
221
+ makeMethodText() {
222
+ const method = this.request?.method || this.response?.config?.method || this.error?.response?.config.method;
223
+ if (method) {
224
+ this.printQueue.push(method.toUpperCase());
225
+ }
226
+ return this;
231
227
  }
232
- return JSON.stringify(data);
233
- };
234
- var makeStatus = (dto = {}) => {
235
- const status = dto.response?.status || dto.error?.response?.status;
236
- if (!status) {
237
- return 500 /* INTERNAL_SERVER_ERROR */;
228
+ makeRequestData() {
229
+ const data = this.request?.data || this.response?.config?.data || this.error?.response?.config.data;
230
+ if (data) {
231
+ if (typeof data === "string") {
232
+ this.printQueue.push(data);
233
+ return this;
234
+ }
235
+ if (Object.keys(data).length) {
236
+ this.printQueue.push(JSON.stringify(data));
237
+ return this;
238
+ }
239
+ }
240
+ return this;
238
241
  }
239
- return status;
240
- };
241
- var makeStatusText = (dto = {}) => {
242
- const status = dto.response?.status || dto.error?.response?.status;
243
- if (!status) {
244
- return "";
242
+ makeResponseDataText() {
243
+ const data = this.response?.data || this.error?.response?.data;
244
+ if (data) {
245
+ if (typeof data === "string") {
246
+ this.printQueue.push(data);
247
+ return this;
248
+ }
249
+ if (Object.keys(data).length) {
250
+ this.printQueue.push(JSON.stringify(data));
251
+ return this;
252
+ }
253
+ }
254
+ return this;
255
+ }
256
+ makeStatusText() {
257
+ const status = this.response?.status || this.error?.response?.status;
258
+ if (status) {
259
+ this.printQueue.push(`${status}`);
260
+ const statusText = this.response?.statusText || this.error?.response?.statusText;
261
+ if (statusText) {
262
+ this.printQueue.push(statusText);
263
+ }
264
+ }
265
+ return this;
245
266
  }
246
- const statusText = dto.response?.statusText || dto.error?.response?.statusText;
247
- if (statusText) {
248
- return `${status} ${statusText}`;
267
+ build() {
268
+ return this.printQueue.join(" ");
269
+ }
270
+ makeMethod() {
271
+ const method = this.request?.method || this.response?.config?.method || this.error?.response?.config.method;
272
+ if (!method) {
273
+ return "get" /* GET */;
274
+ }
275
+ return method.toLowerCase();
276
+ }
277
+ makeResponseData() {
278
+ const data = this.response?.data || this.error?.response?.data;
279
+ if (!data) {
280
+ return "";
281
+ }
282
+ if (typeof data === "string") {
283
+ return data;
284
+ }
285
+ return JSON.stringify(data);
286
+ }
287
+ makeStatus() {
288
+ const status = this.response?.status || this.error?.response?.status;
289
+ if (!status) {
290
+ return 500 /* INTERNAL_SERVER_ERROR */;
291
+ }
292
+ return status;
293
+ }
294
+ makeResponse() {
295
+ return {
296
+ success: this.error === void 0,
297
+ status: this.makeStatus(),
298
+ method: this.makeMethod(),
299
+ data: this.makeResponseData()
300
+ };
249
301
  }
250
- return `${status}`;
251
- };
252
- var makeResponse = (dto = {}) => {
253
- return {
254
- success: dto.error === void 0,
255
- status: makeStatus(dto),
256
- method: makeMethod(dto),
257
- data: makeResponseData(dto)
258
- };
259
- };
260
- var logRequest = (request) => {
261
- log([makeType("Request"), makeMethodText({ request }), makeUrl({ request }), makeRequestData({ request })]);
262
- };
263
- var logResponse = (response) => {
264
- log([
265
- makeType("Response"),
266
- makeMethodText({ response }),
267
- makeUrl({ response }),
268
- makeRequestData({ response }),
269
- makeStatusText({ response }),
270
- makeResponseData({ response })
271
- ]);
272
- };
273
- var logRequestError = (error) => {
274
- log([
275
- makeType("Error"),
276
- makeMethodText({ error }),
277
- makeUrl({ error }),
278
- makeRequestData({ error }),
279
- makeStatusText({ error }),
280
- makeResponseData({ error })
281
- ]);
282
- };
283
- var log = (messageParts) => {
284
- const message = messageParts.filter((_) => _).join(" ");
285
- console.log(message);
286
302
  };
287
- var loggerHelper = {
288
- makeType,
289
- makeUrl,
290
- makeMethod,
291
- makeMethodText,
292
- makeRequestData,
293
- makeResponseData,
294
- makeStatus,
295
- makeStatusText,
296
- makeResponse,
297
- logRequest,
298
- logResponse,
299
- logRequestError
303
+
304
+ // src/logger/service.ts
305
+ var LoggerService = class {
306
+ context = "";
307
+ constructor(context = "") {
308
+ this.context = context;
309
+ }
310
+ log(message, context) {
311
+ const ctx = context || this.context || "";
312
+ if (ctx) {
313
+ return console.log(`[${ctx}] ${message}`);
314
+ }
315
+ return console.log(message);
316
+ }
317
+ logRequest(request) {
318
+ const loggerMessageBuilder = new MessageBuilder();
319
+ const message = loggerMessageBuilder.setRequest(request).makeType("Request").makeMethodText().makeUrl().makeRequestData().build();
320
+ return this.log(message);
321
+ }
322
+ logResponse(response) {
323
+ const loggerMessageBuilder = new MessageBuilder();
324
+ const message = loggerMessageBuilder.setResponse(response).makeType("Response").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
325
+ return this.log(message);
326
+ }
327
+ logRequestError(error) {
328
+ const loggerMessageBuilder = new MessageBuilder();
329
+ const message = loggerMessageBuilder.setError(error).makeType("Error").makeMethodText().makeUrl().makeRequestData().makeStatusText().makeResponseDataText().build();
330
+ return this.log(message);
331
+ }
332
+ makeResponse(response) {
333
+ const loggerMessageBuilder = new MessageBuilder();
334
+ const responseData = loggerMessageBuilder.setResponse(response).makeResponse();
335
+ return responseData;
336
+ }
337
+ makeErrorResponse(error) {
338
+ const loggerMessageBuilder = new MessageBuilder();
339
+ const errorResponseData = loggerMessageBuilder.setError(error).makeResponse();
340
+ return errorResponseData;
341
+ }
300
342
  };
301
343
 
302
344
  // src/data-source.ts
@@ -306,20 +348,21 @@ var RequestDataSource = class {
306
348
  this.baseRequestConfig = baseRequestConfig;
307
349
  }
308
350
  common(requestConfig, responseConfig = {}) {
351
+ const loggerService = new LoggerService(this.baseRequestConfig.name);
309
352
  const requestBuilder = new RequestBuilder({
310
353
  baseConfig: this.baseRequestConfig,
311
354
  requestConfig
312
355
  });
313
356
  const request = requestBuilder.makeContentType().makeAuth().makeUrl().makeMethod().makeParams().makeData().makeSerializer().build();
314
357
  if (this.baseRequestConfig.logger) {
315
- loggerHelper.logRequest(request);
358
+ loggerService.logRequest(request);
316
359
  }
317
360
  return axios.request(request).then((response) => {
318
361
  if (this.baseRequestConfig.logger) {
319
- loggerHelper.logResponse(response);
362
+ loggerService.logResponse(response);
320
363
  }
321
364
  if (responseConfig.raw) {
322
- return loggerHelper.makeResponse({ response });
365
+ return loggerService.makeResponse(response);
323
366
  }
324
367
  return response.data;
325
368
  }).catch((error) => {
@@ -327,10 +370,10 @@ var RequestDataSource = class {
327
370
  console.log("Error:", error);
328
371
  }
329
372
  if (this.baseRequestConfig.logger) {
330
- loggerHelper.logRequestError(error);
373
+ loggerService.logRequestError(error);
331
374
  }
332
375
  if (responseConfig.raw) {
333
- return loggerHelper.makeResponse({ error });
376
+ return loggerService.makeErrorResponse(error);
334
377
  }
335
378
  throw error.response?.data || error.response || new Error(error.message);
336
379
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/builder.ts","../src/types.ts","../src/data-source.ts","../src/logger/logger.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,\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};\n\nexport type RawResponse<T> = {\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 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> = {\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 Pagination,\n PaginationResponse,\n} from './types';\nimport { loggerHelper } from './logger/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 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 loggerHelper.logRequest(request as any);\n }\n\n return axios\n .request(request)\n .then((response: AxiosResponse<T>) => {\n if (this.baseRequestConfig.logger) {\n loggerHelper.logResponse(response as any);\n }\n\n if (responseConfig.raw) {\n return loggerHelper.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 loggerHelper.logRequestError(error as any);\n }\n\n if (responseConfig.raw) {\n return loggerHelper.makeResponse<T>({ error } as any);\n }\n\n throw error.response?.data || error.response || new Error(error.message);\n });\n }\n\n search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n async *bulkSearch(config: SearchParams = {} as SearchParams): AsyncGenerator<Entity[]> {\n let pagination: Pagination = {\n total: 0,\n currentPage: config.params?.page || 0,\n lastPage: 0,\n from: 0,\n to: 0,\n pageSize: config.params?.pageSize || 30,\n };\n\n do {\n const response = await this.common<PaginationResponse<Entity>>({\n ...config,\n method: HttpMethods.GET,\n params: {\n ...config.params,\n page: pagination.currentPage + 1,\n pageSize: pagination.pageSize,\n },\n });\n\n if (!response.data?.length) {\n return [];\n }\n\n yield response.data;\n\n pagination = response.pagination;\n } while (pagination.currentPage !== pagination.lastPage);\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: CreateParams) {\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: UpdateParams) {\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\ntype LoggerDto = {\n request?: InternalAxiosRequestConfig & Request;\n response?: AxiosResponse & Response;\n error?: AxiosError;\n};\n\nconst makeType = (type: string) => {\n return `[${type}]`;\n};\n\nconst makeUrl = (dto: LoggerDto = {}) => {\n const url = dto.request?.url || dto.response?.config?.url || dto.error?.response?.config.url;\n\n const params = dto.request?.params || dto.response?.config?.params || dto.error?.response?.config.params;\n\n if (!url) {\n return '';\n }\n\n if (params) {\n delete params['0'];\n return [url, stringify(params)].filter((_) => _).join('?');\n } else {\n return url;\n }\n};\n\nconst makeMethod = (dto: LoggerDto = {}) => {\n const method = dto.request?.method || dto.response?.config?.method || dto.error?.response?.config.method;\n\n if (!method) {\n return HttpMethods.GET;\n }\n\n return method.toLowerCase() as HttpMethods;\n};\n\nconst makeMethodText = (dto: LoggerDto = {}) => {\n const method = dto.request?.method || dto.response?.config?.method || dto.error?.response?.config.method;\n\n if (!method) {\n return '';\n }\n\n return method.toUpperCase();\n};\n\nconst makeRequestData = (dto: LoggerDto = {}) => {\n const data = dto.request?.body || dto.request?.data || dto.response?.config?.data || dto.error?.response?.config.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\nconst makeResponseData = (dto: LoggerDto = {}) => {\n const data = dto.response?.data || dto.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\nconst makeStatus = (dto: LoggerDto = {}) => {\n const status = dto.response?.status || dto.error?.response?.status;\n\n if (!status) {\n return HttpStatuses.INTERNAL_SERVER_ERROR;\n }\n\n return status as HttpStatuses;\n};\n\nconst makeStatusText = (dto: LoggerDto = {}) => {\n const status = dto.response?.status || dto.error?.response?.status;\n\n if (!status) {\n return '';\n }\n\n const statusText = dto.response?.statusText || dto.error?.response?.statusText;\n\n if (statusText) {\n return `${status} ${statusText}`;\n }\n\n return `${status}`;\n};\n\nconst makeResponse = <T>(dto: LoggerDto = {}) => {\n return {\n success: dto.error === undefined,\n status: makeStatus(dto),\n method: makeMethod(dto),\n data: makeResponseData(dto) as T,\n };\n};\n\nconst logRequest = (request: InternalAxiosRequestConfig & Request) => {\n log([makeType('Request'), makeMethodText({ request }), makeUrl({ request }), makeRequestData({ request })]);\n};\n\nconst logResponse = (response: AxiosResponse & Response) => {\n log([\n makeType('Response'),\n makeMethodText({ response }),\n makeUrl({ response }),\n makeRequestData({ response }),\n makeStatusText({ response }),\n makeResponseData({ response }),\n ]);\n};\n\nconst logRequestError = (error: AxiosError) => {\n log([\n makeType('Error'),\n makeMethodText({ error }),\n makeUrl({ error }),\n makeRequestData({ error }),\n makeStatusText({ error }),\n makeResponseData({ error }),\n ]);\n};\n\nconst log = (messageParts: string[]) => {\n const message = messageParts.filter((_) => _).join(' ');\n\n console.log(message);\n};\n\nexport const loggerHelper = {\n makeType,\n makeUrl,\n makeMethod,\n makeMethodText,\n makeRequestData,\n makeResponseData,\n makeStatus,\n makeStatusText,\n makeResponse,\n logRequest,\n logResponse,\n logRequestError,\n};\n","export class RequestHelper {\n 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,\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};\n\nexport type RawResponse<T> = {\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 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> = {\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 Pagination,\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 search(config: SearchParams = {} as SearchParams) {\n return this.common<SearchResponse>({\n ...config,\n method: HttpMethods.GET,\n });\n }\n\n async *bulkSearch(config: SearchParams = {} as SearchParams): AsyncGenerator<Entity[]> {\n let pagination: Pagination = {\n total: 0,\n currentPage: config.params?.page || 0,\n lastPage: 0,\n from: 0,\n to: 0,\n pageSize: config.params?.pageSize || 30,\n };\n\n do {\n const response = await this.common<PaginationResponse<Entity>>({\n ...config,\n method: HttpMethods.GET,\n params: {\n ...config.params,\n page: pagination.currentPage + 1,\n pageSize: pagination.pageSize,\n },\n });\n\n if (!response.data?.length) {\n return [];\n }\n\n yield response.data;\n\n pagination = response.pagination;\n } while (pagination.currentPage !== pagination.lastPage);\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 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.10.0",
3
+ "version": "1.10.2",
4
4
  "description": "Request handler for Node.js - Fast - Interactive - Simple",
5
5
  "keywords": [
6
6
  "request",