@dxtmisha/functional 1.11.13 → 1.12.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/ai-description.txt +3 -3
- package/ai-types.txt +279 -430
- package/dist/library.js +54 -21
- package/dist/src/composables/ref/useApiDelete.d.ts +11 -16
- package/dist/src/composables/ref/useApiGet.d.ts +11 -16
- package/dist/src/composables/ref/useApiPost.d.ts +11 -16
- package/dist/src/composables/ref/useApiPut.d.ts +11 -16
- package/dist/src/composables/ref/useApiRequest.d.ts +85 -15
- package/dist/src/types/apiTypes.d.ts +5 -1
- package/package.json +1 -1
package/dist/library.js
CHANGED
|
@@ -804,50 +804,71 @@ function ze(t, n, r = !0, i, a, o, s, c = !0, l = e.getItem()) {
|
|
|
804
804
|
}
|
|
805
805
|
//#endregion
|
|
806
806
|
//#region src/composables/ref/useApiRequest.ts
|
|
807
|
-
function Q(r, i = n.post, a, o, s, c = !0,
|
|
808
|
-
let
|
|
809
|
-
return
|
|
810
|
-
loading:
|
|
807
|
+
function Q({ path: r, method: i = n.post, action: a, transformation: o, validateRequestContract: s, validateResponseContract: c, errorContract: l, toData: u = !0, options: d, apiInstance: f = e.getItem() }) {
|
|
808
|
+
let p = R(!1), m = K(Ie(d));
|
|
809
|
+
return l && t.add(l, U(r), i), {
|
|
810
|
+
loading: p,
|
|
811
811
|
async send(e) {
|
|
812
|
-
d.value = !0;
|
|
813
812
|
let t;
|
|
814
813
|
try {
|
|
815
|
-
if (
|
|
814
|
+
if (e && s) {
|
|
815
|
+
let t = s(e);
|
|
816
|
+
if (t && !D(t)) return t;
|
|
817
|
+
}
|
|
818
|
+
if (p.value = !0, t = await f.request({
|
|
816
819
|
path: U(r),
|
|
817
820
|
method: i,
|
|
818
821
|
request: e,
|
|
819
|
-
toData:
|
|
820
|
-
...
|
|
821
|
-
}), t
|
|
822
|
-
|
|
823
|
-
|
|
822
|
+
toData: u,
|
|
823
|
+
...m.value
|
|
824
|
+
}), t) {
|
|
825
|
+
if (c && D(t)) {
|
|
826
|
+
let e = c(t);
|
|
827
|
+
e && !D(e) && (t = e);
|
|
828
|
+
}
|
|
829
|
+
if (o && D(t) && (t = o(t)), a) {
|
|
830
|
+
let e = a(t);
|
|
831
|
+
e instanceof Promise && await e;
|
|
832
|
+
}
|
|
824
833
|
}
|
|
825
834
|
} catch (e) {
|
|
826
835
|
t = void 0;
|
|
827
836
|
}
|
|
828
|
-
return
|
|
837
|
+
return p.value = !1, t;
|
|
829
838
|
}
|
|
830
839
|
};
|
|
831
840
|
}
|
|
832
841
|
//#endregion
|
|
833
842
|
//#region src/composables/ref/useApiDelete.ts
|
|
834
|
-
function Be(e
|
|
835
|
-
return Q(
|
|
843
|
+
function Be(e) {
|
|
844
|
+
return Q({
|
|
845
|
+
...e,
|
|
846
|
+
method: n.delete
|
|
847
|
+
});
|
|
836
848
|
}
|
|
837
849
|
//#endregion
|
|
838
850
|
//#region src/composables/ref/useApiGet.ts
|
|
839
|
-
function Ve(e
|
|
840
|
-
return Q(
|
|
851
|
+
function Ve(e) {
|
|
852
|
+
return Q({
|
|
853
|
+
...e,
|
|
854
|
+
method: n.get
|
|
855
|
+
});
|
|
841
856
|
}
|
|
842
857
|
//#endregion
|
|
843
858
|
//#region src/composables/ref/useApiPost.ts
|
|
844
|
-
function He(e
|
|
845
|
-
return Q(
|
|
859
|
+
function He(e) {
|
|
860
|
+
return Q({
|
|
861
|
+
...e,
|
|
862
|
+
method: n.post
|
|
863
|
+
});
|
|
846
864
|
}
|
|
847
865
|
//#endregion
|
|
848
866
|
//#region src/composables/ref/useApiPut.ts
|
|
849
|
-
function Ue(e
|
|
850
|
-
return Q(
|
|
867
|
+
function Ue(e) {
|
|
868
|
+
return Q({
|
|
869
|
+
...e,
|
|
870
|
+
method: n.put
|
|
871
|
+
});
|
|
851
872
|
}
|
|
852
873
|
//#endregion
|
|
853
874
|
//#region src/composables/ref/useFormattersRef.ts
|
|
@@ -901,7 +922,19 @@ function qe(e, t, n, r, i, a, o, s) {
|
|
|
901
922
|
}, t = (t) => async (n) => {
|
|
902
923
|
A(t) && await S(t(n)), e(n);
|
|
903
924
|
};
|
|
904
|
-
r && (b = He(
|
|
925
|
+
r && (b = He({
|
|
926
|
+
...r,
|
|
927
|
+
action: t(r.action),
|
|
928
|
+
apiInstance: s
|
|
929
|
+
})), i && (x = Ue({
|
|
930
|
+
...i,
|
|
931
|
+
action: t(i.action),
|
|
932
|
+
apiInstance: s
|
|
933
|
+
})), a && (C = Be({
|
|
934
|
+
...a,
|
|
935
|
+
action: t(a.action),
|
|
936
|
+
apiInstance: s
|
|
937
|
+
}));
|
|
905
938
|
}
|
|
906
939
|
let O = I(() => {
|
|
907
940
|
if (T.value) {
|
|
@@ -1,28 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { RefOrNormal } from '../../types/refTypes';
|
|
1
|
+
import { ApiData, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { UseApiRequestSetup } from './useApiRequest';
|
|
4
3
|
import { Ref } from 'vue';
|
|
4
|
+
/**
|
|
5
|
+
* Setup interface for API DELETE request.
|
|
6
|
+
*
|
|
7
|
+
* Интерфейс настроек для DELETE запроса API.
|
|
8
|
+
*/
|
|
9
|
+
export interface UseApiDeleteSetup<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>> extends Omit<UseApiRequestSetup<T, Request, Return>, 'method'> {
|
|
10
|
+
}
|
|
5
11
|
/**
|
|
6
12
|
* Use API delete request.
|
|
7
13
|
* This is a convenient wrapper over `useApiRequest` that pre-fills the DELETE method.
|
|
8
14
|
*
|
|
9
15
|
* Использование API delete запроса.
|
|
10
16
|
* Это удобная обертка над `useApiRequest`, которая предустанавливает метод DELETE.
|
|
11
|
-
* @param
|
|
12
|
-
* @param action Action to perform after the request / Действие, выполняемое после запроса
|
|
13
|
-
* @param transformation Transformation function / Функция трансформации
|
|
14
|
-
* @param errorContract array of expected error contracts for the request (`ApiErrorStorageList`).
|
|
15
|
-
* Highly recommended to add if there is information about possible request errors. Allows you to predefine
|
|
16
|
-
* possible errors (by code, status, or custom validation) which will be centrally processed by the application. /
|
|
17
|
-
* Массив контрактов ожидаемых ошибок для запроса (`ApiErrorStorageList`). Желательно добавлять, если есть
|
|
18
|
-
* информация о возможных ошибках запроса. Позволяет заранее описать возможные ошибки (по коду, статусу или
|
|
19
|
-
* кастомной валидации) для централизованной обработки в приложении.
|
|
20
|
-
* @param toData Extract 'data' field from response / Извлечь поле 'data' из ответа
|
|
21
|
-
* @param options Additional request options / Дополнительные опции запроса
|
|
22
|
-
* @param apiInstance Api instance / Экземпляр Api
|
|
17
|
+
* @param setup Configured parameters as a single object / Настроенные параметры в виде единого объекта
|
|
23
18
|
* @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
|
|
24
19
|
*/
|
|
25
|
-
export declare function useApiDelete<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(
|
|
20
|
+
export declare function useApiDelete<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(setup: UseApiDeleteSetup<T, Request, Return>): {
|
|
26
21
|
loading: Ref<boolean, boolean>;
|
|
27
22
|
send(request?: Request | undefined): Promise<Return | undefined>;
|
|
28
23
|
};
|
|
@@ -1,28 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { RefOrNormal } from '../../types/refTypes';
|
|
1
|
+
import { ApiData, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { UseApiRequestSetup } from './useApiRequest';
|
|
4
3
|
import { Ref } from 'vue';
|
|
4
|
+
/**
|
|
5
|
+
* Setup interface for API GET request.
|
|
6
|
+
*
|
|
7
|
+
* Интерфейс настроек для GET запроса API.
|
|
8
|
+
*/
|
|
9
|
+
export interface UseApiGetSetup<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>> extends Omit<UseApiRequestSetup<T, Request, Return>, 'method'> {
|
|
10
|
+
}
|
|
5
11
|
/**
|
|
6
12
|
* Use API get request.
|
|
7
13
|
* This is a convenient wrapper over `useApiRequest` that pre-fills the GET method.
|
|
8
14
|
*
|
|
9
15
|
* Использование API get запроса.
|
|
10
16
|
* Это удобная обертка над `useApiRequest`, которая предустанавливает метод GET.
|
|
11
|
-
* @param
|
|
12
|
-
* @param action Action to perform after the request / Действие, выполняемое после запроса
|
|
13
|
-
* @param transformation Transformation function / Функция трансформации
|
|
14
|
-
* @param errorContract array of expected error contracts for the request (`ApiErrorStorageList`).
|
|
15
|
-
* Highly recommended to add if there is information about possible request errors. Allows you to predefine
|
|
16
|
-
* possible errors (by code, status, or custom validation) which will be centrally processed by the application. /
|
|
17
|
-
* Массив контрактов ожидаемых ошибок для запроса (`ApiErrorStorageList`). Желательно добавлять, если есть
|
|
18
|
-
* информация о возможных ошибках запроса. Позволяет заранее описать возможные ошибки (по коду, статусу или
|
|
19
|
-
* кастомной валидации) для централизованной обработки в приложении.
|
|
20
|
-
* @param toData Extract 'data' field from response / Извлечь поле 'data' из ответа
|
|
21
|
-
* @param options Additional request options / Дополнительные опции запроса
|
|
22
|
-
* @param apiInstance Api instance / Экземпляр Api
|
|
17
|
+
* @param setup Configured parameters as a single object / Настроенные параметры в виде единого объекта
|
|
23
18
|
* @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
|
|
24
19
|
*/
|
|
25
|
-
export declare function useApiGet<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(
|
|
20
|
+
export declare function useApiGet<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(setup: UseApiGetSetup<T, Request, Return>): {
|
|
26
21
|
loading: Ref<boolean, boolean>;
|
|
27
22
|
send(request?: Request | undefined): Promise<Return | undefined>;
|
|
28
23
|
};
|
|
@@ -1,28 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { RefOrNormal } from '../../types/refTypes';
|
|
1
|
+
import { ApiData, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { UseApiRequestSetup } from './useApiRequest';
|
|
4
3
|
import { Ref } from 'vue';
|
|
4
|
+
/**
|
|
5
|
+
* Setup interface for API POST request.
|
|
6
|
+
*
|
|
7
|
+
* Интерфейс настроек для POST запроса API.
|
|
8
|
+
*/
|
|
9
|
+
export interface UseApiPostSetup<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>> extends Omit<UseApiRequestSetup<T, Request, Return>, 'method'> {
|
|
10
|
+
}
|
|
5
11
|
/**
|
|
6
12
|
* Use API post request.
|
|
7
13
|
* This is a convenient wrapper over `useApiRequest` that pre-fills the POST method.
|
|
8
14
|
*
|
|
9
15
|
* Использование API post запроса.
|
|
10
16
|
* Это удобная обертка над `useApiRequest`, которая предустанавливает метод POST.
|
|
11
|
-
* @param
|
|
12
|
-
* @param action Action to perform after the request / Действие, выполняемое после запроса
|
|
13
|
-
* @param transformation Transformation function / Функция трансформации
|
|
14
|
-
* @param errorContract array of expected error contracts for the request (`ApiErrorStorageList`).
|
|
15
|
-
* Highly recommended to add if there is information about possible request errors. Allows you to predefine
|
|
16
|
-
* possible errors (by code, status, or custom validation) which will be centrally processed by the application. /
|
|
17
|
-
* Массив контрактов ожидаемых ошибок для запроса (`ApiErrorStorageList`). Желательно добавлять, если есть
|
|
18
|
-
* информация о возможных ошибках запроса. Позволяет заранее описать возможные ошибки (по коду, статусу или
|
|
19
|
-
* кастомной валидации) для централизованной обработки в приложении.
|
|
20
|
-
* @param toData Extract 'data' field from response / Извлечь поле 'data' из ответа
|
|
21
|
-
* @param options Additional request options / Дополнительные опции запроса
|
|
22
|
-
* @param apiInstance Api instance / Экземпляр Api
|
|
17
|
+
* @param setup Configured parameters as a single object / Настроенные параметры в виде единого объекта
|
|
23
18
|
* @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
|
|
24
19
|
*/
|
|
25
|
-
export declare function useApiPost<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(
|
|
20
|
+
export declare function useApiPost<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(setup: UseApiPostSetup<T, Request, Return>): {
|
|
26
21
|
loading: Ref<boolean, boolean>;
|
|
27
22
|
send(request?: Request | undefined): Promise<Return | undefined>;
|
|
28
23
|
};
|
|
@@ -1,28 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { RefOrNormal } from '../../types/refTypes';
|
|
1
|
+
import { ApiData, ApiFetch } from '@dxtmisha/functional-basic';
|
|
2
|
+
import { UseApiRequestSetup } from './useApiRequest';
|
|
4
3
|
import { Ref } from 'vue';
|
|
4
|
+
/**
|
|
5
|
+
* Setup interface for API PUT request.
|
|
6
|
+
*
|
|
7
|
+
* Интерфейс настроек для PUT запроса API.
|
|
8
|
+
*/
|
|
9
|
+
export interface UseApiPutSetup<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>> extends Omit<UseApiRequestSetup<T, Request, Return>, 'method'> {
|
|
10
|
+
}
|
|
5
11
|
/**
|
|
6
12
|
* Use API put request.
|
|
7
13
|
* This is a convenient wrapper over `useApiRequest` that pre-fills the PUT method.
|
|
8
14
|
*
|
|
9
15
|
* Использование API put запроса.
|
|
10
16
|
* Это удобная обертка над `useApiRequest`, которая предустанавливает метод PUT.
|
|
11
|
-
* @param
|
|
12
|
-
* @param action Action to perform after the request / Действие, выполняемое после запроса
|
|
13
|
-
* @param transformation Transformation function / Функция трансформации
|
|
14
|
-
* @param errorContract array of expected error contracts for the request (`ApiErrorStorageList`).
|
|
15
|
-
* Highly recommended to add if there is information about possible request errors. Allows you to predefine
|
|
16
|
-
* possible errors (by code, status, or custom validation) which will be centrally processed by the application. /
|
|
17
|
-
* Массив контрактов ожидаемых ошибок для запроса (`ApiErrorStorageList`). Желательно добавлять, если есть
|
|
18
|
-
* информация о возможных ошибках запроса. Позволяет заранее описать возможные ошибки (по коду, статусу или
|
|
19
|
-
* кастомной валидации) для централизованной обработки в приложении.
|
|
20
|
-
* @param toData Extract 'data' field from response / Извлечь поле 'data' из ответа
|
|
21
|
-
* @param options Additional request options / Дополнительные опции запроса
|
|
22
|
-
* @param apiInstance Api instance / Экземпляр Api
|
|
17
|
+
* @param setup Configured parameters as a single object / Настроенные параметры в виде единого объекта
|
|
23
18
|
* @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
|
|
24
19
|
*/
|
|
25
|
-
export declare function useApiPut<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(
|
|
20
|
+
export declare function useApiPut<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(setup: UseApiPutSetup<T, Request, Return>): {
|
|
26
21
|
loading: Ref<boolean, boolean>;
|
|
27
22
|
send(request?: Request | undefined): Promise<Return | undefined>;
|
|
28
23
|
};
|
|
@@ -1,27 +1,97 @@
|
|
|
1
|
-
import { ApiInstance, ApiMethodItem, ApiData, ApiFetch, ApiErrorStorageList } from '@dxtmisha/functional-basic';
|
|
1
|
+
import { ApiInstance, ApiMethodItem, ApiData, ApiFetch, ApiErrorStorageList, ApiDataValidation } from '@dxtmisha/functional-basic';
|
|
2
2
|
import { ApiOptions } from '../../types/apiTypes';
|
|
3
3
|
import { RefOrNormal } from '../../types/refTypes';
|
|
4
4
|
import { Ref } from 'vue';
|
|
5
|
+
/**
|
|
6
|
+
* Setup interface for API request.
|
|
7
|
+
*
|
|
8
|
+
* Интерфейс настроек для запроса API.
|
|
9
|
+
*/
|
|
10
|
+
export interface UseApiRequestSetup<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>> {
|
|
11
|
+
/**
|
|
12
|
+
* Path to the API endpoint. Can be a reactive Ref or a normal string.
|
|
13
|
+
*
|
|
14
|
+
* Путь к endpoint API. Может быть реактивным Ref или обычной строкой.
|
|
15
|
+
*/
|
|
16
|
+
path?: RefOrNormal<string | undefined>;
|
|
17
|
+
/**
|
|
18
|
+
* HTTP method used for the request (e.g., GET, POST, PUT, DELETE). Defaults to POST.
|
|
19
|
+
*
|
|
20
|
+
* HTTP метод, используемый для запроса (например, GET, POST, PUT, DELETE). По умолчанию POST.
|
|
21
|
+
*/
|
|
22
|
+
method?: ApiMethodItem;
|
|
23
|
+
/**
|
|
24
|
+
* Action/callback to perform after the request has successfully completed.
|
|
25
|
+
* Can return a Promise for asynchronous operations.
|
|
26
|
+
*
|
|
27
|
+
* Действие/колбэк, выполняемое после успешного завершения запроса.
|
|
28
|
+
* Может возвращать Promise для асинхронных операций.
|
|
29
|
+
*/
|
|
30
|
+
action?: (data: Return | undefined) => Promise<void> | void;
|
|
31
|
+
/**
|
|
32
|
+
* Transformation function that modifies the raw response data before returning it.
|
|
33
|
+
*
|
|
34
|
+
* Функция трансформации, которая преобразует исходные данные ответа перед их возвратом.
|
|
35
|
+
*/
|
|
36
|
+
transformation?: (data: T) => Return;
|
|
37
|
+
/**
|
|
38
|
+
* Function to validate the request payload contract. Used to ensure that the API
|
|
39
|
+
* request payload matches the expected structure.
|
|
40
|
+
*
|
|
41
|
+
* Функция для проверки контракта данных запроса. Используется для гарантии того,
|
|
42
|
+
* что отправляемая полезная нагрузка запроса API соответствует ожидаемой структуре.
|
|
43
|
+
*/
|
|
44
|
+
validateRequestContract?: (data: Request) => ApiDataValidation & Return;
|
|
45
|
+
/**
|
|
46
|
+
* Function to validate response data contract. Used to ensure that the API
|
|
47
|
+
* response matches the expected structure. Highly recommended to use with `@effect/schema`.
|
|
48
|
+
* It should return `ApiDataValidation` containing a `status` ('success' or 'error')
|
|
49
|
+
* and the parsed data or errors.
|
|
50
|
+
*
|
|
51
|
+
* Функция для проверки контракта данных ответа. Используется для гарантии того, что ответ API соответствует
|
|
52
|
+
* ожидаемой структуре. Настоятельно рекомендуется использовать с `@effect/schema`. Должна возвращать объект
|
|
53
|
+
* `ApiDataValidation`, содержащий `status` ('success' или 'error') и распарсенные данные или ошибки.
|
|
54
|
+
*/
|
|
55
|
+
validateResponseContract?: (data: T) => ApiDataValidation & Return;
|
|
56
|
+
/**
|
|
57
|
+
* Array of expected error contracts for the request (`ApiErrorStorageList`).
|
|
58
|
+
* Highly recommended to add if there is information about possible request errors. Allows you to predefine
|
|
59
|
+
* possible errors (by code, status, or custom validation) which will be centrally processed by the application.
|
|
60
|
+
*
|
|
61
|
+
* Массив контрактов ожидаемых ошибок для запроса (`ApiErrorStorageList`). Желательно добавлять, если есть
|
|
62
|
+
* информация о возможных ошибках запроса. Позволяет заранее описать возможные ошибки (по коду, статусу или
|
|
63
|
+
* кастомной валидации) для централизованной обработки в приложении.
|
|
64
|
+
*/
|
|
65
|
+
errorContract?: ApiErrorStorageList;
|
|
66
|
+
/**
|
|
67
|
+
* If true, extracts the nested 'data' field from the response object instead of returning the raw envelope.
|
|
68
|
+
* Defaults to true.
|
|
69
|
+
*
|
|
70
|
+
* Если true, извлекает вложенное поле 'data' из объекта ответа вместо возврата исходного конверта.
|
|
71
|
+
* По умолчанию true.
|
|
72
|
+
*/
|
|
73
|
+
toData?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Additional request options (headers, query params, etc.).
|
|
76
|
+
*
|
|
77
|
+
* Дополнительные опции запроса (заголовки, параметры запроса и т.д.).
|
|
78
|
+
*/
|
|
79
|
+
options?: ApiOptions;
|
|
80
|
+
/**
|
|
81
|
+
* Custom Api instance to execute the request on. Defaults to global Api singleton instance.
|
|
82
|
+
*
|
|
83
|
+
* Кастомный экземпляр класса Api для выполнения запроса. По умолчанию используется глобальный синглтон Api.
|
|
84
|
+
*/
|
|
85
|
+
apiInstance?: ApiInstance;
|
|
86
|
+
}
|
|
5
87
|
/**
|
|
6
88
|
* Use api request.
|
|
7
89
|
*
|
|
8
90
|
* Использование запроса api.
|
|
9
|
-
* @param
|
|
10
|
-
* @param method HTTP method / HTTP метод
|
|
11
|
-
* @param action Action to perform after the request / Действие, выполняемое после запроса
|
|
12
|
-
* @param transformation Transformation function / Функция трансформации
|
|
13
|
-
* @param errorContract array of expected error contracts for the request (`ApiErrorStorageList`).
|
|
14
|
-
* Highly recommended to add if there is information about possible request errors. Allows you to predefine
|
|
15
|
-
* possible errors (by code, status, or custom validation) which will be centrally processed by the application. /
|
|
16
|
-
* Массив контрактов ожидаемых ошибок для запроса (`ApiErrorStorageList`). Желательно добавлять, если есть
|
|
17
|
-
* информация о возможных ошибках запроса. Позволяет заранее описать возможные ошибки (по коду, статусу или
|
|
18
|
-
* кастомной валидации) для централизованной обработки в приложении.
|
|
19
|
-
* @param toData Extract 'data' field from response / Извлечь поле 'data' из ответа
|
|
20
|
-
* @param options Additional request options / Дополнительные опции запроса
|
|
21
|
-
* @param apiInstance Api instance / Экземпляр Api
|
|
91
|
+
* @param setup Configured parameters as a single object / Настроенные параметры в виде единого объекта
|
|
22
92
|
* @returns Object with loading state and send method / Объект с состоянием загрузки и методом отправки
|
|
23
93
|
*/
|
|
24
|
-
export declare function useApiRequest<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>(path
|
|
94
|
+
export declare function useApiRequest<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>>({ path, method, action, transformation, validateRequestContract, validateResponseContract, errorContract, toData, options, apiInstance }: UseApiRequestSetup<T, Request, Return>): {
|
|
25
95
|
/** Loading state / Состояние загрузки */
|
|
26
96
|
loading: Ref<boolean, boolean>;
|
|
27
97
|
/**
|
|
@@ -54,13 +54,17 @@ export type ApiManagementSearch<T extends SearchItem, K extends SearchColumns<T>
|
|
|
54
54
|
*
|
|
55
55
|
* Конфигурация для запросов мутации (POST, PUT, DELETE).
|
|
56
56
|
*/
|
|
57
|
-
export type ApiManagementRequest<T, Return extends ApiData<T> = ApiData<T>> = {
|
|
57
|
+
export type ApiManagementRequest<T, Request extends ApiFetch['request'] = ApiFetch['request'], Return extends ApiData<T> = ApiData<T>> = {
|
|
58
58
|
/** Target API endpoint path / Целевой путь к API */
|
|
59
59
|
path?: RefOrNormal<string | undefined>;
|
|
60
60
|
/** Action to perform after a successful request / Действие после успешного выполнения запроса */
|
|
61
61
|
action?: (data: Return | undefined) => Promise<void> | void;
|
|
62
62
|
/** Transformation before sending data / Трансформация перед отправкой данных */
|
|
63
63
|
transformation?: (data: T) => Return;
|
|
64
|
+
/** Request contract validation function / Функция валидации контракта запроса */
|
|
65
|
+
validateRequestContract?: (data: Request) => ApiDataValidation & Return;
|
|
66
|
+
/** Response contract validation function / Функция валидации контракта ответа */
|
|
67
|
+
validateResponseContract?: (data: T) => ApiDataValidation & Return;
|
|
64
68
|
/** Storage of response error contracts / Хранилище контрактов ошибок ответа */
|
|
65
69
|
errorContract?: ApiErrorStorageList;
|
|
66
70
|
/** Whether to wrap the payload in a 'data' property / Обертывать ли полезную нагрузку в свойство 'data' */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxtmisha/functional",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.12.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "A comprehensive library of utilities, base classes, and Vue 3 composables for reactive web development. Extends @dxtmisha/functional-basic with Composition API.",
|
|
7
7
|
"keywords": [
|