@dxtmisha/wiki 0.39.7 → 0.39.8

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.
Files changed (191) hide show
  1. package/dist/{defineProperty-DblGXmzD.js → defineProperty-Bjg6wMoX.js} +4 -4
  2. package/dist/library.js +1 -1
  3. package/dist/media.js +12 -0
  4. package/dist/storybook.js +1 -1
  5. package/package.json +1 -1
  6. package/src/media/functional/functional-basic/api/api.en.mdx +45 -0
  7. package/src/media/functional/functional-basic/api/api.ru.mdx +45 -0
  8. package/src/media/functional/functional-basic/api/api.vi.mdx +45 -0
  9. package/src/media/functional/functional-basic/classes/Api/Api.en.mdx +54 -54
  10. package/src/media/functional/functional-basic/classes/Api/Api.ru.mdx +54 -54
  11. package/src/media/functional/functional-basic/classes/Api/Api.vi.mdx +54 -54
  12. package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.en.mdx +111 -0
  13. package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.ru.mdx +111 -0
  14. package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.vi.mdx +111 -0
  15. package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.en.mdx +32 -0
  16. package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.ru.mdx +32 -0
  17. package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.vi.mdx +32 -0
  18. package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.en.mdx +24 -28
  19. package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.ru.mdx +24 -28
  20. package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.vi.mdx +24 -28
  21. package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.en.mdx +28 -14
  22. package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.ru.mdx +33 -19
  23. package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.vi.mdx +33 -19
  24. package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.en.mdx +56 -0
  25. package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.ru.mdx +56 -0
  26. package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.vi.mdx +55 -0
  27. package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.en.mdx +101 -49
  28. package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.ru.mdx +101 -49
  29. package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.vi.mdx +98 -47
  30. package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.en.mdx +44 -26
  31. package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.ru.mdx +45 -27
  32. package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.vi.mdx +44 -26
  33. package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.en.mdx +50 -21
  34. package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.ru.mdx +54 -25
  35. package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.vi.mdx +55 -26
  36. package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.en.mdx +29 -32
  37. package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.ru.mdx +33 -36
  38. package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.vi.mdx +33 -36
  39. package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.en.mdx +34 -53
  40. package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.ru.mdx +33 -52
  41. package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.vi.mdx +39 -58
  42. package/src/media/functional/functional-basic/classes/Cache/Cache.en.mdx +7 -4
  43. package/src/media/functional/functional-basic/classes/Cache/Cache.ru.mdx +7 -4
  44. package/src/media/functional/functional-basic/classes/Cache/Cache.vi.mdx +28 -25
  45. package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.en.mdx +45 -53
  46. package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.ru.mdx +46 -54
  47. package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.vi.mdx +47 -55
  48. package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.en.mdx +13 -1
  49. package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.ru.mdx +13 -1
  50. package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.vi.mdx +13 -0
  51. package/src/media/functional/functional-basic/classes/Cookie/Cookie.en.mdx +88 -44
  52. package/src/media/functional/functional-basic/classes/Cookie/Cookie.ru.mdx +88 -44
  53. package/src/media/functional/functional-basic/classes/Cookie/Cookie.vi.mdx +85 -41
  54. package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.en.mdx +43 -22
  55. package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.ru.mdx +46 -25
  56. package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.vi.mdx +43 -22
  57. package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.en.mdx +84 -0
  58. package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.ru.mdx +84 -0
  59. package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.vi.mdx +100 -0
  60. package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.en.mdx +153 -0
  61. package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.ru.mdx +153 -0
  62. package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.vi.mdx +153 -0
  63. package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.en.mdx +32 -25
  64. package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.ru.mdx +32 -25
  65. package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.vi.mdx +32 -27
  66. package/src/media/functional/functional-basic/classes/Datetime/Datetime.en.mdx +36 -4
  67. package/src/media/functional/functional-basic/classes/Datetime/Datetime.ru.mdx +36 -4
  68. package/src/media/functional/functional-basic/classes/Datetime/Datetime.vi.mdx +36 -4
  69. package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.en.mdx +101 -70
  70. package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.ru.mdx +100 -69
  71. package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.vi.mdx +101 -70
  72. package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.en.mdx +46 -42
  73. package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.ru.mdx +46 -42
  74. package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.vi.mdx +46 -42
  75. package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.en.mdx +44 -96
  76. package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.ru.mdx +44 -96
  77. package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.vi.mdx +44 -96
  78. package/src/media/functional/functional-basic/classes/EventItem/EventItem.en.mdx +49 -28
  79. package/src/media/functional/functional-basic/classes/EventItem/EventItem.ru.mdx +21 -0
  80. package/src/media/functional/functional-basic/classes/EventItem/EventItem.vi.mdx +63 -42
  81. package/src/media/functional/functional-basic/classes/Formatters/Formatters.en.mdx +97 -109
  82. package/src/media/functional/functional-basic/classes/Formatters/Formatters.ru.mdx +86 -98
  83. package/src/media/functional/functional-basic/classes/Formatters/Formatters.vi.mdx +99 -111
  84. package/src/media/functional/functional-basic/classes/Geo/Geo.en.mdx +3 -3
  85. package/src/media/functional/functional-basic/classes/Geo/Geo.ru.mdx +5 -5
  86. package/src/media/functional/functional-basic/classes/Geo/Geo.vi.mdx +5 -5
  87. package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.en.mdx +83 -40
  88. package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.ru.mdx +83 -40
  89. package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.vi.mdx +87 -44
  90. package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.en.mdx +81 -0
  91. package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.ru.mdx +81 -0
  92. package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.vi.mdx +81 -0
  93. package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.en.mdx +56 -105
  94. package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.ru.mdx +53 -102
  95. package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.vi.mdx +55 -105
  96. package/src/media/functional/functional-basic/classes/Hash/Hash.en.mdx +18 -7
  97. package/src/media/functional/functional-basic/classes/Hash/Hash.ru.mdx +18 -7
  98. package/src/media/functional/functional-basic/classes/Hash/Hash.vi.mdx +18 -7
  99. package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.en.mdx +54 -0
  100. package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.ru.mdx +54 -0
  101. package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.vi.mdx +54 -0
  102. package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.en.mdx +78 -0
  103. package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.ru.mdx +78 -0
  104. package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.vi.mdx +78 -0
  105. package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.en.mdx +50 -0
  106. package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.ru.mdx +50 -0
  107. package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.vi.mdx +50 -0
  108. package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.en.mdx +131 -0
  109. package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.ru.mdx +131 -0
  110. package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.vi.mdx +131 -0
  111. package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.en.mdx +97 -0
  112. package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.ru.mdx +97 -0
  113. package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.vi.mdx +97 -0
  114. package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.en.mdx +13 -5
  115. package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.ru.mdx +13 -5
  116. package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.vi.mdx +13 -5
  117. package/src/media/functional/functional-basic/functions/anyToString/anyToString.en.mdx +37 -19
  118. package/src/media/functional/functional-basic/functions/anyToString/anyToString.ru.mdx +37 -19
  119. package/src/media/functional/functional-basic/functions/anyToString/anyToString.vi.mdx +35 -17
  120. package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.en.mdx +31 -19
  121. package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.ru.mdx +31 -19
  122. package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.vi.mdx +32 -20
  123. package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.en.mdx +29 -15
  124. package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.ru.mdx +28 -14
  125. package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.vi.mdx +28 -14
  126. package/src/media/functional/functional-basic/functions/capitalize/capitalize.en.mdx +7 -3
  127. package/src/media/functional/functional-basic/functions/capitalize/capitalize.ru.mdx +7 -3
  128. package/src/media/functional/functional-basic/functions/capitalize/capitalize.vi.mdx +7 -3
  129. package/src/media/functional/functional-basic/functions/copyObject/copyObject.en.mdx +17 -13
  130. package/src/media/functional/functional-basic/functions/copyObject/copyObject.ru.mdx +17 -13
  131. package/src/media/functional/functional-basic/functions/copyObject/copyObject.vi.mdx +17 -13
  132. package/src/media/functional/functional-basic/functions/createElement/createElement.en.mdx +2 -0
  133. package/src/media/functional/functional-basic/functions/createElement/createElement.ru.mdx +2 -0
  134. package/src/media/functional/functional-basic/functions/createElement/createElement.vi.mdx +2 -0
  135. package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.en.mdx +1 -3
  136. package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.ru.mdx +1 -3
  137. package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.vi.mdx +1 -3
  138. package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.en.mdx +13 -10
  139. package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.ru.mdx +14 -11
  140. package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.vi.mdx +12 -9
  141. package/src/media/functional/functional-basic/functions/executePromise/executePromise.en.mdx +14 -13
  142. package/src/media/functional/functional-basic/functions/executePromise/executePromise.ru.mdx +15 -14
  143. package/src/media/functional/functional-basic/functions/executePromise/executePromise.vi.mdx +14 -13
  144. package/src/media/functional/functional-basic/functions/forEach/forEach.en.mdx +1 -1
  145. package/src/media/functional/functional-basic/functions/forEach/forEach.ru.mdx +1 -1
  146. package/src/media/functional/functional-basic/functions/forEach/forEach.vi.mdx +1 -1
  147. package/src/media/functional/functional-basic/functions/frame/frame.en.mdx +7 -4
  148. package/src/media/functional/functional-basic/functions/frame/frame.ru.mdx +6 -3
  149. package/src/media/functional/functional-basic/functions/frame/frame.vi.mdx +7 -4
  150. package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.en.mdx +34 -0
  151. package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.ru.mdx +34 -0
  152. package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.vi.mdx +35 -0
  153. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.en.mdx +2 -0
  154. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.ru.mdx +2 -0
  155. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.vi.mdx +2 -0
  156. package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.en.mdx +21 -0
  157. package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.ru.mdx +21 -0
  158. package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.vi.mdx +21 -0
  159. package/src/media/functional/functional-basic/functions/getElementId/getElementId.en.mdx +17 -3
  160. package/src/media/functional/functional-basic/functions/getElementId/getElementId.ru.mdx +17 -3
  161. package/src/media/functional/functional-basic/functions/getElementId/getElementId.vi.mdx +18 -4
  162. package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.en.mdx +31 -0
  163. package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.ru.mdx +31 -0
  164. package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.vi.mdx +31 -0
  165. package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.en.mdx +25 -0
  166. package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.ru.mdx +25 -0
  167. package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.vi.mdx +25 -0
  168. package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.en.mdx +11 -4
  169. package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.ru.mdx +14 -7
  170. package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.vi.mdx +13 -6
  171. package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.en.mdx +3 -2
  172. package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.ru.mdx +3 -2
  173. package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.vi.mdx +3 -2
  174. package/src/media/functional/functional-basic/functions/toNumber/toNumber.en.mdx +25 -9
  175. package/src/media/functional/functional-basic/functions/toNumber/toNumber.ru.mdx +25 -9
  176. package/src/media/functional/functional-basic/functions/toNumber/toNumber.vi.mdx +25 -9
  177. package/src/media/functional/functional-basic/functions/toString/toString.en.mdx +28 -0
  178. package/src/media/functional/functional-basic/functions/toString/toString.ru.mdx +28 -0
  179. package/src/media/functional/functional-basic/functions/toString/toString.vi.mdx +28 -0
  180. package/src/media/functional/ui/about/about.en.mdx +45 -0
  181. package/src/media/functional/ui/about/about.ru.mdx +45 -0
  182. package/src/media/functional/ui/about/about.vi.mdx +45 -0
  183. package/src/media/functional/ui/component/component.en.mdx +104 -0
  184. package/src/media/functional/ui/component/component.ru.mdx +106 -0
  185. package/src/media/functional/ui/component/component.vi.mdx +104 -0
  186. package/src/media/functional/ui/setup/setup.en.mdx +72 -0
  187. package/src/media/functional/ui/setup/setup.ru.mdx +72 -0
  188. package/src/media/functional/ui/setup/setup.vi.mdx +72 -0
  189. package/src/media/functional/ui/wiki-data.en.mdx +114 -0
  190. package/src/media/functional/ui/wiki-data.ru.mdx +114 -0
  191. package/src/media/functional/ui/wiki-data.vi.mdx +114 -0
@@ -1,46 +1,75 @@
1
1
  import {Meta} from '@storybook/addon-docs/blocks'
2
2
 
3
- <Meta title='@dxtmisha/ru/functional-basic/Classes/ApiResponse - Эмуляция API запросов'/>
3
+ <Meta title='@dxtmisha/ru/functional-basic/Classes/ApiResponse - Эмуляция ответов API'/>
4
4
 
5
5
  # Класс ApiResponse
6
6
 
7
- Класс для управления и эмуляции ответов API. Позволяет перехватывать API-запросы и возвращать заранее определенные (заглушки) ответы. Это крайне полезно при разработке клиентской части, тестировании или при отсутствии полностью функционального бэкенда.
7
+ Класс-менеджер для перехвата, кэширования и эмуляции ответов API. Он позволяет перехватывать исходящие API-запросы и возвращать предопределенные мок-данные вместо выполнения реального сетевого трафика.
8
+
9
+ > `ApiResponse` является **вспомогательным классом**, предназначенным для эмуляции и мокирования API. В большинстве случаев рекомендуется регистрировать мок-ответы через параметр `response` в глобальной конфигурации `Api`.
8
10
 
9
11
  ## Ключевые особенности
10
12
 
11
- - **Перехват запросов** — сопоставляет исходящие запросы на основе пути, HTTP-метода и отправляемых данных.
12
- - **Динамические заглушки**ответы могут быть как статическими объектами, так и динамическими функциями, выполняемыми во время запроса.
13
- - **Симуляция задержки**реалистичная эмуляция задержки сети для определенных заглушек.
14
- - **Режим разработчика** — опциональное логирование совпадений эмулятора для отладки.
13
+ - **Перехват запросов** — интеллектуально сопоставляет исходящие запросы на основе пути, HTTP-метода и объекта данных.
14
+ - **Динамические возможности**поддерживает как статические объекты, так и выполнение динамических функций-коллбэков для обработки контекста запроса.
15
+ - **Симуляция задержки сети** встроенная система для имитации сетевых задержек с помощью рандомизированных таймеров.
16
+ - **Режим разработчика** — выводит полезную отладочную информацию в консоль браузера, показывая, какие данные сопоставились с конкретным моком.
15
17
 
