intelicoreact 1.2.1 → 1.2.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.
@@ -71,11 +71,13 @@ var RESTAPI = /*#__PURE__*/function (_ApiBase) {
71
71
  credentialsProcessing = _ref.credentialsProcessing;
72
72
 
73
73
  _this.sendMessage = typeof sendMessage === 'function' ? sendMessage : null; //! Наличие credentialsProcessing подключает ДОБАВЛЕНИЕ ТОКЕНОВ В ЗАПРОСЫ,
74
- //! НО по умолчанию НЕ добавляет флоу рефреша токенов (флоу рефреша подключается пропой isUseRefreshTokensPropcessing из credentialsProcessing)
74
+ //! НО по умолчанию НЕ добавляет флоу рефреша токенов
75
+ //! (флоу рефреша подключается пропой isUseRefreshTokensPropcessing из credentialsProcessing)
75
76
 
76
77
  if ((0, _utils.getIsOnlyAnObject)(credentialsProcessing)) {
77
78
  _this.credentialsProcessing = new _CredentialsProcessing.default(settings); //? credentialsProcessing расположен обособлено для того, чтобы обладать своим независимым this
78
- //? Однако при описании методов credentialsProcessing может понадобится воспользоваться непосредственными методами класса RESTAPI
79
+ //? Однако при описании методов credentialsProcessing
80
+ //? может понадобится воспользоваться непосредственными методами класса RESTAPI
79
81
  //? Для этого предоставляю возможность дотянуться до верхнего контекста
80
82
 
81
83
  _this.credentialsProcessing.getRESTAPIContext = getRESTAPIContext.bind((0, _assertThisInitialized2.default)(_this));
@@ -240,7 +242,8 @@ var RESTAPI = /*#__PURE__*/function (_ApiBase) {
240
242
  while (1) {
241
243
  switch (_context7.prev = _context7.next) {
242
244
  case 0:
243
- type = item.type, partialRestFirst = (0, _objectWithoutProperties2.default)(item, _excluded2); //? Предполагалось что пропа type в объекте описания запроса будет использоваться исключительно для метода doMonoRequest,
245
+ type = item.type, partialRestFirst = (0, _objectWithoutProperties2.default)(item, _excluded2); //? Предполагалось что пропа type в объекте описания запроса
246
+ //? будет использоваться исключительно для метода doMonoRequest,
244
247
  //? однако оказалось, что type удобно использовать и в мульти запросах (опционально).
245
248
  //? В данном месте происходит обработка type для объектов описания запроса из мульти запроса.
246
249
  //? 'doRequestMapping' - ключ для управления выходными структурами из метода splitProperties
@@ -289,9 +292,7 @@ var RESTAPI = /*#__PURE__*/function (_ApiBase) {
289
292
  _context7.t8 = _context7.t3.concat.call(_context7.t3, _context7.t7);
290
293
  _context7.next = 25;
291
294
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
292
- var _API_CONTEXT$getQuery;
293
-
294
- var queryParams, queryParamsString;
295
+ var queryParams, preparedQueryParams;
295
296
  return _regenerator.default.wrap(function _callee6$(_context6) {
296
297
  while (1) {
297
298
  switch (_context6.prev = _context6.next) {
@@ -299,23 +300,13 @@ var RESTAPI = /*#__PURE__*/function (_ApiBase) {
299
300
  queryParams = query || queryParameters || ''; //? Т.к.самовызывающаяся ф-я асинхронная, то можем дождаться фактического значения
300
301
 
301
302
  _context6.next = 3;
302
- return (_API_CONTEXT$getQuery = API_CONTEXT.getQueryParamsString) === null || _API_CONTEXT$getQuery === void 0 ? void 0 : _API_CONTEXT$getQuery.call(API_CONTEXT, queryParams);
303
+ return API_CONTEXT.processQueryParams(queryParams);
303
304
 
304
305
  case 3:
305
- _context6.t0 = _context6.sent;
306
-
307
- if (_context6.t0) {
308
- _context6.next = 6;
309
- break;
310
- }
311
-
312
- _context6.t0 = queryParams;
313
-
314
- case 6:
315
- queryParamsString = _context6.t0;
316
- return _context6.abrupt("return", queryParamsString);
306
+ preparedQueryParams = _context6.sent;
307
+ return _context6.abrupt("return", preparedQueryParams);
317
308
 
318
- case 8:
309
+ case 5:
319
310
  case "end":
320
311
  return _context6.stop();
321
312
  }
@@ -377,7 +377,7 @@ var AbortableFetch = /*#__PURE__*/function () {
377
377
  return Object.keys(value).filter(function (key) {
378
378
  return !!key && !!value[key];
379
379
  }).map(function (key) {
380
- return "".concat(key, "=").concat(value[key]);
380
+ return "".concat(key, "=").concat(value[key]).replace(/\?/g, '');
381
381
  });
382
382
  } else return [];
383
383
  } // eslint-disable-next-line class-methods-use-this
@@ -310,6 +310,36 @@ var ApiUtils = /*#__PURE__*/function () {
310
310
  }
311
311
 
312
312
  return addAsCommon;
313
+ }() //! Обработчик квери-параметров для общего процессинга,
314
+ //! Например для кодирования decodeURIComponent или/и приведения в формат массива
315
+ //? Планируется, что метод будет перегружаться на экземпляре,
316
+ //? т.к. на разных проектах могут быть разные договоренности по форматам
317
+ //? Метод не планировался как асинхронный,
318
+ //? однако ввиду того что он может быть перегружен на экземпляре асинхронность предусматривается
319
+
320
+ }, {
321
+ key: "processQueryParams",
322
+ value: function () {
323
+ var _processQueryParams = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(queryParams) {
324
+ return _regenerator.default.wrap(function _callee7$(_context7) {
325
+ while (1) {
326
+ switch (_context7.prev = _context7.next) {
327
+ case 0:
328
+ return _context7.abrupt("return", queryParams);
329
+
330
+ case 1:
331
+ case "end":
332
+ return _context7.stop();
333
+ }
334
+ }
335
+ }, _callee7);
336
+ }));
337
+
338
+ function processQueryParams(_x7) {
339
+ return _processQueryParams.apply(this, arguments);
340
+ }
341
+
342
+ return processQueryParams;
313
343
  }()
314
344
  }]);
315
345
  return ApiUtils;
@@ -148,7 +148,7 @@ function _getInstanceOfFetchSystem() {
148
148
  method: 'GET',
149
149
  //? Заголовки по умолчанию
150
150
  headers: _objectSpread(_objectSpread({}, headersToAbortableFetchInstance), credentials.token ? (CREDENTIALS_CONTEXT === null || CREDENTIALS_CONTEXT === void 0 ? void 0 : (_CREDENTIALS_CONTEXT$ = CREDENTIALS_CONTEXT.getHeadersForAuthorize) === null || _CREDENTIALS_CONTEXT$ === void 0 ? void 0 : _CREDENTIALS_CONTEXT$.call(CREDENTIALS_CONTEXT, credentials.token)) || {} : {}),
151
- queryParameters: queryParamsToAbortableFetchInstance,
151
+ queryParameters: API_CONTEXT.processQueryParams(queryParamsToAbortableFetchInstance),
152
152
  //? Опции по умолчанию
153
153
  options: _objectSpread({
154
154
  mode: 'cors',
@@ -58,28 +58,34 @@ utils
58
58
  В классе имеются базовые утилиты, которые можно перегрузить на экземпляре, передав одноименные методы в объекте utils
59
59
  (базовые методы содержаться в классе ApiUtils)
60
60
 
61
- splitProperties - метод используемый ВСЕМИ requestСreator-ами.
62
- Разделяет пропы из единого входного аргумента на пропы для описания запроса и пропы общих настроек
63
- Прегрузка НЕ рекомендуется
64
-
65
- getRootPath - Обработчик пропы api из объекта описания запроса (Пример: { path: 'https://example', api: 'auth', ... })
66
- Базовый метод просто возвращает API_PATH
67
- Если планируется в путь добавлять некие постфиксы РЕКОМЕНДУЕТСЯ перегрузить метод на экземпляре
68
-
69
- getResponseBody - метод извлечения тела из объекта Response
70
- Метод проверенный на практике, без реальной необходимости прегрузка НЕ рекомендуется
71
-
72
- getErrorMessage - Обработчик структуры для ошибки
73
- Базовый метод просто возвращает response (предполагается, что response - уже извлеченное тело ответа)
74
- РЕКОМЕНДУЕТСЯ метод перегрузить на экземпляре, передав свой метод, умеющий оценивать принятую на проекте структуру тела ошибки
75
-
76
- checkResponseCode - метод для внутренней работы, который триггерит ф-ю sendMessage
77
- Прегрузка НЕ рекомендуется
78
-
79
- addAsCommon - метод, который возвращает структуры, которые будут использованы для КАЖДОГО запроса, совершаемого методами экземпляра RESTAPI
80
- Под структурами подразумевается информация о headers, queryParameters и options (подробнее смотри класс ApiUtils)
81
- Базовый метод просто возвращает {}
82
- Если планируется вводить что-то общее для каждого запроса, то РЕКОМЕНДУЕТСЯ метод перегрузить на экземпляре
61
+ splitProperties - метод используемый ВСЕМИ requestСreator-ами.
62
+ Разделяет пропы из единого входного аргумента на пропы для описания запроса и пропы общих настроек
63
+ Прегрузка НЕ рекомендуется
64
+
65
+ getRootPath - Обработчик пропы api из объекта описания запроса (Пример: { path: 'https://example', api: 'auth', ... })
66
+ Базовый метод просто возвращает API_PATH
67
+ Если планируется в путь добавлять некие постфиксы РЕКОМЕНДУЕТСЯ перегрузить метод на экземпляре
68
+
69
+ getResponseBody - метод извлечения тела из объекта Response
70
+ Метод проверенный на практике, без реальной необходимости прегрузка НЕ рекомендуется
71
+
72
+ getErrorMessage - Обработчик структуры для ошибки
73
+ Базовый метод просто возвращает response (предполагается, что response - уже извлеченное тело ответа)
74
+ РЕКОМЕНДУЕТСЯ метод перегрузить на экземпляре, передав свой метод, умеющий оценивать принятую на проекте структуру тела ошибки
75
+
76
+ checkResponseCode - метод для внутренней работы, который триггерит ф-ю sendMessage
77
+ Прегрузка НЕ рекомендуется
78
+
79
+ addAsCommon - метод, который возвращает структуры, которые будут использованы для КАЖДОГО запроса, совершаемого методами экземпляра RESTAPI
80
+ Под структурами подразумевается информация о headers, queryParameters и options (подробнее смотри класс ApiUtils)
81
+ Базовый метод просто возвращает {}
82
+ Если планируется вводить что-то общее для каждого запроса, то РЕКОМЕНДУЕТСЯ метод перегрузить на экземпляре
83
+
84
+ processQueryParams - метод, который предназначен для обработки квери-параметров каждого запроса
85
+ с помощь его будет удобно осуществлять какой-либо общий процессинг входных квери-параметров.
86
+ Например:
87
+ - кодировние утилитой decodeURIComponent
88
+ - преобразование каких либо локальных форматов (допустим преобразование специфических значений параметра к формату массива)
83
89
 
84
90
 
85
91
  ----------
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelicoreact",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [