typedapi-client-helpers 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +314 -676
  2. package/dist/api/generated/Import.d.ts +22 -0
  3. package/dist/api/generated/Import.d.ts.map +1 -0
  4. package/dist/api/generated/Import.js +48 -0
  5. package/dist/api/generated/Import.js.map +1 -0
  6. package/dist/api/generated/ImportRoute.d.ts +30 -0
  7. package/dist/api/generated/ImportRoute.d.ts.map +1 -0
  8. package/dist/api/generated/ImportRoute.js +13 -0
  9. package/dist/api/generated/ImportRoute.js.map +1 -0
  10. package/dist/api/generated/Order.d.ts +38 -0
  11. package/dist/api/generated/Order.d.ts.map +1 -0
  12. package/dist/api/generated/Order.js +75 -0
  13. package/dist/api/generated/Order.js.map +1 -0
  14. package/dist/api/generated/OrderRoute.d.ts +83 -0
  15. package/dist/api/generated/OrderRoute.d.ts.map +1 -0
  16. package/dist/api/generated/OrderRoute.js +13 -0
  17. package/dist/api/generated/OrderRoute.js.map +1 -0
  18. package/dist/api/generated/Product.d.ts +62 -0
  19. package/dist/api/generated/Product.d.ts.map +1 -0
  20. package/dist/api/generated/Product.js +114 -0
  21. package/dist/api/generated/Product.js.map +1 -0
  22. package/dist/api/generated/ProductRoute.d.ts +140 -0
  23. package/dist/api/generated/ProductRoute.d.ts.map +1 -0
  24. package/dist/api/generated/ProductRoute.js +13 -0
  25. package/dist/api/generated/ProductRoute.js.map +1 -0
  26. package/dist/api/generated/Report.d.ts +14 -0
  27. package/dist/api/generated/Report.d.ts.map +1 -0
  28. package/dist/api/generated/Report.js +32 -0
  29. package/dist/api/generated/Report.js.map +1 -0
  30. package/dist/api/generated/ReportRoute.d.ts +23 -0
  31. package/dist/api/generated/ReportRoute.d.ts.map +1 -0
  32. package/dist/api/generated/ReportRoute.js +13 -0
  33. package/dist/api/generated/ReportRoute.js.map +1 -0
  34. package/dist/api/generated/Supplier.d.ts +46 -0
  35. package/dist/api/generated/Supplier.d.ts.map +1 -0
  36. package/dist/api/generated/Supplier.js +87 -0
  37. package/dist/api/generated/Supplier.js.map +1 -0
  38. package/dist/api/generated/SupplierRoute.d.ts +101 -0
  39. package/dist/api/generated/SupplierRoute.d.ts.map +1 -0
  40. package/dist/api/generated/SupplierRoute.js +13 -0
  41. package/dist/api/generated/SupplierRoute.js.map +1 -0
  42. package/dist/api/generated/data-contracts.d.ts +277 -0
  43. package/dist/api/generated/data-contracts.d.ts.map +1 -0
  44. package/dist/api/generated/data-contracts.js +26 -0
  45. package/dist/api/generated/data-contracts.js.map +1 -0
  46. package/dist/api/generated/http-client.d.ts +61 -0
  47. package/dist/api/generated/http-client.d.ts.map +1 -0
  48. package/dist/api/generated/http-client.js +171 -0
  49. package/dist/api/generated/http-client.js.map +1 -0
  50. package/dist/api/index.d.ts +8 -0
  51. package/dist/api/index.d.ts.map +1 -0
  52. package/dist/api/index.js +8 -0
  53. package/dist/api/index.js.map +1 -0
  54. package/dist/api/methods/Import.api.d.ts +6 -0
  55. package/dist/api/methods/Import.api.d.ts.map +1 -0
  56. package/dist/api/methods/Import.api.js +27 -0
  57. package/dist/api/methods/Import.api.js.map +1 -0
  58. package/dist/api/methods/Order.api.d.ts +29 -0
  59. package/dist/api/methods/Order.api.d.ts.map +1 -0
  60. package/dist/api/methods/Order.api.js +52 -0
  61. package/dist/api/methods/Order.api.js.map +1 -0
  62. package/dist/api/methods/Product.api.d.ts +39 -0
  63. package/dist/api/methods/Product.api.d.ts.map +1 -0
  64. package/dist/api/methods/Product.api.js +69 -0
  65. package/dist/api/methods/Product.api.js.map +1 -0
  66. package/dist/api/methods/Report.api.d.ts +6 -0
  67. package/dist/api/methods/Report.api.d.ts.map +1 -0
  68. package/dist/api/methods/Report.api.js +19 -0
  69. package/dist/api/methods/Report.api.js.map +1 -0
  70. package/dist/api/methods/Supplier.api.d.ts +35 -0
  71. package/dist/api/methods/Supplier.api.d.ts.map +1 -0
  72. package/dist/api/methods/Supplier.api.js +63 -0
  73. package/dist/api/methods/Supplier.api.js.map +1 -0
  74. package/dist/index.cjs +47 -551
  75. package/dist/index.d.cts +108 -18
  76. package/dist/index.d.ts +108 -18
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +46 -551
  79. package/dist/index.js.map +1 -0
  80. package/dist/interfaces/ApiResult.d.ts +17 -0
  81. package/dist/interfaces/ApiResult.d.ts.map +1 -0
  82. package/dist/interfaces/ApiResult.js +2 -0
  83. package/dist/interfaces/ApiResult.js.map +1 -0
  84. package/dist/interfaces/Filter.d.ts +31 -0
  85. package/dist/interfaces/Filter.d.ts.map +1 -0
  86. package/dist/interfaces/Filter.js +2 -0
  87. package/dist/interfaces/Filter.js.map +1 -0
  88. package/dist/interfaces/SortType.d.ts +7 -0
  89. package/dist/interfaces/SortType.d.ts.map +1 -0
  90. package/dist/interfaces/SortType.js +2 -0
  91. package/dist/interfaces/SortType.js.map +1 -0
  92. package/dist/types/ApiCallOptions.d.ts +9 -0
  93. package/dist/types/ApiCallOptions.d.ts.map +1 -0
  94. package/dist/types/ApiCallOptions.js +2 -0
  95. package/dist/types/ApiCallOptions.js.map +1 -0
  96. package/dist/types/ApiMethodTypes.d.ts +24 -0
  97. package/dist/types/ApiMethodTypes.d.ts.map +1 -0
  98. package/dist/types/ApiMethodTypes.js +2 -0
  99. package/dist/types/ApiMethodTypes.js.map +1 -0
  100. package/dist/types/HttpResponse.d.ts +16 -0
  101. package/dist/types/HttpResponse.d.ts.map +1 -0
  102. package/dist/types/HttpResponse.js +2 -0
  103. package/dist/types/HttpResponse.js.map +1 -0
  104. package/dist/utils/SortTypeFromSortDirection.d.ts +22 -0
  105. package/dist/utils/SortTypeFromSortDirection.d.ts.map +1 -0
  106. package/dist/utils/SortTypeFromSortDirection.js +45 -0
  107. package/dist/utils/SortTypeFromSortDirection.js.map +1 -0
  108. package/dist/utils/buildQuery.d.ts +11 -0
  109. package/dist/utils/buildQuery.d.ts.map +1 -0
  110. package/dist/utils/buildQuery.js +94 -0
  111. package/dist/utils/buildQuery.js.map +1 -0
  112. package/dist/utils/extractArgsCallbacksAndParams.d.ts +22 -0
  113. package/dist/utils/extractArgsCallbacksAndParams.d.ts.map +1 -0
  114. package/dist/utils/extractArgsCallbacksAndParams.js +44 -0
  115. package/dist/utils/extractArgsCallbacksAndParams.js.map +1 -0
  116. package/dist/utils/extractArgsToastsAndParams.d.ts +18 -0
  117. package/dist/utils/extractArgsToastsAndParams.d.ts.map +1 -0
  118. package/dist/utils/extractArgsToastsAndParams.js +40 -0
  119. package/dist/utils/extractArgsToastsAndParams.js.map +1 -0
  120. package/dist/utils/handleApiResponse.d.ts +9 -0
  121. package/dist/utils/handleApiResponse.d.ts.map +1 -0
  122. package/dist/utils/handleApiResponse.js +49 -0
  123. package/dist/utils/handleApiResponse.js.map +1 -0
  124. package/dist/utils/toFormData.d.ts +8 -0
  125. package/dist/utils/toFormData.d.ts.map +1 -0
  126. package/dist/utils/toFormData.js +68 -0
  127. package/dist/utils/toFormData.js.map +1 -0
  128. package/package.json +11 -3
  129. package/scripts/generate-api-minimal.mjs +263 -25
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../src/interfaces/Filter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,UAAU,GACV,SAAS,GACT,gBAAgB,GAChB,aAAa,CAAC;AAElB;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB,CAAC,MAAM;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1E,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../src/interfaces/Filter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Sort state used by UI components.
3
+ *
4
+ * `Neutral` represents a UI-only state and is sent to the API as `Default`.
5
+ */
6
+ export type SortType = "Default" | "Neutral" | "Ascending" | "Descending";
7
+ //# sourceMappingURL=SortType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortType.d.ts","sourceRoot":"","sources":["../../src/interfaces/SortType.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SortType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortType.js","sourceRoot":"","sources":["../../src/interfaces/SortType.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import type { RequestParams } from "../api/generated/http-client";
2
+ export type ApiSuccessHandler<TResponse> = (response: TResponse) => void | Promise<void>;
3
+ export type ApiErrorHandler<TError = unknown> = (error: TError) => void | Promise<void>;
4
+ export type ApiMethodCallbacks<TResponse, TError = unknown> = {
5
+ onSuccess?: ApiSuccessHandler<TResponse>;
6
+ onError?: ApiErrorHandler<TError>;
7
+ params?: RequestParams;
8
+ };
9
+ //# sourceMappingURL=ApiCallOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiCallOptions.d.ts","sourceRoot":"","sources":["../../src/types/ApiCallOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACd,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,iBAAiB,CAAC,SAAS,IAAI,CACzC,QAAQ,EAAE,SAAS,KAChB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,MAAM,eAAe,CAAC,MAAM,GAAG,OAAO,IAAI,CAC9C,KAAK,EAAE,MAAM,KACV,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,MAAM,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,IAAI;IAC5D,SAAS,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ApiCallOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiCallOptions.js","sourceRoot":"","sources":["../../src/types/ApiCallOptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ import type { HttpResponse, RequestParams } from "../api/generated/http-client";
2
+ export type ExtractResponse<T> = T extends Promise<HttpResponse<infer Response, unknown>> ? Response : never;
3
+ export type UnwrapArray<T> = T extends readonly (infer Item)[] ? Item : T;
4
+ export type ExtractDataIfPaginated<T> = T extends {
5
+ data?: readonly (infer Item)[] | null;
6
+ } ? Item : T;
7
+ export type SortableKeys<T> = keyof UnwrapArray<ExtractDataIfPaginated<T>>;
8
+ /**
9
+ * Removes the optional RequestParams argument from the end
10
+ * of a generated API method parameter tuple.
11
+ *
12
+ * Example:
13
+ *
14
+ * [data: CreateSupplierParams, params?: RequestParams]
15
+ *
16
+ * becomes:
17
+ *
18
+ * [data: CreateSupplierParams]
19
+ */
20
+ export type WithoutRequestParams<T extends readonly unknown[]> = T extends readonly [
21
+ ...infer Arguments,
22
+ RequestParams?
23
+ ] ? Arguments : T;
24
+ //# sourceMappingURL=ApiMethodTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiMethodTypes.d.ts","sourceRoot":"","sources":["../../src/types/ApiMethodTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACd,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,eAAe,CAAC,CAAC,IAC3B,CAAC,SAAS,OAAO,CAAC,YAAY,CAAC,MAAM,QAAQ,EAAE,OAAO,CAAC,CAAC,GACpD,QAAQ,GACR,KAAK,CAAC;AAEZ,MAAM,MAAM,WAAW,CAAC,CAAC,IACvB,CAAC,SAAS,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,GAC7B,IAAI,GACJ,CAAC,CAAC;AAER,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAClC,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;CAAE,GAC/C,IAAI,GACJ,CAAC,CAAC;AAER,MAAM,MAAM,YAAY,CAAC,CAAC,IACxB,MAAM,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,oBAAoB,CAC9B,CAAC,SAAS,SAAS,OAAO,EAAE,IAE5B,CAAC,SAAS,SAAS;IACjB,GAAG,MAAM,SAAS;IAClB,aAAa,CAAC;CACf,GACG,SAAS,GACT,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ApiMethodTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiMethodTypes.js","sourceRoot":"","sources":["../../src/types/ApiMethodTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Extended fetch response returned by the generated HTTP client.
3
+ *
4
+ * `data` contains the successful response body and `error` contains the error body when available.
5
+ */
6
+ export interface HttpResponse<D extends unknown, E extends unknown = unknown> extends Response {
7
+ data: D;
8
+ error: E;
9
+ }
10
+ /**
11
+ * Runtime request options that can be passed to generated API methods.
12
+ *
13
+ * Used for extra request configuration such as headers, query values, or fetch options.
14
+ */
15
+ export type RuntimeRequestParams = Record<string, unknown>;
16
+ //# sourceMappingURL=HttpResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpResponse.d.ts","sourceRoot":"","sources":["../../src/types/HttpResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,CAC1E,SAAQ,QAAQ;IAChB,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,CAAC,CAAC;CACV;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=HttpResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpResponse.js","sourceRoot":"","sources":["../../src/types/HttpResponse.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import type { SortType } from "../interfaces/SortType";
2
+ /** Values supported by the generated API SortDirection enum. */
3
+ export type ApiSortDirection = "Default" | "Ascending" | "Descending";
4
+ /**
5
+ * Sort states supported by TypedApi UI components.
6
+ *
7
+ * Includes `Neutral`, which is a UI-only state and is sent to the API as `Default`.
8
+ */
9
+ export declare const sortTypes: readonly ["Default", "Neutral", "Ascending", "Descending"];
10
+ /**
11
+ * Converts an API sort direction to the sort state used by UI components.
12
+ *
13
+ * Unknown or missing values safely fall back to `Default`.
14
+ */
15
+ export declare function getSortTypeFromSortDirection(sortDirection: ApiSortDirection | null | undefined): SortType;
16
+ /**
17
+ * Converts a UI sort state to a value accepted by the generated API.
18
+ *
19
+ * `Neutral` means no explicit sorting is active, so it maps to `Default`.
20
+ */
21
+ export declare function getSortDirectionFromSortType(sortType: SortType | null | undefined): ApiSortDirection;
22
+ //# sourceMappingURL=SortTypeFromSortDirection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortTypeFromSortDirection.d.ts","sourceRoot":"","sources":["../../src/utils/SortTypeFromSortDirection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,SAAS,4DAKkB,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GACjD,QAAQ,CAUV;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GACpC,gBAAgB,CAWlB"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Sort states supported by TypedApi UI components.
3
+ *
4
+ * Includes `Neutral`, which is a UI-only state and is sent to the API as `Default`.
5
+ */
6
+ export const sortTypes = [
7
+ "Default",
8
+ "Neutral",
9
+ "Ascending",
10
+ "Descending",
11
+ ];
12
+ /**
13
+ * Converts an API sort direction to the sort state used by UI components.
14
+ *
15
+ * Unknown or missing values safely fall back to `Default`.
16
+ */
17
+ export function getSortTypeFromSortDirection(sortDirection) {
18
+ switch (sortDirection) {
19
+ case "Ascending":
20
+ return "Ascending";
21
+ case "Descending":
22
+ return "Descending";
23
+ case "Default":
24
+ default:
25
+ return "Default";
26
+ }
27
+ }
28
+ /**
29
+ * Converts a UI sort state to a value accepted by the generated API.
30
+ *
31
+ * `Neutral` means no explicit sorting is active, so it maps to `Default`.
32
+ */
33
+ export function getSortDirectionFromSortType(sortType) {
34
+ switch (sortType) {
35
+ case "Ascending":
36
+ return "Ascending";
37
+ case "Descending":
38
+ return "Descending";
39
+ case "Neutral":
40
+ case "Default":
41
+ default:
42
+ return "Default";
43
+ }
44
+ }
45
+ //# sourceMappingURL=SortTypeFromSortDirection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortTypeFromSortDirection.js","sourceRoot":"","sources":["../../src/utils/SortTypeFromSortDirection.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,SAAS;IACT,SAAS;IACT,WAAW;IACX,YAAY;CAC0B,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC1C,aAAkD;IAElD,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB,KAAK,SAAS,CAAC;QACf;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAqC;IAErC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,WAAW,CAAC;QACrB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { FilterFormValues } from "../interfaces/Filter";
2
+ export type SortDirection = number | string;
3
+ /**
4
+ * Builds a typed query object from filter form values, pagination, and sorting.
5
+ *
6
+ * Empty filter values are ignored.
7
+ * List filters are converted item by item.
8
+ * `OptionValue` lists send their `value` fields instead of the display names.
9
+ */
10
+ export declare function buildQuery<TQuery, TSortModel = keyof TQuery>(filters: FilterFormValues<TQuery>[], page?: number, pageSize?: number, sortBy?: keyof TSortModel | null, sortDirection?: SortDirection): Partial<TQuery>;
11
+ //# sourceMappingURL=buildQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildQuery.d.ts","sourceRoot":"","sources":["../../src/utils/buildQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAe,MAAM,sBAAsB,CAAC;AAErE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,MAAM,EAC1D,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAAE,EACnC,IAAI,SAAI,EACR,QAAQ,SAAM,EACd,MAAM,GAAE,MAAM,UAAU,GAAG,IAAW,EACtC,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,MAAM,CAAC,CA+EjB"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Builds a typed query object from filter form values, pagination, and sorting.
3
+ *
4
+ * Empty filter values are ignored.
5
+ * List filters are converted item by item.
6
+ * `OptionValue` lists send their `value` fields instead of the display names.
7
+ */
8
+ export function buildQuery(filters, page = 1, pageSize = 100, sortBy = null, sortDirection) {
9
+ let isPageSizeSet = pageSize > 0;
10
+ const query = filters.reduce((queryResult, filter) => {
11
+ const { filterName, filterNameMax, type, value, maxValue, isAList } = filter;
12
+ if ((value === null || value === undefined || value === "") &&
13
+ (maxValue === null || maxValue === undefined || maxValue === "")) {
14
+ return queryResult;
15
+ }
16
+ if (isAList && Array.isArray(value)) {
17
+ if (isOptionValueArray(value)) {
18
+ queryResult[filterName] = value.map((item) => convertType(type, item.value));
19
+ return queryResult;
20
+ }
21
+ queryResult[filterName] = value.map((item) => convertType(type, item));
22
+ return queryResult;
23
+ }
24
+ if (value !== "null" &&
25
+ value !== "undefined" &&
26
+ value !== null &&
27
+ value !== undefined &&
28
+ value !== "") {
29
+ const convertedValue = convertType(type, value);
30
+ if (convertedValue !== null) {
31
+ queryResult[filterName] = convertedValue;
32
+ }
33
+ }
34
+ if (filterNameMax &&
35
+ maxValue !== null &&
36
+ maxValue !== undefined &&
37
+ maxValue !== "") {
38
+ const convertedMaxValue = convertType(type, maxValue);
39
+ if (convertedMaxValue !== null) {
40
+ queryResult[filterNameMax] = convertedMaxValue;
41
+ }
42
+ }
43
+ if (String(filterName) === "pageSize" && !isPageSizeSet) {
44
+ isPageSizeSet = true;
45
+ }
46
+ return queryResult;
47
+ }, {});
48
+ query.pageNumber = page;
49
+ if (isPageSizeSet) {
50
+ query.pageSize = pageSize;
51
+ }
52
+ if (sortBy) {
53
+ query.sortBy = sortBy;
54
+ }
55
+ if (sortDirection !== undefined && sortDirection !== "Default") {
56
+ query.sortDirection = sortDirection;
57
+ }
58
+ return query;
59
+ }
60
+ /**
61
+ * Checks whether a value is an option object used by option-based filters.
62
+ *
63
+ * Used to safely read the real filter value from `OptionValue.value`.
64
+ */
65
+ function isOptionValue(value) {
66
+ return typeof value === "object" && value !== null && "value" in value;
67
+ }
68
+ /**
69
+ * Checks whether all items in an array are `OptionValue` objects.
70
+ *
71
+ * This is used for list filters where the UI stores selected options.
72
+ */
73
+ function isOptionValueArray(value) {
74
+ return value.every(isOptionValue);
75
+ }
76
+ /**
77
+ * Converts a filter value to the type expected by the query.
78
+ *
79
+ * Dates are converted to ISO strings, numbers to `number`,
80
+ * and booleans to `boolean`.
81
+ */
82
+ function convertType(type, value) {
83
+ switch (type) {
84
+ case "date":
85
+ return value instanceof Date ? value.toISOString() : value;
86
+ case "number":
87
+ return Number(value);
88
+ case "boolean":
89
+ return Boolean(value);
90
+ default:
91
+ return value;
92
+ }
93
+ }
94
+ //# sourceMappingURL=buildQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildQuery.js","sourceRoot":"","sources":["../../src/utils/buildQuery.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,OAAmC,EACnC,IAAI,GAAG,CAAC,EACR,QAAQ,GAAG,GAAG,EACd,SAAkC,IAAI,EACtC,aAA6B;IAE7B,IAAI,aAAa,GAAG,QAAQ,GAAG,CAAC,CAAC;IAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;QACpE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GACjE,MAAM,CAAC;QAET,IACE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;YACvD,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,CAAC,EAChE,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,WAAW,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3C,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CACN,CAAC;gBAE1B,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,WAAW,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3C,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CACA,CAAC;YAE1B,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IACE,KAAK,KAAK,MAAM;YAChB,KAAK,KAAK,WAAW;YACrB,KAAK,KAAK,IAAI;YACd,KAAK,KAAK,SAAS;YACnB,KAAK,KAAK,EAAE,EACZ,CAAC;YACD,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEhD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC5B,WAAW,CAAC,UAAU,CAAC,GAAG,cAAsC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,IACE,aAAa;YACb,QAAQ,KAAK,IAAI;YACjB,QAAQ,KAAK,SAAS;YACtB,QAAQ,KAAK,EAAE,EACf,CAAC;YACD,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAEtD,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;gBAC/B,WAAW,CAAC,aAAa,CAAC,GAAG,iBAAyC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;YACxD,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEN,KAAiC,CAAC,UAAU,GAAG,IAAI,CAAC;IAErD,IAAI,aAAa,EAAE,CAAC;QACjB,KAAiC,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzD,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACV,KAAiC,CAAC,MAAM,GAAG,MAAM,CAAC;IACrD,CAAC;IAED,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAC9D,KAAiC,CAAC,aAAa,GAAG,aAAa,CAAC;IACnE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAgB;IAC1C,OAAO,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,KAAc;IAC/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7D,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QAEvB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;QAExB;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { ApiErrorHandler, ApiSuccessHandler } from "../types/ApiCallOptions";
2
+ import type { RuntimeRequestParams } from "../types/HttpResponse";
3
+ /**
4
+ * Extracts wrapper arguments in this order:
5
+ *
6
+ * 1. Original API arguments
7
+ * 2. Optional success callback
8
+ * 3. Optional error callback
9
+ * 4. Optional request params
10
+ */
11
+ export declare function extractArgsCallbacksAndParams<TArgs extends unknown[], TResponse, TError = unknown>(argsWithCallbacks: [
12
+ ...TArgs,
13
+ ApiSuccessHandler<TResponse>?,
14
+ ApiErrorHandler<TError>?,
15
+ RuntimeRequestParams?
16
+ ]): {
17
+ args: TArgs;
18
+ onSuccess?: ApiSuccessHandler<TResponse>;
19
+ onError?: ApiErrorHandler<TError>;
20
+ params?: RuntimeRequestParams;
21
+ };
22
+ //# sourceMappingURL=extractArgsCallbacksAndParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractArgsCallbacksAndParams.d.ts","sourceRoot":"","sources":["../../src/utils/extractArgsCallbacksAndParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAkB/B;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,SAAS,OAAO,EAAE,EACvB,SAAS,EACT,MAAM,GAAG,OAAO,EAEhB,iBAAiB,EAAE;IACjB,GAAG,KAAK;IACR,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7B,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,oBAAoB,CAAC;CACtB,GACA;IACD,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,CAkCA"}
@@ -0,0 +1,44 @@
1
+ function isCallback(value) {
2
+ return typeof value === "function";
3
+ }
4
+ function isRequestParams(value) {
5
+ return (typeof value === "object" &&
6
+ value !== null &&
7
+ !Array.isArray(value));
8
+ }
9
+ /**
10
+ * Extracts wrapper arguments in this order:
11
+ *
12
+ * 1. Original API arguments
13
+ * 2. Optional success callback
14
+ * 3. Optional error callback
15
+ * 4. Optional request params
16
+ */
17
+ export function extractArgsCallbacksAndParams(argsWithCallbacks) {
18
+ const values = [...argsWithCallbacks];
19
+ let onSuccess;
20
+ let onError;
21
+ let params;
22
+ let lastArgument = values[values.length - 1];
23
+ if (isRequestParams(lastArgument)) {
24
+ params = lastArgument;
25
+ values.pop();
26
+ }
27
+ lastArgument = values[values.length - 1];
28
+ if (isCallback(lastArgument)) {
29
+ onError = lastArgument;
30
+ values.pop();
31
+ }
32
+ lastArgument = values[values.length - 1];
33
+ if (isCallback(lastArgument)) {
34
+ onSuccess = lastArgument;
35
+ values.pop();
36
+ }
37
+ return {
38
+ args: values,
39
+ onSuccess,
40
+ onError,
41
+ params,
42
+ };
43
+ }
44
+ //# sourceMappingURL=extractArgsCallbacksAndParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractArgsCallbacksAndParams.js","sourceRoot":"","sources":["../../src/utils/extractArgsCallbacksAndParams.ts"],"names":[],"mappings":"AASA,SAAS,UAAU,CACjB,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,SAAS,eAAe,CACtB,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAK3C,iBAKC;IAOD,MAAM,MAAM,GAAG,CAAC,GAAG,iBAAiB,CAAc,CAAC;IAEnD,IAAI,SAAmD,CAAC;IACxD,IAAI,OAA4C,CAAC;IACjD,IAAI,MAAwC,CAAC;IAE7C,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE7C,IAAI,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,YAAY,CAAC;QACtB,MAAM,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAED,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,YAAuC,CAAC;QAClD,MAAM,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAED,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,SAAS,GAAG,YAA4C,CAAC;QACzD,MAAM,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAe;QACrB,SAAS;QACT,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ApiErrorHandler, ApiSuccessHandler } from "../types/ApiCallOptions";
2
+ import type { RuntimeRequestParams } from "../types/HttpResponse";
3
+ /**
4
+ * Extracts wrapper-only arguments in this order:
5
+ * original API arguments, onSuccess, onError, request params.
6
+ */
7
+ export declare function extractArgsCallbacksAndParams<TArgs extends readonly unknown[], TSuccess, TError = unknown>(argsWithCallbacks: [
8
+ ...TArgs,
9
+ ApiSuccessHandler<TSuccess>?,
10
+ ApiErrorHandler<TError>?,
11
+ RuntimeRequestParams?
12
+ ]): {
13
+ args: TArgs;
14
+ onSuccess?: ApiSuccessHandler<TSuccess>;
15
+ onError?: ApiErrorHandler<TError>;
16
+ params?: RuntimeRequestParams;
17
+ };
18
+ //# sourceMappingURL=extractArgsToastsAndParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractArgsToastsAndParams.d.ts","sourceRoot":"","sources":["../../src/utils/extractArgsToastsAndParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAclE;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,SAAS,SAAS,OAAO,EAAE,EAChC,QAAQ,EACR,MAAM,GAAG,OAAO,EAEhB,iBAAiB,EAAE;IACjB,GAAG,KAAK;IACR,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC5B,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,oBAAoB,CAAC;CACtB,GACA;IACD,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,CAkCA"}
@@ -0,0 +1,40 @@
1
+ function isCallback(value) {
2
+ return typeof value === "function";
3
+ }
4
+ function isRequestParams(value) {
5
+ return (typeof value === "object" &&
6
+ value !== null &&
7
+ !Array.isArray(value));
8
+ }
9
+ /**
10
+ * Extracts wrapper-only arguments in this order:
11
+ * original API arguments, onSuccess, onError, request params.
12
+ */
13
+ export function extractArgsCallbacksAndParams(argsWithCallbacks) {
14
+ const values = [...argsWithCallbacks];
15
+ let onSuccess;
16
+ let onError;
17
+ let params;
18
+ let lastArgument = values[values.length - 1];
19
+ if (isRequestParams(lastArgument)) {
20
+ params = lastArgument;
21
+ values.pop();
22
+ }
23
+ lastArgument = values[values.length - 1];
24
+ if (isCallback(lastArgument)) {
25
+ onError = lastArgument;
26
+ values.pop();
27
+ }
28
+ lastArgument = values[values.length - 1];
29
+ if (isCallback(lastArgument)) {
30
+ onSuccess = lastArgument;
31
+ values.pop();
32
+ }
33
+ return {
34
+ args: values,
35
+ onSuccess,
36
+ onError,
37
+ params,
38
+ };
39
+ }
40
+ //# sourceMappingURL=extractArgsToastsAndParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractArgsToastsAndParams.js","sourceRoot":"","sources":["../../src/utils/extractArgsToastsAndParams.ts"],"names":[],"mappings":"AAMA,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CACtB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAK3C,iBAKC;IAOD,MAAM,MAAM,GAAG,CAAC,GAAG,iBAAiB,CAAc,CAAC;IAEnD,IAAI,SAAkD,CAAC;IACvD,IAAI,OAA4C,CAAC;IACjD,IAAI,MAAwC,CAAC;IAE7C,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE7C,IAAI,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,YAAY,CAAC;QACtB,MAAM,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAED,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,GAAG,YAAuC,CAAC;QAClD,MAAM,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAED,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,SAAS,GAAG,YAA2C,CAAC;QACxD,MAAM,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAA0B;QAChC,SAAS;QACT,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ApiResult } from "../interfaces/ApiResult";
2
+ import type { ApiErrorHandler, ApiSuccessHandler } from "../types/ApiCallOptions";
3
+ import type { HttpResponse } from "../types/HttpResponse";
4
+ export type HandleApiResponseOptions<TResponse, TError = unknown> = {
5
+ onSuccess?: ApiSuccessHandler<TResponse>;
6
+ onError?: ApiErrorHandler<TError>;
7
+ };
8
+ export declare function handleApiResponse<TResponse, TError = unknown>(call: () => Promise<HttpResponse<TResponse, TError>>, options?: HandleApiResponseOptions<TResponse, TError>): Promise<ApiResult<TResponse>>;
9
+ //# sourceMappingURL=handleApiResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleApiResponse.d.ts","sourceRoot":"","sources":["../../src/utils/handleApiResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACV,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,YAAY,EACb,MAAM,uBAAuB,CAAC;AAE/B,MAAM,MAAM,wBAAwB,CAClC,SAAS,EACT,MAAM,GAAG,OAAO,IACd;IACF,SAAS,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;CACnC,CAAC;AAyBF,wBAAsB,iBAAiB,CACrC,SAAS,EACT,MAAM,GAAG,OAAO,EAEhB,IAAI,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EACpD,OAAO,CAAC,EAAE,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,GACpD,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CA6C/B"}
@@ -0,0 +1,49 @@
1
+ async function readResponseBody(response) {
2
+ if (response.status === 204) {
3
+ return undefined;
4
+ }
5
+ const text = await response.text();
6
+ if (!text) {
7
+ return undefined;
8
+ }
9
+ const contentType = response.headers.get("content-type");
10
+ if (contentType?.includes("application/json")) {
11
+ return JSON.parse(text);
12
+ }
13
+ return text;
14
+ }
15
+ export async function handleApiResponse(call, options) {
16
+ let response;
17
+ try {
18
+ response = await call();
19
+ const data = await readResponseBody(response);
20
+ if (response.ok) {
21
+ await options?.onSuccess?.(data);
22
+ return {
23
+ ok: true,
24
+ status: response.status,
25
+ response: data,
26
+ };
27
+ }
28
+ const errorData = data;
29
+ await options?.onError?.(errorData);
30
+ return {
31
+ ok: false,
32
+ status: response.status,
33
+ response: data,
34
+ error: errorData,
35
+ };
36
+ }
37
+ catch (error) {
38
+ await options?.onError?.(error);
39
+ return {
40
+ ok: false,
41
+ status: error instanceof Response
42
+ ? error.status
43
+ : response?.status ?? 0,
44
+ response: undefined,
45
+ error,
46
+ };
47
+ }
48
+ }
49
+ //# sourceMappingURL=handleApiResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleApiResponse.js","sourceRoot":"","sources":["../../src/utils/handleApiResponse.ts"],"names":[],"mappings":"AAqBA,KAAK,UAAU,gBAAgB,CAC7B,QAAkB;IAElB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,WAAW,GACf,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEvC,IAAI,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;IAC/B,CAAC;IAED,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAIrC,IAAoD,EACpD,OAAqD;IAErD,IAAI,QAES,CAAC;IAEd,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,IAAI,EAAE,CAAC;QAExB,MAAM,IAAI,GACR,MAAM,gBAAgB,CAAY,QAAQ,CAAC,CAAC;QAE9C,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,OAAO,EAAE,SAAS,EAAE,CAAC,IAAiB,CAAC,CAAC;YAE9C,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,IAAiB;aAC5B,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GACb,IAAyB,CAAC;QAE5B,MAAM,OAAO,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QAEpC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,EAAE,OAAO,EAAE,CAAC,KAAe,CAAC,CAAC;QAE1C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EACJ,KAAK,YAAY,QAAQ;gBACvB,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;YAC3B,QAAQ,EAAE,SAAS;YACnB,KAAK;SACN,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Converts an object payload into `FormData`.
3
+ *
4
+ * Supports single files, file arrays, primitive values, and nested objects.
5
+ * Arrays are appended as repeated fields with the same key.
6
+ */
7
+ export declare function toFormData<T extends object>(payload: T): FormData;
8
+ //# sourceMappingURL=toFormData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toFormData.d.ts","sourceRoot":"","sources":["../../src/utils/toFormData.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,QAAQ,CAQjE"}
@@ -0,0 +1,68 @@
1
+ import { getOrders } from "../api";
2
+ import { createSupplier, getSupplierById } from "../api/methods/Supplier.api";
3
+ /**
4
+ * Converts an object payload into `FormData`.
5
+ *
6
+ * Supports single files, file arrays, primitive values, and nested objects.
7
+ * Arrays are appended as repeated fields with the same key.
8
+ */
9
+ export function toFormData(payload) {
10
+ const formData = new FormData();
11
+ for (const [key, value] of Object.entries(payload)) {
12
+ appendFormDataValue(formData, key, value);
13
+ }
14
+ return formData;
15
+ }
16
+ /**
17
+ * Appends a single value to a `FormData` object.
18
+ *
19
+ * Files keep their filename, blobs are appended directly,
20
+ * primitives are converted to strings, and objects are JSON-stringified.
21
+ */
22
+ function appendFormDataValue(formData, key, value) {
23
+ if (value === null || value === undefined) {
24
+ return;
25
+ }
26
+ if (Array.isArray(value)) {
27
+ for (const item of value) {
28
+ appendFormDataValue(formData, key, item);
29
+ }
30
+ return;
31
+ }
32
+ if (value instanceof File) {
33
+ formData.append(key, value, value.name);
34
+ return;
35
+ }
36
+ if (value instanceof Blob) {
37
+ formData.append(key, value);
38
+ return;
39
+ }
40
+ if (typeof value === "string" ||
41
+ typeof value === "number" ||
42
+ typeof value === "boolean") {
43
+ formData.append(key, String(value));
44
+ return;
45
+ }
46
+ formData.append(key, JSON.stringify(value));
47
+ }
48
+ const x = createSupplier({ id: "", name: "Test Supplier", active: true, countryCode: "US", email: "test.supplier@example.com", rating: 4.5 }, () => {
49
+ console.info("Created");
50
+ }, (error) => {
51
+ console.error("Error", error);
52
+ });
53
+ const y = getOrders({}, (response) => {
54
+ console.info("Created", response);
55
+ }, (error) => {
56
+ console.error("Error", error);
57
+ });
58
+ const x2 = getSupplierById({ id: "1" }, () => {
59
+ console.info("Created");
60
+ }, (error) => {
61
+ console.error("Error", error);
62
+ });
63
+ const y2 = getSupplierById({ id: "1" }, (response) => {
64
+ console.info("Created", response);
65
+ }, (error) => {
66
+ console.error("Error", error);
67
+ });
68
+ //# sourceMappingURL=toFormData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toFormData.js","sourceRoot":"","sources":["../../src/utils/toFormData.ts"],"names":[],"mappings":"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"}