@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
@@ -2,94 +2,125 @@ import {Meta} from '@storybook/addon-docs/blocks'
2
2
 
3
3
  <Meta title='@dxtmisha/vi/functional-basic/Classes/ErrorCenter - Quản lý lỗi'/>
4
4
 
5
- # ErrorCenter
5
+ # Lớp ErrorCenter
6
6
 
7
- Một lớp tĩnh (static wrapper) cho `ErrorCenterInstance` cung cấp quản lý tập trung cho việc lưu trữ, truy xuất xử lý lỗi dựa trên sự kiện. Nó đóng vai trò như một bộ lưu trữ toàn cầu cho các nguyên nhân gây lỗi cung cấp chế để đăng cũng như kích hoạt các trình xử tùy chỉnh cho các nhóm lỗi khác nhau.
7
+ `ErrorCenter` công cụ trung tâm để quản tất cả các lỗi trong ứng dụng. Nó cho phép bạn đăng các nguyên nhân lỗi thể xảy ra một nơi, cấu hình phản ứng với chúng (ví dụ: hiển thị thông báo) kích hoạt chúng từ bất kỳ phần nào của mã.
8
8
 
9
- Lớp này tuân theo hình "Static Bridge", chuyển giao tất cả các hoạt động cho một thực thể duy nhất (singleton instance) trong khi vẫn duy trì một API sạch sẽ, có thể truy cập toàn cầu.
9
+ Lớp này hoạt động như một vỏ bọc tĩnh (Static Bridge), chuyển tất cả các yêu cầu đến một `ErrorCenterInstance` duy nhất.
10
10
 
11
- ## Các tính năng chính
11
+ ## Các phương thức
12
12
 
13
- - **Truy cập tĩnh** — Truy cập toàn cầu vào quản lý lỗi mà không cần khởi tạo thủ công.
14
- - **Bộ lưu trữ tập trung** Lưu trữ các nguyên nhân lỗi được tiêu chuẩn hóa để phản hồi UI nhất quán.
15
- - **Xử lý theo nhóm** — Cho phép đăng ký nhiều hàm gọi lại cho các danh mục lỗi cụ thể.
16
- - **Chainable API** — Các phương thức thêm nguyên nhân và trình xử lý hỗ trợ thiết kế giao diện linh hoạt.
17
- - **Giá trị mặc định** — Đi kèm với các nguyên nhân lỗi mạng tiêu chuẩn (`timeout`, `offline`, `notFound`, v.v.).
13
+ ### Hành động
14
+ - `on(cause: ErrorCenterCauseItem): void` Bắt đầu quá trình xử lý. Tìm kiếm dữ liệu trong sổ đăng ký, hợp nhất chúng và gọi các callback thích hợp.
18
15
 
19
- ## Các phương thức kiểm tra
16
+ ### Xác minh
17
+ - `has(code: string, group?: string): boolean` — Kiểm tra xem lỗi đã được đăng ký chưa.
18
+ - `get(code: string, group?: string): ErrorCenterCauseItem | undefined` — Trả về dữ liệu lỗi từ sổ đăng ký.
20
19
 
21
- - `has(code: string, group?: string): boolean` — Kiểm tra xem một nguyên nhân lỗi có tồn tại trong bộ lưu trữ hay không.
22
- - `get(code: string, group?: string): ErrorCenterCauseItem | undefined` — Truy xuất đối tượng nguyên nhân lỗi đầy đủ.
20
+ ### Cấu hình
21
+ - `add(cause: ErrorCenterCauseItem): void` — Thêm một nguyên nhân lỗi.
22
+ - `addList(causes: ErrorCenterCauseList): void` — Thêm một danh sách lỗi (đăng ký hàng loạt).
23
+ - `addHandler(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): void` — Đăng ký phản ứng cho một nhóm lỗi.
24
+ - `addHandlerList(handlers: ErrorCenterHandlerList): void` — Đăng ký hàng loạt nhiều trình xử lý.
23
25
 