16
18
  ## Инициализация
17
19
 
18
20
  Для инициализации объекта вызовите конструктор `ApiResponse(requestDefault)`.
19
21
 
20
22
  **Параметры:**
21
- - `requestDefault: ApiDefault` — экземпляр класса для обработки параметров запроса по умолчанию.
23
+ - `requestDefault: ApiDefault` — класс запросов по умолчанию, используемый для конфигурации и хранения.
22
24
 
23
25
  ```typescript
24
- import { ApiResponse, ApiDefault } from '@dxtmisha/functional'
25
-
26
- // 1. Инициализация зависимостей
27
- const apiDefault = new ApiDefault()
28
-
29
- // 2. Создание экземпляра эмулятора
30
- const apiResponse = new ApiResponse(apiDefault)
26
+ import { ApiResponse } from '@dxtmisha/functional-basic'
31
27
 
32
- // 3. Добавление мок-ответа
33
- apiResponse.add({
34
- path: 'user/get',
35
- method: 'get',
36
- response: { id: 1, name: 'Admin' }
37
- })
28
+ const apiResponse = new ApiResponse(myApiDefault)
38
29
  ```
39
30
 
40
31
  ## Методы
41
32
 
42
- - `get(path: string = '', method: ApiMethod, request?: ApiFetch['request'], devMode?: boolean): ApiResponseItem | undefined` — Проверяет наличие глобального кэшированного запроса и возвращает его (синхронно).
43
- - `getList(): (ApiResponseItem & Record<string, any>)[]` — Возвращает список всех зарегистрированных моков эмулятора.
44
- - `add(response: ApiResponseItem | ApiResponseItem[]): this` — Регистрирует и добавляет мок-ответ(ы) в эмулятор.
45
- - `setDevMode(devMode: boolean): this` — Включает или отключает режим разработчика с предупреждениями в консоли при срабатывании заглушек.
46
- - `emulator<T>(apiFetch: ApiFetch): Promise<T | undefined>` Выполняет эмуляцию запроса, если подходящий мок существует, включая обработку задержки.
33
+ ### Действие
34
+
35
+ #### `emulator`
36
+
37
+ Основной цикл движка, который проверяет конфигурации запросов и выполняет соответствующие эмулированные ответы. Этот метод работает только в среде DOM.
38
+
39
+ **Параметры:**
40
+ - `apiFetch: ApiFetch` — Свойства запроса для эмуляции.
41
+
42
+ **Возвращает:** `Promise<T | undefined>` — Данные эмулированного ответа.
43
+
44
+ ### Проверка
45
+
46
+ - `get(path: string, method: ApiMethod, request?: ApiFetch['request'], devMode?: boolean): ApiResponseItem | undefined` — Синхронно проверяет наличие подходящего мок-запроса в кэше.
47
+ - `getList(): (ApiResponseItem & Record<string, any>)[]` — Возвращает список всех зарегистрированных конфигураций эмулятора.
48
+
49
+ ### Конфигурация
50
+
51
+ - `add(response: ApiResponseItem | ApiResponseItem[]): this` — Добавляет объекты мок-ответов в локальный реестр.
52
+ - `setDevMode(devMode: boolean): this` — Включает или выключает режим отладочного вывода в консоль.
53
+
54
+ ## Типы
55
+
56
+ #### `ApiResponseItem`
57
+ Объект, определяющий конфигурацию мок-ответа.
58
+ - `path: string | RegExp` — Путь или шаблон URL.
59
+ - `method: ApiMethod` — HTTP-метод (GET, POST и т.д.).
60
+ - `response: any | ((request?: any) => any)` — Данные мока или функция для их генерации.
61
+ - `request?: ApiFetch['request'] | '*any'` — Опциональные данные запроса для сопоставления.
62
+ - `lag?: boolean` — Нужно ли имитировать задержку сети.
63
+ - `disable?: any` — Условие для отключения мока (boolean или функция).
64
+ - `isForGlobal?: boolean` — Пометить как глобальный мок (скрыт из getList).
65
+
66
+ ## Руководство: Эмуляция API
67
+
68
+ Следующие правила и условия определяют, как система эмуляции перехватывает и подменяет сетевые запросы:
69
+
70
+ - **Регистрация моков** — ответы, добавленные через `add()`, имеют приоритет и проверяются перед выполнением любого реального сетевого вызова.
71
+ - **Критерии сопоставления** — мок срабатывает только в том случае, если путь (строка или RegExp), HTTP-метод и тело запроса полностью соответствуют конфигурации.
72
+ - **Wildcard для тела** — использование значения `*any` для запроса позволяет моку соответствовать любой полезной нагрузке, пропуская глубокое сравнение объектов.
73
+ - **Динамические данные** — свойство `response` может быть функцией, что позволяет генерировать динамические данные мока на основе входящих параметров запроса.
74
+ - **Симуляция задержки** — установка `lag: true` добавляет случайную задержку (0–2000 мс) и активирует общее состояние загрузки (класс `d-response-loading` на body).
75
+ - **Повторные срабатывания** — по умолчанию конфигурация эмулятора срабатывает только один раз, если не включен `devMode`, что предотвращает дублирование моков для одного и того же состояния.
@@ -1,46 +1,75 @@
1
1
  import {Meta} from '@storybook/addon-docs/blocks'
