@ogcio/sag-client 0.3.0 → 0.4.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.
|
@@ -15,15 +15,27 @@ export interface UseGatewayFetchOptions {
|
|
|
15
15
|
*
|
|
16
16
|
* Must be used within a `SagClientProvider`.
|
|
17
17
|
*
|
|
18
|
+
* The gateway API convention wraps responses as `{ data: T }`. For paginated
|
|
19
|
+
* endpoints that also return a `metadata` field alongside `data` (e.g.
|
|
20
|
+
* `{ data: T[], metadata: { totalCount: number } }`), provide the second type
|
|
21
|
+
* parameter `M` to get a typed `metadata` value back from the hook:
|
|
22
|
+
*
|
|
23
|
+
* ```ts
|
|
24
|
+
* const { data: items, metadata } =
|
|
25
|
+
* useGatewayFetch<Item[], { totalCount?: number }>("/api/v1/items")
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
18
28
|
* @param path - Gateway path (e.g. "/cars", "/weather", "/notifications")
|
|
19
29
|
* @param options - Fetch options (enabled, actorType)
|
|
20
30
|
*/
|
|
21
|
-
export declare function useGatewayFetch<T>(path: string | null, options?: UseGatewayFetchOptions): {
|
|
31
|
+
export declare function useGatewayFetch<T, M = undefined>(path: string | null, options?: UseGatewayFetchOptions): {
|
|
22
32
|
data: T | undefined;
|
|
33
|
+
metadata: M | undefined;
|
|
23
34
|
error: any;
|
|
24
35
|
isLoading: boolean;
|
|
25
36
|
refresh: import("swr").KeyedMutator<{
|
|
26
37
|
data: T;
|
|
38
|
+
metadata?: M;
|
|
27
39
|
}>;
|
|
28
40
|
};
|
|
29
41
|
//# sourceMappingURL=use-gateway-fetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-gateway-fetch.d.ts","sourceRoot":"","sources":["../../src/react/use-gateway-fetch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGzC,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED
|
|
1
|
+
{"version":3,"file":"use-gateway-fetch.d.ts","sourceRoot":"","sources":["../../src/react/use-gateway-fetch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGzC,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,EAC9C,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,CAAC,EAAE,sBAAsB;;;;;;cAmC0B,CAAC;mBAAa,CAAC;;EAY1E"}
|
|
@@ -7,6 +7,16 @@ import { useSagClient } from "./provider";
|
|
|
7
7
|
*
|
|
8
8
|
* Must be used within a `SagClientProvider`.
|
|
9
9
|
*
|
|
10
|
+
* The gateway API convention wraps responses as `{ data: T }`. For paginated
|
|
11
|
+
* endpoints that also return a `metadata` field alongside `data` (e.g.
|
|
12
|
+
* `{ data: T[], metadata: { totalCount: number } }`), provide the second type
|
|
13
|
+
* parameter `M` to get a typed `metadata` value back from the hook:
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* const { data: items, metadata } =
|
|
17
|
+
* useGatewayFetch<Item[], { totalCount?: number }>("/api/v1/items")
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
10
20
|
* @param path - Gateway path (e.g. "/cars", "/weather", "/notifications")
|
|
11
21
|
* @param options - Fetch options (enabled, actorType)
|
|
12
22
|
*/
|
|
@@ -36,9 +46,12 @@ export function useGatewayFetch(path, options) {
|
|
|
36
46
|
const inner = fetcher;
|
|
37
47
|
return (keyOrUrl) => inner(Array.isArray(keyOrUrl) ? keyOrUrl[0] : keyOrUrl);
|
|
38
48
|
}, [fetcher]);
|
|
49
|
+
// The SWR value type is the full API response shape. `metadata` is optional
|
|
50
|
+
// so the fetcher's `{ data: T }` return is assignable to `{ data: T; metadata?: M }`.
|
|
39
51
|
const { data, error, isLoading, mutate } = useSWR(swrKey, wrappedFetcher);
|
|
40
52
|
return {
|
|
41
53
|
data: data === null || data === void 0 ? void 0 : data.data,
|
|
54
|
+
metadata: data === null || data === void 0 ? void 0 : data.metadata,
|
|
42
55
|
error,
|
|
43
56
|
isLoading,
|
|
44
57
|
refresh: mutate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-gateway-fetch.js","sourceRoot":"","sources":["../../src/react/use-gateway-fetch.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,MAAM,MAAM,KAAK,CAAA;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAczC
|
|
1
|
+
{"version":3,"file":"use-gateway-fetch.js","sourceRoot":"","sources":["../../src/react/use-gateway-fetch.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,MAAM,MAAM,KAAK,CAAA;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAczC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAmB,EACnB,OAAgC;;IAEhC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAC7B,MAAM,OAAO,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,IAAI,CAAA;IACxC,MAAM,SAAS,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAA;IAEpC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QAClC,OAAO,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,EAAE,CAAA;IACtC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAEtC,sEAAsE;IACtE,iEAAiE;IACjE,mEAAmE;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAC7B,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;IAC3D,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAA;IAE5B,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAI,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EACpE,CAAC,MAAM,EAAE,SAAS,CAAC,CACpB,CAAA;IAED,iEAAiE;IACjE,mEAAmE;IACnE,oEAAoE;IACpE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,OAAO,CAAA;QACrB,OAAO,CAAC,QAAyC,EAAE,EAAE,CACnD,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC3D,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,4EAA4E;IAC5E,sFAAsF;IACtF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAC/C,MAAM,EACN,cAAc,CACf,CAAA;IAED,OAAO;QACL,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI;QAChB,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ;QACxB,KAAK;QACL,SAAS;QACT,OAAO,EAAE,MAAM;KAChB,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED