@dxtmisha/wiki 0.39.7 → 0.56.0

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 (227) hide show
  1. package/dist/{defineProperty-DblGXmzD.js → defineProperty-149Ahniv.js} +4 -4
  2. package/dist/library.js +1 -1
  3. package/dist/media/descriptions/wikiDescriptionsArea.d.ts +7 -0
  4. package/dist/media/descriptions/wikiDescriptionsClientOnly.d.ts +7 -0
  5. package/dist/media/descriptions/wikiDescriptionsContainer.d.ts +7 -0
  6. package/dist/media/descriptions/wikiDescriptionsHeader.d.ts +7 -0
  7. package/dist/media/descriptions/wikiDescriptionsPageArea.d.ts +7 -0
  8. package/dist/media/mdx/Area/wikiMdxArea.d.ts +7 -0
  9. package/dist/media/mdx/ClientOnly/wikiMdxClientOnly.d.ts +7 -0
  10. package/dist/media/mdx/Container/wikiMdxContainer.d.ts +7 -0
  11. package/dist/media/mdx/Header/wikiMdxHeader.d.ts +7 -0
  12. package/dist/media/mdx/PageArea/wikiMdxPageArea.d.ts +7 -0
  13. package/dist/media.d.ts +1 -1
  14. package/dist/media.js +127 -68
  15. package/dist/storybook.js +2707 -1841
  16. package/dist/{wikiDescriptions-Cv4WzSNL.js → wikiDescriptions-7XaHU3Yk.js} +182 -0
  17. package/package.json +1 -1
  18. package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.en.mdx +43 -0
  19. package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.ru.mdx +43 -0
  20. package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.vi.mdx +41 -0
  21. package/src/media/functional/functional/composables/useApiRef/useApiRef.en.mdx +20 -4
  22. package/src/media/functional/functional/composables/useApiRef/useApiRef.ru.mdx +21 -3
  23. package/src/media/functional/functional/composables/useApiRef/useApiRef.vi.mdx +20 -2
  24. package/src/media/functional/functional/functions/computedAsync/computedAsync.en.mdx +8 -0
  25. package/src/media/functional/functional/functions/computedAsync/computedAsync.ru.mdx +8 -0
  26. package/src/media/functional/functional/functions/computedAsync/computedAsync.vi.mdx +8 -0
  27. package/src/media/functional/functional/functions/computedEternity/computedEternity.en.mdx +8 -0
  28. package/src/media/functional/functional/functions/computedEternity/computedEternity.ru.mdx +8 -0
  29. package/src/media/functional/functional/functions/computedEternity/computedEternity.vi.mdx +8 -0
  30. package/src/media/functional/functional-basic/api/api.en.mdx +45 -0
  31. package/src/media/functional/functional-basic/api/api.ru.mdx +45 -0
  32. package/src/media/functional/functional-basic/api/api.vi.mdx +45 -0
  33. package/src/media/functional/functional-basic/classes/Api/Api.en.mdx +57 -54
  34. package/src/media/functional/functional-basic/classes/Api/Api.ru.mdx +57 -54
  35. package/src/media/functional/functional-basic/classes/Api/Api.vi.mdx +57 -54
  36. package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.en.mdx +111 -0
  37. package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.ru.mdx +111 -0
  38. package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.vi.mdx +111 -0
  39. package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.en.mdx +32 -0
  40. package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.ru.mdx +32 -0
  41. package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.vi.mdx +32 -0
  42. package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.en.mdx +24 -28
  43. package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.ru.mdx +24 -28
  44. package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.vi.mdx +24 -28
  45. package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.en.mdx +28 -14
  46. package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.ru.mdx +33 -19
  47. package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.vi.mdx +33 -19
  48. package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.en.mdx +56 -0
  49. package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.ru.mdx +56 -0
  50. package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.vi.mdx +55 -0
  51. package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.en.mdx +106 -51
  52. package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.ru.mdx +107 -52
  53. package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.vi.mdx +103 -49
  54. package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.en.mdx +44 -26
  55. package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.ru.mdx +45 -27
  56. package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.vi.mdx +44 -26
  57. package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.en.mdx +59 -21
  58. package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.ru.mdx +63 -25
  59. package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.vi.mdx +64 -26
  60. package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.en.mdx +29 -32
  61. package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.ru.mdx +33 -36
  62. package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.vi.mdx +33 -36
  63. package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.en.mdx +34 -53
  64. package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.ru.mdx +33 -52
  65. package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.vi.mdx +39 -58
  66. package/src/media/functional/functional-basic/classes/Cache/Cache.en.mdx +7 -4
  67. package/src/media/functional/functional-basic/classes/Cache/Cache.ru.mdx +7 -4
  68. package/src/media/functional/functional-basic/classes/Cache/Cache.vi.mdx +28 -25
  69. package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.en.mdx +45 -53
  70. package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.ru.mdx +46 -54
  71. package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.vi.mdx +47 -55
  72. package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.en.mdx +13 -1
  73. package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.ru.mdx +13 -1
  74. package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.vi.mdx +13 -0
  75. package/src/media/functional/functional-basic/classes/Cookie/Cookie.en.mdx +88 -44
  76. package/src/media/functional/functional-basic/classes/Cookie/Cookie.ru.mdx +88 -44
  77. package/src/media/functional/functional-basic/classes/Cookie/Cookie.vi.mdx +85 -41
  78. package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.en.mdx +43 -22
  79. package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.ru.mdx +46 -25
  80. package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.vi.mdx +43 -22
  81. package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.en.mdx +84 -0
  82. package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.ru.mdx +84 -0
  83. package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.vi.mdx +100 -0
  84. package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.en.mdx +178 -0
  85. package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.ru.mdx +178 -0
  86. package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.vi.mdx +178 -0
  87. package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.en.mdx +32 -25
  88. package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.ru.mdx +32 -25
  89. package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.vi.mdx +32 -27
  90. package/src/media/functional/functional-basic/classes/Datetime/Datetime.en.mdx +36 -4
  91. package/src/media/functional/functional-basic/classes/Datetime/Datetime.ru.mdx +36 -4
  92. package/src/media/functional/functional-basic/classes/Datetime/Datetime.vi.mdx +36 -4
  93. package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.en.mdx +101 -70
  94. package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.ru.mdx +100 -69
  95. package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.vi.mdx +101 -70
  96. package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.en.mdx +46 -42
  97. package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.ru.mdx +46 -42
  98. package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.vi.mdx +46 -42
  99. package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.en.mdx +44 -96
  100. package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.ru.mdx +44 -96
  101. package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.vi.mdx +44 -96
  102. package/src/media/functional/functional-basic/classes/EventItem/EventItem.en.mdx +49 -28
  103. package/src/media/functional/functional-basic/classes/EventItem/EventItem.ru.mdx +21 -0
  104. package/src/media/functional/functional-basic/classes/EventItem/EventItem.vi.mdx +63 -42
  105. package/src/media/functional/functional-basic/classes/Formatters/Formatters.en.mdx +97 -109
  106. package/src/media/functional/functional-basic/classes/Formatters/Formatters.ru.mdx +86 -98
  107. package/src/media/functional/functional-basic/classes/Formatters/Formatters.vi.mdx +99 -111
  108. package/src/media/functional/functional-basic/classes/Geo/Geo.en.mdx +3 -3
  109. package/src/media/functional/functional-basic/classes/Geo/Geo.ru.mdx +5 -5
  110. package/src/media/functional/functional-basic/classes/Geo/Geo.vi.mdx +5 -5
  111. package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.en.mdx +83 -40
  112. package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.ru.mdx +83 -40
  113. package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.vi.mdx +87 -44
  114. package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.en.mdx +81 -0
  115. package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.ru.mdx +81 -0
  116. package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.vi.mdx +81 -0
  117. package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.en.mdx +56 -105
  118. package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.ru.mdx +53 -102
  119. package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.vi.mdx +55 -105
  120. package/src/media/functional/functional-basic/classes/Hash/Hash.en.mdx +18 -7
  121. package/src/media/functional/functional-basic/classes/Hash/Hash.ru.mdx +18 -7
  122. package/src/media/functional/functional-basic/classes/Hash/Hash.vi.mdx +18 -7
  123. package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.en.mdx +54 -0
  124. package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.ru.mdx +54 -0
  125. package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.vi.mdx +54 -0
  126. package/src/media/functional/functional-basic/classes/Meta/Meta.en.mdx +16 -0
  127. package/src/media/functional/functional-basic/classes/Meta/Meta.ru.mdx +16 -0
  128. package/src/media/functional/functional-basic/classes/Meta/Meta.vi.mdx +17 -1
  129. package/src/media/functional/functional-basic/classes/MetaManager/MetaManager.en.mdx +9 -0
  130. package/src/media/functional/functional-basic/classes/MetaManager/MetaManager.ru.mdx +9 -0
  131. package/src/media/functional/functional-basic/classes/MetaManager/MetaManager.vi.mdx +9 -0
  132. package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.en.mdx +79 -0
  133. package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.ru.mdx +79 -0
  134. package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.vi.mdx +79 -0
  135. package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.en.mdx +50 -0
  136. package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.ru.mdx +50 -0
  137. package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.vi.mdx +50 -0
  138. package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.en.mdx +131 -0
  139. package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.ru.mdx +131 -0
  140. package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.vi.mdx +131 -0
  141. package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.en.mdx +97 -0
  142. package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.ru.mdx +97 -0
  143. package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.vi.mdx +97 -0
  144. package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.en.mdx +13 -5
  145. package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.ru.mdx +13 -5
  146. package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.vi.mdx +13 -5
  147. package/src/media/functional/functional-basic/functions/anyToString/anyToString.en.mdx +37 -19
  148. package/src/media/functional/functional-basic/functions/anyToString/anyToString.ru.mdx +37 -19
  149. package/src/media/functional/functional-basic/functions/anyToString/anyToString.vi.mdx +35 -17
  150. package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.en.mdx +31 -19
  151. package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.ru.mdx +31 -19
  152. package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.vi.mdx +32 -20
  153. package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.en.mdx +29 -15
  154. package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.ru.mdx +28 -14
  155. package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.vi.mdx +28 -14
  156. package/src/media/functional/functional-basic/functions/capitalize/capitalize.en.mdx +7 -3
  157. package/src/media/functional/functional-basic/functions/capitalize/capitalize.ru.mdx +7 -3
  158. package/src/media/functional/functional-basic/functions/capitalize/capitalize.vi.mdx +7 -3
  159. package/src/media/functional/functional-basic/functions/copyObject/copyObject.en.mdx +17 -13
  160. package/src/media/functional/functional-basic/functions/copyObject/copyObject.ru.mdx +17 -13
  161. package/src/media/functional/functional-basic/functions/copyObject/copyObject.vi.mdx +17 -13
  162. package/src/media/functional/functional-basic/functions/createElement/createElement.en.mdx +2 -0
  163. package/src/media/functional/functional-basic/functions/createElement/createElement.ru.mdx +2 -0
  164. package/src/media/functional/functional-basic/functions/createElement/createElement.vi.mdx +2 -0
  165. package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.en.mdx +1 -3
  166. package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.ru.mdx +1 -3
  167. package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.vi.mdx +1 -3
  168. package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.en.mdx +13 -10
  169. package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.ru.mdx +14 -11
  170. package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.vi.mdx +12 -9
  171. package/src/media/functional/functional-basic/functions/executePromise/executePromise.en.mdx +14 -13
  172. package/src/media/functional/functional-basic/functions/executePromise/executePromise.ru.mdx +15 -14
  173. package/src/media/functional/functional-basic/functions/executePromise/executePromise.vi.mdx +14 -13
  174. package/src/media/functional/functional-basic/functions/forEach/forEach.en.mdx +1 -1
  175. package/src/media/functional/functional-basic/functions/forEach/forEach.ru.mdx +1 -1
  176. package/src/media/functional/functional-basic/functions/forEach/forEach.vi.mdx +1 -1
  177. package/src/media/functional/functional-basic/functions/frame/frame.en.mdx +7 -4
  178. package/src/media/functional/functional-basic/functions/frame/frame.ru.mdx +6 -3
  179. package/src/media/functional/functional-basic/functions/frame/frame.vi.mdx +7 -4
  180. package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.en.mdx +34 -0
  181. package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.ru.mdx +34 -0
  182. package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.vi.mdx +35 -0
  183. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.en.mdx +2 -0
  184. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.ru.mdx +2 -0
  185. package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.vi.mdx +2 -0
  186. package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.en.mdx +21 -0
  187. package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.ru.mdx +21 -0
  188. package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.vi.mdx +21 -0
  189. package/src/media/functional/functional-basic/functions/getElementId/getElementId.en.mdx +17 -3
  190. package/src/media/functional/functional-basic/functions/getElementId/getElementId.ru.mdx +17 -3
  191. package/src/media/functional/functional-basic/functions/getElementId/getElementId.vi.mdx +18 -4
  192. package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.en.mdx +31 -0
  193. package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.ru.mdx +31 -0
  194. package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.vi.mdx +31 -0
  195. package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.en.mdx +25 -0
  196. package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.ru.mdx +25 -0
  197. package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.vi.mdx +25 -0
  198. package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.en.mdx +11 -4
  199. package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.ru.mdx +14 -7
  200. package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.vi.mdx +13 -6
  201. package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.en.mdx +3 -2
  202. package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.ru.mdx +3 -2
  203. package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.vi.mdx +3 -2
  204. package/src/media/functional/functional-basic/functions/toNumber/toNumber.en.mdx +25 -9
  205. package/src/media/functional/functional-basic/functions/toNumber/toNumber.ru.mdx +25 -9
  206. package/src/media/functional/functional-basic/functions/toNumber/toNumber.vi.mdx +25 -9
  207. package/src/media/functional/functional-basic/functions/toString/toString.en.mdx +28 -0
  208. package/src/media/functional/functional-basic/functions/toString/toString.ru.mdx +28 -0
  209. package/src/media/functional/functional-basic/functions/toString/toString.vi.mdx +28 -0
  210. package/src/media/functional/functional-basic/icons/icons.en.mdx +3 -0
  211. package/src/media/functional/functional-basic/icons/icons.ru.mdx +3 -0
  212. package/src/media/functional/functional-basic/icons/icons.vi.mdx +3 -0
  213. package/src/media/functional/nitro-basic/functions/getInject.en.mdx +27 -0
  214. package/src/media/functional/nitro-basic/functions/getInject.ru.mdx +27 -0
  215. package/src/media/functional/nitro-basic/functions/getInject.vi.mdx +20 -0
  216. package/src/media/functional/ui/about/about.en.mdx +45 -0
  217. package/src/media/functional/ui/about/about.ru.mdx +45 -0
  218. package/src/media/functional/ui/about/about.vi.mdx +45 -0
  219. package/src/media/functional/ui/component/component.en.mdx +104 -0
  220. package/src/media/functional/ui/component/component.ru.mdx +106 -0
  221. package/src/media/functional/ui/component/component.vi.mdx +104 -0
  222. package/src/media/functional/ui/setup/setup.en.mdx +72 -0
  223. package/src/media/functional/ui/setup/setup.ru.mdx +72 -0
  224. package/src/media/functional/ui/setup/setup.vi.mdx +72 -0
  225. package/src/media/functional/ui/wiki-data.en.mdx +114 -0
  226. package/src/media/functional/ui/wiki-data.ru.mdx +114 -0
  227. package/src/media/functional/ui/wiki-data.vi.mdx +114 -0
@@ -4,102 +4,83 @@ import {Meta} from '@storybook/addon-docs/blocks'
4
4
 
5
5
  # BroadcastMessage Class
6
6
 
7
- A class for handling cross-tab or cross-window messaging using the `BroadcastChannel` API. It provides a simple interface to send and receive messages with optional callback support, error handling, and environment-aware initialization.
7
+ A class for handling messaging between different browser contexts (tabs, windows, iframes) using the `BroadcastChannel` API. It provides a convenient interface for sending and receiving data with automatic channel lifecycle management and error handling.
8
+
9
+ Features automatic prefix naming to prevent conflicts and integrates with `ErrorCenter` for monitoring initialization failures.
8
10
 
9
11
  ## Key Features
10
12
 
11
- - **Cross-context Communication** — easily send messages between different browser tabs, windows, or iframes on the same origin.
12
- - **Callback Based** — register callbacks to handle incoming messages and errors automatically.
13
- - **Environment Aware** — automatically checks for DOM runtime before initializing, preventing errors in non-browser environments.
14
- - **Prefixed Names** — automatically adds a unique prefix to channel names to avoid collisions with other applications.
15
- - **Type Safety** — supports TypeScript generics for message payload typing.
16
- - **ErrorCenter Integration** — centralized error reporting when the `BroadcastChannel` fails to initialize.
17
- - **Direct Access** — provide access to the underlying `BroadcastChannel` instance when needed.
13
+ - **Cross-Context Communication** — simple data synchronization between all windows of the same origin.
14
+ - **Callback-Based** — automatic processing of incoming messages and errors through registered callback functions.
15
+ - **Runtime Safety** — built-in DOM environment checking prevents errors during Server-Side Rendering (SSR).
16
+ - **Channel Isolation** — automatic unique prefixing for channel names via `DataStorage`.
17
+ - **Strong Typing** — full TypeScript generics support to ensure message data integrity.
18
18
 