2
2
 
3
- <Meta title='@dxtmisha/vi/functional-basic/Classes/ApiResponse - Giả lập yêu cầu API'/>
3
+ <Meta title='@dxtmisha/vi/functional-basic/Classes/ApiResponse - Giả lập phản hồi API'/>
4
4
 
5
5
  # Lớp ApiResponse
6
6
 
7
- Một lớp trình quản lý hệ thống phản hồi API. Giúp cung cấp sở để bạn thu phục chặn dòng yêu cầu mạng để tự thiết kế ra các câu trả lời giả lập (mock responses). Rất đắc lực hữu ích trong quy trình thiết kế giao diện front-end, thời điểm máy chủ backend chưa hoàn chỉnh, hoặc khi cần bổ sung dữ liệu giả lập cho công tác test phần mềm offline.
7
+ Một lớp quản lý để chặn, lưu trữ giả lập các phản hồi API. cho phép bạn chặn các yêu cầu API đi trả về dữ liệu mẫu (mock data) đã được định nghĩa trước thay kích hoạt lưu lượng mạng thực tế.
8
+
9
+ > `ApiResponse` là một **lớp bổ trợ** (auxiliary class), được thiết kế để giả lập và tạo mock API. Trong hầu hết các trường hợp, bạn nên đăng ký các phản hồi mock thông qua tham số `response` trong cấu hình `Api` toàn cục.
8
10
 
9
11
  ## Các tính năng chính
10
12
 
11
- - **Đón chặn yêu cầu (Request Interception)** — đối chiếu và phát hiện các yêu cầu ra bên ngoài thông minh dựa trên đường dẫn đích tới, giao thức kết nối HTTP, cũng như những biến tải trọng dữ liệu đi kèm.
12
- - **Giả lập dữ liệu động (Dynamic Capabilities)** — không chỉ hiển thị các dòng phản hồi tĩnh đóng gói sẵn (static template), bản đối chiếu mock cũng hỗ trợ cung cấp trả lời tự động hàm chức năng nội tiếp đọc hiểu ngay tải trọng client gắn kèm.
13
- - **Giả lập mạng trục trặc (Network Lag Simulation)** thiết kế cấu trúc hàm trễ mạng `timeouts` chạy ngẫu nhiên phỏng khoảng ngắt quãng tín hiệu vật lý.
14
- - **Kiểm soát cho Nhà phát triển (Developer Mode)** — in chuỗi thông tin cảnh báo ra bảng console xác minh yêu cầu nào đang bị chặn đang lấy được các đoạn tín hiệu mẫu nào.
13
+ - **Chặn yêu cầu** — khớp các yêu cầu đi một cách thông minh dựa trên đường dẫn mục tiêu, phương thức HTTP đối tượng dữ liệu.
14
+ - **Khả năng linh hoạt** — hỗ trợ cả các đối tượng tĩnh được định nghĩa trước hoặc thực thi các logic callback động khả năng diễn giải ngữ cảnh yêu cầu.
15
+ - ** phỏng độ trễ mạng** hệ thống tích hợp được thiết kế riêng để phỏng các kịch bản độ trễ thực tế (bộ hẹn giờ ngẫu nhiên).
16
+ - **Chế độ nhà phát triển** — in các thông tin gỡ lỗi hữu ích trong console trình duyệt cho biết dữ liệu nào đã khớp trực tiếp với một điểm mock cụ thể.
15
17
 
16
18
  ## Khởi tạo
17
19
 
18
- Để khởi tạo đối tượng, hãy gọi hàm khởi tạo `ApiResponse(requestDefault)`.
20
+ Để khởi tạo đối tượng, hãy gọi hàm dựng `ApiResponse(requestDefault)`.
19
21
 
20
22
  **Tham số:**
21
- - `requestDefault: ApiDefault` — một thực thể để xử các tham số yêu cầu mặc định.
23
+ - `requestDefault: ApiDefault` — lớp yêu cầu mặc định được sử dụng để cấu hình lưu trữ.
22
24
 
23
25
  ```typescript
24
- import { ApiResponse, ApiDefault } from '@dxtmisha/functional'
25
-
26
- // 1. Khởi tạo các phụ thuộc
27
- const apiDefault = new ApiDefault()
28
-
29
- // 2. Tạo thực thể giả lập
30
- const apiResponse = new ApiResponse(apiDefault)
26
+ import { ApiResponse } from '@dxtmisha/functional-basic'
31
27
 
32
- // 3. Thêm một phản hồi giả lập
33
- apiResponse.add({
34
- path: 'user/get',
35
- method: 'get',
36
- response: { id: 1, name: 'Admin' }
37
- })
28
+ const apiResponse = new ApiResponse(myApiDefault)
38
29
  ```
