@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.
- package/dist/{defineProperty-DblGXmzD.js → defineProperty-149Ahniv.js} +4 -4
- package/dist/library.js +1 -1
- package/dist/media/descriptions/wikiDescriptionsArea.d.ts +7 -0
- package/dist/media/descriptions/wikiDescriptionsClientOnly.d.ts +7 -0
- package/dist/media/descriptions/wikiDescriptionsContainer.d.ts +7 -0
- package/dist/media/descriptions/wikiDescriptionsHeader.d.ts +7 -0
- package/dist/media/descriptions/wikiDescriptionsPageArea.d.ts +7 -0
- package/dist/media/mdx/Area/wikiMdxArea.d.ts +7 -0
- package/dist/media/mdx/ClientOnly/wikiMdxClientOnly.d.ts +7 -0
- package/dist/media/mdx/Container/wikiMdxContainer.d.ts +7 -0
- package/dist/media/mdx/Header/wikiMdxHeader.d.ts +7 -0
- package/dist/media/mdx/PageArea/wikiMdxPageArea.d.ts +7 -0
- package/dist/media.d.ts +1 -1
- package/dist/media.js +127 -68
- package/dist/storybook.js +2707 -1841
- package/dist/{wikiDescriptions-Cv4WzSNL.js → wikiDescriptions-7XaHU3Yk.js} +182 -0
- package/package.json +1 -1
- package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.en.mdx +43 -0
- package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.ru.mdx +43 -0
- package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.vi.mdx +41 -0
- package/src/media/functional/functional/composables/useApiRef/useApiRef.en.mdx +20 -4
- package/src/media/functional/functional/composables/useApiRef/useApiRef.ru.mdx +21 -3
- package/src/media/functional/functional/composables/useApiRef/useApiRef.vi.mdx +20 -2
- package/src/media/functional/functional/functions/computedAsync/computedAsync.en.mdx +8 -0
- package/src/media/functional/functional/functions/computedAsync/computedAsync.ru.mdx +8 -0
- package/src/media/functional/functional/functions/computedAsync/computedAsync.vi.mdx +8 -0
- package/src/media/functional/functional/functions/computedEternity/computedEternity.en.mdx +8 -0
- package/src/media/functional/functional/functions/computedEternity/computedEternity.ru.mdx +8 -0
- package/src/media/functional/functional/functions/computedEternity/computedEternity.vi.mdx +8 -0
- package/src/media/functional/functional-basic/api/api.en.mdx +45 -0
- package/src/media/functional/functional-basic/api/api.ru.mdx +45 -0
- package/src/media/functional/functional-basic/api/api.vi.mdx +45 -0
- package/src/media/functional/functional-basic/classes/Api/Api.en.mdx +57 -54
- package/src/media/functional/functional-basic/classes/Api/Api.ru.mdx +57 -54
- package/src/media/functional/functional-basic/classes/Api/Api.vi.mdx +57 -54
- package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.en.mdx +111 -0
- package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.ru.mdx +111 -0
- package/src/media/functional/functional-basic/classes/ApiCache/ApiCache.vi.mdx +111 -0
- package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.en.mdx +32 -0
- package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.ru.mdx +32 -0
- package/src/media/functional/functional-basic/classes/ApiDataReturn/ApiDataReturn.vi.mdx +32 -0
- package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.en.mdx +24 -28
- package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.ru.mdx +24 -28
- package/src/media/functional/functional-basic/classes/ApiDefault/ApiDefault.vi.mdx +24 -28
- package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.en.mdx +28 -14
- package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.ru.mdx +33 -19
- package/src/media/functional/functional-basic/classes/ApiHeaders/ApiHeaders.vi.mdx +33 -19
- package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.en.mdx +56 -0
- package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.ru.mdx +56 -0
- package/src/media/functional/functional-basic/classes/ApiHydration/ApiHydration.vi.mdx +55 -0
- package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.en.mdx +106 -51
- package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.ru.mdx +107 -52
- package/src/media/functional/functional-basic/classes/ApiInstance/ApiInstance.vi.mdx +103 -49
- package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.en.mdx +44 -26
- package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.ru.mdx +45 -27
- package/src/media/functional/functional-basic/classes/ApiPreparation/ApiPreparation.vi.mdx +44 -26
- package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.en.mdx +59 -21
- package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.ru.mdx +63 -25
- package/src/media/functional/functional-basic/classes/ApiResponse/ApiResponse.vi.mdx +64 -26
- package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.en.mdx +29 -32
- package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.ru.mdx +33 -36
- package/src/media/functional/functional-basic/classes/ApiStatus/ApiStatus.vi.mdx +33 -36
- package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.en.mdx +34 -53
- package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.ru.mdx +33 -52
- package/src/media/functional/functional-basic/classes/BroadcastMessage/BroadcastMessage.vi.mdx +39 -58
- package/src/media/functional/functional-basic/classes/Cache/Cache.en.mdx +7 -4
- package/src/media/functional/functional-basic/classes/Cache/Cache.ru.mdx +7 -4
- package/src/media/functional/functional-basic/classes/Cache/Cache.vi.mdx +28 -25
- package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.en.mdx +45 -53
- package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.ru.mdx +46 -54
- package/src/media/functional/functional-basic/classes/CacheItem/CacheItem.vi.mdx +47 -55
- package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.en.mdx +13 -1
- package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.ru.mdx +13 -1
- package/src/media/functional/functional-basic/classes/CacheStatic/CacheStatic.vi.mdx +13 -0
- package/src/media/functional/functional-basic/classes/Cookie/Cookie.en.mdx +88 -44
- package/src/media/functional/functional-basic/classes/Cookie/Cookie.ru.mdx +88 -44
- package/src/media/functional/functional-basic/classes/Cookie/Cookie.vi.mdx +85 -41
- package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.en.mdx +43 -22
- package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.ru.mdx +46 -25
- package/src/media/functional/functional-basic/classes/CookieBlock/CookieBlock.vi.mdx +43 -22
- package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.en.mdx +84 -0
- package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.ru.mdx +84 -0
- package/src/media/functional/functional-basic/classes/CookieBlockInstance/CookieBlockInstance.vi.mdx +100 -0
- package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.en.mdx +178 -0
- package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.ru.mdx +178 -0
- package/src/media/functional/functional-basic/classes/CookieStorage/CookieStorage.vi.mdx +178 -0
- package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.en.mdx +32 -25
- package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.ru.mdx +32 -25
- package/src/media/functional/functional-basic/classes/DataStorage/DataStorage.vi.mdx +32 -27
- package/src/media/functional/functional-basic/classes/Datetime/Datetime.en.mdx +36 -4
- package/src/media/functional/functional-basic/classes/Datetime/Datetime.ru.mdx +36 -4
- package/src/media/functional/functional-basic/classes/Datetime/Datetime.vi.mdx +36 -4
- package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.en.mdx +101 -70
- package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.ru.mdx +100 -69
- package/src/media/functional/functional-basic/classes/ErrorCenter/ErrorCenter.vi.mdx +101 -70
- package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.en.mdx +46 -42
- package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.ru.mdx +46 -42
- package/src/media/functional/functional-basic/classes/ErrorCenterHandler/ErrorCenterHandler.vi.mdx +46 -42
- package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.en.mdx +44 -96
- package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.ru.mdx +44 -96
- package/src/media/functional/functional-basic/classes/ErrorCenterInstance/ErrorCenterInstance.vi.mdx +44 -96
- package/src/media/functional/functional-basic/classes/EventItem/EventItem.en.mdx +49 -28
- package/src/media/functional/functional-basic/classes/EventItem/EventItem.ru.mdx +21 -0
- package/src/media/functional/functional-basic/classes/EventItem/EventItem.vi.mdx +63 -42
- package/src/media/functional/functional-basic/classes/Formatters/Formatters.en.mdx +97 -109
- package/src/media/functional/functional-basic/classes/Formatters/Formatters.ru.mdx +86 -98
- package/src/media/functional/functional-basic/classes/Formatters/Formatters.vi.mdx +99 -111
- package/src/media/functional/functional-basic/classes/Geo/Geo.en.mdx +3 -3
- package/src/media/functional/functional-basic/classes/Geo/Geo.ru.mdx +5 -5
- package/src/media/functional/functional-basic/classes/Geo/Geo.vi.mdx +5 -5
- package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.en.mdx +83 -40
- package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.ru.mdx +83 -40
- package/src/media/functional/functional-basic/classes/GeoFlag/GeoFlag.vi.mdx +87 -44
- package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.en.mdx +81 -0
- package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.ru.mdx +81 -0
- package/src/media/functional/functional-basic/classes/GeoInstance/GeoInstance.vi.mdx +81 -0
- package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.en.mdx +56 -105
- package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.ru.mdx +53 -102
- package/src/media/functional/functional-basic/classes/GeoPhone/GeoPhone.vi.mdx +55 -105
- package/src/media/functional/functional-basic/classes/Hash/Hash.en.mdx +18 -7
- package/src/media/functional/functional-basic/classes/Hash/Hash.ru.mdx +18 -7
- package/src/media/functional/functional-basic/classes/Hash/Hash.vi.mdx +18 -7
- package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.en.mdx +54 -0
- package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.ru.mdx +54 -0
- package/src/media/functional/functional-basic/classes/HashInstance/HashInstance.vi.mdx +54 -0
- package/src/media/functional/functional-basic/classes/Meta/Meta.en.mdx +16 -0
- package/src/media/functional/functional-basic/classes/Meta/Meta.ru.mdx +16 -0
- package/src/media/functional/functional-basic/classes/Meta/Meta.vi.mdx +17 -1
- package/src/media/functional/functional-basic/classes/MetaManager/MetaManager.en.mdx +9 -0
- package/src/media/functional/functional-basic/classes/MetaManager/MetaManager.ru.mdx +9 -0
- package/src/media/functional/functional-basic/classes/MetaManager/MetaManager.vi.mdx +9 -0
- package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.en.mdx +79 -0
- package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.ru.mdx +79 -0
- package/src/media/functional/functional-basic/classes/MetaStatic/MetaStatic.vi.mdx +79 -0
- package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.en.mdx +50 -0
- package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.ru.mdx +50 -0
- package/src/media/functional/functional-basic/classes/ResumableTimer/ResumableTimer.vi.mdx +50 -0
- package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.en.mdx +131 -0
- package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.ru.mdx +131 -0
- package/src/media/functional/functional-basic/classes/ServerStorage/ServerStorage.vi.mdx +131 -0
- package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.en.mdx +97 -0
- package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.ru.mdx +97 -0
- package/src/media/functional/functional-basic/classes/StorageCallback/StorageCallback.vi.mdx +97 -0
- package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.en.mdx +13 -5
- package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.ru.mdx +13 -5
- package/src/media/functional/functional-basic/functions/addTagHighlightMatch/addTagHighlightMatch.vi.mdx +13 -5
- package/src/media/functional/functional-basic/functions/anyToString/anyToString.en.mdx +37 -19
- package/src/media/functional/functional-basic/functions/anyToString/anyToString.ru.mdx +37 -19
- package/src/media/functional/functional-basic/functions/anyToString/anyToString.vi.mdx +35 -17
- package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.en.mdx +31 -19
- package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.ru.mdx +31 -19
- package/src/media/functional/functional-basic/functions/applyTemplate/applyTemplate.vi.mdx +32 -20
- package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.en.mdx +29 -15
- package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.ru.mdx +28 -14
- package/src/media/functional/functional-basic/functions/blobToBase64/blobToBase64.vi.mdx +28 -14
- package/src/media/functional/functional-basic/functions/capitalize/capitalize.en.mdx +7 -3
- package/src/media/functional/functional-basic/functions/capitalize/capitalize.ru.mdx +7 -3
- package/src/media/functional/functional-basic/functions/capitalize/capitalize.vi.mdx +7 -3
- package/src/media/functional/functional-basic/functions/copyObject/copyObject.en.mdx +17 -13
- package/src/media/functional/functional-basic/functions/copyObject/copyObject.ru.mdx +17 -13
- package/src/media/functional/functional-basic/functions/copyObject/copyObject.vi.mdx +17 -13
- package/src/media/functional/functional-basic/functions/createElement/createElement.en.mdx +2 -0
- package/src/media/functional/functional-basic/functions/createElement/createElement.ru.mdx +2 -0
- package/src/media/functional/functional-basic/functions/createElement/createElement.vi.mdx +2 -0
- package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.en.mdx +1 -3
- package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.ru.mdx +1 -3
- package/src/media/functional/functional-basic/functions/encodeAttribute/encodeAttribute.vi.mdx +1 -3
- package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.en.mdx +13 -10
- package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.ru.mdx +14 -11
- package/src/media/functional/functional-basic/functions/executeFunction/executeFunction.vi.mdx +12 -9
- package/src/media/functional/functional-basic/functions/executePromise/executePromise.en.mdx +14 -13
- package/src/media/functional/functional-basic/functions/executePromise/executePromise.ru.mdx +15 -14
- package/src/media/functional/functional-basic/functions/executePromise/executePromise.vi.mdx +14 -13
- package/src/media/functional/functional-basic/functions/forEach/forEach.en.mdx +1 -1
- package/src/media/functional/functional-basic/functions/forEach/forEach.ru.mdx +1 -1
- package/src/media/functional/functional-basic/functions/forEach/forEach.vi.mdx +1 -1
- package/src/media/functional/functional-basic/functions/frame/frame.en.mdx +7 -4
- package/src/media/functional/functional-basic/functions/frame/frame.ru.mdx +6 -3
- package/src/media/functional/functional-basic/functions/frame/frame.vi.mdx +7 -4
- package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.en.mdx +34 -0
- package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.ru.mdx +34 -0
- package/src/media/functional/functional-basic/functions/getArrayHighlightMatch/getArrayHighlightMatch.vi.mdx +35 -0
- package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.en.mdx +2 -0
- package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.ru.mdx +2 -0
- package/src/media/functional/functional-basic/functions/getCurrentDate/getCurrentDate.vi.mdx +2 -0
- package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.en.mdx +21 -0
- package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.ru.mdx +21 -0
- package/src/media/functional/functional-basic/functions/getCurrentTime/getCurrentTime.vi.mdx +21 -0
- package/src/media/functional/functional-basic/functions/getElementId/getElementId.en.mdx +17 -3
- package/src/media/functional/functional-basic/functions/getElementId/getElementId.ru.mdx +17 -3
- package/src/media/functional/functional-basic/functions/getElementId/getElementId.vi.mdx +18 -4
- package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.en.mdx +31 -0
- package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.ru.mdx +31 -0
- package/src/media/functional/functional-basic/functions/getElementSafeScript/getElementSafeScript.vi.mdx +31 -0
- package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.en.mdx +25 -0
- package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.ru.mdx +25 -0
- package/src/media/functional/functional-basic/functions/getOnlyText/getOnlyText.vi.mdx +25 -0
- package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.en.mdx +11 -4
- package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.ru.mdx +14 -7
- package/src/media/functional/functional-basic/functions/getSearchExp/getSearchExp.vi.mdx +13 -6
- package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.en.mdx +3 -2
- package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.ru.mdx +3 -2
- package/src/media/functional/functional-basic/functions/getSeparatingSearchExp/getSeparatingSearchExp.vi.mdx +3 -2
- package/src/media/functional/functional-basic/functions/toNumber/toNumber.en.mdx +25 -9
- package/src/media/functional/functional-basic/functions/toNumber/toNumber.ru.mdx +25 -9
- package/src/media/functional/functional-basic/functions/toNumber/toNumber.vi.mdx +25 -9
- package/src/media/functional/functional-basic/functions/toString/toString.en.mdx +28 -0
- package/src/media/functional/functional-basic/functions/toString/toString.ru.mdx +28 -0
- package/src/media/functional/functional-basic/functions/toString/toString.vi.mdx +28 -0
- package/src/media/functional/functional-basic/icons/icons.en.mdx +3 -0
- package/src/media/functional/functional-basic/icons/icons.ru.mdx +3 -0
- package/src/media/functional/functional-basic/icons/icons.vi.mdx +3 -0
- package/src/media/functional/nitro-basic/functions/getInject.en.mdx +27 -0
- package/src/media/functional/nitro-basic/functions/getInject.ru.mdx +27 -0
- package/src/media/functional/nitro-basic/functions/getInject.vi.mdx +20 -0
- package/src/media/functional/ui/about/about.en.mdx +45 -0
- package/src/media/functional/ui/about/about.ru.mdx +45 -0
- package/src/media/functional/ui/about/about.vi.mdx +45 -0
- package/src/media/functional/ui/component/component.en.mdx +104 -0
- package/src/media/functional/ui/component/component.ru.mdx +106 -0
- package/src/media/functional/ui/component/component.vi.mdx +104 -0
- package/src/media/functional/ui/setup/setup.en.mdx +72 -0
- package/src/media/functional/ui/setup/setup.ru.mdx +72 -0
- package/src/media/functional/ui/setup/setup.vi.mdx +72 -0
- package/src/media/functional/ui/wiki-data.en.mdx +114 -0
- package/src/media/functional/ui/wiki-data.ru.mdx +114 -0
- package/src/media/functional/ui/wiki-data.vi.mdx +114 -0
|
@@ -4,45 +4,41 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
4
4
|
|
|
5
5
|
# ApiDefault Class
|
|
6
6
|
|
|
7
|
-
A class for managing default data for API requests. It allows setting base parameters that should be included in every request, supporting both standard objects and `FormData`.
|
|
7
|
+
A class for managing default data for API requests. It allows setting base parameters that should be included in every request, supporting both standard objects and `FormData`. This is useful for centrally defining common fields such as tokens, application IDs, or localization settings.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
> `ApiDefault` is an **auxiliary class**, designed for managing request defaults. In most cases, it is recommended to define these through the `requestDefault` parameter in the global `Api` configuration.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- **Support for Multiple Formats** — works seamlessly with both plain JavaScript objects and `FormData`.
|
|
13
|
-
- **Intelligent Merging** — merges defaults with request-specific data, prioritizing the actual request data if keys overlap.
|
|
14
|
-
- **Easy Checks** — simple methods to check if any default data is currently set.
|
|
11
|
+
## Key Features
|
|
15
12
|
|
|
16
|
-
|
|
13
|
+
- **Centralized Defaults** — Define common parameters once for all API calls.
|
|
14
|
+
- **Support for Multiple Formats** — Works seamlessly with both plain JavaScript objects and `FormData`.
|
|
15
|
+
- **Intelligent Merging** — Merges defaults with request-specific data, prioritizing the actual request data if keys overlap.
|
|
16
|
+
- **Chainable API** — Supports a fluent interface for setting parameters.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
## Methods
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
import { ApiDefault } from '@dxtmisha/functional'
|
|
20
|
+
### Action
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
const apiDefault = new ApiDefault()
|
|
22
|
+
#### `request`
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
apiDefault.set({ lang: 'en', version: 'v1' })
|
|
24
|
+
Merges the stored default data into a provided request object or `FormData` instance. If the input is a plain object, it returns a new merged object. If the input is `FormData`, it adds missing keys directly to the instance.
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const mergedRequest = apiDefault.request(requestData)
|
|
32
|
-
// Result: { lang: 'en', version: 'v1', user_id: 5 }
|
|
26
|
+
**Parameters:**
|
|
27
|
+
- `request: ApiFetch['request']` — The original request data (Object, FormData, or String).
|
|
33
28
|
|
|
34
|
-
|
|
35
|
-
const fd = new FormData()
|
|
36
|
-
fd.append('photo', fileBlob)
|
|
37
|
-
apiDefault.request(fd)
|
|
38
|
-
// Result: fd now contains 'lang' and 'version' if they were missing
|
|
39
|
-
```
|
|
29
|
+
**Returns:** `ApiFetch['request']` — The transformed request data.
|
|
40
30
|
|
|
41
|
-
|
|
31
|
+
### Check
|
|
42
32
|
|
|
43
33
|
- `is(): boolean` — Checks if any default data has been set.
|
|
44
|
-
- `get(): ApiDefaultValue` — Returns the current default data.
|
|
45
|
-
|
|
46
|
-
|
|
34
|
+
- `get(): ApiDefaultValue | undefined` — Returns the current default data object.
|
|
35
|
+
|
|
36
|
+
### Configuration
|
|
37
|
+
|
|
38
|
+
- `set(request: ApiDefaultValue): this` — Sets the default data for all future requests.
|
|
47
39
|
|
|
40
|
+
## Types
|
|
48
41
|
|
|
42
|
+
#### `ApiDefaultValue`
|
|
43
|
+
A plain object representing default parameters.
|
|
44
|
+
- `[key: string]: any` — Key-value pairs to be used as defaults.
|
|
@@ -4,45 +4,41 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
4
4
|
|
|
5
5
|
# Класс ApiDefault
|
|
6
6
|
|
|
7
|
-
Класс для управления данными по умолчанию для API-запросов. Он позволяет устанавливать базовые параметры, которые должны быть включены в каждый запрос, поддерживая как стандартные объекты, так и `FormData`.
|
|
7
|
+
Класс для управления данными по умолчанию для API-запросов. Он позволяет устанавливать базовые параметры, которые должны быть включены в каждый запрос, поддерживая как стандартные объекты, так и `FormData`. Это полезно для централизованного определения общих полей, таких как токены, ID приложения или настройки локализации.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
> `ApiDefault` является **вспомогательным классом**, предназначенным для управления значениями по умолчанию в запросах. В большинстве случаев рекомендуется определять их через параметр `requestDefault` в глобальной конфигурации `Api`.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- **Поддержка различных форматов** — бесшовно работает как с обычными объектами JavaScript, так и с `FormData`.
|
|
13
|
-
- **Интеллектуальное слияние** — объединяет значения по умолчанию с данными конкретного запроса, отдавая приоритет данным запроса при совпадении ключей.
|
|
14
|
-
- **Простые проверки** — удобные методы для проверки наличия установленных данных по умолчанию.
|
|
11
|
+
## Ключевые особенности
|
|
15
12
|
|
|
16
|
-
|
|
13
|
+
- **Централизованные значения** — Определите общие параметры один раз для всех вызовов API.
|
|
14
|
+
- **Поддержка различных форматов** — Бесшовно работает как с обычными объектами JavaScript, так и с `FormData`.
|
|
15
|
+
- **Интеллектуальное слияние** — Объединяет значения по умолчанию с данными конкретного запроса, отдавая приоритет данным запроса при совпадении ключей.
|
|
16
|
+
- **Chainable API** — Поддерживает цепочку вызовов при установке параметров.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
## Методы
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
import { ApiDefault } from '@dxtmisha/functional'
|
|
20
|
+
### Действие
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
const apiDefault = new ApiDefault()
|
|
22
|
+
#### `request`
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
apiDefault.set({ lang: 'ru', version: 'v1' })
|
|
24
|
+
Объединяет сохраненные данные по умолчанию с предоставленным объектом запроса или экземпляром `FormData`. Если входные данные являются объектом, метод возвращает новый объединенный объект. Если входные данные — `FormData`, недостающие ключи добавляются напрямую в экземпляр.
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const mergedRequest = apiDefault.request(requestData)
|
|
32
|
-
// Результат: { lang: 'ru', version: 'v1', user_id: 5 }
|
|
26
|
+
**Параметры:**
|
|
27
|
+
- `request: ApiFetch['request']` — Исходные данные запроса (Object, FormData или String).
|
|
33
28
|
|
|
34
|
-
|
|
35
|
-
const fd = new FormData()
|
|
36
|
-
fd.append('photo', fileBlob)
|
|
37
|
-
apiDefault.request(fd)
|
|
38
|
-
// Результат: fd теперь содержит 'lang' и 'version', если они отсутствовали
|
|
39
|
-
```
|
|
29
|
+
**Возвращает:** `ApiFetch['request']` — Трансформированные данные запроса.
|
|
40
30
|
|
|
41
|
-
|
|
31
|
+
### Проверка
|
|
42
32
|
|
|
43
33
|
- `is(): boolean` — Проверяет, были ли установлены какие-либо данные по умолчанию.
|
|
44
|
-
- `get(): ApiDefaultValue` — Возвращает
|
|
45
|
-
|
|
46
|
-
|
|
34
|
+
- `get(): ApiDefaultValue | undefined` — Возвращает текущий объект данных по умолчанию.
|
|
35
|
+
|
|
36
|
+
### Конфигурация
|
|
37
|
+
|
|
38
|
+
- `set(request: ApiDefaultValue): this` — Устанавливает данные по умолчанию для всех будущих запросов.
|
|
47
39
|
|
|
40
|
+
## Типы
|
|
48
41
|
|
|
42
|
+
#### `ApiDefaultValue`
|
|
43
|
+
Обычный объект, представляющий параметры по умолчанию.
|
|
44
|
+
- `[key: string]: any` — Пары ключе-значение, используемые по умолчанию.
|
|
@@ -4,45 +4,41 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
4
4
|
|
|
5
5
|
# Lớp ApiDefault
|
|
6
6
|
|
|
7
|
-
Một lớp để quản lý dữ liệu mặc định cho các yêu cầu API. Nó cho phép thiết lập các tham số cơ bản cần được bao gồm trong mọi yêu cầu, hỗ trợ cả đối tượng thông thường và `FormData`.
|
|
7
|
+
Một lớp để quản lý dữ liệu mặc định cho các yêu cầu API. Nó cho phép thiết lập các tham số cơ bản cần được bao gồm trong mọi yêu cầu, hỗ trợ cả đối tượng thông thường và `FormData`. Điều này hữu ích để định nghĩa tập trung các trường chung như token, ID ứng dụng hoặc cài đặt ngôn ngữ.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
> `ApiDefault` là một **lớp bổ trợ** (auxiliary class), được thiết kế để quản lý các giá trị mặc định của yêu cầu. Trong hầu hết các trường hợp, bạn nên định nghĩa chúng thông qua tham số `requestDefault` trong cấu hình `Api` toàn cục.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- **Hỗ trợ nhiều định dạng** — hoạt động mượt mà với cả đối tượng JavaScript thuần túy và `FormData`.
|
|
13
|
-
- **Gộp dữ liệu thông minh** — gộp các giá trị mặc định với dữ liệu cụ thể của yêu cầu, ưu tiên dữ liệu yêu cầu thực tế nếu có sự trùng lặp khóa.
|
|
14
|
-
- **Kiểm tra dễ dàng** — các phương thức đơn giản để kiểm tra xem dữ liệu mặc định đã được thiết lập hay chưa.
|
|
11
|
+
## Các tính năng chính
|
|
15
12
|
|
|
16
|
-
|
|
13
|
+
- **Mặc định hóa tập trung** — Định nghĩa các tham số chung một lần cho tất cả các cuộc gọi API.
|
|
14
|
+
- **Hỗ trợ nhiều định dạng** — Hoạt động mượt mà với cả đối tượng JavaScript thuần túy và `FormData`.
|
|
15
|
+
- **Gộp dữ liệu thông minh** — Gộp các giá trị mặc định với dữ liệu cụ thể của yêu cầu, ưu tiên dữ liệu yêu cầu thực tế nếu có sự trùng lặp khóa.
|
|
16
|
+
- **Chainable API** — Hỗ trợ giao diện linh hoạt (chaining) để thiết lập các tham số.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
## Các phương thức
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
import { ApiDefault } from '@dxtmisha/functional'
|
|
20
|
+
### Hành động
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
const apiDefault = new ApiDefault()
|
|
22
|
+
#### `request`
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
apiDefault.set({ lang: 'vi', version: 'v1' })
|
|
24
|
+
Gộp dữ liệu mặc định đã lưu vào một đối tượng yêu cầu hoặc thực thể `FormData` được cung cấp. Nếu đầu vào là một đối tượng thuần túy, nó sẽ trả về một đối tượng mới đã được gộp. Nếu đầu vào là `FormData`, nó sẽ thêm trực tiếp các khóa còn thiếu vào thực thể đó.
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const mergedRequest = apiDefault.request(requestData)
|
|
32
|
-
// Kết quả: { lang: 'vi', version: 'v1', user_id: 5 }
|
|
26
|
+
**Tham số:**
|
|
27
|
+
- `request: ApiFetch['request']` — Dữ liệu yêu cầu gốc (Đối tượng, FormData hoặc Chuỗi).
|
|
33
28
|
|
|
34
|
-
|
|
35
|
-
const fd = new FormData()
|
|
36
|
-
fd.append('photo', fileBlob)
|
|
37
|
-
apiDefault.request(fd)
|
|
38
|
-
// Kết quả: fd bây giờ chứa 'lang' và 'version' nếu chúng bị thiếu
|
|
39
|
-
```
|
|
29
|
+
**Trả về:** `ApiFetch['request']` — Dữ liệu yêu cầu đã được chuyển đổi.
|
|
40
30
|
|
|
41
|
-
|
|
31
|
+
### Kiểm tra
|
|
42
32
|
|
|
43
33
|
- `is(): boolean` — Kiểm tra xem dữ liệu mặc định đã được thiết lập chưa.
|
|
44
|
-
- `get(): ApiDefaultValue` — Trả về dữ liệu mặc định hiện tại.
|
|
45
|
-
|
|
46
|
-
|
|
34
|
+
- `get(): ApiDefaultValue | undefined` — Trả về đối tượng dữ liệu mặc định hiện tại.
|
|
35
|
+
|
|
36
|
+
### Cấu hình
|
|
37
|
+
|
|
38
|
+
- `set(request: ApiDefaultValue): this` — Thiết lập dữ liệu mặc định cho tất cả các yêu cầu trong tương lai.
|
|
47
39
|
|
|
40
|
+
## Các kiểu dữ liệu
|
|
48
41
|
|
|
42
|
+
#### `ApiDefaultValue`
|
|
43
|
+
Một đối tượng thuần túy đại diện cho các tham số mặc định.
|
|
44
|
+
- `[key: string]: any` — Các cặp khóa-giá trị được sử dụng làm mặc định.
|
|
@@ -6,6 +6,8 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
6
6
|
|
|
7
7
|
A class for managing and merging HTTP request headers. It handles default application-wide headers, custom headers for specific requests, and default `Content-Type` assignment.
|
|
8
8
|
|
|
9
|
+
> `ApiHeaders` is an **auxiliary class**, designed for managing HTTP headers. In most cases, it is recommended to define global headers through the `headers` parameter in the global `Api` configuration.
|
|
10
|
+
|
|
9
11
|
## Key Features
|
|
10
12
|
|
|
11
13
|
- **Default Headers** — set global headers like `Authorization` or `X-App-Version` once.
|
|
@@ -13,25 +15,37 @@ A class for managing and merging HTTP request headers. It handles default applic
|
|
|
13
15
|
- **Safe Merging** — merges multiple header sources without mutating the original objects.
|
|
14
16
|
- **Validation** — ensures only valid objects are processed as headers.
|
|
15
17
|
|
|
16
|
-
##
|
|
18
|
+
## Methods
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
### Action
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
import { ApiHeaders } from '@dxtmisha/functional'
|
|
22
|
+
#### `get`
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
const apiHeaders = new ApiHeaders()
|
|
24
|
+
Intersects default headers with custom ones and injects `Content-Type`. If the `value` parameter is `null`, headers are disabled.
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
**Parameters:**
|
|
27
|
+
- `value?: Record<string, string> | null` — Custom headers to merge with defaults.
|
|
28
|
+
- `type: string | undefined | null` — The `Content-Type` to set (defaults to `application/json;charset=UTF-8`).
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
const headers = apiHeaders.get({ 'Authorization': 'Bearer token123' })
|
|
31
|
-
// Result: { 'X-App-Platform': 'web', 'Authorization': 'Bearer token123', 'Content-Type': 'application/json;charset=UTF-8' }
|
|
32
|
-
```
|
|
30
|
+
**Returns:** `Record<string, string> | undefined` — The merged headers object.
|
|
33
31
|
|
|
34
|
-
|
|
32
|
+
#### `getByRequest`
|
|
33
|
+
|
|
34
|
+
A specialized version of `get` that adjusts headers based on the request type. Specifically, it ensures `Content-Type` is not manually set for `FormData` to allow correct boundary generation.
|
|
35
|
+
|
|
36
|
+
**Parameters:**
|
|
37
|
+
- `request: ApiFetch['request']` — The request payload (Object, FormData, or String).
|
|
38
|
+
- `value?: Record<string, string> | null` — Custom headers.
|
|
39
|
+
- `type: string` — The desired `Content-Type`.
|
|
40
|
+
|
|
41
|
+
**Returns:** `Record<string, string> | undefined` — The processed headers object.
|
|
42
|
+
|
|
43
|
+
### Configuration
|
|
35
44
|
|
|
36
|
-
- `get(value?: Record<string, string> | null, type = 'application/json;charset=UTF-8'): Record<string, string> | undefined` — Intersects default headers with custom ones and injects `Content-Type`.
|
|
37
45
|
- `set(headers: Record<string, string>): this` — Sets or updates the default headers object.
|
|
46
|
+
|
|
47
|
+
## Types
|
|
48
|
+
|
|
49
|
+
#### `ApiHeadersValue`
|
|
50
|
+
A plain object representing HTTP headers.
|
|
51
|
+
- `[key: string]: string` — Key-value pairs where key is the header name and value is the header content.
|
|
@@ -4,34 +4,48 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
4
4
|
|
|
5
5
|
# Класс ApiHeaders
|
|
6
6
|
|
|
7
|
-
Класс для управления и слияния заголовков HTTP-запросов. Он обрабатывает заголовки по
|
|
7
|
+
Класс для управления и слияния заголовков HTTP-запросов. Он обрабатывает заголовки по умолчанию для всего приложения, пользовательские заголовки для конкретных запросов и автоматическое назначение `Content-Type`.
|
|
8
|
+
|
|
9
|
+
> `ApiHeaders` является **вспомогательным классом**, предназначенным для управления HTTP-заголовками. В большинстве случаев рекомендуется определять глобальные заголовки через параметр `headers` в глобальной конфигурации `Api`.
|
|
8
10
|
|
|
9
11
|
## Ключевые особенности
|
|
10
12
|
|
|
11
|
-
- **Заголовки по умолчанию** —
|
|
12
|
-
- **Динамический Content-Type** —
|
|
13
|
-
- **Безопасное слияние** —
|
|
14
|
-
-
|
|
13
|
+
- **Заголовки по умолчанию** — Установите глобальные заголовки, такие как `Authorization` или `X-App-Version`, один раз.
|
|
14
|
+
- **Динамический Content-Type** — Автоматически управляет заголовком `Content-Type` (по умолчанию `application/json;charset=UTF-8`).
|
|
15
|
+
- **Безопасное слияние** — Объединяет несколько источников заголовков без изменения исходных объектов.
|
|
16
|
+
- **Валидация** — Гарантирует, что для заголовков используются только допустимые объекты.
|
|
15
17
|
|
|
16
|
-
##
|
|
18
|
+
## Методы
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
### Действие
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
import { ApiHeaders } from '@dxtmisha/functional'
|
|
22
|
+
#### `get`
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
const apiHeaders = new ApiHeaders()
|
|
24
|
+
Объединяет заголовки по умолчанию с пользовательскими и добавляет `Content-Type`. Если параметр `value` равен `null`, заголовки отключаются.
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
**Параметры:**
|
|
27
|
+
- `value?: Record<string, string> | null` — Пользовательские заголовки для слияния.
|
|
28
|
+
- `type: string | undefined | null` — Значение `Content-Type` (по умолчанию `application/json;charset=UTF-8`).
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
const headers = apiHeaders.get({ 'Authorization': 'Bearer token123' })
|
|
31
|
-
// Результат: { 'X-App-Platform': 'web', 'Authorization': 'Bearer token123', 'Content-Type': 'application/json;charset=UTF-8' }
|
|
32
|
-
```
|
|
30
|
+
**Возвращает:** `Record<string, string> | undefined` — Объект объединенных заголовков.
|
|
33
31
|
|
|
34
|
-
|
|
32
|
+
#### `getByRequest`
|
|
33
|
+
|
|
34
|
+
Специализированная версия метода `get`, которая корректирует заголовки в зависимости от типа запроса. В частности, она гарантирует, что `Content-Type` не устанавливается вручную для `FormData`, чтобы обеспечить корректную генерацию `boundary`.
|
|
35
|
+
|
|
36
|
+
**Параметры:**
|
|
37
|
+
- `request: ApiFetch['request']` — Данные запроса (Объект, FormData или Строка).
|
|
38
|
+
- `value?: Record<string, string> | null` — Пользовательские заголовки.
|
|
39
|
+
- `type: string` — Желаемый `Content-Type`.
|
|
40
|
+
|
|
41
|
+
**Возвращает:** `Record<string, string> | undefined` — Обработанный объект заголовков.
|
|
42
|
+
|
|
43
|
+
### Конфигурация
|
|
35
44
|
|
|
36
|
-
- `get(value?: Record<string, string> | null, type = 'application/json;charset=UTF-8'): Record<string, string> | undefined` — Объединяет заголовки по умолчанию с пользовательскими и добавляет `Content-Type`.
|
|
37
45
|
- `set(headers: Record<string, string>): this` — Устанавливает или обновляет заголовки по умолчанию.
|
|
46
|
+
|
|
47
|
+
## Типы
|
|
48
|
+
|
|
49
|
+
#### `ApiHeadersValue`
|
|
50
|
+
Обычный объект, представляющий HTTP-заголовки.
|
|
51
|
+
- `[key: string]: string` — Пары ключ-значение, где ключ — имя заголовка, а значение — содержимое заголовка.
|
|
@@ -6,32 +6,46 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
6
6
|
|
|
7
7
|
Một lớp để quản lý và gộp các tiêu đề (headers) yêu cầu HTTP. Nó xử lý các tiêu đề mặc định cho toàn bộ ứng dụng, tiêu đề tùy chỉnh cho các yêu cầu cụ thể và việc tự động gán `Content-Type`.
|
|
8
8
|
|
|
9
|
+
> `ApiHeaders` là một **lớp bổ trợ** (auxiliary class), được thiết kế để quản lý các tiêu đề HTTP. Trong hầu hết các trường hợp, bạn nên định nghĩa các tiêu đề toàn cục thông qua tham số `headers` trong cấu hình `Api` toàn cục.
|
|
10
|
+
|
|
9
11
|
## Các tính năng chính
|
|
10
12
|
|
|
11
|
-
- **Tiêu đề mặc định** —
|
|
12
|
-
- **Content-Type
|
|
13
|
-
- **Gộp an toàn** —
|
|
14
|
-
- **Xác thực
|
|
13
|
+
- **Tiêu đề mặc định** — Thiết lập các tiêu đề chung một lần duy nhất, ví dụ như `Authorization` hoặc `X-App-Version`.
|
|
14
|
+
- **Content-Type động** — Tự động quản lý tiêu đề `Content-Type` (mặc định là `application/json;charset=UTF-8`).
|
|
15
|
+
- **Gộp an toàn** — Gộp nhiều nguồn tiêu đề khác nhau mà không làm thay đổi các đối tượng gốc.
|
|
16
|
+
- **Xác thực** — Đảm bảo chỉ các đối tượng hợp lệ mới được xử lý dưới dạng tiêu đề.
|
|
15
17
|
|
|
16
|
-
##
|
|
18
|
+
## Các phương thức
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
### Hành động
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
import { ApiHeaders } from '@dxtmisha/functional'
|
|
22
|
+
#### `get`
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
const apiHeaders = new ApiHeaders()
|
|
24
|
+
Giao thoa tiêu đề mặc định với những tiêu đề tùy chỉnh và tiêm `Content-Type`. Nếu tham số `value` là `null`, các tiêu đề sẽ bị tắt.
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
**Tham số:**
|
|
27
|
+
- `value?: Record<string, string> | null` — Các tiêu đề tùy chỉnh để gộp với mặc định.
|
|
28
|
+
- `type: string | undefined | null` — Giá trị `Content-Type` (mặc định là `application/json;charset=UTF-8`).
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
const headers = apiHeaders.get({ 'Authorization': 'Bearer token123' })
|
|
31
|
-
// Kết quả: { 'X-App-Platform': 'web', 'Authorization': 'Bearer token123', 'Content-Type': 'application/json;charset=UTF-8' }
|
|
32
|
-
```
|
|
30
|
+
**Trả về:** `Record<string, string> | undefined` — Đối tượng tiêu đề đã được gộp.
|
|
33
31
|
|
|
34
|
-
|
|
32
|
+
#### `getByRequest`
|
|
33
|
+
|
|
34
|
+
Một phiên bản chuyên biệt của `get` để điều chỉnh tiêu đề dựa trên loại yêu cầu. Cụ thể, nó đảm bảo `Content-Type` không được thiết lập thủ công cho `FormData` để cho phép tạo boundary chính xác.
|
|
35
|
+
|
|
36
|
+
**Tham số:**
|
|
37
|
+
- `request: ApiFetch['request']` — Dữ liệu yêu cầu (Đối tượng, FormData hoặc Chuỗi).
|
|
38
|
+
- `value?: Record<string, string> | null` — Các tiêu đề tùy chỉnh.
|
|
39
|
+
- `type: string` — `Content-Type` mong muốn.
|
|
40
|
+
|
|
41
|
+
**Trả về:** `Record<string, string> | undefined` — Đối tượng tiêu đề đã được xử lý.
|
|
42
|
+
|
|
43
|
+
### Cấu hình
|
|
44
|
+
|
|
45
|
+
- `set(headers: Record<string, string>): this` — Thiết lập hoặc cập nhật đối tượng tiêu đề mặc định.
|
|
46
|
+
|
|
47
|
+
## Các kiểu dữ liệu
|
|
35
48
|
|
|
36
|
-
|
|
37
|
-
|
|
49
|
+
#### `ApiHeadersValue`
|
|
50
|
+
Một đối tượng thuần túy đại diện cho các tiêu đề HTTP.
|
|
51
|
+
- `[key: string]: string` — Các cặp khóa-giá trị trong đó khóa là tên tiêu đề và giá trị là nội dung tiêu đề.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {Meta} from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/en/functional-basic/Classes/ApiHydration - API Data Hydration'/>
|
|
4
|
+
|
|
5
|
+
# ApiHydration Class
|
|
6
|
+
|
|
7
|
+
A class for collecting API data for hydration on the client side during SSR (Server-Side Rendering). It allows the server to capture API responses during the initial render and pass them to the client, preventing redundant network requests when the application initializes in the browser.
|
|
8
|
+
|
|
9
|
+
> `ApiHydration` is an **auxiliary class**, designed for SSR data management. In most cases, it is recommended to interact with hydration through the global `Api` object using methods like `Api.getHydrationScript()`.
|
|
10
|
+
|
|
11
|
+
## Key Features
|
|
12
|
+
|
|
13
|
+
- **SSR Optimization** — reduces the number of requests after the page loads by reusing server-side data.
|
|
14
|
+
- **Data Capture** — automatically collects successful API responses marked for global use.
|
|
15
|
+
- **HTML Embedding** — generates a safe `<script>` tag with JSON-serialized data for embedding in the document.
|
|
16
|
+
- **Client Synchronization** — allows `ApiResponse` to load hydrated data automatically on the client side.
|
|
17
|
+
|
|
18
|
+
## Methods
|
|
19
|
+
|
|
20
|
+
### Action
|
|
21
|
+
|
|
22
|
+
#### `toClient`
|
|
23
|
+
|
|
24
|
+
Saves the API response for client-side hydration. This method only executes on the server and only for requests where `global` is set to true.
|
|
25
|
+
|
|
26
|
+
**Parameters:**
|
|
27
|
+
- `apiFetch: ApiFetch` — The API request configuration.
|
|
28
|
+
- `response: T` — The data payload to be hydrated on the client.
|
|
29
|
+
|
|
30
|
+
#### `toString`
|
|
31
|
+
|
|
32
|
+
Returns a string representation of the captured hydration data, wrapped in a safe `<script>` tag with a unique ID.
|
|
33
|
+
|
|
34
|
+
**Returns:** `string` — The formatted HTML script tag.
|
|
35
|
+
|
|
36
|
+
### Configuration
|
|
37
|
+
|
|
38
|
+
- `initResponse(response: ApiResponse): void` — Initializes the `ApiResponse` instance with hydration data if running in a DOM environment.
|
|
39
|
+
|
|
40
|
+
## Types
|
|
41
|
+
|
|
42
|
+
#### `ApiHydrationList`
|
|
43
|
+
A list of captured API responses for hydration.
|
|
44
|
+
- `path: string` — The API endpoint path.
|
|
45
|
+
- `method: ApiMethodItem` — The HTTP method used.
|
|
46
|
+
- `request: any` — The request payload.
|
|
47
|
+
- `response: any` — The server response data.
|
|
48
|
+
- `global?: boolean` — Global usage flag.
|
|
49
|
+
|
|
50
|
+
## Guide: Hydration Mechanics
|
|
51
|
+
|
|
52
|
+
The following rules and conditions define how the hydration system captures and transfers data between the server and the browser:
|
|
53
|
+
|
|
54
|
+
- **Global Flag** — only requests where the `global` property is set to `true` in the configuration are captured for hydration.
|
|
55
|
+
- **Automatic Handling** — the `global` flag is automatically set to `true` for all `GET` requests. Other methods require explicit manual enabling.
|
|
56
|
+
- **Server Execution** — data capture occurs exclusively on the server side (where `isDomRuntime()` is false).
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import {Meta} from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/ru/functional-basic/Classes/ApiHydration - Гидратация данных API'/>
|
|
4
|
+
|
|
5
|
+
# Класс ApiHydration
|
|
6
|
+
|
|
7
|
+
Класс для сбора данных API для гидратации на стороне клиента во время SSR (Server-Side Rendering). Он позволяет серверу захватывать ответы API во время начальной отрисовки и передавать их клиенту, предотвращая избыточные сетевые запросы при инициализации приложения в браузере.
|
|
8
|
+
|
|
9
|
+
> `ApiHydration` является **вспомогательным классом**, предназначенным для управления данными SSR. В большинстве случаев рекомендуется взаимодействовать с гидратацией через глобальный объект `Api`, используя такие методы, как `Api.getHydrationScript()`.
|
|
10
|
+
|
|
11
|
+
## Ключевые особенности
|
|
12
|
+
|
|
13
|
+
- **Оптимизация SSR** — сокращает количество запросов после загрузки страницы за счет повторного использования серверных данных.
|
|
14
|
+
- **Захват данных** — автоматически собирает успешные ответы API, помеченные для глобального использования.
|
|
15
|
+
- **Внедрение в HTML** — генерирует безопасный тег `<script>` с JSON-сериализованными данными для вставки в документ.
|
|
16
|
+
- **Синхронизация с клиентом** — позволяет `ApiResponse` автоматически загружать гидрированные данные на стороне клиента.
|
|
17
|
+
|
|
18
|
+
## Методы
|
|
19
|
+
|
|
20
|
+
### Действие
|
|
21
|
+
|
|
22
|
+
#### `toClient`
|
|
23
|
+
|
|
24
|
+
Сохраняет ответ API для гидратации на стороне клиента. Этот метод выполняется только на сервере и только для запросов, где `global` установлен в true.
|
|
25
|
+
|
|
26
|
+
**Параметры:**
|
|
27
|
+
- `apiFetch: ApiFetch` — Конфигурация запроса API.
|
|
28
|
+
- `response: T` — Данные ответа, которые будут переданы клиенту.
|
|
29
|
+
|
|
30
|
+
#### `toString`
|
|
31
|
+
|
|
32
|
+
Возвращает строковое представление захваченных данных гидратации, обернутое в безопасный тег `<script>` с уникальным ID.
|
|
33
|
+
|
|
34
|
+
**Возвращает:** `string` — Отформатированный HTML-тег скрипта.
|
|
35
|
+
|
|
36
|
+
### Конфигурация
|
|
37
|
+
|
|
38
|
+
- `initResponse(response: ApiResponse): void` — Инициализирует экземпляр `ApiResponse` данными гидратации, если код выполняется в среде DOM.
|
|
39
|
+
|
|
40
|
+
## Типы
|
|
41
|
+
|
|
42
|
+
#### `ApiHydrationList`
|
|
43
|
+
Список захваченных ответов API для гидратации.
|
|
44
|
+
- `path: string` — Путь эндпоинта API.
|
|
45
|
+
- `method: ApiMethodItem` — Используемый HTTP-метод.
|
|
46
|
+
- `request: any` — Данные запроса.
|
|
47
|
+
- `response: any` — Данные ответа сервера.
|
|
48
|
+
- `global?: boolean` — Флаг глобального использования.
|
|
49
|
+
|
|
50
|
+
## Руководство: Механика гидратации
|
|
51
|
+
|
|
52
|
+
Следующие правила и условия определяют, как система гидратации захватывает и передает данные между сервером и браузером:
|
|
53
|
+
|
|
54
|
+
- **Флаг global** — захватываются только те запросы, у которых свойство `global` в конфигурации установлено в `true`.
|
|
55
|
+
- **Автоматическая обработка** — флаг `global` автоматически устанавливается в `true` для всех `GET`-запросов. Другие методы требуют явного включения вручную.
|
|
56
|
+
- **Серверное выполнение** — захват данных происходит исключительно на стороне сервера (где `isDomRuntime()` возвращает false).
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import {Meta} from '@storybook/addon-docs/blocks'
|
|
2
|
+
|
|
3
|
+
<Meta title='@dxtmisha/vi/functional-basic/Classes/ApiHydration - Giảm tải dữ liệu API'/>
|
|
4
|
+
|
|
5
|
+
# Lớp ApiHydration
|
|
6
|
+
|
|
7
|
+
Một lớp để thu thập dữ liệu API cho việc "hydrat hóa" (hydration) phía máy khách trong quá trình SSR (Server-Side Rendering). Nó cho phép máy chủ ghi lại các phản hồi API trong lần render đầu tiên và chuyển chúng đến máy khách, ngăn chặn các yêu cầu mạng dư thừa khi ứng dụng khởi tạo trong trình duyệt.
|
|
8
|
+
|
|
9
|
+
> `ApiHydration` là một **lớp bổ trợ** (auxiliary class), được thiết kế để quản lý dữ liệu SSR. Trong hầu hết các trường hợp, bạn nên tương tác với việc hydrat hóa thông qua đối tượng `Api` toàn cục bằng các phương thức như `Api.getHydrationScript()`.
|
|
10
|
+
|
|
11
|
+
## Các tính năng chính
|
|
12
|
+
|
|
13
|
+
- **Tối ưu hóa SSR** — giảm số lượng yêu cầu sau khi tải trang bằng cách sử dụng lại dữ liệu từ phía máy chủ.
|
|
14
|
+
- **Thu thập dữ liệu** — tự động thu thập các phản hồi API thành công được đánh dấu để sử dụng toàn cục.
|
|
15
|
+
- **Nhúng HTML** — tạo một thẻ `<script>` an toàn với dữ liệu đã được JSON-serial hóa để nhúng vào tài liệu.
|
|
16
|
+
- **Đồng bộ hóa máy khách** — cho phép `ApiResponse` tự động tải dữ liệu đã hydrat hóa ở phía máy khách.
|
|
17
|
+
|
|
18
|
+
## Các phương thức
|
|
19
|
+
|
|
20
|
+
### Hành động
|
|
21
|
+
|
|
22
|
+
#### `toClient`
|
|
23
|
+
|
|
24
|
+
Lưu phản hồi API để hydrat hóa phía máy khách. Phương thức này chỉ thực thi trên máy chủ và chỉ dành cho các yêu cầu đã đặt `global` là true.
|
|
25
|
+
|
|
26
|
+
**Tham số:**
|
|
27
|
+
- `apiFetch: ApiFetch` — Cấu hình yêu cầu API.
|
|
28
|
+
- `response: T` — Dữ liệu phản hồi sẽ được chuyển đến máy khách.
|
|
29
|
+
|
|
30
|
+
#### `toString`
|
|
31
|
+
|
|
32
|
+
Trả về chuỗi đại diện cho dữ liệu hydrat hóa đã thu thập, được bọc trong một thẻ `<script>` an toàn với ID duy nhất.
|
|
33
|
+
|
|
34
|
+
**Trả về:** `string` — Thẻ script HTML đã được định dạng.
|
|
35
|
+
|
|
36
|
+
### Cấu hình
|
|
37
|
+
|
|
38
|
+
- `initResponse(response: ApiResponse): void` — Khởi tạo thực thể `ApiResponse` với dữ liệu hydrat hóa nếu đang chạy trong môi trường DOM.
|
|
39
|
+
|
|
40
|
+
## Các kiểu dữ liệu
|
|
41
|
+
|
|
42
|
+
#### `ApiHydrationList`
|
|
43
|
+
Danh sách các phản hồi API đã thu thập để hydrat hóa.
|
|
44
|
+
- `path: string` — Đường dẫn endpoint API.
|
|
45
|
+
- `method: ApiMethodItem` — Phương thức HTTP đã sử dụng.
|
|
46
|
+
- `request: any` — Dữ liệu yêu cầu.
|
|
47
|
+
- `response: any` — Dữ liệu phản hồi từ máy chủ.
|
|
48
|
+
|
|
49
|
+
## Hướng dẫn: Cơ chế Hydrat hóa
|
|
50
|
+
|
|
51
|
+
Các quy tắc và điều kiện sau đây xác định cách hệ thống hydrat hóa thu thập và chuyển dữ liệu giữa máy chủ và trình duyệt:
|
|
52
|
+
|
|
53
|
+
- **Cờ toàn cục** — chỉ các yêu cầu có thuộc tính `global` được đặt thành `true` mới được ghi lại để hydrat hóa.
|
|
54
|
+
- **Xử lý tự động** — cờ `global` được tự động đặt thành `true` cho tất cả các yêu cầu `GET`. Các phương thức khác yêu cầu bật thủ công.
|
|
55
|
+
- **Thực thi phía máy chủ** — việc thu thập dữ liệu chỉ xảy ra ở phía máy chủ (nơi `isDomRuntime()` trả về false).
|