19
19
  ## Initialization
20
20
 
21
- To initialize the object, call the `BroadcastMessage(name, callback, callbackError, errorCenter)` constructor.
21
+ To initialize the object, call the constructor `BroadcastMessage(name, callback, callbackError, errorCenter)`.
22
22
 
23
23
  ### Generic Constraints
24
24
 
25
25
  - `Message = any` — the type of the message payload.
26
26
 
27
27
  **Parameters:**
28
- - `name: string` — unique name of the communication channel.
28
+ - `name: string` — unique channel name.
29
29
  - `callback?: (event: MessageEvent<Message>) => void` — callback function executed when a message is received.
30
30
  - `callbackError?: (event: MessageEvent<Message>) => void` — callback function executed when a message error occurs.
31
- - `errorCenter: ErrorCenterInstance` — instance of the error center for triggering events (defaults to `ErrorCenter.getItem()`).
31
+ - `errorCenter: ErrorCenterInstance` — error center instance (defaults to: `ErrorCenter.getItem()`).
32
32
 
33
33
  ```typescript
34
- import { BroadcastMessage } from '@dxtmisha/functional'
34
+ import { BroadcastMessage } from '@dxtmisha/functional-basic'
35
35
 
36
- // 1. Initialization with incoming data handling
37
- const messenger = new BroadcastMessage(
36
+ const messenger = new BroadcastMessage<string>(
38
37
  'my-channel',
39
- (event) => console.log('Received:', event.data),
40
- (error) => console.error('Error:', error)
38
+ (event) => console.log('Received:', event.data)
41
39
  )
42
-
43
- // 2. Sending a message
44
- messenger.post({ type: 'UPDATE', value: 100 })
45
40
  ```