39
30
 
40
31
  ## Các phương thức
41
32
 
42
- - `get(path: string = '', method: ApiMethod, request?: ApiFetch['request'], devMode?: boolean): ApiResponseItem | undefined` — Kiểm tra đồng bộ để tìm kiếm nếu có một mã yêu cầu nằm trong bộ nhớ cache toàn cục khớp hay không và trả về mốc dữ liệu.
43
- - `getList(): (ApiResponseItem & Record<string, any>)[]` — Trả về danh sách cấu trúc tất cả các mock giả lập đã thực thi đăng ký từ đầu hệ thống.
44
- - `add(response: ApiResponseItem | ApiResponseItem[]): this` — Thêm vào (hoặc dán lên liên tục) các phản hồi mock-data vào mạng registry quản lý hệ điều hành giả.
45
- - `setDevMode(devMode: boolean): this` — Bật hoặc tắt thiết lập luồng chế độ dành cho Nhà phát triển (nhìn luồng dữ liệu console.warn báo tin).
46
- - `emulator<T>(apiFetch: ApiFetch): Promise<T | undefined>` Khối lệnh mấu chốt được cấu trúc để thực thi việc xác thưc liên kết phỏng một lệnh lấy mạng ảo, kèm hiệu ứng phỏng dòng kéo trễ.
33
+ ### Hành động
34
+
35
+ #### `emulator`
36
+
37
+ Vòng lặp công cụ chính để xác thực các cấu hình yêu cầu thực thi các phản hồi mock độ trễ tương ứng. Phương thức này chỉ chạy trong môi trường DOM.
38
+
39
+ **Tham số:**
40
+ - `apiFetch: ApiFetch` — Các thuộc tính của yêu cầu cần giả lập.
41
+
42
+ **Trả về:** `Promise<T | undefined>` — Dữ liệu phản hồi đã giả lập.
43
+
44
+ ### Kiểm tra
45
+
46
+ - `get(path: string, method: ApiMethod, request?: ApiFetch['request'], devMode?: boolean): ApiResponseItem | undefined` — Kiểm tra đồng bộ một yêu cầu mock đã lưu khớp với các tham số.
47
+ - `getList(): (ApiResponseItem & Record<string, any>)[]` — Trả về danh sách tất cả các cấu hình giả lập đã đăng ký.
48
+
49
+ ### Cấu hình
50
+
51
+ - `add(response: ApiResponseItem | ApiResponseItem[]): this` — Thêm các đối tượng phản hồi mock vào bộ đăng ký cục bộ.
52
+ - `setDevMode(devMode: boolean): this` — Bật/tắt chế độ nhật ký gỡ lỗi phát triển.
53
+
54
+ ## Các kiểu dữ liệu
55
+
56
+ #### `ApiResponseItem`
57
+ Một đối tượng định nghĩa cấu hình phản hồi mock.
58
+ - `path: string | RegExp` — Đường dẫn hoặc mẫu URL khớp.
59
+ - `method: ApiMethod` — Phương thức HTTP (GET, POST, v.v.).
60
+ - `response: any | ((request?: any) => any)` — Dữ liệu mock hoặc hàm trả về dữ liệu đó.
61
+ - `request?: ApiFetch['request'] | '*any'` — Dữ liệu yêu cầu tùy chọn để khớp.
62
+ - `lag?: boolean` — Có mô phỏng độ trễ mạng hay không.
63
+ - `disable?: any` — Điều kiện để vô hiệu hóa mock (boolean hoặc hàm).
64
+ - `isForGlobal?: boolean` — Đánh dấu là mock toàn cục (ẩn khỏi getList).
65
+
66
+ ## Hướng dẫn: Giả lập API
67
+
68
+ Các quy tắc và điều kiện sau đây xác định cách hệ thống giả lập chặn và tạo mock cho các yêu cầu mạng:
69
+
70
+ - **Đăng ký Mock** — các phản hồi được thêm qua `add()` sẽ được ưu tiên và kiểm tra trước khi bất kỳ cuộc gọi mạng thực tế nào được khởi tạo.
71
+ - **Tiêu chí khớp** — một mock chỉ được kích hoạt nếu đường dẫn (chuỗi hoặc RegExp), phương thức HTTP và nội dung yêu cầu đều khớp với cấu hình.
72
+ - **Ký tự đại diện cho Body** — sử dụng `*any` làm giá trị yêu cầu cho phép mock khớp với bất kỳ payload nào, bỏ qua việc so sánh đối tượng chuyên sâu.
73
+ - **Dữ liệu động** — thuộc tính `response` có thể là một hàm, cho phép bạn tạo dữ liệu mock động dựa trên các tham số yêu cầu đầu vào.
74
+ - **Mô phỏng độ trễ** — thiết lập `lag: true` sẽ thêm một khoảng trễ ngẫu nhiên (0-2000ms) và kích hoạt trạng thái tải chung (lớp `d-response-loading` trên body).
75
+ - **Tính duy trì của khớp** — theo mặc định, một cấu hình giả lập chỉ khớp một lần trừ khi `devMode` được bật, điều này ngăn chặn việc kích hoạt mock trùng lặp cho cùng một trạng thái.
@@ -6,48 +6,45 @@ import {Meta} from '@storybook/addon-docs/blocks'
6
6
 
7
7
  A class dedicated to tracking and managing the state of an API request. It securely holds the current HTTP status, error messages, and the parsed response body, allowing applications to react to real-time changes utilizing state abstractions.
8
8
 
9
+ > `ApiStatus` is an **auxiliary class**, designed for tracking request states. In most cases, it is recommended to interact with request status through the `status` property of the `ApiInstance` result or the global `Api` execution flow.
10
+
9
11
  ## Key Features