24
- ## Truy xuất thực thể
25
-
26
- - `getItem(): ErrorCenterInstance` — Trả về thực thể nền tảng được sử dụng bởi lớp tĩnh.
27
-
28
- ## Cấu hình
29
-
30
- - `add(cause: ErrorCenterCauseItem): this` — Thêm một nguyên nhân lỗi duy nhất vào bộ lưu trữ toàn cầu.
31
- - `addList(causes: ErrorCenterCauseList): this` — Thêm nhiều nguyên nhân lỗi vào bộ lưu trữ cùng một lúc.
32
- - `addHandler(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Đăng ký một hàm gọi lại cho một nhóm lỗi cụ thể.
33
- - `addHandlerList(handlers: ErrorCenterHandlerList): this` — Đăng ký một loạt các trình xử lý.
34
-
35
- ## Các phương thức hành động
36
-
37
- ### `on`
38
-
39
- Kích hoạt xử lý lỗi cho nguyên nhân được chỉ định. Nó tìm kiếm dữ liệu đã đăng ký trước đó cho mã lỗi (nếu có), hợp nhất với nguyên nhân đầu vào (`cause`), thực thi tất cả các trình xử lý đã đăng ký cho nhóm đó và ghi lỗi vào bảng điều khiển (console).
40
-
41
- **Tham số:**
42
- - `cause: ErrorCenterCauseItem` — Nguyên nhân lỗi cần kích hoạt. Chỉ cần cung cấp mã và nhóm nếu nguyên nhân đó đã được đăng ký trước đó qua `add()`.
43
-
44
- **Trả về:** `this`
26
+ ### Bổ trợ
27
+ - `getItem(): ErrorCenterInstance` — Trả về thực thể nội bộ của lớp.
45
28
 
46
29
  ## Các kiểu dữ liệu
47
30
 
48
- ### `ErrorCenterCauseItem`
49
-
50
- Đối tượng chính được sử dụng để xác định nguyên nhân gây lỗi.
31
+ #### `ErrorCenterGroup`
32
+ Tên nhóm (ví dụ: 'api', 'auth') hoặc `undefined` cho trình xử lý chung.
51
33
 
52
- - `group?: ErrorCenterGroup` — danh mục/nhóm mà lỗi thuộc về.
53
- - `code: string` định danh duy nhất cho lỗi.
54
- - `label?: string` — tên lỗi dễ đọc cho người dùng.
55
- - `message?: string` — mô tả chi tiết về lỗi.
56
- - `details?: any` — đối tượng tùy chọn cho các dữ liệu bổ sung.
34
+ #### `ErrorCenterCauseItem`
35
+ Đối tượng mô tả lỗi: `group`, `code` (bắt buộc), `priority`, `label`, `message`, `details`.
57
36
 
58
- ### `ErrorCenterGroup`
37
+ ## Hướng dẫn sử dụng
59
38
 
60
- Định nghĩa kiểu đơn giản để phân loại lỗi: `string | undefined`.
61
-
62
- ## Các nguyên nhân lỗi mặc định
63
-
64
- `ErrorCenter` được điền sẵn tự động với các nguyên nhân mạng tiêu chuẩn sau:
39
+ ### Bước 1: Đăng (Registry)
40
+ Lập một từ điển lỗi để lưu trữ văn bản tách biệt với mã.
41
+ ```typescript
42
+ ErrorCenter.add({
43
+ group: 'auth',
44
+ code: 'LOGIN_FAILED',
45
+ label: 'Đăng nhập thất bại',
46
+ message: 'Mật khẩu không hợp lệ.'
47
+ })
48
+ ```
65
49
 
66
- - `unknown` **Lỗi không xác định**: Đã xảy ra lỗi không mong muốn. Vui lòng thử lại.
67
- - `timeout` **Yêu cầu hết hạn**: Yêu cầu mất quá nhiều thời gian. Vui lòng kiểm tra kết nối.
68
- - `offline` — **Không có kết nối**: Bạn đang ngoại tuyến. Vui lòng kiểm tra mạng.
69
- - `notFound` **Không tìm thấy**: Tài nguyên được yêu cầu không thể tìm thấy.
70
- - `server` — **Lỗi máy chủ**: Đã xảy ra lỗi nội bộ máy chủ.
50
+ ### Bước 2: Đăng nhận lỗi (Handlers)
51
+ Chỉ định cách ứng dụng sẽ phản ứng với một nhóm lỗi.
52
+ ```typescript
53
+ ErrorCenter.addHandler('auth', (cause) => {
54
+ alert(cause.message);
55
+ });
56
+ ```
71
57
 
72
- ## dụ sử dụng
58
+ ### Bước 3: Kích hoạt (Execution)
59
+ Kích hoạt lỗi bằng mã và nhóm của nó.
60
+ ```typescript
61
+ ErrorCenter.on({ group: 'auth', code: 'LOGIN_FAILED' });
62
+ ```
73
63
 
74
- ```javascript
64
+ ## Nguyên nhân lỗi tiêu chuẩn
65
+
66
+ Lớp đã chứa các mô tả sẵn có cho các tình huống phổ biến.
67
+
68
+ #### Nhóm API (`api`)
69
+ Được sử dụng cho các lỗi yêu cầu mạng.
70
+ - **forbidden** — Truy cập bị cấm (403).
71
+ - **notFound** — Không tìm thấy tài nguyên (404).
72
+ - **offline** — Không có kết nối internet.
73
+ - **server** — Lỗi máy chủ nội bộ (500).
74
+ - **timeout** — Hết thời gian yêu cầu.
75
+ - **unauthorized** — Lỗi xác thực (401).
76
+ - **unknown** — Lỗi không xác định.
77
+ - **cacheClear**, **cacheGet**, **cacheRemove**, **cacheSet** — Lỗi khi làm việc với bộ nhớ đệm.
78
+
79
+ #### Nhóm Intl (`intl`)
80
+ Lỗi trong quá trình định dạng dữ liệu (ngày tháng, số, v.v.).
81
+ - **datetime**, **display**, **number**, **plural**, **relative**.
82
+ - **invalid** — Ngày không hợp lệ hoặc định dạng sai.
83
+
84
+ #### Nhóm Storage (`storage`)
85
+ Lỗi khi tương tác với bộ lưu trữ cục bộ hoặc máy chủ.
86
+ - **context** — Thiếu ngữ cảnh.
87
+ - **error** — Lỗi đọc/ghi chung.
88
+
89
+ #### Các nhóm khác
90
+ Các nhóm này sử dụng mã lỗi chung `error`. Việc kích hoạt được thực hiện thông qua `ErrorCenter.on({ group: 'tên_nhóm', code: 'error' })`.
91
+ - **broadcast** — Lỗi trong việc trao đổi dữ liệu giữa các tab trình duyệt.
92
+ - **hydration** — Lỗi trong quá trình đồng bộ hóa dữ liệu giữa máy chủ và máy khách.
93
+ - **share** — Lỗi khi cố gắng chia sẻ nội dung (Sharing API).
94
+ - **transformation** — Lỗi trong quá trình chuyển đổi hoặc phân tích cú pháp dữ liệu.
95
+
96
+ ## Ví dụ
97
+
98
+ ### Tích hợp với hệ thống thông báo
99
+ ```typescript
75
100
  import { ErrorCenter } from '@dxtmisha/functional-basic'
76
101
 
77
- // 1. Cấu hình trình xử toàn cục
102
+ // Thiết lập một lần khi khởi động ứng dụng
78
103
  ErrorCenter.addHandler('api', (cause) => {
79
- notification.error({
80
- title: cause.label,
81
- message: cause.message
82
- })
83
- })
84
-
85
- // 2. Đăng các nguyên nhân lỗi cụ thể
86
- ErrorCenter.add({
87
- group: 'auth',
88
- code: 'token_expired',
89
- label: 'Phiên làm việc hết hạn',
90
- message: 'Vui lòng đăng nhập lại.'
91
- })
104
+ Toast.show(cause.label || 'Lỗi', cause.message);
105
+ });
106
+
107
+ // Sử dụng trong bất kỳ dịch vụ nào
108
+ async function loadData() {
109
+ try {
110
+ const data = await fetch('/api');
111
+ } catch (e) {
112
+ ErrorCenter.on({ group: 'api', code: 'server', details: e });
113
+ }
114
+ }
115
+ ```
92
116
 