46
41
 
47
- ## Sending Messages
42
+ ## Methods
48
43
 
49
- ### `post`
44
+ ### Action
50
45
 
51
- Sends a message to all listeners on the same channel.
46
+ - `post(message: Message): this` — Sends a message to all listeners in the same channel.
47
+ - `destroy(): this` — Closes the channel and stops listening for messages.
52
48
 
53
- **Parameters:**
54
- - `message: Message` — the data to send.
55
-
56
- **Returns:** `this` — for method chaining.
49
+ ### Configuration and Access
57
50
 
58
- ```javascript
59
- messenger.post({ type: 'UPDATE', payload: { id: 123 } })
60
- ```
61
-
62
- ## Configuration & Access
63
-
64
- - `getChannel(): BroadcastChannel | undefined` — Returns the underlying `BroadcastChannel` instance (or `undefined` if not in DOM runtime).
65
- - `setCallback(callback: (event: MessageEvent<Message>) => void): this` — Updates or sets the callback function for receiving messages.
66
- - `setCallbackError(callbackError: (event: MessageEvent<Message>) => void): this` — Updates or sets the callback function for message errors.
51
+ - `getChannel(): BroadcastChannel | undefined` — Returns the underlying `BroadcastChannel` instance.
52
+ - `setCallback(callback: Function): this` Updates the function for processing incoming messages.
53
+ - `setCallbackError(callbackError: Function): this` — Updates the function for processing message errors.
67
54
 
68
55
  ## Examples
69
56
 
70
- ### Synchronizing State Across Tabs
57
+ ### Syncing State Between Tabs
71
58
 
72
- ```javascript
59
+ ```typescript
73
60
  import { BroadcastMessage } from '@dxtmisha/functional'
74
61
 