10
12
 
11
13
  - **Centralized State** — holds everything related to the result of an API call: HTTP status, custom texts, raw response data, and generated messages.
12
14
  - **Chainable API** — setters return `this`, allowing multiple state changes to be chained elegantly.
13
15
  - **Automatic Message Extraction** — intelligently attempts to parse and pull human-readable `message` fields directly from structured server responses.
14
16
 
15
- ## Initialization
16
-
17
- To initialize the object, call the `ApiStatus()` constructor.
18
-
19
- ```typescript
20
- import { ApiStatus } from '@dxtmisha/functional'
21
-
22
- // 1. Simple initialization
23
- const apiStatus = new ApiStatus()
17
+ ## Methods
24
18
 
25
- // 2. Setting response status
26
- apiStatus.setStatus(200, 'OK')
19
+ ### Action
27
20
 
28
- // 3. Setting response data and automatic message extraction
29
- apiStatus.setLastResponse({
30
- status: 'success',
31
- message: 'Data retrieved successfully',
32
- data: { id: 1 }
33
- })
34
- ```
21
+ - `getResponse<T>(): T | undefined` — Returns the raw data payload from the last successful request.
22
+ - `getMessage(): string` — Returns the server message pulled from a successful response or a manually set message.
35
23
 
36
- ## Methods
24
+ ### Check
37
25
 
38
- ### Value Retrieval Methods
39
- - `get(): ApiStatusItem` — Returns the complete status data object of the last response.
40
- - `getStatus(): number | undefined` — Returns the HTTP status code (e.g., `200`, `404`).
41
- - `getStatusText(): string | undefined` — Returns the status text message string (e.g., `"OK"`, `"Not Found"`).
26
+ - `get(): ApiStatusItem | undefined` — Returns the complete status data object.
27
+ - `getStatus(): number | undefined` — Returns the HTTP status code (e.g., `200`).
28
+ - `getStatusText(): string | undefined` — Returns the status text (e.g., `"OK"`).
42
29
  - `getStatusType(): ApiStatusType | undefined` — Returns the last status validation type.
43
- - `getError(): string | undefined` — Returns the explicitly recorded error message.
44
- - `getResponse<T>(): T | undefined` — Returns the raw data payload from the last successful request.
45
- - `getMessage(): string` — Returns the server message pulled from a successful response.
30
+ - `getError(): string | undefined` — Returns the recorded error message.
31
+
32
+ ### Configuration
46
33
 
47
- ### Value Setting Methods
48
34
  - `set(data: ApiStatusItem): this` — Sets multiple status fields at once.
49
- - `setStatus(status?: number, statusText?: string): this` — Sets the HTTP status code and an optional text explanation.
50
- - `setError(error?: string): this` — Records an error message string when a request fails or is rejected.
51
- - `setLastResponse(response?: any): this` — Records a server response completely and optionally updates related statuses (like extraction of `.message`).
52
- - `setLastStatus(status?: ApiStatusType): this` — Sets the final custom API status type.
53
- - `setLastMessage(message?: string): this` — Forcibly overrides or explicitly records a message.
35
+ - `setStatus(status?: number, statusText?: string): this` — Sets the HTTP status code and text.
36
+ - `setError(error?: string): this` — Records an error message string.
37
+ - `setLastResponse(response?: any): this` — Records a server response and automatically extracts `message` and `status` if present.
38
+ - `setLastStatus(status?: ApiStatusType): this` — Sets the custom API status type.
39
+ - `setLastMessage(message?: string): this` — Explicitly records a message.
40
+
41
+ ## Types
42
+
43
+ #### `ApiStatusItem`
44
+ A complete representation of a request status.
45
+ - `status?: number` — HTTP status code.
46
+ - `statusText?: string` — HTTP status text.
47
+ - `error?: string` — Error message.
48
+ - `lastResponse?: any` — Last response data.
49
+ - `lastStatus?: ApiStatusType` — Last status type.
50
+ - `lastMessage?: string` — Last message.
@@ -4,50 +4,47 @@ import {Meta} from '@storybook/addon-docs/blocks'
4
4
 
5
5
  # Класс ApiStatus
6
6
 
7
- Класс для отслеживания и управления состоянием API-запроса. Надежно хранит текущий HTTP-статус, сообщения об ошибках и обработанное тело ответа, позволяя приложениям реагировать на изменения в реальном времени, используя абстракции состояния.
7
+ Класс, предназначенный для отслеживания и управления состоянием API-запроса. Он надежно хранит текущий HTTP-статус, сообщения об ошибках и тело ответа, позволяя приложениям реагировать на изменения в реальном времени с помощью абстракций состояния.
8
+
9
+ > `ApiStatus` является **вспомогательным классом**, предназначенным для отслеживания состояний запросов. В большинстве случаев рекомендуется взаимодействовать со статусом запроса через свойство `status` результата `ApiInstance` или глобальный цикл выполнения `Api`.
8
10
 
9
11
  ## Ключевые особенности
10
12
 
11
- - **Централизованное состояние** — хранит всё, что связано с результатом вызова API: HTTP-статус, пользовательские тексты, сырые данные ответа и сгенерированные сообщения.
12
- - **Цепочки вызовов**методы возвращают `this`, позволяя лаконично обновлять несколько полей состояния друг за другом.
13
- - **Автоматическое извлечение сообщений** — интеллектуально пытается разобрать и извлечь читаемые человеком поля `message` напрямую из структурированных ответов сервера.
13
+ - **Централизованное состояние** — содержит всё, что связано с результатом вызова API: HTTP-статус, пользовательские тексты, необработанные данные ответа и сгенерированные сообщения.
14
+ - **Chainable API**сеттеры возвращают `this`, что позволяет элегантно выстраивать цепочки изменений состояния.
15
+ - **Автоматическое извлечение сообщений** — интеллектуально пытается разобрать и извлечь человекочитаемые поля `message` напрямую из структурированных ответов сервера.
16
+
17
+ ## Методы
14
18
 
15
- ## Инициализация
19
+ ### Действие
16
20
 
