@dxtmisha/wiki 0.59.1 → 0.64.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-CbNEU1Ei.js → defineProperty-j1GyHeIL.js} +4 -4
- package/dist/library.js +1 -1
- package/dist/media.js +16 -3
- package/dist/src/media/descriptions/wikiDescriptionsBleed.d.ts +7 -0
- package/dist/src/media/descriptions/wikiDescriptionsDivider.d.ts +7 -0
- package/dist/src/media/descriptions/wikiDescriptionsSwitch.d.ts +7 -0
- package/dist/src/media/descriptions/wikiDescriptionsTextDescription.d.ts +7 -0
- package/dist/src/media/descriptions/wikiDescriptionsTextLabel.d.ts +7 -0
- package/dist/src/media/mdx/Bleed/wikiMdxBleed.d.ts +7 -0
- package/dist/src/media/mdx/Divider/wikiMdxDivider.d.ts +7 -0
- package/dist/src/media/mdx/Switch/wikiMdxSwitch.d.ts +7 -0
- package/dist/src/media/mdx/TextDescription/wikiMdxTextDescription.d.ts +7 -0
- package/dist/src/media/mdx/TextLabel/wikiMdxTextLabel.d.ts +7 -0
- package/dist/storybook.js +2398 -1746
- package/dist/{wikiDescriptions-Dbkpa2Je.js → wikiDescriptions-n3cFkYRZ.js} +176 -0
- package/package.json +1 -1
- package/src/media/functional/functional/api/api.en.mdx +27 -0
- package/src/media/functional/functional/api/api.ru.mdx +27 -0
- package/src/media/functional/functional/api/api.vi.mdx +27 -0
- package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.en.mdx +22 -1
- package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.ru.mdx +22 -1
- package/src/media/functional/functional/composables/useApiAsyncRef/useApiAsyncRef.vi.mdx +22 -1
- package/src/media/functional/functional/composables/useApiDelete/useApiDelete.en.mdx +19 -15
- package/src/media/functional/functional/composables/useApiDelete/useApiDelete.ru.mdx +19 -15
- package/src/media/functional/functional/composables/useApiDelete/useApiDelete.vi.mdx +22 -18
- package/src/media/functional/functional/composables/useApiGet/useApiGet.en.mdx +20 -15
- package/src/media/functional/functional/composables/useApiGet/useApiGet.ru.mdx +20 -15
- package/src/media/functional/functional/composables/useApiGet/useApiGet.vi.mdx +23 -18
- package/src/media/functional/functional/composables/{useApiManagementRef → useApiManagementAsyncRef}/useApiManagementAsyncRef.en.mdx +15 -2
- package/src/media/functional/functional/composables/{useApiManagementRef → useApiManagementAsyncRef}/useApiManagementAsyncRef.ru.mdx +15 -2
- package/src/media/functional/functional/composables/{useApiManagementRef → useApiManagementAsyncRef}/useApiManagementAsyncRef.vi.mdx +15 -2
- package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementRef.en.mdx +10 -2
- package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementRef.ru.mdx +12 -4
- package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementRef.vi.mdx +10 -2
- package/src/media/functional/functional/composables/useApiPost/useApiPost.en.mdx +20 -15
- package/src/media/functional/functional/composables/useApiPost/useApiPost.ru.mdx +20 -15
- package/src/media/functional/functional/composables/useApiPost/useApiPost.vi.mdx +23 -18
- package/src/media/functional/functional/composables/useApiPut/useApiPut.en.mdx +23 -18
- package/src/media/functional/functional/composables/useApiPut/useApiPut.ru.mdx +23 -18
- package/src/media/functional/functional/composables/useApiPut/useApiPut.vi.mdx +26 -21
- package/src/media/functional/functional/composables/useApiRef/useApiRef.en.mdx +2 -0
- package/src/media/functional/functional/composables/useApiRef/useApiRef.ru.mdx +2 -0
- package/src/media/functional/functional/composables/useApiRef/useApiRef.vi.mdx +2 -0
- package/src/media/functional/functional/composables/useApiRequest/useApiRequest.en.mdx +23 -17
- package/src/media/functional/functional/composables/useApiRequest/useApiRequest.ru.mdx +23 -17
- package/src/media/functional/functional/composables/useApiRequest/useApiRequest.vi.mdx +26 -20
- package/src/media/functional/functional/dxt-functional-plugin/dxt-functional-plugin.en.mdx +16 -2
- package/src/media/functional/functional/dxt-functional-plugin/dxt-functional-plugin.ru.mdx +16 -2
- package/src/media/functional/functional/dxt-functional-plugin/dxt-functional-plugin.vi.mdx +16 -2
- package/src/media/functional/functional/functions/dxtFunctionalPlugin/dxtFunctionalPlugin.en.mdx +4 -1
- package/src/media/functional/functional/functions/dxtFunctionalPlugin/dxtFunctionalPlugin.ru.mdx +4 -1
- package/src/media/functional/functional/functions/dxtFunctionalPlugin/dxtFunctionalPlugin.vi.mdx +4 -1
- package/src/media/functional/functional-basic/api/api.en.mdx +55 -0
- package/src/media/functional/functional-basic/api/api.ru.mdx +55 -0
- package/src/media/functional/functional-basic/api/api.vi.mdx +55 -0
- package/src/media/functional/functional-basic/classes/ApiError/ApiError.en.mdx +44 -0
- package/src/media/functional/functional-basic/classes/ApiError/ApiError.ru.mdx +44 -0
- package/src/media/functional/functional-basic/classes/ApiError/ApiError.vi.mdx +44 -0
- package/src/media/functional/functional-basic/classes/ApiErrorItem/ApiErrorItem.en.mdx +31 -0
- package/src/media/functional/functional-basic/classes/ApiErrorItem/ApiErrorItem.ru.mdx +31 -0
- package/src/media/functional/functional-basic/classes/ApiErrorItem/ApiErrorItem.vi.mdx +31 -0
- package/src/media/functional/functional-basic/classes/ApiErrorStorage/ApiErrorStorage.en.mdx +51 -0
- package/src/media/functional/functional-basic/classes/ApiErrorStorage/ApiErrorStorage.ru.mdx +51 -0
- package/src/media/functional/functional-basic/classes/ApiErrorStorage/ApiErrorStorage.vi.mdx +51 -0
|
@@ -1,34 +1,38 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
2
|
|
|
3
|
-
<Meta title='@dxtmisha/vi/functional/Composables/useApiDelete -
|
|
3
|
+
<Meta title='@dxtmisha/vi/functional/Composables/useApiDelete - DELETE Request Execution'/>
|
|
4
4
|
|
|
5
5
|
# `useApiDelete`
|
|
6
6
|
|
|
7
|
-
Trả về một đối tượng với trạng thái tải và phương thức `send` để thực hiện các yêu cầu API `DELETE`.
|
|
7
|
+
Trả về một đối tượng với trạng thái tải và phương thức `send` để thực hiện các yêu cầu API `DELETE`. Đây là một trình bao bọc tiện lợi trên `useApiRequest` được điền sẵn phương thức `DELETE`. Nhận các thiết lập dưới dạng một đối tượng `UseApiDeleteSetup` duy nhất.
|
|
8
8
|
|
|
9
9
|
**Tham số:**
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
- `
|
|
15
|
-
- `
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
- `setup: UseApiDeleteSetup` — Đối tượng thiết lập cấu hình:
|
|
11
|
+
- `path?: RefOrNormal<string | undefined>` — Đường dẫn đến endpoint API (có thể phản ứng).
|
|
12
|
+
- `action?: (data: Return | undefined) => Promise<void> | void` — Hành động (callback) thực hiện sau khi yêu cầu hoàn tất thành công.
|
|
13
|
+
- `transformation?: (data: T) => Return` — Hàm chuyển đổi dữ liệu phản hồi từ máy chủ trước khi trả về hoặc truyền vào `action`.
|
|
14
|
+
- `validateRequestContract?: (data: Request) => ApiDataValidation & Return` — Hàm xác thực hợp đồng yêu cầu.
|
|
15
|
+
- `validateResponseContract?: (data: T) => ApiDataValidation & Return` — Hàm xác thực hợp đồng phản hồi.
|
|
16
|
+
- `errorContract?: ApiErrorStorageList` — nơi lưu trữ hợp đồng lỗi phản hồi.
|
|
17
|
+
- `toData?: boolean` — Việc trích xuất trường `data` từ phản hồi hay không. Mặc định: `true`.
|
|
18
|
+
- `options?: ApiOptions` — Các tùy chọn bổ sung cho yêu cầu (đối tượng tham số `ApiFetch`).
|
|
19
|
+
- `apiInstance?: ApiInstance` — Phiên bản API sử dụng cho yêu cầu. Mặc định là `Api.getItem()`.
|
|
20
|
+
|
|
21
|
+
**Trả về:**
|
|
18
22
|
Một đối tượng với các thuộc tính sau:
|
|
19
23
|
- `loading: Ref<boolean>` — Trạng thái tải phản ứng. Sẽ là `true` trong khi yêu cầu đang thực hiện và `false` sau khi hoàn thành hoặc có lỗi.
|
|
20
|
-
- `send(request?: Request): Promise<Return | undefined>` — Phương thức bất đồng bộ để gửi yêu cầu `DELETE`. Nó tự động quản lý trạng thái `loading`, áp dụng hàm biến đổi cho phản hồi, thực hiện callback `action` khi thành công và xử lý lỗi một cách an toàn bằng cách ghi log ra console.
|
|
24
|
+
- `send(request?: Request): Promise<Return | undefined>` — Phương thức bất đồng bộ để gửi yêu cầu `DELETE`. Nó tự động quản lý trạng thái `loading`, xác thực hợp đồng yêu cầu và phản hồi, áp dụng hàm biến đổi cho phản hồi, thực hiện callback `action` khi thành công và xử lý lỗi một cách an toàn bằng cách ghi log ra console.
|
|
21
25
|
|
|
22
26
|
```typescript
|
|
23
27
|
import { useApiDelete } from '@dxtmisha/functional'
|
|
24
28
|
|
|
25
|
-
const { loading, send } = useApiDelete(
|
|
26
|
-
'/api/delete',
|
|
27
|
-
(data) => console.log('Hành động hoàn tất:', data),
|
|
28
|
-
(raw) => ({ ...raw, processed: true }),
|
|
29
|
-
true,
|
|
30
|
-
{ cache: false }
|
|
31
|
-
)
|
|
29
|
+
const { loading, send } = useApiDelete({
|
|
30
|
+
path: '/api/delete',
|
|
31
|
+
action: (data) => console.log('Hành động hoàn tất:', data),
|
|
32
|
+
transformation: (raw) => ({ ...raw, processed: true }),
|
|
33
|
+
toData: true,
|
|
34
|
+
options: { cache: false }
|
|
35
|
+
})
|
|
32
36
|
|
|
33
37
|
const handleDelete = async () => {
|
|
34
38
|
const result = await send({ id: 1 })
|
|
@@ -4,31 +4,36 @@ import { Meta } from '@storybook/addon-docs/blocks'
|
|
|
4
4
|
|
|
5
5
|
# `useApiGet`
|
|
6
6
|
|
|
7
|
-
Returns an object with a loading state and a `send` method for executing API `GET` requests.
|
|
7
|
+
Returns an object with a loading state and a `send` method for executing API `GET` requests. It is a convenient wrapper over `useApiRequest` that pre-fills the `GET` method. Accepts settings as a single `UseApiGetSetup` object.
|
|
8
8
|
|
|
9
9
|
**Parameters:**
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
- `
|
|
15
|
-
- `
|
|
10
|
+
- `setup: UseApiGetSetup` — Configuration setup object:
|
|
11
|
+
- `path?: RefOrNormal<string | undefined>` — Path to the API endpoint (can be reactive).
|
|
12
|
+
- `action?: (data: Return | undefined) => Promise<void> | void` — Callback action to perform after the request completes successfully.
|
|
13
|
+
- `transformation?: (data: T) => Return` — Function to transform the response data before it is returned or passed to the `action`.
|
|
14
|
+
- `validateRequestContract?: (data: Request) => ApiDataValidation & Return` — Request contract validation function.
|
|
15
|
+
- `validateResponseContract?: (data: T) => ApiDataValidation & Return` — Response contract validation function.
|
|
16
|
+
- `errorContract?: ApiErrorStorageList` — storage of response error contracts.
|
|
17
|
+
- `toData?: boolean` — Whether to extract the `data` field from the response. Defaults to `true`.
|
|
18
|
+
- `options?: ApiOptions` — Additional request options (`ApiFetch` object parameter).
|
|
19
|
+
- `apiInstance?: ApiInstance` — API instance to use for the request. Defaults to `Api.getItem()`.
|
|
16
20
|
|
|
17
21
|
**Returns:**
|
|
18
22
|
An object with the following properties:
|
|
19
23
|
- `loading: Ref<boolean>` — Reactive loading state. It becomes `true` while the request is in progress and `false` after it completes or fails.
|
|
20
|
-
- `send(request?: Request): Promise<Return | undefined>` — An asynchronous method for sending the `GET` request. It automatically manages the `loading` state, applies the transformation function to the response, executes the `action` callback on success, and safely handles errors by logging them to the console.
|
|
24
|
+
- `send(request?: Request): Promise<Return | undefined>` — An asynchronous method for sending the `GET` request. It automatically manages the `loading` state, validates the request and response contracts, applies the transformation function to the response, executes the `action` callback on success, and safely handles errors by logging them to the console.
|
|
21
25
|
|
|
22
26
|
```typescript
|
|
23
27
|
import { useApiGet } from '@dxtmisha/functional'
|
|
24
28
|
|
|
25
|
-
const { loading, send } = useApiGet(
|
|
26
|
-
'/api/data',
|
|
27
|
-
(data) => console.log('Action complete:', data),
|
|
28
|
-
(raw) => ({ ...raw, processed: true }),
|
|
29
|
-
true,
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const { loading, send } = useApiGet({
|
|
30
|
+
path: '/api/data',
|
|
31
|
+
action: (data) => console.log('Action complete:', data),
|
|
32
|
+
transformation: (raw) => ({ ...raw, processed: true }),
|
|
33
|
+
validateResponseContract: (res) => ({ success: true, ...res }),
|
|
34
|
+
toData: true,
|
|
35
|
+
options: { cache: false }
|
|
36
|
+
})
|
|
32
37
|
|
|
33
38
|
const fetchData = async () => {
|
|
34
39
|
const result = await send({ id: 1 })
|
|
@@ -4,31 +4,36 @@ import { Meta } from '@storybook/addon-docs/blocks'
|
|
|
4
4
|
|
|
5
5
|
# `useApiGet`
|
|
6
6
|
|
|
7
|
-
Возвращает объект с состоянием загрузки и методом `send` для выполнения `GET`-запросов к API.
|
|
7
|
+
Возвращает объект с состоянием загрузки и методом `send` для выполнения `GET`-запросов к API. Является удобной оберткой над `useApiRequest` с предустановленным методом `GET`. Принимает настройки в виде единого объекта `UseApiGetSetup`.
|
|
8
8
|
|
|
9
9
|
**Параметры:**
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
- `
|
|
15
|
-
- `
|
|
10
|
+
- `setup: UseApiGetSetup` — Объект настроек запроса:
|
|
11
|
+
- `path?: RefOrNormal<string | undefined>` — Путь к endpoint API (может быть реактивным).
|
|
12
|
+
- `action?: (data: Return | undefined) => Promise<void> | void` — Действие (коллбэк), выполняемое после успешного завершения запроса.
|
|
13
|
+
- `transformation?: (data: T) => Return` — Функция трансформации ответа от сервера перед возвращением или передачей в `action`.
|
|
14
|
+
- `validateRequestContract?: (data: Request) => ApiDataValidation & Return` — Функция валидации контракта отправляемого запроса.
|
|
15
|
+
- `validateResponseContract?: (data: T) => ApiDataValidation & Return` — Функция валидации контракта полученного ответа.
|
|
16
|
+
- `errorContract?: ApiErrorStorageList` — хранилище контрактов ошибок ответа.
|
|
17
|
+
- `toData?: boolean` — Извлекать ли поле `data` из ответа. По умолчанию `true`.
|
|
18
|
+
- `options?: ApiOptions` — Дополнительные опции запроса (объект параметров `ApiFetch`).
|
|
19
|
+
- `apiInstance?: ApiInstance` — Экземпляр API, используемый для выполнения запроса. По умолчанию `Api.getItem()`.
|
|
16
20
|
|
|
17
21
|
**Возвращает:**
|
|
18
22
|
Объект со следующими свойствами:
|
|
19
23
|
- `loading: Ref<boolean>` — Реактивное состояние загрузки. Принимает значение `true` во время выполнения запроса и `false` после его завершения или ошибки.
|
|
20
|
-
- `send(request?: Request): Promise<Return | undefined>` — Асинхронный метод для отправки `GET`-запроса. Он автоматически управляет состоянием `loading`, применяет функцию трансформации к
|
|
24
|
+
- `send(request?: Request): Promise<Return | undefined>` — Асинхронный метод для отправки `GET`-запроса. Он автоматически управляет состоянием `loading`, проверяет контракты валидации запроса и ответа, применяет функцию трансформации к ответам, вызывает коллбэк `action` при успехе и безопасно обрабатывает ошибки.
|
|
21
25
|
|
|
22
26
|
```typescript
|
|
23
27
|
import { useApiGet } from '@dxtmisha/functional'
|
|
24
28
|
|
|
25
|
-
const { loading, send } = useApiGet(
|
|
26
|
-
'/api/data',
|
|
27
|
-
(data) => console.log('Действие завершено:', data),
|
|
28
|
-
(raw) => ({ ...raw, processed: true }),
|
|
29
|
-
true,
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const { loading, send } = useApiGet({
|
|
30
|
+
path: '/api/data',
|
|
31
|
+
action: (data) => console.log('Действие завершено:', data),
|
|
32
|
+
transformation: (raw) => ({ ...raw, processed: true }),
|
|
33
|
+
validateResponseContract: (res) => ({ success: true, ...res }),
|
|
34
|
+
toData: true,
|
|
35
|
+
options: { cache: false }
|
|
36
|
+
})
|
|
32
37
|
|
|
33
38
|
const fetchData = async () => {
|
|
34
39
|
const result = await send({ id: 1 })
|
|
@@ -1,34 +1,39 @@
|
|
|
1
1
|
import { Meta } from '@storybook/addon-docs/blocks'
|
|
2
2
|
|
|
3
|
-
<Meta title='@dxtmisha/vi/functional/Composables/useApiGet -
|
|
3
|
+
<Meta title='@dxtmisha/vi/functional/Composables/useApiGet - GET Request Execution'/>
|
|
4
4
|
|
|
5
5
|
# `useApiGet`
|
|
6
6
|
|
|
7
|
-
Trả về một đối tượng với trạng thái tải và phương thức `send` để thực hiện các yêu cầu API `GET`.
|
|
7
|
+
Trả về một đối tượng với trạng thái tải và phương thức `send` để thực hiện các yêu cầu API `GET`. Đây là một trình bao bọc tiện lợi trên `useApiRequest` được điền sẵn phương thức `GET`. Nhận các thiết lập dưới dạng một đối tượng `UseApiGetSetup` duy nhất.
|
|
8
8
|
|
|
9
9
|
**Tham số:**
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
- `
|
|
15
|
-
- `
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
- `setup: UseApiGetSetup` — Đối tượng thiết lập cấu hình:
|
|
11
|
+
- `path?: RefOrNormal<string | undefined>` — Đường dẫn đến endpoint API (có thể phản ứng).
|
|
12
|
+
- `action?: (data: Return | undefined) => Promise<void> | void` — Hành động (callback) thực hiện sau khi yêu cầu hoàn tất thành công.
|
|
13
|
+
- `transformation?: (data: T) => Return` — Hàm chuyển đổi dữ liệu phản hồi từ máy chủ trước khi trả về hoặc truyền vào `action`.
|
|
14
|
+
- `validateRequestContract?: (data: Request) => ApiDataValidation & Return` — Hàm xác thực hợp đồng yêu cầu.
|
|
15
|
+
- `validateResponseContract?: (data: T) => ApiDataValidation & Return` — Hàm xác thực hợp đồng phản hồi.
|
|
16
|
+
- `errorContract?: ApiErrorStorageList` — nơi lưu trữ hợp đồng lỗi phản hồi.
|
|
17
|
+
- `toData?: boolean` — Việc trích xuất trường `data` từ phản hồi hay không. Mặc định: `true`.
|
|
18
|
+
- `options?: ApiOptions` — Các tùy chọn bổ sung cho yêu cầu (đối tượng tham số `ApiFetch`).
|
|
19
|
+
- `apiInstance?: ApiInstance` — Phiên bản API sử dụng cho yêu cầu. Mặc định là `Api.getItem()`.
|
|
20
|
+
|
|
21
|
+
**Trả về:**
|
|
18
22
|
Một đối tượng với các thuộc tính sau:
|
|
19
23
|
- `loading: Ref<boolean>` — Trạng thái tải phản ứng. Sẽ là `true` trong khi yêu cầu đang thực hiện và `false` sau khi hoàn thành hoặc có lỗi.
|
|
20
|
-
- `send(request?: Request): Promise<Return | undefined>` — Phương thức bất đồng bộ để gửi yêu cầu `GET`. Nó tự động quản lý trạng thái `loading`, áp dụng hàm biến đổi cho phản hồi, thực hiện callback `action` khi thành công và xử lý lỗi một cách an toàn bằng cách ghi log ra console.
|
|
24
|
+
- `send(request?: Request): Promise<Return | undefined>` — Phương thức bất đồng bộ để gửi yêu cầu `GET`. Nó tự động quản lý trạng thái `loading`, xác thực hợp đồng yêu cầu và phản hồi, áp dụng hàm biến đổi cho phản hồi, thực hiện callback `action` khi thành công và xử lý lỗi một cách an toàn bằng cách ghi log ra console.
|
|
21
25
|
|
|
22
26
|
```typescript
|
|
23
27
|
import { useApiGet } from '@dxtmisha/functional'
|
|
24
28
|
|
|
25
|
-
const { loading, send } = useApiGet(
|
|
26
|
-
'/api/data',
|
|
27
|
-
(data) => console.log('Hành động hoàn tất:', data),
|
|
28
|
-
(raw) => ({ ...raw, processed: true }),
|
|
29
|
-
true,
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const { loading, send } = useApiGet({
|
|
30
|
+
path: '/api/data',
|
|
31
|
+
action: (data) => console.log('Hành động hoàn tất:', data),
|
|
32
|
+
transformation: (raw) => ({ ...raw, processed: true }),
|
|
33
|
+
validateResponseContract: (res) => ({ success: true, ...res }),
|
|
34
|
+
toData: true,
|
|
35
|
+
options: { cache: false }
|
|
36
|
+
})
|
|
32
37
|
|
|
33
38
|
const fetchData = async () => {
|
|
34
39
|
const result = await send({ id: 1 })
|
|
@@ -20,11 +20,24 @@ Parameters are identical to [`useApiManagementRef`](./useApiManagementRef.en.mdx
|
|
|
20
20
|
- `formattersOptions?: FormattersOptions` — formatting rules.
|
|
21
21
|
- `searchOptions?: ApiManagementSearch<Item, Columns>` — search settings.
|
|
22
22
|
- `postRequest / putRequest / deleteRequest` — mutation settings.
|
|
23
|
-
- `action?:
|
|
23
|
+
- `action?: (data: any) => Promise<void> | void` — a common callback to perform after any successful mutation.
|
|
24
24
|
- `apiInstance?: ApiInstance` — API instance.
|
|
25
25
|
|
|
26
26
|
## Returns
|
|
27
|
-
Returns an API management object. The return object structure is identical to [`useApiManagementRef`](./useApiManagementRef.en.mdx)
|
|
27
|
+
Returns an API management object. The return object structure is identical to [`useApiManagementRef`](./useApiManagementRef.en.mdx):
|
|
28
|
+
|
|
29
|
+
- `isValid: ComputedRef<boolean>` — `true` if data matches `typeData` check.
|
|
30
|
+
- `isResponseContractValid: ComputedRef<boolean>` — `true` if the response data matches the defined contract.
|
|
31
|
+
- `responseValidationResult: ComputedRef<ApiDataValidation | undefined>` — detailed result of the contract validation.
|
|
32
|
+
- `list: ComputedRef` — processed data array with support for Skeleton, formatters, and search.
|
|
33
|
+
- `data: ComputedRef<ApiData<Return> | undefined>` — raw reactive data from `useApiRef`.
|
|
34
|
+
- `errorItem: ComputedRef<ApiErrorItem | undefined>` — current error object if the request failed.
|
|
35
|
+
- `length: ComputedRef<number>` — current length of the `list`.
|
|
36
|
+
- `starting / loading / reading` — request status flags.
|
|
37
|
+
- `loadingSearch / loadingPost / loadingPut / loadingDelete` — loading states for search and mutations.
|
|
38
|
+
- `isSearch / search` — search status and reactive search string.
|
|
39
|
+
- `sendPost / sendPut / sendDelete` — mutation execution methods.
|
|
40
|
+
- `reset / abort` — control methods.
|
|
28
41
|
|
|
29
42
|
## Example
|
|
30
43
|
|
|
@@ -20,11 +20,24 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
20
20
|
- `formattersOptions?: FormattersOptions` — правила форматирования.
|
|
21
21
|
- `searchOptions?: ApiManagementSearch<Item, Columns>` — настройки поиска.
|
|
22
22
|
- `postRequest / putRequest / deleteRequest` — настройки мутаций.
|
|
23
|
-
- `action?:
|
|
23
|
+
- `action?: (data: any) => Promise<void> | void` — общий коллбэк, выполняемый после любой успешной мутации.
|
|
24
24
|
- `apiInstance?: ApiInstance` — экземпляр API.
|
|
25
25
|
|
|
26
26
|
## Возвращаемое значение
|
|
27
|
-
Возвращает объект управления API. Состав возвращаемого значения полностью идентичен [`useApiManagementRef`](./useApiManagementRef.ru.mdx)
|
|
27
|
+
Возвращает объект управления API. Состав возвращаемого значения полностью идентичен [`useApiManagementRef`](./useApiManagementRef.ru.mdx):
|
|
28
|
+
|
|
29
|
+
- `isValid: ComputedRef<boolean>` — `true`, если данные прошли проверку `typeData`.
|
|
30
|
+
- `isResponseContractValid: ComputedRef<boolean>` — `true`, если данные ответа соответствуют определенному контракту.
|
|
31
|
+
- `responseValidationResult: ComputedRef<ApiDataValidation | undefined>` — подробный результат валидации контракта.
|
|
32
|
+
- `list: ComputedRef` — обработанный массив данных с поддержкой Skeleton, форматтеров и поиска.
|
|
33
|
+
- `data: ComputedRef<ApiData<Return> | undefined>` — «сырые» реактивные данные из `useApiRef`.
|
|
34
|
+
- `errorItem: ComputedRef<ApiErrorItem | undefined>` — текущий объект ошибки, если запрос не удался.
|
|
35
|
+
- `length: ComputedRef<number>` — текущее количество элементов в `list`.
|
|
36
|
+
- `starting / loading / reading` — флаги состояния запроса.
|
|
37
|
+
- `loadingSearch / loadingPost / loadingPut / loadingDelete` — состояния загрузки для поиска и мутаций.
|
|
38
|
+
- `isSearch / search` — статус поиска и реактивная строка поиска.
|
|
39
|
+
- `sendPost / sendPut / sendDelete` — методы для выполнения мутаций.
|
|
40
|
+
- `reset / abort` — методы управления.
|
|
28
41
|
|
|
29
42
|
## Пример
|
|
30
43
|
|
|
@@ -20,11 +20,24 @@ Các tham số giống hệt với [`useApiManagementRef`](./useApiManagementRef
|
|
|
20
20
|
- `formattersOptions?: FormattersOptions` — quy tắc định dạng.
|
|
21
21
|
- `searchOptions?: ApiManagementSearch<Item, Columns>` — cài đặt tìm kiếm.
|
|
22
22
|
- `postRequest / putRequest / deleteRequest` — cài đặt mutation.
|
|
23
|
-
- `action?:
|
|
23
|
+
- `action?: (data: any) => Promise<void> | void` — callback chung để thực thi sau bất kỳ mutation nào thành công.
|
|
24
24
|
- `apiInstance?: ApiInstance` — instance của API.
|
|
25
25
|
|
|
26
26
|
## Giá trị trả về
|
|
27
|
-
Trả về một đối tượng quản lý API. Cấu trúc đối tượng trả về giống hệt với [`useApiManagementRef`](./useApiManagementRef.vi.mdx)
|
|
27
|
+
Trả về một đối tượng quản lý API. Cấu trúc đối tượng trả về giống hệt với [`useApiManagementRef`](./useApiManagementRef.vi.mdx):
|
|
28
|
+
|
|
29
|
+
- `isValid: ComputedRef<boolean>` — `true` nếu dữ liệu khớp với kiểm tra `typeData`.
|
|
30
|
+
- `isResponseContractValid: ComputedRef<boolean>` — `true` nếu dữ liệu phản hồi khớp với hợp đồng đã xác định.
|
|
31
|
+
- `responseValidationResult: ComputedRef<ApiDataValidation | undefined>` — kết quả chi tiết của việc xác thực hợp đồng.
|
|
32
|
+
- `list: ComputedRef` — mảng dữ liệu đã qua xử lý với sự hỗ trợ của Skeleton, formatter và tìm kiếm.
|
|
33
|
+
- `data: ComputedRef<ApiData<Return> | undefined>` — dữ liệu reactive thô từ `useApiRef`.
|
|
34
|
+
- `errorItem: ComputedRef<ApiErrorItem | undefined>` — đối tượng lỗi hiện tại nếu yêu cầu thất bại.
|
|
35
|
+
- `length: ComputedRef<number>` — độ dài hiện tại của `list`.
|
|
36
|
+
- `starting / loading / reading` — các cờ trạng thái yêu cầu.
|
|
37
|
+
- `loadingSearch / loadingPost / loadingPut / loadingDelete` — trạng thái loading cho tìm kiếm và mutation.
|
|
38
|
+
- `isSearch / search` — trạng thái tìm kiếm và chuỗi tìm kiếm reactive.
|
|
39
|
+
- `sendPost / sendPut / sendDelete` — các phương thức để thực thi mutation.
|
|
40
|
+
- `reset / abort` — các phương thức điều khiển.
|
|
28
41
|
|
|
29
42
|
## Ví dụ
|
|
30
43
|
|
package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementRef.en.mdx
CHANGED
|
@@ -18,8 +18,11 @@ A powerful composable for comprehensive API request orchestration. It manages da
|
|
|
18
18
|
|
|
19
19
|
## Returns
|
|
20
20
|
- `isValid: ComputedRef<boolean>` — `true` if data matches `typeData` check.
|
|
21
|
+
- `isResponseContractValid: ComputedRef<boolean>` — `true` if the response data matches the defined contract.
|
|
22
|
+
- `responseValidationResult: ComputedRef<ApiDataValidation | undefined>` — detailed result of the contract validation.
|
|
21
23
|
- `list: ComputedRef` — the processed data array. **Supports Skeleton**: if data is not yet loaded and a `skeleton()` is provided, it returns placeholders. Accounts for search filters and formatters.
|
|
22
24
|
- `data: ComputedRef<ApiData<Return> | undefined>` — the raw reactive data from `useApiRef`.
|
|
25
|
+
- `errorItem: ComputedRef<ApiErrorItem | undefined>` — current error object if the request failed.
|
|
23
26
|
- `length: ComputedRef<number>` — current length of the `list` (dynamically updates when searching).
|
|
24
27
|
- `lengthData: ComputedRef<number>` — original length of the data in `data.value`.
|
|
25
28
|
- `starting: ComputedRef<boolean>` — `true` if the request is still in its initial loading phase.
|
|
@@ -84,7 +87,9 @@ If you are using the standard `useApiManagementRef`, you can manually include it
|
|
|
84
87
|
- `options?: ApiOptions` — request options (method, headers, etc.).
|
|
85
88
|
- `reactivity?: boolean` — whether to automatically refetch when `path` or `options` change.
|
|
86
89
|
- `conditions?: Ref<boolean>` — condition under which the request is executed.
|
|
87
|
-
- `transformation?: (data: Type) => ApiData<Return>` — function to transform data after fetching.
|
|
90
|
+
- `transformation?: (data: Type, isResponseContractValid?: ApiDataValidation) => ApiData<Return>` — function to transform data after fetching.
|
|
91
|
+
- `validateResponseContract?: (data: Type) => ApiDataValidation` — function to validate the response data contract.
|
|
92
|
+
- `errorContract?: ApiErrorStorageList` — storage of response error contracts.
|
|
88
93
|
- `typeData?: ((data: Return) => boolean) | any` — data validation function or constructor (e.g., `Array`).
|
|
89
94
|
- `unmounted?: boolean` — whether to clear data after component unmount.
|
|
90
95
|
- `skeleton?: () => Return` — function returning placeholder data during loading.
|
|
@@ -98,7 +103,10 @@ If you are using the standard `useApiManagementRef`, you can manually include it
|
|
|
98
103
|
- `path?: string | Ref<string>` — path for the mutation request.
|
|
99
104
|
- `action?: (data: Return | undefined) => Promise<void> | void` — callback after request execution.
|
|
100
105
|
- `transformation?: (data: T) => Return` — data transformation before sending.
|
|
101
|
-
- `
|
|
106
|
+
- `validateRequestContract?: (data: Request) => ApiDataValidation & Return` — request contract validation function.
|
|
107
|
+
- `validateResponseContract?: (data: T) => ApiDataValidation & Return` — response contract validation function.
|
|
108
|
+
- `errorContract?: ApiErrorStorageList` — storage of response error contracts.
|
|
109
|
+
- `toData?: boolean` — whether to wrap the payload in a 'data' property.
|
|
102
110
|
- `options?: ApiOptions` — additional request options.
|
|
103
111
|
|
|
104
112
|
## Usage Example
|
package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementRef.ru.mdx
CHANGED
|
@@ -18,8 +18,11 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
18
18
|
|
|
19
19
|
## Возвращает
|
|
20
20
|
- `isValid: ComputedRef<boolean>` — `true`, если данные прошли проверку `typeData`.
|
|
21
|
+
- `isResponseContractValid: ComputedRef<boolean>` — `true`, если данные ответа соответствуют определенному контракту.
|
|
22
|
+
- `responseValidationResult: ComputedRef<ApiDataValidation | undefined>` — подробный результат валидации контракта.
|
|
21
23
|
- `list: ComputedRef` — обработанный массив данных. **Поддерживает Skeleton**: если данные ещё не загружены и передан `skeleton()`, вернет заглушки. Учитывает фильтры поиска и форматтеры.
|
|
22
24
|
- `data: ComputedRef<ApiData<Return> | undefined>` — «сырые» реактивные данные из `useApiRef`.
|
|
25
|
+
- `errorItem: ComputedRef<ApiErrorItem | undefined>` — текущий объект ошибки, если запрос не удался.
|
|
23
26
|
- `length: ComputedRef<number>` — текущее количество элементов в `list` (динамически меняется при поиске).
|
|
24
27
|
- `lengthData: ComputedRef<number>` — общее количество элементов в исходном `data`.
|
|
25
28
|
- `starting: ComputedRef<boolean>` — флаг первичной загрузки (когда данных еще нет).
|
|
@@ -83,10 +86,12 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
83
86
|
- `path?: string | Ref<string>` — путь к API.
|
|
84
87
|
- `options?: ApiOptions` — параметры запроса (метод, заголовки и т.д.).
|
|
85
88
|
- `reactivity?: boolean` — включить ли автоматическое обновление при изменении `path` или `options`.
|
|
86
|
-
- `conditions?: Ref<boolean>` —
|
|
87
|
-
- `transformation?: (data: Type) => ApiData<Return>` — функция
|
|
89
|
+
- `conditions?: Ref<boolean>` — условие выполнения запроса.
|
|
90
|
+
- `transformation?: (data: Type, isResponseContractValid?: ApiDataValidation) => ApiData<Return>` — функция трансформации данных после получения.
|
|
91
|
+
- `validateResponseContract?: (data: Type) => ApiDataValidation` — функция для проверки контракта данных ответа.
|
|
92
|
+
- `errorContract?: ApiErrorStorageList` — хранилище контрактов ошибок ответа.
|
|
88
93
|
- `typeData?: ((data: Return) => boolean) | any` — функция проверки данных или конструктор (например, `Array`).
|
|
89
|
-
- `unmounted?: boolean` —
|
|
94
|
+
- `unmounted?: boolean` — очищать ли данные после размонтирования компонента.
|
|
90
95
|
- `skeleton?: () => Return` — функция, возвращающая данные-заглушки во время загрузки.
|
|
91
96
|
|
|
92
97
|
### `ApiManagementSearch<T, K>`
|
|
@@ -98,7 +103,10 @@ import {Meta} from '@storybook/addon-docs/blocks'
|
|
|
98
103
|
- `path?: string | Ref<string>` — путь для запроса мутации.
|
|
99
104
|
- `action?: (data: Return | undefined) => Promise<void> | void` — коллбэк, вызываемый после выполнения запроса.
|
|
100
105
|
- `transformation?: (data: T) => Return` — трансформация данных перед отправкой.
|
|
101
|
-
- `
|
|
106
|
+
- `validateRequestContract?: (data: Request) => ApiDataValidation & Return` — функция валидации контракта запроса.
|
|
107
|
+
- `validateResponseContract?: (data: T) => ApiDataValidation & Return` — функция валидации контракта ответа.
|
|
108
|
+
- `errorContract?: ApiErrorStorageList` — хранилище контрактов ошибок ответа.
|
|
109
|
+
- `toData?: boolean` — оборачивать ли полезную нагрузку в свойство 'data'.
|
|
102
110
|
- `options?: ApiOptions` — дополнительные параметры запроса.
|
|
103
111
|
|
|
104
112
|
## Пример использования
|
package/src/media/functional/functional/composables/useApiManagementRef/useApiManagementRef.vi.mdx
CHANGED
|
@@ -18,8 +18,11 @@ Một composable mạnh mẽ để điều phối toàn diện các request API.
|
|
|
18
18
|
|
|
19
19
|
## Giá trị trả về
|
|
20
20
|
- `isValid: ComputedRef<boolean>` — `true` nếu dữ liệu khớp với kiểm tra `typeData`.
|
|
21
|
+
- `isResponseContractValid: ComputedRef<boolean>` — `true` nếu dữ liệu phản hồi khớp với hợp đồng đã xác định.
|
|
22
|
+
- `responseValidationResult: ComputedRef<ApiDataValidation | undefined>` — kết quả chi tiết của việc xác thực hợp đồng.
|
|
21
23
|
- `list: ComputedRef` — mảng dữ liệu đã qua xử lý. **Hỗ trợ Skeleton**: nếu dữ liệu chưa được tải và `skeleton()` được cung cấp, nó sẽ trả về các giá trị giả. Tính toán dựa trên bộ lọc tìm kiếm và formatter.
|
|
22
24
|
- `data: ComputedRef<ApiData<Return> | undefined>` — dữ liệu reactive thô từ `useApiRef`.
|
|
25
|
+
- `errorItem: ComputedRef<ApiErrorItem | undefined>` — đối tượng lỗi hiện tại nếu yêu cầu thất bại.
|
|
23
26
|
- `length: ComputedRef<number>` — độ dài hiện tại của `list` (cập nhật động khi tìm kiếm).
|
|
24
27
|
- `lengthData: ComputedRef<number>` — độ dài gốc của dữ liệu trong `data.value`.
|
|
25
28
|
- `starting: ComputedRef<boolean>` — `true` nếu yêu cầu vẫn đang trong giai đoạn tải ban đầu.
|
|
@@ -78,7 +81,9 @@ Nếu bạn đang sử dụng `useApiManagementRef` tiêu chuẩn, bạn có th
|
|
|
78
81
|
- `options?: ApiOptions` — các tùy chọn request (method, headers, v.v.).
|
|
79
82
|
- `reactivity?: boolean` — có tự động refetch khi `path` hoặc `options` thay đổi hay không.
|
|
80
83
|
- `conditions?: Ref<boolean>` — điều kiện để thực thi request.
|
|
81
|
-
- `transformation?: (data: Type) => ApiData<Return>` — hàm transform dữ liệu sau khi fetch.
|
|
84
|
+
- `transformation?: (data: Type, isResponseContractValid?: ApiDataValidation) => ApiData<Return>` — hàm transform dữ liệu sau khi fetch.
|
|
85
|
+
- `validateResponseContract?: (data: Type) => ApiDataValidation` — hàm xác thực hợp đồng dữ liệu phản hồi.
|
|
86
|
+
- `errorContract?: ApiErrorStorageList` — nơi lưu trữ hợp đồng lỗi phản hồi.
|
|
82
87
|
- `typeData?: ((data: Return) => boolean) | any` — hàm kiểm tra dữ liệu hoặc constructor (ví dụ: `Array`).
|
|
83
88
|
- `unmounted?: boolean` — có xóa dữ liệu khi component bị unmount hay không.
|
|
84
89
|
- `skeleton?: () => Return` — hàm trả về dữ liệu giả (placeholder) trong khi loading.
|
|
@@ -92,7 +97,10 @@ Nếu bạn đang sử dụng `useApiManagementRef` tiêu chuẩn, bạn có th
|
|
|
92
97
|
- `path?: string | Ref<string>` — đường dẫn cho mutation request.
|
|
93
98
|
- `action?: (data: Return | undefined) => Promise<void> | void` — callback sau khi thực thi request.
|
|
94
99
|
- `transformation?: (data: T) => Return` — hàm transform dữ liệu trước khi gửi.
|
|
95
|
-
- `
|
|
100
|
+
- `validateRequestContract?: (data: Request) => ApiDataValidation & Return` — hàm xác thực hợp đồng yêu cầu.
|
|
101
|
+
- `validateResponseContract?: (data: T) => ApiDataValidation & Return` — hàm xác thực hợp đồng phản hồi.
|
|
102
|
+
- `errorContract?: ApiErrorStorageList` — nơi lưu trữ hợp đồng lỗi phản hồi.
|
|
103
|
+
- `toData?: boolean` — có bao bọc dữ liệu trong thuộc tính 'data' hay không.
|
|
96
104
|
- `options?: ApiOptions` — các tùy chọn request bổ sung.
|
|
97
105
|
|
|
98
106
|
## Ví dụ sử dụng
|
|
@@ -4,31 +4,36 @@ import { Meta } from '@storybook/addon-docs/blocks'
|
|
|
4
4
|
|
|
5
5
|
# `useApiPost`
|
|
6
6
|
|
|
7
|
-
Returns an object with a loading state and a `send` method for executing API `POST` requests.
|
|
7
|
+
Returns an object with a loading state and a `send` method for executing API `POST` requests. It is a convenient wrapper over `useApiRequest` that pre-fills the `POST` method. Accepts settings as a single `UseApiPostSetup` object.
|
|
8
8
|
|
|
9
9
|
**Parameters:**
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
- `
|
|
15
|
-
- `
|
|
10
|
+
- `setup: UseApiPostSetup` — Configuration setup object:
|
|
11
|
+
- `path?: RefOrNormal<string | undefined>` — Path to the API endpoint (can be reactive).
|
|
12
|
+
- `action?: (data: Return | undefined) => Promise<void> | void` — Callback action to perform after the request completes successfully.
|
|
13
|
+
- `transformation?: (data: T) => Return` — Function to transform the response data before it is returned or passed to the `action`.
|
|
14
|
+
- `validateRequestContract?: (data: Request) => ApiDataValidation & Return` — Request contract validation function.
|
|
15
|
+
- `validateResponseContract?: (data: T) => ApiDataValidation & Return` — Response contract validation function.
|
|
16
|
+
- `errorContract?: ApiErrorStorageList` — storage of response error contracts.
|
|
17
|
+
- `toData?: boolean` — Whether to extract the `data` field from the response. Defaults to `true`.
|
|
18
|
+
- `options?: ApiOptions` — Additional request options (`ApiFetch` object parameter).
|
|
19
|
+
- `apiInstance?: ApiInstance` — API instance to use for the request. Defaults to `Api.getItem()`.
|
|
16
20
|
|
|
17
21
|
**Returns:**
|
|
18
22
|
An object with the following properties:
|
|
19
23
|
- `loading: Ref<boolean>` — Reactive loading state. It becomes `true` while the request is in progress and `false` after it completes or fails.
|
|
20
|
-
- `send(request?: Request): Promise<Return | undefined>` — An asynchronous method for sending the `POST` request. It automatically manages the `loading` state, applies the transformation function to the response, executes the `action` callback on success, and safely handles errors by logging them to the console.
|
|
24
|
+
- `send(request?: Request): Promise<Return | undefined>` — An asynchronous method for sending the `POST` request. It automatically manages the `loading` state, validates the request and response contracts, applies the transformation function to the response, executes the `action` callback on success, and safely handles errors by logging them to the console.
|
|
21
25
|
|
|
22
26
|
```typescript
|
|
23
27
|
import { useApiPost } from '@dxtmisha/functional'
|
|
24
28
|
|
|
25
|
-
const { loading, send } = useApiPost(
|
|
26
|
-
'/api/submit',
|
|
27
|
-
(data) => console.log('Action complete:', data),
|
|
28
|
-
(raw) => ({ ...raw, processed: true }),
|
|
29
|
-
true,
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const { loading, send } = useApiPost({
|
|
30
|
+
path: '/api/submit',
|
|
31
|
+
action: (data) => console.log('Action complete:', data),
|
|
32
|
+
transformation: (raw) => ({ ...raw, processed: true }),
|
|
33
|
+
validateRequestContract: (req) => ({ success: true, ...req }),
|
|
34
|
+
toData: true,
|
|
35
|
+
options: { cache: false }
|
|
36
|
+
})
|
|
32
37
|
|
|
33
38
|
const handleSubmit = async () => {
|
|
34
39
|
const result = await send({ name: 'User' })
|
|
@@ -4,31 +4,36 @@ import { Meta } from '@storybook/addon-docs/blocks'
|
|
|
4
4
|
|
|
5
5
|
# `useApiPost`
|
|
6
6
|
|
|
7
|
-
Возвращает объект с состоянием загрузки и методом `send` для выполнения `POST`-запросов к API.
|
|
7
|
+
Возвращает объект с состоянием загрузки и методом `send` для выполнения `POST`-запросов к API. Является удобной оберткой над `useApiRequest` с предустановленным методом `POST`. Принимает настройки в виде единого объекта `UseApiPostSetup`.
|
|
8
8
|
|
|
9
9
|
**Параметры:**
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
- `
|
|
15
|
-
- `
|
|
10
|
+
- `setup: UseApiPostSetup` — Объект настроек запроса:
|
|
11
|
+
- `path?: RefOrNormal<string | undefined>` — Путь к endpoint API (может быть реактивным).
|
|
12
|
+
- `action?: (data: Return | undefined) => Promise<void> | void` — Действие (коллбэк), выполняемое после успешного завершения запроса.
|
|
13
|
+
- `transformation?: (data: T) => Return` — Функция трансформации ответа от сервера перед возвращением или передачей в `action`.
|
|
14
|
+
- `validateRequestContract?: (data: Request) => ApiDataValidation & Return` — Функция валидации контракта отправляемого запроса.
|
|
15
|
+
- `validateResponseContract?: (data: T) => ApiDataValidation & Return` — Функция валидации контракта полученного ответа.
|
|
16
|
+
- `errorContract?: ApiErrorStorageList` — хранилище контрактов ошибок ответа.
|
|
17
|
+
- `toData?: boolean` — Извлекать ли поле `data` из ответа. По умолчанию `true`.
|
|
18
|
+
- `options?: ApiOptions` — Дополнительные опции запроса (объект параметров `ApiFetch`).
|
|
19
|
+
- `apiInstance?: ApiInstance` — Экземпляр API, используемый для выполнения запроса. По умолчанию `Api.getItem()`.
|
|
16
20
|
|
|
17
21
|
**Возвращает:**
|
|
18
22
|
Объект со следующими свойствами:
|
|
19
23
|
- `loading: Ref<boolean>` — Реактивное состояние загрузки. Принимает значение `true` во время выполнения запроса и `false` после его завершения или ошибки.
|
|
20
|
-
- `send(request?: Request): Promise<Return | undefined>` — Асинхронный метод для отправки `POST`-запроса. Он автоматически управляет состоянием `loading`, применяет функцию трансформации к
|
|
24
|
+
- `send(request?: Request): Promise<Return | undefined>` — Асинхронный метод для отправки `POST`-запроса. Он автоматически управляет состоянием `loading`, проверяет контракты валидации запроса и ответа, применяет функцию трансформации к ответам, вызывает коллбэк `action` при успехе и безопасно обрабатывает ошибки.
|
|
21
25
|
|
|
22
26
|
```typescript
|
|
23
27
|
import { useApiPost } from '@dxtmisha/functional'
|
|
24
28
|
|
|
25
|
-
const { loading, send } = useApiPost(
|
|
26
|
-
'/api/submit',
|
|
27
|
-
(data) => console.log('Действие завершено:', data),
|
|
28
|
-
(raw) => ({ ...raw, processed: true }),
|
|
29
|
-
true,
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
const { loading, send } = useApiPost({
|
|
30
|
+
path: '/api/submit',
|
|
31
|
+
action: (data) => console.log('Действие завершено:', data),
|
|
32
|
+
transformation: (raw) => ({ ...raw, processed: true }),
|
|
33
|
+
validateRequestContract: (req) => ({ success: true, ...req }),
|
|
34
|
+
toData: true,
|
|
35
|
+
options: { cache: false }
|
|
36
|
+
})
|
|
32
37
|
|
|
33
38
|
const handleSubmit = async () => {
|
|
34
39
|
const result = await send({ name: 'User' })
|