93
- // 3. Kích hoạt lỗi qua và nhóm
94
- ErrorCenter.on({ group: 'auth', code: 'token_expired' })
117
+ ### Làm việc với các nhóm tùy chỉnh
118
+ ```typescript
119
+ // Đăng ký tức thì
120
+ ErrorCenter.on({
121
+ group: 'upload',
122
+ code: 'SIZE_LIMIT',
123
+ label: 'Tệp quá lớn',
124
+ message: 'Tối đa 5MB'
125
+ });
95
126
  ```
@@ -2,68 +2,72 @@ import {Meta} from '@storybook/addon-docs/blocks'
2
2
 
3
3
  <Meta title='@dxtmisha/en/functional-basic/Classes/ErrorCenterHandler - Handler Management'/>
4
4
 
5
- # ErrorCenterHandler
5
+ # ErrorCenterHandler Class
6
6
 
7
- A core utility class for managing and triggering error handlers based on defined groups. It allows for flexible error response strategies, such as showing global notifications for API errors while performing silent logging for background tasks.
7
+ `ErrorCenterHandler` is a manager for handling callback functions (handlers). It allows you to bind logic to specific error groups and execute it when a corresponding event occurs.
8
8
 
9
9
  ## Key Features
10
10
 
11
- - **Handler Registration** — Easily add multiple callback functions to specific error groups.
12
- - **Group Filtering** — Target specific categories of errors (e.g., `api`, `auth`, `validation`).
13
- - **Global Fallback** — Support for an `undefined` group handler that catches any error without a specific handler.
14
- - **Sequential Execution** — Triggers all registered callbacks for a group in the order they were added.
15
- - **Integrated Logging** — Automatically outputs error details to the browser console for debugging.
11
+ - **Handler Registration** — convenient addition of callback functions to specific groups.
12
+ - **Global Handler** — support for the `undefined` group, which catches any error without a specific handler.
13
+ - **Sequential Execution** — triggers all registered functions in the order they were added.
14
+ - **Integrated Logging** — automatically outputs error details to the console.
16
15
 