75
- // In Tab A and Tab B
76
- const authChannel = new BroadcastMessage('auth-status', (event) => {
62
+ // In all application tabs
63
+ const authChannel = new BroadcastMessage<string>('auth-status', (event) => {
77
64
  if (event.data === 'LOGOUT') {
78
65
  authModule.clearSession()
79
- window.location.href = '/login'
66
+ window.location.reload()
80
67
  }
81
68
  })
82
69
 
83
- // When user logs out in Tab A
70
+ // When a user logs out in one of the tabs
84
71
  function onLogout() {
85
72
  authChannel.post('LOGOUT')
86
73
  }
87
74
  ```
88
75
 
89
- ### Simple Notification System with Error Handling
76
+ ### Updating Data Handler on the Fly
90
77
 
91
- ```javascript
92
- const notifications = new BroadcastMessage(
93
- 'notifications',
94
- (event) => showToast(event.data.message),
95
- (error) => console.error('Failed to receive notification:', error)
96
- )
78
+ ```typescript
79
+ const messenger = new BroadcastMessage('data-sync')
97
80
 
98
- // Update error handler later
99
- notifications.setCallbackError((error) => {
100
- logToService(error)
81
+ messenger.setCallback((event) => {
82
+ console.log('New data received:', event.data)
101
83
  })
102
84
 
103
- // Trigger notification from anywhere in the app
104
- notifications.post({ message: 'New message received!' })
85
+ messenger.post({ id: 1, status: 'active' })
105
86
  ```
@@ -4,17 +4,17 @@ import {Meta} from '@storybook/addon-docs/blocks'
4
4
 
5
5
  # Класс BroadcastMessage
6
6
 
7
- Класс для работы с сообщениями между вкладками или окнами с использованием API `BroadcastChannel`. Предоставляет простой интерфейс для отправки и получения сообщений с поддержкой колбэков, обработки ошибок и проверкой среды выполнения.
7
+ Класс для работы с сообщениями между различными контекстами браузера (вкладками, окнами, iframe) с использованием API `BroadcastChannel`. Предоставляет удобный интерфейс для отправки и получения данных с автоматическим управлением жизненным циклом канала и обработкой ошибок.
8
+
9
+ Включает автоматическое префиксное именование для предотвращения конфликтов и интегрируется с `ErrorCenter` для мониторинга сбоев инициализации.
8
10
 
9
11
  ## Ключевые особенности
10
12
 
11
- - **Межконтекстное взаимодействие** — простая отправка сообщений между различными вкладками браузера, окнами или iframe одного и того же источника (origin).
12
- - **На основе колбэков** — регистрация функций обратного вызова для автоматической обработки входящих сообщений и ошибок.
13
- - **Учет среды выполнения** — автоматическая проверка наличия DOM перед инициализацией, что предотвращает ошибки в средах, отличных от браузера.
14
- - **Префиксы имен** — автоматическое добавление уникального префикса к именам каналов во избежание конфликтов с другими приложениями.
15
- - **Типизация** — поддержка универсальных типов (generics) TypeScript для полезной нагрузки сообщений.
16
- - **Интеграция с ErrorCenter** — централизованная отчетность об ошибках в случае сбоя инициализации `BroadcastChannel`.
17
- - **Прямой доступ** — предоставление доступа к базовому экземпляру `BroadcastChannel` при необходимости.
13
+ - **Межконтекстное взаимодействие** — простая синхронизация данных между всеми окнами одного и того же источника (origin).
14
+ - **На основе колбэков** — автоматическая обработка входящих сообщений и ошибок через регистрируемые функции обратного вызова.
15
+ - **Безопасность выполнения** — встроенная проверка среды DOM предотвращает ошибки при серверном рендеринге (SSR).
16
+ - **Изоляция каналов** — автоматическое добавление уникального префикса к именам каналов через `DataStorage`.
17
+ - **Строгая типизация** полная поддержка TypeScript дженериков для обеспечения целостности данных сообщения.
18
18
 
19
19
  ## Инициализация
20
20
 
@@ -26,80 +26,61 @@ import {Meta} from '@storybook/addon-docs/blocks'
26
26
 
27
27
  **Параметры:**
28
28
  - `name: string` — уникальное имя канала связи.
29
- - `callback?: (event: MessageEvent<Message>) => void` — функция обратного вызова, выполняемая при получении сообщения.
30
- - `callbackError?: (event: MessageEvent<Message>) => void` — функция обратного вызова, выполняемая при возникновении ошибки сообщения.
31
- - `errorCenter: ErrorCenterInstance` — экземпляр центра ошибок для вызова событий (по умолчанию: `ErrorCenter.getItem()`).
29
+ - `callback?: (event: MessageEvent<Message>) => void` — функция обратного вызова при получении сообщения.
30
+ - `callbackError?: (event: MessageEvent<Message>) => void` — функция обратного вызова при ошибке сообщения.
31
+ - `errorCenter: ErrorCenterInstance` — экземпляр центра ошибок (по умолчанию: `ErrorCenter.getItem()`).
32
32
 
33
33
  ```typescript
34
- import { BroadcastMessage } from '@dxtmisha/functional'
34
+ import { BroadcastMessage } from '@dxtmisha/functional-basic'
35
35
 
36
- // 1. Инициализация с обработкой входящих данных
37
- const messenger = new BroadcastMessage(
36
+ const messenger = new BroadcastMessage<string>(
38
37
  'my-channel',
39
- (event) => console.log('Получено:', event.data),
40
- (error) => console.error('Ошибка:', error)
38
+ (event) => console.log('Получено:', event.data)
41
39
  )
42
-
43
- // 2. Отправка сообщения
44
- messenger.post({ type: 'UPDATE', value: 100 })
45
40
  ```
46
41
 
47
- ## Отправка сообщений
42
+ ## Методы
48
43
 
49
- ### `post`
44
+ ### Действие
50
45
 
51
- Отправляет сообщение всем слушателям в том же канале.
46
+ - `post(message: Message): this` — Отправляет сообщение всем слушателям в том же канале.
47
+ - `destroy(): this` — Закрывает канал и прекращает прослушивание сообщений.
52
48
 
53
- **Параметры:**
54
- - `message: Message` — данные для отправки.
55
-
56
- **Возвращает:** `this` — для цепочки вызовов.
49
+ ### Настройка и доступ
57
50
 
58
- ```javascript
59
- messenger.post({ type: 'UPDATE', payload: { id: 123 } })
60
- ```
61
-
62
- ## Настройка и доступ
63
-
64
- - `getChannel(): BroadcastChannel | undefined` — Возвращает базовый экземпляр `BroadcastChannel` (или `undefined` вне среды браузера).
65
- - `setCallback(callback: (event: MessageEvent<Message>) => void): this` — Обновляет или устанавливает функцию обратного вызова для получения сообщений.
66
- - `setCallbackError(callbackError: (event: MessageEvent<Message>) => void): this` — Обновляет или устанавливает функцию обратного вызова для ошибок сообщений.
51
+ - `getChannel(): BroadcastChannel | undefined` — Возвращает базовый экземпляр `BroadcastChannel`.
52
+ - `setCallback(callback: Function): this` Обновляет функцию обработки входящих сообщений.
53
+ - `setCallbackError(callbackError: Function): this` — Обновляет функцию обработки ошибок.
67
54
 
68
55
  ## Примеры
69
56
 
70
57
  ### Синхронизация состояния между вкладками
71
58
 
72
- ```javascript
59
+ ```typescript
73
60
  import { BroadcastMessage } from '@dxtmisha/functional'
74
61
 
75
- // Во вкладке А и вкладке Б
76
- const authChannel = new BroadcastMessage('auth-status', (event) => {
62
+ // Во всех вкладках приложения
63
+ const authChannel = new BroadcastMessage<string>('auth-status', (event) => {
77
64
  if (event.data === 'LOGOUT') {
78
65
  authModule.clearSession()
79
- window.location.href = '/login'
66
+ window.location.reload()
80
67
  }
81
68
  })
82
69
 
83
- // При выходе пользователя из системы во вкладке А
70
+ // При выходе пользователя в одной из вкладок
84
71
  function onLogout() {
85
72
  authChannel.post('LOGOUT')
86
73
  }
87
74
  ```
88
75
 
89
- ### Простая система уведомлений с обработкой ошибок
76
+ ### Обновление обработчика на лету
90
77
 
91
- ```javascript
92
- const notifications = new BroadcastMessage(
93
- 'notifications',
94
- (event) => showToast(event.data.message),
95
- (error) => console.error('Не удалось получить уведомление:', error)
96
- )
78
+ ```typescript
79
+ const messenger = new BroadcastMessage('data-sync')
97
80
 
98
- // Обновление обработчика ошибок позже
99
- notifications.setCallbackError((error) => {
100
- logToService(error)
81
+ messenger.setCallback((event) => {
82
+ console.log('Данные получены:', event.data)
101
83
  })
102
84
 
103
- // Вызов уведомления из любой части приложения
104
- notifications.post({ message: 'Получено новое сообщение!' })
85
+ messenger.post({ id: 1, status: 'active' })
105
86
  ```
@@ -1,105 +1,86 @@
1
1
  import {Meta} from '@storybook/addon-docs/blocks'
2
2
 
3
- <Meta title='@dxtmisha/vi/functional-basic/Classes/BroadcastMessage - Truyền tin BroadcastChannel'/>
3
+ <Meta title='@dxtmisha/vi/functional-basic/Classes/BroadcastMessage - Tin nhắn BroadcastChannel'/>
4
4
 
5
5
  # Lớp BroadcastMessage
6
6
 
7
- Một lớp để xử lý việc truyền tin giữa các tab hoặc cửa sổ khác nhau bằng cách sử dụng API `BroadcastChannel`. Nó cung cấp một giao diện đơn giản để gửi và nhận thông điệp với sự hỗ trợ của hàm callback, xử lỗi khả năng nhận diện môi trường thực thi.
7
+ Lớp để xử lý tin nhắn giữa các ngữ cảnh trình duyệt khác nhau (tab, cửa sổ, iframe) bằng cách sử dụng API `BroadcastChannel`. Nó cung cấp một giao diện thuận tiện để gửi và nhận dữ liệu với việc quản vòng đời kênh tự độngxử lỗi.
8
+
9
+ Bao gồm tính năng đặt tên tiền tố tự động để ngăn chặn xung đột và tích hợp với `ErrorCenter` để theo dõi các lỗi khởi tạo.
8
10
 
9
11
  ## Các tính năng chính
10
12
 
11
- - **Giao tiếp đa ngữ cảnh** — dễ dàng gửi thông điệp giữa các tab trình duyệt, cửa sổ hoặc iframe khác nhau trên cùng một origin.
12
- - **Dựa trên Callback** — đăng các hàm callback để tự động xử các thông điệp đến lỗi.
13
- - **Nhận diện môi trường** — tự động kiểm tra môi trường DOM trước khi khởi tạo, giúp ngăn chặn lỗi trong các môi trường không phải trình duyệt.
14
- - **Tiền tố tên kênh** — tự động thêm tiền tố duy nhất vào tên kênh để tránh xung đột với các ứng dụng khác.
15
- - **An toàn kiểu dữ liệu** — hỗ trợ Generic trong TypeScript để định nghĩa kiểu dữ liệu của thông điệp.
16
- - **Tích hợp ErrorCenter** — báo cáo lỗi tập trung khi `BroadcastChannel` không khởi tạo được.
17
- - **Truy cập trực tiếp** — cung cấp quyền truy cập vào thực thể `BroadcastChannel` gốc khi cần thiết.
13
+ - **Giao tiếp đa ngữ cảnh** — đồng bộ hóa dữ liệu đơn giản giữa tất cả các cửa sổ của cùng một nguồn (origin).
14
+ - **Dựa trên Callback** — tự động xử lý các tin nhắn đến lỗi thông qua các hàm callback đã đăng ký.
15
+ - **An toàn khi thực thi** — kiểm tra môi trường DOM tích hợp giúp ngăn chặn lỗi trong quá trình Server-Side Rendering (SSR).
16
+ - ** lập kênh** — tự động thêm tiền tố duy nhất cho tên kênh thông qua `DataStorage`.
17
+ - **Kiểu dữ liệu mạnh mẽ** — hỗ trợ đầy đủ TypeScript generics để đảm bảo tính toàn vẹn của dữ liệu tin nhắn.
18
18
 
19
19
  ## Khởi tạo
20
20
 
21
21
  Để khởi tạo đối tượng, hãy gọi hàm khởi tạo `BroadcastMessage(name, callback, callbackError, errorCenter)`.
22
22
 
23
- ### Generic Constraints
23
+ ### Ràng buộc Generic (Generic Constraints)
24
24
 
25
- - `Message = any` — kiểu dữ liệu của tải trọng thông điệp.
25
+ - `Message = any` — kiểu của tải trọng tin nhắn.
26
26
 
27
27
  **Tham số:**
28
- - `name: string` — tên duy nhất của kênh truyền tin.
29
- - `callback?: (event: MessageEvent<Message>) => void` — hàm callback được thực thi khi nhận được thông điệp.
30
- - `callbackError?: (event: MessageEvent<Message>) => void` — hàm callback được thực thi khi xảy ra lỗi thông điệp.
31
- - `errorCenter: ErrorCenterInstance` — thực thể của trung tâm lỗi để kích hoạt các sự kiện (mặc định: `ErrorCenter.getItem()`).
28
+ - `name: string` — tên kênh duy nhất.
29
+ - `callback?: (event: MessageEvent<Message>) => void` — hàm callback được thực thi khi nhận được tin nhắn.
30
+ - `callbackError?: (event: MessageEvent<Message>) => void` — hàm callback được thực thi khi xảy ra lỗi tin nhắn.
31
+ - `errorCenter: ErrorCenterInstance` — thực thể trung tâm lỗi (mặc định: `ErrorCenter.getItem()`).
32
32
 
33
33
  ```typescript
34
- import { BroadcastMessage } from '@dxtmisha/functional'
34
+ import { BroadcastMessage } from '@dxtmisha/functional-basic'
35
35
 
36
- // 1. Khởi tạo với việc xử lý dữ liệu đến
37
- const messenger = new BroadcastMessage(
36
+ const messenger = new BroadcastMessage<string>(
38
37
  'my-channel',
39
- (event) => console.log('Đã nhận:', event.data),
40
- (error) => console.error('Lỗi:', error)
38
+ (event) => console.log('Nhận được:', event.data)
41
39
  )
42
-
43
- // 2. Gửi một thông điệp
44
- messenger.post({ type: 'UPDATE', value: 100 })
45
40
  ```
46
41
 
47
- ## Gửi thông điệp
42
+ ## Các phương thức
48
43
 
49
- ### `post`
44
+ ### Hành động
50
45
 
51
- Gửi một thông điệp đến tất cả các trình lắng nghe trên cùng một kênh.
46
+ - `post(message: Message): this` — Gửi tin nhắn đến tất cả những người đang lắng nghe trong kênh đã cho.
47
+ - `destroy(): this` — Đóng kênh và ngừng lắng nghe tin nhắn.
52
48
 
53
- **Tham số:**
54
- - `message: Message` — dữ liệu cần gửi.
55
-
56
- **Trả về:** `this` — để hỗ trợ gọi chuỗi phương thức (method chaining).
49
+ ### Cấu hình và Truy cập
57
50
 
58
- ```javascript
59
- messenger.post({ type: 'UPDATE', payload: { id: 123 } })
60
- ```
51
+ - `getChannel(): BroadcastChannel | undefined` — Trả về thực thể `BroadcastChannel` cơ bản.
52
+ - `setCallback(callback: Function): this` Cập nhật hàm xử lý tin nhắn đến.
53
+ - `setCallbackError(callbackError: Function): this` — Cập nhật hàm xử lý lỗi tin nhắn.
61
54
 
62
- ## Cấu hình và Truy cập
55
+ ## dụ
63
56
 
64
- - `getChannel(): BroadcastChannel | undefined` Trả về thực thể `BroadcastChannel` gốc (hoặc `undefined` nếu ngoài môi trường DOM).
65
- - `setCallback(callback: (event: MessageEvent<Message>) => void): this` — Cập nhật hoặc thiết lập hàm callback để nhận thông điệp.
66
- - `setCallbackError(callbackError: (event: MessageEvent<Message>) => void): this` — Cập nhật hoặc thiết lập hàm callback cho các lỗi thông điệp.
57
+ ### Đồng bộ hóa trạng thái giữa các Tab
67
58
 
68
- ## Các ví dụ điển hình
69
-
70
- ### Đồng bộ hóa trạng thái giữa các tab
71
-
72
- ```javascript
59
+ ```typescript
73
60
  import { BroadcastMessage } from '@dxtmisha/functional'
74
61
 
75
- // Trong Tab A Tab B
76
- const authChannel = new BroadcastMessage('auth-status', (event) => {
62
+ // Trong tất cả các tab của ứng dụng
63
+ const authChannel = new BroadcastMessage<string>('auth-status', (event) => {
77
64
  if (event.data === 'LOGOUT') {
78
65
  authModule.clearSession()
79
- window.location.href = '/login'
66
+ window.location.reload()
80
67
  }
81
68
  })
82
69
 
83
- // Khi người dùng đăng xuất ở Tab A
70
+ // Khi người dùng đăng xuất ở một trong các tab
84
71
  function onLogout() {
85
72
  authChannel.post('LOGOUT')
86
73
  }
87
74
  ```
88
75
 
89
- ### Hệ thống thông báo đơn giản với xử lý lỗi
76
+ ### Cập nhật trình xử dữ liệu tức thì
90
77
 
91
- ```javascript
92
- const notifications = new BroadcastMessage(
93
- 'notifications',
94
- (event) => showToast(event.data.message),
95
- (error) => console.error('Không thể nhận thông báo:', error)
96
- )
78
+ ```typescript
79
+ const messenger = new BroadcastMessage('data-sync')
97
80
 
98
- // Cập nhật trình xử lý lỗi sau này
99
- notifications.setCallbackError((error) => {
100
- logToService(error)
81
+ messenger.setCallback((event) => {
82
+ console.log('Dữ liệu mới nhận được:', event.data)
101
83
  })
102
84
 
103
- // Kích hoạt thông báo từ bất kỳ đâu trong ứng dụng
104
- notifications.post({ message: 'Đã nhận tin nhắn mới!' })
85
+ messenger.post({ id: 1, status: 'active' })
105
86
  ```
@@ -4,6 +4,8 @@ import {Meta} from '@storybook/addon-docs/blocks'
4
4
 
5
5
  # Cache Class
6
6
 
7
+ > **⚠️ Deprecated** — This class is obsolete and should not be used. / Этот класс устарел и не рекомендуется к использованию.
8
+
7
9
  A lightweight, memory-based caching mechanism. It provides an efficient way to execute expensive data-fetching functions only when necessary, relying on "comparison arrays" to trigger cache invalidation and recalculation.
8
10
 
9
11
  ## Key Features
@@ -26,9 +28,11 @@ const cache = new Cache()
26
28
  const user = cache.get('user', () => 'Admin', [1])
27
29
  ```
28
30
 
29
- ## Data Retrieval
31
+ ## Methods
32
+
33
+ ### Action
30
34
 
31
- ### `get`
35
+ #### `get`
32
36
 
33
37
  Use the `get()` method to retrieve a cached value or calculate it if it doesn't exist or is stale.
34
38
 
@@ -53,7 +57,7 @@ const unchanged = cache.get('user', () => `User ${++counter}`, [1])
53
57
  const changed = cache.get('user', () => `User ${++counter}`, [2])
54
58
  ```
55
59
 
56
- ### `getAsync`
60
+ #### `getAsync`
57
61
 
58
62
  Functions identically to `get()`, but designed for async calls.
59
63
 
@@ -81,4 +85,3 @@ const u1Cached = await fetchUser(5)
81
85
  // Dependency `id` changed (5 !== 6), hits the network again
82
86
  const u2 = await fetchUser(6)
83
87
  ```
84
-
@@ -4,6 +4,8 @@ import {Meta} from '@storybook/addon-docs/blocks'
4
4
 
5
5
  # Класс Cache
6
6
 
7
+ > **⚠️ Устарел** — Этот класс устарел и не рекомендуется к использованию.
8
+
7
9
  Легковесный механизм кэширования в памяти. Он предоставляет эффективный способ выполнения ресурсоемких функций получения данных только при необходимости, полагаясь на «массивы сравнения» для запуска инвалидации и пересчета кэша.
8
10
 
9
11
  ## Ключевые особенности
@@ -26,9 +28,11 @@ const cache = new Cache()
26
28
  const user = cache.get('user', () => 'Admin', [1])
27
29
  ```
28
30
 
29
- ## Получение данных
31
+ ## Методы
32
+
33
+ ### Действие
30
34
 
31
- ### `get`
35
+ #### `get`
32
36
 
33
37
  Используйте метод `get()` для получения кэшированного значения или его вычисления, если оно не существует или устарело.
34
38
 
@@ -53,7 +57,7 @@ const unchanged = cache.get('user', () => `Пользователь ${++counter}
53
57
  const changed = cache.get('user', () => `Пользователь ${++counter}`, [2])
54
58
  ```
55
59
 
56
- ### `getAsync`
60
+ #### `getAsync`
57
61
 
58
62
  Работает идентично `get()`, но предназначен для асинхронных вызовов.
59
63
 
@@ -81,4 +85,3 @@ const u1Cached = await fetchUser(5)
81
85
  // Зависимость `id` изменилась (5 !== 6), снова идет в сеть
82
86
  const u2 = await fetchUser(6)
83
87
  ```
84
-
@@ -4,13 +4,15 @@ import {Meta} from '@storybook/addon-docs/blocks'
4
4
 
5
5
  # Lớp Cache
6
6
 
7
- Một chế caching dựa trên lưu trữ bộ nhớ nhẹ. Chức năng này cung cấp cách làm hiệu quả để thực thi các tác vụ hay hàm tìm nạp dữ liệu tiêu tốn năng lượng hoạt động thời gian chỉ khi thực sự cần thiết, phụ thuộc vào "mảng so sánh" (comparison array) để tiến hành invalidation cache cũng như việc tính toán ghi đè lại.
7
+ > **⚠️ Đã lỗi thời** Lớp này đã lỗi thờikhông nên được sử dụng.
8
+
9
+ Một cơ chế lưu trữ đệm trong bộ nhớ (memory-based) nhẹ nhàng. Nó cung cấp một cách hiệu quả để thực thi các hàm truy xuất dữ liệu tốn kém chỉ khi cần thiết, dựa trên "mảng so sánh" (comparison arrays) để kích hoạt việc hủy bỏ và tính toán lại bộ nhớ đệm.
8
10
 
9
11
  ## Các tính năng chính
10
12
 
11
- - **Thực thi trên nhu cầu (On-Demand Evaluation)** — các function chỉ chạy khi không tìm thấy bộ nhớ cache mong muốn do rỗng hoặc hiệu (invalidation).
12
- - ** hiệu qua phép so sánh mảng** — Cache module sẽ tự hiệu tiến hành nạp lại hoàn toàn dữ liệu vào array nếu giá trị phần tử thuộc mảng nhận chỉ định không giống với lúc lưu. Chức năng khá giống dependency arrays ở `useEffect` hoặc `useMemo` của React.
13
- - **Hỗ trợ chạy Async**quá trình đồng bộ hoạt động dựa vào cách kết nối của phương pháp `Promise`.
13
+ - **Đánh giá theo yêu cầu** — các hàm chỉ được thực thi khi giá trị được lưu trong bộ nhớ đệm bị thiếu hoặc bị hủy bỏ.
14
+ - **Hủy bỏ theo mảng so sánh** — tự động tính toán lại bộ nhớ đệm nếu mảng phụ thuộc được cung cấp thay đổi (tương tự như mảng phụ thuộc của `useMemo` hoặc `useEffect` trong React).
15
+ - **Hỗ trợ không đồng bộ** hoạt động liền mạch với việc truy xuất dữ liệu dựa trên `Promise`.
14
16
 
15
17
  ## Khởi tạo
16
18
 
@@ -26,43 +28,45 @@ const cache = new Cache()
26
28
  const user = cache.get('user', () => 'Admin', [1])
27
29
  ```
28
30
 
29
- ## Lấy dữ liệu
31
+ ## Các phương thức
32
+
33
+ ### Hành động
30
34
 
31
- ### `get`
35
+ #### `get`
32
36
 
33
- Sử dụng phương thức `get()` kết nối trực tiếp với giá trị cache được gắn cố định hoặc thay mới ngay nếu dữ liệu hiện thuộc trạng thái lưu đã ngừng hoạt động/quá hạn/bị lỗi (stale block).
37
+ Sử dụng phương thức `get()` để truy xuất một giá trị được lưu trong bộ nhớ đệm hoặc tính toán nếu không tồn tại hoặc đã cũ.
34
38
 
35
39
  **Tham số:**
36
- - `name: string` — mã định danh để nạp bộ nhớ đệm cache.
37
- - `callback: () => T` — đoạn code (function) định nghĩa cho mảng trả về (value computation).
38
- - `comparison?: any[]` — thiết lập phụ array lưu trữ độ gắn kết. Nếu nhận thấy biến bên mảng khác hoàn toàn sau bước thực hiện lấy cache gần nhất thì class tự reset tính hợp lệ cho hàm `callback` lại quá trình khởi tạo một lần nữa.
40
+ - `name: string` — một mã định danh duy nhất cho mục nhập bộ nhớ đệm.
41
+ - `callback: () => T` — hàm tính toán giá trị.
42
+ - `comparison?: any[]` — mảng phụ thuộc tùy chọn. Nếu bất kỳ giá trị nào trong mảng này thay đổi so với lần gọi cuối cùng, bộ nhớ đệm sẽ bị hủy và `callback` sẽ chạy lại.
39
43
 
40
- **Trả về:** `T` — dữ liệu cache.
44
+ **Trả về:** `T` — giá trị đã lưu đệm hoặc giá trị mới được tính toán.
41
45
 
42
46
  ```javascript
43
47
  let counter = 0
44
48
 
45
- // Tính thiết lập cache nhận: "User 1"
49
+ // Sẽ đánh giá lưu trữ "User 1"
46
50
  const user1 = cache.get('user', () => `User ${++counter}`, [1])
47
51
 
48
- // KHÔNG CHẠY CODE, chỉ kéo cache được ghi từ "User 1"
52
+ // KHÔNG đánh giá lại, trả về "User 1" đã lưu đệm
49
53
  const unchanged = cache.get('user', () => `User ${++counter}`, [1])
50
54
 
51
- // Mảng gắn kết thay đổi từ [1] sang [2]
52
- // Xóa cachenạp vào: "User 2"
55
+ // Mảng phụ thuộc thay đổi từ [1] thành [2]
56
+ // Sẽ đánh giá lại lưu trữ "User 2"
53
57
  const changed = cache.get('user', () => `User ${++counter}`, [2])
54
58
  ```
55
59
 
56
- ### `getAsync`
60
+ #### `getAsync`
57
61
 
58
- Tương tự như `get()` nhưng cấu hình định hướng đến Async calls.
62
+ Hoạt động tương tự như `get()`, nhưng được thiết kế cho các cuộc gọi không đồng bộ.
59
63
 
60
64
  **Tham số:**
61
- - `name: string` — mã định danh bộ nhớ.
62
- - `callback: () => Promise<T>` — hàm bất đồng bộ trả về kết quả.
63
- - `comparison?: any[]` — danh sách các đối tượng kèm theo.
65
+ - `name: string` — một mã định danh duy nhất cho mục nhập bộ nhớ đệm.
66
+ - `callback: () => Promise<T>` — hàm không đồng bộ tính toán giá trị.
67
+ - `comparison?: any[]` — mảng phụ thuộc tùy chọn.
64
68
 
65
- **Trả về:** `Promise<T>` — dữ liệu `Promise` được tạo mới hoặc lấy từ cache.
69
+ **Trả về:** `Promise<T>` — giá trị không đồng bộ đã lưu đệm hoặc giá trị mới được tính toán.
66
70
 
67
71
  ```javascript
68
72
  async function fetchUser(id) {
@@ -72,13 +76,12 @@ async function fetchUser(id) {
72
76
  }, [id])
73
77
  }
74
78
 
75
- // Bắn thông tin vào luồng network ban đầu
79
+ // Cuộc gọi đầu tiên truy cập mạng
76
80
  const u1 = await fetchUser(5)
77
81
 
78
- // Chạy lại hàm gọi trực tiếp từ cache đã tạo
82
+ // Cuộc gọi thứ hai trả về dữ liệu đã lưu đệm ngay lập tức (không truy cập mạng)
79
83
  const u1Cached = await fetchUser(5)
80
84
 
81
- // Tham số gắn kết biến đổi `id` đã chạy (5 !== 6), bắn luồng lên node mới
85
+ // Phụ thuộc `id` thay đổi (5 !== 6), truy cập mạng một lần nữa
82
86
  const u2 = await fetchUser(6)
83
87
  ```
84
-