17
- Для инициализации объекта вызовите конструктор `ApiStatus()`.
21
+ - `getResponse<T>(): T | undefined` — Возвращает необработанный объем данных из последнего успешного запроса.
22
+ - `getMessage(): string` — Возвращает сообщение сервера, извлеченное из успешного ответа, или сообщение, установленное вручную.
18
23
 
19
- ```typescript
20
- import { ApiStatus } from '@dxtmisha/functional'
24
+ ### Проверка
21
25
 
22
- // 1. Простая инициализация
23
- const apiStatus = new ApiStatus()
26
+ - `get(): ApiStatusItem | undefined` — Возвращает полный объект данных статуса.
27
+ - `getStatus(): number | undefined` — Возвращает код HTTP-статуса (например, `200`).
28
+ - `getStatusText(): string | undefined` — Возвращает текст статуса (например, `"OK"`).
29
+ - `getStatusType(): ApiStatusType | undefined` — Возвращает последний тип валидации статуса.
30
+ - `getError(): string | undefined` — Возвращает записанное сообщение об ошибке.
24
31
 
25
- // 2. Установка статуса ответа
26
- apiStatus.setStatus(200, 'OK')
32
+ ### Конфигурация
27
33
 
28
- // 3. Установка данных ответа и автоматическое извлечение сообщения
29
- apiStatus.setLastResponse({
30
- status: 'success',
31
- message: 'Данные успешно получены',
32
- data: { id: 1 }
33
- })
34
- ```
34
+ - `set(data: ApiStatusItem): this` Устанавливает несколько полей статуса одновременно.
35
+ - `setStatus(status?: number, statusText?: string): this` — Устанавливает код и текст HTTP-статуса.
36
+ - `setError(error?: string): this` — Записывает строку сообщения об ошибке.
37
+ - `setLastResponse(response?: any): this` Записывает ответ сервера и автоматически извлекает `message` и `status`, если они есть.
38
+ - `setLastStatus(status?: ApiStatusType): this` — Устанавливает пользовательский тип статуса API.
39
+ - `setLastMessage(message?: string): this` — Явно записывает сообщение.
35
40
 
36
- ## Методы
41
+ ## Типы
37
42
 
38
- ### Методы получения значений
39
- - `get(): ApiStatusItem` — Возвращает полный объект состояния последнего ответа.
40
- - `getStatus(): number | undefined` — Возвращает числовой HTTP статус (`200`, `404`).
41
- - `getStatusText(): string | undefined` — Возвращает текстовое объяснение (`"OK"`, `"Not Found"`).
42
- - `getStatusType(): ApiStatusType | undefined` — Возвращает тип последнего статуса.
43
- - `getError(): string | undefined` — Возвращает заданную строку ошибки.
44
- - `getResponse<T>(): T | undefined` — Возвращает переданные в качестве последнего ответа данные.
45
- - `getMessage(): string` — Возвращает последнюю сгенерированную или извлечённую строку сообщения сервера.
46
-
47
- ### Методы установки значений
48
- - `set(data: ApiStatusItem): this` — Единовременно устанавливает несколько полей статуса.
49
- - `setStatus(status?: number, statusText?: string): this` — Устанавливает код ответов HTTP и опциональное текстовое пояснение.
50
- - `setError(error?: string): this` — Отмечает и сохраняет строку ошибки при неудачных запросах.
51
- - `setLastResponse(response?: any): this` — Сохраняет сырой ответ сервера и при наличии поля `message` автоматически заполняет его.
52
- - `setLastStatus(status?: ApiStatusType): this` — Задает конкретный тип финального статуса.
53
- - `setLastMessage(message?: string): this` — Принудительно задает текстовое сообщение из ответа сервера.
43
+ #### `ApiStatusItem`
44
+ Полное представление статуса запроса.
45
+ - `status?: number` — Код HTTP-статуса.
46
+ - `statusText?: string` — Текст HTTP-статуса.
47
+ - `error?: string` — Сообщение об ошибке.
48
+ - `lastResponse?: any` — Данные последнего ответа.
49
+ - `lastStatus?: ApiStatusType` — Последний тип статуса.
50
+ - `lastMessage?: string` — Последнее сообщение.
@@ -4,50 +4,47 @@ import {Meta} from '@storybook/addon-docs/blocks'
4
4
 
5
5
  # Lớp ApiStatus
6
6
 
7
- Một lớp chuyên biệt dùng để theo dõi và quản lý các trạng thái của một yêu cầu API. Nó nắm giữ cục diện trạng thái HTTP hiện tại, thông báo báo lỗi,hệ thống phân tích phản hồi data trả về, cho phép ứng dụng phản ứng kịp thời với những diễn biến theo thời gian thực chuẩn xác.
7
+ Một lớp chuyên dụng để theo dõi và quản lý trạng thái của một yêu cầu API. Nó lưu trữ an toàn trạng thái HTTP hiện tại, thông điệp lỗi và nội dung phản hồi đã được phân tích cú pháp, cho phép các ứng dụng phản ứng với những thay đổi trong thời gian thực bằng cách sử dụng các trừu tượng trạng thái.
8
+
9
+ > `ApiStatus` là một **lớp bổ trợ** (auxiliary class), được thiết kế để theo dõi trạng thái yêu cầu. Trong hầu hết các trường hợp, bạn nên tương tác với trạng thái yêu cầu thông qua thuộc tính `status` của kết quả `ApiInstance` hoặc luồng thực thi `Api` toàn cục.
8
10
 
9
11
  ## Các tính năng chính
10
12
 
11
- - **Trạng thái tập trung** — lưu giữ tất cả những yếu tố liên đới kết quả trả về của một API: luồng sự kiện HTTP, thông báo đặc quyền, giao thức đối tượng gốc...
12
- - **Nối tuyến API (Chainable API)** — bộ thiết lập trả về đối tượng luồng `this`, cho phép ghép nối biến chuyển trạng thái nhiều cấp tiện lợi.
13
- - **Giải văn bản tự động** — thuật toán thiết lập cố gắng tự thân đọc hàm bóc tách thư mục mang tên `message` thông dụng dưới tầng trực tiếp trích lấy từ chuỗi dữ liệu chủ lưu server.
13
+ - **Trạng thái tập trung** — lưu giữ mọi thứ liên quan đến kết quả của một cuộc gọi API: trạng thái HTTP, văn bản tùy chỉnh, dữ liệu phản hồi thô và các thông điệp được tạo ra.
14
+ - **Chainable API** — các phương thức thiết lập (setters) trả về `this`, cho phép xâu chuỗi nhiều thay đổi trạng thái một cách thanh lịch.
15
+ - **Tự động trích xuất thông điệp** — cố gắng phân tíchlấy các trường `message` thể đọc được trực tiếp từ các phản hồi cấu trúc của máy chủ.
16
+
17
+ ## Các phương thức
14
18
 
15
- ## Khởi tạo
19
+ ### Hành động
16
20
 
17
- Để khởi tạo đối tượng, hãy gọi hàm khởi tạo `ApiStatus()`.
21
+ - `getResponse<T>(): T | undefined` Trả về dữ liệu thô từ yêu cầu thành công cuối cùng.
22
+ - `getMessage(): string` — Trả về thông điệp máy chủ được lấy từ phản hồi thành công hoặc thông điệp được thiết lập thủ công.
18
23
 
19
- ```typescript
20
- import { ApiStatus } from '@dxtmisha/functional'
24
+ ### Kiểm tra
21
25
 
22
- // 1. Khởi tạo đơn giản
23
- const apiStatus = new ApiStatus()
26
+ - `get(): ApiStatusItem | undefined` — Trả về đối tượng dữ liệu trạng thái đầy đủ.
27
+ - `getStatus(): number | undefined` — Trả về mã trạng thái HTTP (ví dụ: `200`).
28
+ - `getStatusText(): string | undefined` — Trả về văn bản trạng thái (ví dụ: `"OK"`).
29
+ - `getStatusType(): ApiStatusType | undefined` — Trả về loại xác thực trạng thái cuối cùng.
30
+ - `getError(): string | undefined` — Trả về thông điệp lỗi đã ghi lại.
24
31
 
25
- // 2. Thiết lập trạng thái phản hồi
26
- apiStatus.setStatus(200, 'OK')
32
+ ### Cấu hình
27
33
 
28
- // 3. Thiết lập dữ liệu phản hồi tự động trích xuất thông báo
29
- apiStatus.setLastResponse({
30
- status: 'success',
31
- message: 'Dữ liệu đã được tải thành công',
32
- data: { id: 1 }
33
- })
34
- ```
34
+ - `set(data: ApiStatusItem): this` Thiết lập nhiều trường trạng thái cùng một lúc.
35
+ - `setStatus(status?: number, statusText?: string): this` — Thiết lập mã và văn bản trạng thái HTTP.
36
+ - `setError(error?: string): this` — Ghi lại một chuỗi thông điệp lỗi.
37
+ - `setLastResponse(response?: any): this` Ghi lại phản hồi máy chủ và trích xuất siêu dữ liệu liên quan.
38
+ - `setLastStatus(status?: ApiStatusType): this` — Thiết lập loại trạng thái API tùy chỉnh.
39
+ - `setLastMessage(message?: string): this` — Ghi lại một thông điệp một cách rõ ràng.
35
40
 
36
- ## Các phương thức
41
+ ## Các kiểu dữ liệu
37
42
 
38
- ### Các phương thức lấy giá trị
39
- - `get(): ApiStatusItem` — Trả về mảng dữ liệu hiện thể trạng thái đầy đủ của đợt truy vấn cuối cùng.
40
- - `getStatus(): number | undefined` — Trả về số hạng trạng thái HTTP (như `200`, `404`).
41
- - `getStatusText(): string | undefined` — Trả về thông báo phân tích hiện trạng thái bằng mã lệnh chữ (ví dụ: `"OK"`).
42
- - `getStatusType(): ApiStatusType | undefined` — Trả về loại giao thức đối tượng xác thực kiểm duyệt chuỗi mới nhất.
43
- - `getError(): string | undefined` — Trả về dải cấu trúc lỗi đã được chủ ý ghi hình trước đó.
44
- - `getResponse<T>(): T | undefined` — Xuất thông tin gói cơ sở tài liệu gốc từ lệnh truy xuất gọi API thành công mới đây.
45
- - `getMessage(): string` — Lôi trực xuất lấy thông báo hệ thống được server kéo thả trong gói thành công.
46
-
47
- ### Các phương thức thiết lập giá trị
48
- - `set(data: ApiStatusItem): this` — Thiết lập cùng lúc hàng loạt thông số hiện trạng vào máy móc.
49
- - `setStatus(status?: number, statusText?: string): this` — Nạp mã thông số báo HTTP và chuỗi mã số xác nhận tùy chọn vào guồng.
50
- - `setError(error?: string): this` — Khóa ghi lại thông báo tình trạng bị sập hầm mạng khi lệnh fetch cự tuyệt.
51
- - `setLastResponse(response?: any): this` — Gắn lưu hoàn chỉnh nguyên vẹn một chuỗi kết xuất server và đồng bộ tự nhận dạng mảng `.message`.
52
- - `setLastStatus(status?: ApiStatusType): this` — Trực tiếp định danh loại trạng thái cho tác vụ kết thúc chót.
53
- - `setLastMessage(message?: string): this` — Chủ định ép điền thông số hoặc đánh đè lên mã phản hồi `message`.
43
+ #### `ApiStatusItem`
44
+ Một đại diện đầy đủ của trạng thái yêu cầu.
45
+ - `status?: number` — trạng thái HTTP.
46
+ - `statusText?: string` — Văn bản trạng thái HTTP.
47
+ - `error?: string` — Thông điệp lỗi.
48
+ - `lastResponse?: any` — Dữ liệu phản hồi thô.
49
+ - `lastStatus?: ApiStatusType` — Danh mục xác thực.
50
+ - `lastMessage?: string` — Thông điệp hiển thị đã trích xuất.