17
- ## Check Methods
16
+ ## Initialization
18
17
 
19
- - `has(group: ErrorCenterGroup): boolean` Checks if any handlers are registered for a specific group.
20
- - `get(group: ErrorCenterGroup): ErrorCenterHandlerItem | undefined` — Retrieves the handler mapping for a group.
18
+ To create an instance, use the constructor `ErrorCenterHandler(handlers)`.
21
19
 
22
- ## Configuration
20
+ **Parameters:**
21
+ - `handlers?: ErrorCenterHandlerList` — initial list of handlers.
23
22
 
24
- - `add(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Adds a single callback function to a group.
25
- - `addList(handlers: ErrorCenterHandlerList): this` Registers a batch of handlers.
23
+ ```typescript
24
+ import { ErrorCenterHandler } from '@dxtmisha/functional-basic'
26
25
 
27
- ## Action Methods
26
+ const handlers = new ErrorCenterHandler([
27
+ {
28
+ group: 'api',
29
+ handlers: [(cause) => console.log('API Error:', cause.code)]
30
+ }
31
+ ]);
32
+ ```
28
33
 
29
- ### `on`
34
+ ## Methods
30
35
 
31
- Triggers all registered handlers for the provided error cause's group. If no specific handlers are found, it falls back to the handlers registered for the `undefined` group (if any). Always logs the error details to the console internally.
36
+ ### Action
37
+ - `on(cause: ErrorCenterCauseItem): this` — Triggers the chain of handlers. Always outputs an error to the console via `console.error`.
32
38
 
33
- **Parameters:**
34
- - `cause: ErrorCenterCauseItem` — The error details to pass to handlers.
39
+ ### Verification
40
+ - `has(group: ErrorCenterGroup): boolean` — Checks if there are handlers for a group.
41
+ - `get(group: ErrorCenterGroup): ErrorCenterHandlerItem | undefined` — Returns a list of functions for a group.
35
42
 
36
- **Returns:** `this`
43
+ ### Configuration
44
+ - `add(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Adds a single function to a group.
45
+ - `addList(handlers: ErrorCenterHandlerList): this` — Batch registration of handlers.
37
46
 
38
47
  ## Types
39
48
 
40
- ### `ErrorCenterHandlerCallback`
49
+ #### `ErrorCenterGroup`
50
+ Group name (`string`) or `undefined` for global interception.
41
51
 
42
- The function signature for error handling callbacks.
52
+ #### `ErrorCenterHandlerCallback`
53
+ Callback function: `(cause: ErrorCenterCauseItem) => void`.
43
54
 
44
- - `(cause: ErrorCenterCauseItem) => void` — Receives the merged error cause object.
45
-
46
- ## Usage Example
47
-
48
- ```javascript
49
- import { ErrorCenterHandler } from '@dxtmisha/functional-basic'
55
+ #### `ErrorCenterHandlerItem`
56
+ Link between a group and an array of its functions.
57
+ - `group?: ErrorCenterGroup` — target group.
58
+ - `handlers: ErrorCenterHandlerCallback[]` — list of functions.
50
59
 
51
- const handlerManager = new ErrorCenterHandler()
60
+ ## Examples
52
61
 
53
- // 1. Register a specific group handler
54
- handlerManager.add('api', (cause) => {
55
- console.log('[API Handler]', cause.message)
56
- })
62
+ ### Isolated Manager for a Module
63
+ ```typescript
64
+ const uploadHandlers = new ErrorCenterHandler();
57
65
 
58
- // 2. Register a global fallback handler
59
- handlerManager.add(undefined, (cause) => {
60
- console.error('[Global Fallback]', cause.code)
61
- })
66
+ uploadHandlers.add('upload', (cause) => {
67
+ if (cause.code === 'retry') {
68
+ restartUpload();
69
+ }
70
+ });
62
71
 
63
- // 3. Triggering an error
64
- handlerManager.on({
65
- group: 'api',
66
- code: '500',
67
- message: 'Internal Server Error'
68
- })
72
+ uploadHandlers.on({ group: 'upload', code: 'retry' });
69
73
  ```
@@ -2,68 +2,72 @@ import {Meta} from '@storybook/addon-docs/blocks'
2
2
 
3
3
  <Meta title='@dxtmisha/ru/functional-basic/Classes/ErrorCenterHandler - Управление обработчиками'/>
4
4
 
5
- # ErrorCenterHandler
5
+ # Класс ErrorCenterHandler
6
6
 
7
- Основной вспомогательный класс для управления и вызова обработчиков ошибок на основе определенных групп. Он позволяет реализовывать гибкие стратегии реагирования на ошибки, такие как отображение глобальных уведомлений для ошибок API при выполнении скрытого логирования для фоновых задач.
7
+ `ErrorCenterHandler` это менеджер для управления функциями обратного вызова (обработчиками). Он позволяет привязывать логику к определенным группам ошибок и выполнять её, когда происходит соответствующее событие.
8
8
 
9
9
  ## Ключевые особенности
10
10
 
11
- - **Регистрация обработчиков** — Удобное добавление нескольких функций обратного вызова к конкретным группам.
12
- - **Групповая фильтрация**Возможность нацеливаться на конкретные категории ошибок.
13
- - **Глобальный обработчик**Поддержка группы `undefined`, которая перехватывает любую ошибку без специфического обработчика.
14
- - **Последовательное выполнение**Запускает все зарегистрированные функции в порядке их добавления.
15
- - **Интегрированное логирование** — Автоматически выводит детали ошибки в консоль браузера.
11
+ - **Регистрация обработчиков** — удобное добавление функций обратного вызова к конкретным группам.
12
+ - **Глобальный обработчик**поддержка группы `undefined`, которая перехватывает любую ошибку без специфического обработчика.
13
+ - **Последовательное выполнение**запускает все зарегистрированные функции в порядке их добавления.
14
+ - **Интегрированное логирование**автоматически выводит детали ошибки в консоль.
16
15
 
17
- ## Методы проверки
16
+ ## Инициализация
18
17
 
19
- - `has(group: ErrorCenterGroup): boolean` Проверяет, зарегистрированы ли обработчики для группы.
20
- - `get(group: ErrorCenterGroup): ErrorCenterHandlerItem | undefined` — Извлекает элемент обработчика для группы.
18
+ Для создания экземпляра используйте конструктор `ErrorCenterHandler(handlers)`.
21
19
 
22
- ## Конфигурация
20
+ **Параметры:**
21
+ - `handlers?: ErrorCenterHandlerList` — начальный список обработчиков.
23
22
 
24
- - `add(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Добавляет одну функцию обратного вызова в группу.
25
- - `addList(handlers: ErrorCenterHandlerList): this` Регистрирует пакет обработчиков.
23
+ ```typescript
24
+ import { ErrorCenterHandler } from '@dxtmisha/functional-basic'
26
25
 
27
- ## Методы действий
26
+ const handlers = new ErrorCenterHandler([
27
+ {
28
+ group: 'api',
29
+ handlers: [(cause) => console.log('API Error:', cause.code)]
30
+ }
31
+ ]);
32
+ ```
28
33
 
29
- ### `on`
34
+ ## Методы
30
35
 
31
- Запускает все зарегистрированные обработчики для группы предоставленной причины ошибки. Если специфические обработчики не найдены, метод переходит к обработчикам, зарегистрированным для группы `undefined` (если они есть). Всегда выводит детали ошибки в консоль внутри.
36
+ ### Действие
37
+ - `on(cause: ErrorCenterCauseItem): this` — Запускает цепочку обработчиков. Всегда выводит ошибку в консоль через `console.error`.
32
38
 
33
- **Параметры:**
34
- - `cause: ErrorCenterCauseItem` — Детали ошибки для передачи обработчикам.
39
+ ### Проверка
40
+ - `has(group: ErrorCenterGroup): boolean` — Проверяет, есть ли обработчики для группы.
41
+ - `get(group: ErrorCenterGroup): ErrorCenterHandlerItem | undefined` — Возвращает список функций для группы.
35
42
 
36
- **Возвращает:** `this`
43
+ ### Конфигурация
44
+ - `add(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Добавляет одну функцию в группу.
45
+ - `addList(handlers: ErrorCenterHandlerList): this` — Пакетная регистрация обработчиков.
37
46
 
38
47
  ## Типы
39
48
 
40
- ### `ErrorCenterHandlerCallback`
49
+ #### `ErrorCenterGroup`
50
+ Имя группы (`string`) или `undefined` для глобального перехвата.
41
51
 
42
- Сигнатура функции для обратных вызовов обработки ошибок.
52
+ #### `ErrorCenterHandlerCallback`
53
+ Функция обратного вызова: `(cause: ErrorCenterCauseItem) => void`.
43
54
 
44
- - `(cause: ErrorCenterCauseItem) => void` — получает объединенный объект причины ошибки.
45
-
46
- ## Пример использования
47
-
48
- ```javascript
49
- import { ErrorCenterHandler } from '@dxtmisha/functional-basic'
55
+ #### `ErrorCenterHandlerItem`
56
+ Связка группы и массива её функций.
57
+ - `group?: ErrorCenterGroup` — целевая группа.
58
+ - `handlers: ErrorCenterHandlerCallback[]` — список функций.
50
59
 
51
- const handlerManager = new ErrorCenterHandler()
60
+ ## Примеры
52
61
 
53
- // 1. Регистрация обработчика конкретной группы
54
- handlerManager.add('api', (cause) => {
55
- console.log('[API Handler]', cause.message)
56
- })
62
+ ### Изолированный менеджер для модуля
63
+ ```typescript
64
+ const uploadHandlers = new ErrorCenterHandler();
57
65
 
58
- // 2. Регистрация глобального обработчика
59
- handlerManager.add(undefined, (cause) => {
60
- console.error('[Global Fallback]', cause.code)
61
- })
66
+ uploadHandlers.add('upload', (cause) => {
67
+ if (cause.code === 'retry') {
68
+ restartUpload();
69
+ }
70
+ });
62
71
 
63
- // 3. Вызов ошибки
64
- handlerManager.on({
65
- group: 'api',
66
- code: '500',
67
- message: 'Внутренняя ошибка сервера'
68
- })
72
+ uploadHandlers.on({ group: 'upload', code: 'retry' });
69
73
  ```
@@ -2,68 +2,72 @@ import {Meta} from '@storybook/addon-docs/blocks'
2
2
 
3
3
  <Meta title='@dxtmisha/vi/functional-basic/Classes/ErrorCenterHandler - Quản lý trình xử lý'/>
4
4
 
5
- # ErrorCenterHandler
5
+ # Lớp ErrorCenterHandler
6
6
 
7
- Một lớp tiện ích cốt lõi để quản lý kích hoạt các trình xử lý lỗi dựa trên các nhóm đã được định nghĩa. Nó cho phép các chiến lược phản hồi lỗi linh hoạt, chẳng hạn như hiển thị thông báo toàn cục cho các lỗi API trong khi thực hiện ghi nhật âm thầm cho các tác vụ nền.
7
+ `ErrorCenterHandler` trình quản để quản lý các hàm callback (trình xử lý). Nó cho phép bạn liên kết logic với các nhóm lỗi cụ thể thực thi khi sự kiện tương ứng xảy ra.
8
8
 
9
9
  ## Các tính năng chính
10
10
 
11
- - **Đăng ký trình xử lý** — Dễ dàng thêm nhiều hàm gọi lại cho các nhóm lỗi cụ thể.
12
- - **Lọc theo nhóm** — Nhắm mục tiêu các danh mục lỗi cụ thể (ví dụ: `api`, `auth`, `validation`).
13
- - **Dự phòng toàn cục**Hỗ trợ trình xử cho nhóm `undefined` để bắt bất kỳ lỗi nào không có trình xử lý cụ thể.
14
- - **Thực thi tuần tự**Kích hoạt tất cả các hàm gọi lại theo thứ tự chúng được thêm vào.
15
- - **Tích hợp ghi nhật ký** — Tự động xuất chi tiết lỗi ra console trình duyệt.
11
+ - **Đăng ký trình xử lý** — thêm thuận tiện các hàm callback vào các nhóm cụ thể.
12
+ - **Trình xử lý toàn cục** — hỗ trợ nhóm `undefined`, nhóm này bắt bất kỳ lỗi nào không trình xử cụ thể.
13
+ - **Thực thi tuần tự**kích hoạt tất cả các hàm đã đăng theo thứ tự chúng được thêm vào.
14
+ - **Ghi log tích hợp**tự động xuất chi tiết lỗi ra console.
16
15
 
17
- ## Các phương thức kiểm tra
16
+ ## Khởi tạo
18
17
 
19
- - `has(group: ErrorCenterGroup): boolean` Kiểm tra xem có trình xử lý nào được đăng ký cho một nhóm không.
20
- - `get(group: ErrorCenterGroup): ErrorCenterHandlerItem | undefined` — Truy xuất ánh xạ trình xử lý cho một nhóm.
18
+ Để tạo một thực thể, sử dụng constructor `ErrorCenterHandler(handlers)`.
21
19
 
22
- ## Cấu hình
20
+ **Tham số:**
21
+ - `handlers?: ErrorCenterHandlerList` — danh sách trình xử lý ban đầu.
23
22
 
24
- - `add(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Thêm một hàm gọi lại cho một nhóm.
25
- - `addList(handlers: ErrorCenterHandlerList): this` Đăng ký một loạt các trình xử lý.
23
+ ```typescript
24
+ import { ErrorCenterHandler } from '@dxtmisha/functional-basic'
26
25
 
27
- ## Các phương thức hành động
26
+ const handlers = new ErrorCenterHandler([
27
+ {
28
+ group: 'api',
29
+ handlers: [(cause) => console.log('Lỗi API:', cause.code)]
30
+ }
31
+ ]);
32
+ ```
28
33
 
29
- ### `on`
34
+ ## Các phương thức
30
35
 
31
- Kích hoạt tất cả các trình xử lý đã đăng ký cho nhóm của nguyên nhân lỗi được cung cấp. Nếu không tìm thấy trình xử lý cụ thể nào, nó sẽ quay về các trình xử lý được đăng ký cho nhóm `undefined` (nếu có). Luôn xuất chi tiết lỗi ra bảng điều khiển nội bộ.
36
+ ### Hành động
37
+ - `on(cause: ErrorCenterCauseItem): this` — Kích hoạt chuỗi trình xử lý. Luôn xuất lỗi ra console qua `console.error`.
32
38
 
33
- **Tham số:**
34
- - `cause: ErrorCenterCauseItem` — Chi tiết lỗi để chuyển cho các trình xử lý.
39
+ ### Xác minh
40
+ - `has(group: ErrorCenterGroup): boolean` — Kiểm tra xem trình xử lý cho một nhóm không.
41
+ - `get(group: ErrorCenterGroup): ErrorCenterHandlerItem | undefined` — Trả về danh sách các hàm cho một nhóm.
35
42
 
36
- **Trả về:** `this`
43
+ ### Cấu hình
44
+ - `add(group: ErrorCenterGroup, handler: ErrorCenterHandlerCallback): this` — Thêm một hàm vào một nhóm.
45
+ - `addList(handlers: ErrorCenterHandlerList): this` — Đăng ký hàng loạt các trình xử lý.
37
46
 
38
47
  ## Các kiểu dữ liệu
39
48
 
40
- ### `ErrorCenterHandlerCallback`
49
+ #### `ErrorCenterGroup`
50
+ Tên nhóm (`string`) hoặc `undefined` để chặn toàn cục.
41
51
 
42
- Hàm cho các callback xử lý lỗi.
52
+ #### `ErrorCenterHandlerCallback`
53
+ Hàm callback: `(cause: ErrorCenterCauseItem) => void`.
43
54
 
44
- - `(cause: ErrorCenterCauseItem) => void` — Nhận đối tượng nguyên nhân lỗi đã được hợp nhất.
45
-
46
- ## dụ sử dụng
47
-
48
- ```javascript
49
- import { ErrorCenterHandler } from '@dxtmisha/functional-basic'
55
+ #### `ErrorCenterHandlerItem`
56
+ Liên kết giữa một nhóm và một mảng các hàm của nó.
57
+ - `group?: ErrorCenterGroup` nhóm mục tiêu.
58
+ - `handlers: ErrorCenterHandlerCallback[]` — danh sách các hàm.
50
59
 
51
- const handlerManager = new ErrorCenterHandler()
60
+ ## dụ
52
61
 
53
- // 1. Đăng trình xử cho nhóm cụ thể
54
- handlerManager.add('api', (cause) => {
55
- console.log('[API Handler]', cause.message)
56
- })
62
+ ### Trình quản lập cho một mô-đun
63
+ ```typescript
64
+ const uploadHandlers = new ErrorCenterHandler();
57
65
 
58
- // 2. Đăng trình xử lý dự phòng toàn cục
59
- handlerManager.add(undefined, (cause) => {
60
- console.error('[Global Fallback]', cause.code)
61
- })
66
+ uploadHandlers.add('upload', (cause) => {
67
+ if (cause.code === 'retry') {
68
+ restartUpload();
69
+ }
70
+ });
62
71
 
63
- // 3. Kích hoạt một lỗi
64
- handlerManager.on({
65
- group: 'api',
66
- code: '500',
67
- message: 'Lỗi máy chủ nội bộ'
68
- })
72
+ uploadHandlers.on({ group: 'upload', code: 'retry' });
69
73
  ```