@geekmidas/client 4.0.2 → 4.0.3
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/CHANGELOG.md +6 -0
- package/dist/auth-fetcher.cjs +1 -1
- package/dist/auth-fetcher.d.cts +1 -1
- package/dist/auth-fetcher.d.mts +1 -1
- package/dist/auth-fetcher.mjs +1 -1
- package/dist/endpoint-hooks.d.cts +1 -1
- package/dist/endpoint-hooks.d.mts +1 -1
- package/dist/{fetcher-DNt7DDn9.mjs → fetcher-C7rErA7M.mjs} +4 -4
- package/dist/{fetcher-CbQRQD5f.cjs.map → fetcher-C7rErA7M.mjs.map} +1 -1
- package/dist/{fetcher-CbQRQD5f.cjs → fetcher-DtsaihL6.cjs} +4 -4
- package/dist/{fetcher-DNt7DDn9.mjs.map → fetcher-DtsaihL6.cjs.map} +1 -1
- package/dist/fetcher.cjs +1 -1
- package/dist/fetcher.d.cts +1 -1
- package/dist/fetcher.d.mts +1 -1
- package/dist/fetcher.mjs +1 -1
- package/dist/openapi-hooks.cjs +1 -1
- package/dist/openapi-hooks.d.cts +1 -1
- package/dist/openapi-hooks.d.mts +1 -1
- package/dist/openapi-hooks.mjs +1 -1
- package/dist/react-query.cjs +1 -1
- package/dist/react-query.d.cts +1 -1
- package/dist/react-query.d.mts +1 -1
- package/dist/react-query.mjs +1 -1
- package/dist/{types-BtQ80bpa.d.mts → types-AMWu2wmL.d.mts} +3 -3
- package/dist/{types-BtQ80bpa.d.mts.map → types-AMWu2wmL.d.mts.map} +1 -1
- package/dist/{types-C7tGYTBD.d.cts → types-OSOkr8AA.d.cts} +3 -3
- package/dist/{types-C7tGYTBD.d.cts.map → types-OSOkr8AA.d.cts.map} +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/package.json +3 -3
- package/src/__tests__/fetcher.spec.ts +38 -25
- package/src/fetcher.ts +2 -2
- package/src/types.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @geekmidas/client
|
|
2
2
|
|
|
3
|
+
## 4.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- ✨ [`54589f8`](https://github.com/geekmidas/toolbox/commit/54589f89d4707c287a133be5c7dbb224b86d630c) Thanks [@geekmidas](https://github.com/geekmidas)! - Add ok discriminator for wrapped clients
|
|
8
|
+
|
|
3
9
|
## 4.0.2
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/dist/auth-fetcher.cjs
CHANGED
package/dist/auth-fetcher.d.cts
CHANGED
package/dist/auth-fetcher.d.mts
CHANGED
package/dist/auth-fetcher.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExtractEndpointResponse, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, QueryEndpoint, TypedApiFunction } from "./types-
|
|
1
|
+
import { ExtractEndpointResponse, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, QueryEndpoint, TypedApiFunction } from "./types-OSOkr8AA.cjs";
|
|
2
2
|
import { QueryClient, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from "@tanstack/react-query";
|
|
3
3
|
|
|
4
4
|
//#region src/endpoint-hooks.d.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExtractEndpointResponse, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, QueryEndpoint, TypedApiFunction } from "./types-
|
|
1
|
+
import { ExtractEndpointResponse, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, QueryEndpoint, TypedApiFunction } from "./types-AMWu2wmL.mjs";
|
|
2
2
|
import { QueryClient, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from "@tanstack/react-query";
|
|
3
3
|
|
|
4
4
|
//#region src/endpoint-hooks.d.ts
|
|
@@ -61,10 +61,10 @@ var TypedFetcher = class TypedFetcher {
|
|
|
61
61
|
}
|
|
62
62
|
wrap() {
|
|
63
63
|
return (endpoint, config) => this.request(endpoint, config).then((data) => ({
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
ok: true,
|
|
65
|
+
data
|
|
66
66
|
}), (error) => ({
|
|
67
|
-
|
|
67
|
+
ok: false,
|
|
68
68
|
error
|
|
69
69
|
}));
|
|
70
70
|
}
|
|
@@ -86,4 +86,4 @@ function createTypedFetcher(options) {
|
|
|
86
86
|
|
|
87
87
|
//#endregion
|
|
88
88
|
export { TypedFetcher, createTypedFetcher };
|
|
89
|
-
//# sourceMappingURL=fetcher-
|
|
89
|
+
//# sourceMappingURL=fetcher-C7rErA7M.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcher-
|
|
1
|
+
{"version":3,"file":"fetcher-C7rErA7M.mjs","names":["fn?: FetchFn","options: FetcherOptions","endpoint: T","config?: FilteredRequestConfig<Paths, T>","requestConfig: RequestInit","options?: FetcherOptions"],"sources":["../src/fetcher.ts"],"sourcesContent":["import qs from 'qs';\nimport type {\n\tEndpointString,\n\tExtractEndpointResponse,\n\tFetcherOptions,\n\tFilteredRequestConfig,\n\tParseEndpoint,\n\tTypedEndpoint,\n\tWrappedResult,\n} from './types';\n\nexport type { FetcherOptions, WrappedResult } from './types';\n\nexport class TypedFetcher<Paths> {\n\tprivate baseURL: string;\n\tprivate defaultHeaders: Record<string, string>;\n\tprivate options: FetcherOptions;\n\tprivate fetchFn: FetchFn;\n\n\tstatic getFetchFn(fn?: FetchFn): FetchFn {\n\t\tif (fn) {\n\t\t\treturn fn;\n\t\t}\n\n\t\tif (typeof window !== 'undefined' && typeof window.fetch === 'function') {\n\t\t\treturn window.fetch.bind(window);\n\t\t}\n\n\t\tif (\n\t\t\ttypeof globalThis !== 'undefined' &&\n\t\t\ttypeof globalThis.fetch === 'function'\n\t\t) {\n\t\t\treturn globalThis.fetch.bind(globalThis);\n\t\t}\n\n\t\tthrow new Error('No fetch implementation found');\n\t}\n\n\tconstructor(options: FetcherOptions = {}) {\n\t\tthis.baseURL = options.baseURL || '';\n\t\tthis.defaultHeaders = options.headers || {};\n\t\tthis.options = options;\n\t\tthis.fetchFn = TypedFetcher.getFetchFn(options.fetch);\n\t}\n\n\tasync request<T extends TypedEndpoint<Paths>>(\n\t\tendpoint: T,\n\t\tconfig?: FilteredRequestConfig<Paths, T>,\n\t): Promise<ExtractEndpointResponse<Paths, T>> {\n\t\tconst { method, route } = this.parseEndpoint(endpoint);\n\n\t\t// Replace path parameters\n\t\tlet url = route;\n\t\tif (config && 'params' in config && config.params) {\n\t\t\tObject.entries(config.params as Record<string, unknown>).forEach(\n\t\t\t\t([key, value]) => {\n\t\t\t\t\turl = url.replace(`{${key}}`, encodeURIComponent(String(value)));\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\t// Add query parameters\n\t\tif (config && 'query' in config && config.query) {\n\t\t\tconst queryString = qs.stringify(config.query, {\n\t\t\t\tencode: true,\n\t\t\t\tarrayFormat: 'brackets',\n\t\t\t\tskipNulls: true,\n\t\t\t});\n\t\t\tif (queryString) {\n\t\t\t\turl += `?${queryString}`;\n\t\t\t}\n\t\t}\n\n\t\t// Build request configuration\n\t\tlet requestConfig: RequestInit = {\n\t\t\tmethod: method.toUpperCase(),\n\t\t\theaders: {\n\t\t\t\t...this.defaultHeaders,\n\t\t\t\t...((config && 'headers' in config && config.headers) || {}),\n\t\t\t},\n\t\t};\n\n\t\t// Add body if present\n\t\tif (config && 'body' in config && config.body) {\n\t\t\trequestConfig.body = JSON.stringify(config.body);\n\t\t\trequestConfig.headers = {\n\t\t\t\t...requestConfig.headers,\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t};\n\t\t}\n\n\t\t// Apply request interceptor\n\t\tif (this.options.onRequest) {\n\t\t\trequestConfig = await this.options.onRequest(requestConfig);\n\t\t}\n\n\t\ttry {\n\t\t\t// Make the request\n\t\t\tlet response = await this.fetchFn(`${this.baseURL}${url}`, requestConfig);\n\n\t\t\t// Apply response interceptor\n\t\t\tif (this.options.onResponse) {\n\t\t\t\tresponse = await this.options.onResponse(response);\n\t\t\t}\n\n\t\t\t// Handle errors\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow response;\n\t\t\t}\n\n\t\t\t// Handle empty responses (204 No Content, etc.)\n\t\t\tif (\n\t\t\t\tresponse.status === 204 ||\n\t\t\t\tresponse.headers.get('content-length') === '0'\n\t\t\t) {\n\t\t\t\treturn undefined as ExtractEndpointResponse<Paths, T>;\n\t\t\t}\n\n\t\t\t// Parse JSON response\n\t\t\tconst data = await response.json();\n\t\t\treturn data as ExtractEndpointResponse<Paths, T>;\n\t\t} catch (error) {\n\t\t\t// Apply error handler\n\t\t\tif (this.options.onError) {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tawait this.options.onError(error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\twrap() {\n\t\treturn <T extends TypedEndpoint<Paths>>(\n\t\t\tendpoint: T,\n\t\t\tconfig?: FilteredRequestConfig<Paths, T>,\n\t\t): Promise<WrappedResult<ExtractEndpointResponse<Paths, T>>> =>\n\t\t\tthis.request(endpoint, config).then(\n\t\t\t\t(data) => ({ ok: true as const, data }),\n\t\t\t\t(error) => ({ ok: false as const, error }),\n\t\t\t);\n\t}\n\n\tprivate parseEndpoint<T extends EndpointString>(\n\t\tendpoint: T,\n\t): ParseEndpoint<T> {\n\t\tconst [method, ...routeParts] = endpoint.split(' ');\n\t\tconst route = routeParts.join(' ');\n\t\treturn { method: method?.toLowerCase() ?? '', route } as ParseEndpoint<T>;\n\t}\n}\n\nexport function createTypedFetcher<Paths>(options?: FetcherOptions) {\n\tconst fetcher = new TypedFetcher<Paths>(options);\n\tconst fn = <T extends TypedEndpoint<Paths>>(\n\t\tendpoint: T,\n\t\tconfig?: FilteredRequestConfig<Paths, T>,\n\t) => fetcher.request(endpoint, config);\n\n\tfn.wrap = () => fetcher.wrap();\n\n\treturn fn;\n}\n\nexport type FetchFn = typeof fetch;\n"],"mappings":";;;AAaA,IAAa,eAAb,MAAa,aAAoB;CAChC,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,OAAO,WAAWA,IAAuB;AACxC,MAAI,GACH,QAAO;AAGR,aAAW,WAAW,sBAAsB,OAAO,UAAU,WAC5D,QAAO,OAAO,MAAM,KAAK,OAAO;AAGjC,aACQ,eAAe,sBACf,WAAW,UAAU,WAE5B,QAAO,WAAW,MAAM,KAAK,WAAW;AAGzC,QAAM,IAAI,MAAM;CAChB;CAED,YAAYC,UAA0B,CAAE,GAAE;AACzC,OAAK,UAAU,QAAQ,WAAW;AAClC,OAAK,iBAAiB,QAAQ,WAAW,CAAE;AAC3C,OAAK,UAAU;AACf,OAAK,UAAU,aAAa,WAAW,QAAQ,MAAM;CACrD;CAED,MAAM,QACLC,UACAC,QAC6C;EAC7C,MAAM,EAAE,QAAQ,OAAO,GAAG,KAAK,cAAc,SAAS;EAGtD,IAAI,MAAM;AACV,MAAI,UAAU,YAAY,UAAU,OAAO,OAC1C,QAAO,QAAQ,OAAO,OAAkC,CAAC,QACxD,CAAC,CAAC,KAAK,MAAM,KAAK;AACjB,SAAM,IAAI,SAAS,GAAG,IAAI,IAAI,mBAAmB,OAAO,MAAM,CAAC,CAAC;EAChE,EACD;AAIF,MAAI,UAAU,WAAW,UAAU,OAAO,OAAO;GAChD,MAAM,cAAc,GAAG,UAAU,OAAO,OAAO;IAC9C,QAAQ;IACR,aAAa;IACb,WAAW;GACX,EAAC;AACF,OAAI,YACH,SAAQ,GAAG,YAAY;EAExB;EAGD,IAAIC,gBAA6B;GAChC,QAAQ,OAAO,aAAa;GAC5B,SAAS;IACR,GAAG,KAAK;IACR,GAAK,UAAU,aAAa,UAAU,OAAO,WAAY,CAAE;GAC3D;EACD;AAGD,MAAI,UAAU,UAAU,UAAU,OAAO,MAAM;AAC9C,iBAAc,OAAO,KAAK,UAAU,OAAO,KAAK;AAChD,iBAAc,UAAU;IACvB,GAAG,cAAc;IACjB,gBAAgB;GAChB;EACD;AAGD,MAAI,KAAK,QAAQ,UAChB,iBAAgB,MAAM,KAAK,QAAQ,UAAU,cAAc;AAG5D,MAAI;GAEH,IAAI,WAAW,MAAM,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,IAAI,GAAG,cAAc;AAGzE,OAAI,KAAK,QAAQ,WAChB,YAAW,MAAM,KAAK,QAAQ,WAAW,SAAS;AAInD,QAAK,SAAS,GACb,OAAM;AAIP,OACC,SAAS,WAAW,OACpB,SAAS,QAAQ,IAAI,iBAAiB,KAAK,IAE3C;GAID,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,UAAO;EACP,SAAQ,OAAO;AAEf,OAAI,KAAK,QAAQ,QAEhB,OAAM,KAAK,QAAQ,QAAQ,MAAM;AAElC,SAAM;EACN;CACD;CAED,OAAO;AACN,SAAO,CACNF,UACAC,WAEA,KAAK,QAAQ,UAAU,OAAO,CAAC,KAC9B,CAAC,UAAU;GAAE,IAAI;GAAe;EAAM,IACtC,CAAC,WAAW;GAAE,IAAI;GAAgB;EAAO,GACzC;CACF;CAED,AAAQ,cACPD,UACmB;EACnB,MAAM,CAAC,QAAQ,GAAG,WAAW,GAAG,SAAS,MAAM,IAAI;EACnD,MAAM,QAAQ,WAAW,KAAK,IAAI;AAClC,SAAO;GAAE,QAAQ,QAAQ,aAAa,IAAI;GAAI;EAAO;CACrD;AACD;AAED,SAAgB,mBAA0BG,SAA0B;CACnE,MAAM,UAAU,IAAI,aAAoB;CACxC,MAAM,KAAK,CACVH,UACAC,WACI,QAAQ,QAAQ,UAAU,OAAO;AAEtC,IAAG,OAAO,MAAM,QAAQ,MAAM;AAE9B,QAAO;AACP"}
|
|
@@ -62,10 +62,10 @@ var TypedFetcher = class TypedFetcher {
|
|
|
62
62
|
}
|
|
63
63
|
wrap() {
|
|
64
64
|
return (endpoint, config) => this.request(endpoint, config).then((data) => ({
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
ok: true,
|
|
66
|
+
data
|
|
67
67
|
}), (error) => ({
|
|
68
|
-
|
|
68
|
+
ok: false,
|
|
69
69
|
error
|
|
70
70
|
}));
|
|
71
71
|
}
|
|
@@ -98,4 +98,4 @@ Object.defineProperty(exports, 'createTypedFetcher', {
|
|
|
98
98
|
return createTypedFetcher;
|
|
99
99
|
}
|
|
100
100
|
});
|
|
101
|
-
//# sourceMappingURL=fetcher-
|
|
101
|
+
//# sourceMappingURL=fetcher-DtsaihL6.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetcher-
|
|
1
|
+
{"version":3,"file":"fetcher-DtsaihL6.cjs","names":["fn?: FetchFn","options: FetcherOptions","endpoint: T","config?: FilteredRequestConfig<Paths, T>","requestConfig: RequestInit","options?: FetcherOptions"],"sources":["../src/fetcher.ts"],"sourcesContent":["import qs from 'qs';\nimport type {\n\tEndpointString,\n\tExtractEndpointResponse,\n\tFetcherOptions,\n\tFilteredRequestConfig,\n\tParseEndpoint,\n\tTypedEndpoint,\n\tWrappedResult,\n} from './types';\n\nexport type { FetcherOptions, WrappedResult } from './types';\n\nexport class TypedFetcher<Paths> {\n\tprivate baseURL: string;\n\tprivate defaultHeaders: Record<string, string>;\n\tprivate options: FetcherOptions;\n\tprivate fetchFn: FetchFn;\n\n\tstatic getFetchFn(fn?: FetchFn): FetchFn {\n\t\tif (fn) {\n\t\t\treturn fn;\n\t\t}\n\n\t\tif (typeof window !== 'undefined' && typeof window.fetch === 'function') {\n\t\t\treturn window.fetch.bind(window);\n\t\t}\n\n\t\tif (\n\t\t\ttypeof globalThis !== 'undefined' &&\n\t\t\ttypeof globalThis.fetch === 'function'\n\t\t) {\n\t\t\treturn globalThis.fetch.bind(globalThis);\n\t\t}\n\n\t\tthrow new Error('No fetch implementation found');\n\t}\n\n\tconstructor(options: FetcherOptions = {}) {\n\t\tthis.baseURL = options.baseURL || '';\n\t\tthis.defaultHeaders = options.headers || {};\n\t\tthis.options = options;\n\t\tthis.fetchFn = TypedFetcher.getFetchFn(options.fetch);\n\t}\n\n\tasync request<T extends TypedEndpoint<Paths>>(\n\t\tendpoint: T,\n\t\tconfig?: FilteredRequestConfig<Paths, T>,\n\t): Promise<ExtractEndpointResponse<Paths, T>> {\n\t\tconst { method, route } = this.parseEndpoint(endpoint);\n\n\t\t// Replace path parameters\n\t\tlet url = route;\n\t\tif (config && 'params' in config && config.params) {\n\t\t\tObject.entries(config.params as Record<string, unknown>).forEach(\n\t\t\t\t([key, value]) => {\n\t\t\t\t\turl = url.replace(`{${key}}`, encodeURIComponent(String(value)));\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\t// Add query parameters\n\t\tif (config && 'query' in config && config.query) {\n\t\t\tconst queryString = qs.stringify(config.query, {\n\t\t\t\tencode: true,\n\t\t\t\tarrayFormat: 'brackets',\n\t\t\t\tskipNulls: true,\n\t\t\t});\n\t\t\tif (queryString) {\n\t\t\t\turl += `?${queryString}`;\n\t\t\t}\n\t\t}\n\n\t\t// Build request configuration\n\t\tlet requestConfig: RequestInit = {\n\t\t\tmethod: method.toUpperCase(),\n\t\t\theaders: {\n\t\t\t\t...this.defaultHeaders,\n\t\t\t\t...((config && 'headers' in config && config.headers) || {}),\n\t\t\t},\n\t\t};\n\n\t\t// Add body if present\n\t\tif (config && 'body' in config && config.body) {\n\t\t\trequestConfig.body = JSON.stringify(config.body);\n\t\t\trequestConfig.headers = {\n\t\t\t\t...requestConfig.headers,\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t};\n\t\t}\n\n\t\t// Apply request interceptor\n\t\tif (this.options.onRequest) {\n\t\t\trequestConfig = await this.options.onRequest(requestConfig);\n\t\t}\n\n\t\ttry {\n\t\t\t// Make the request\n\t\t\tlet response = await this.fetchFn(`${this.baseURL}${url}`, requestConfig);\n\n\t\t\t// Apply response interceptor\n\t\t\tif (this.options.onResponse) {\n\t\t\t\tresponse = await this.options.onResponse(response);\n\t\t\t}\n\n\t\t\t// Handle errors\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow response;\n\t\t\t}\n\n\t\t\t// Handle empty responses (204 No Content, etc.)\n\t\t\tif (\n\t\t\t\tresponse.status === 204 ||\n\t\t\t\tresponse.headers.get('content-length') === '0'\n\t\t\t) {\n\t\t\t\treturn undefined as ExtractEndpointResponse<Paths, T>;\n\t\t\t}\n\n\t\t\t// Parse JSON response\n\t\t\tconst data = await response.json();\n\t\t\treturn data as ExtractEndpointResponse<Paths, T>;\n\t\t} catch (error) {\n\t\t\t// Apply error handler\n\t\t\tif (this.options.onError) {\n\t\t\t\t// @ts-expect-error\n\t\t\t\tawait this.options.onError(error);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\twrap() {\n\t\treturn <T extends TypedEndpoint<Paths>>(\n\t\t\tendpoint: T,\n\t\t\tconfig?: FilteredRequestConfig<Paths, T>,\n\t\t): Promise<WrappedResult<ExtractEndpointResponse<Paths, T>>> =>\n\t\t\tthis.request(endpoint, config).then(\n\t\t\t\t(data) => ({ ok: true as const, data }),\n\t\t\t\t(error) => ({ ok: false as const, error }),\n\t\t\t);\n\t}\n\n\tprivate parseEndpoint<T extends EndpointString>(\n\t\tendpoint: T,\n\t): ParseEndpoint<T> {\n\t\tconst [method, ...routeParts] = endpoint.split(' ');\n\t\tconst route = routeParts.join(' ');\n\t\treturn { method: method?.toLowerCase() ?? '', route } as ParseEndpoint<T>;\n\t}\n}\n\nexport function createTypedFetcher<Paths>(options?: FetcherOptions) {\n\tconst fetcher = new TypedFetcher<Paths>(options);\n\tconst fn = <T extends TypedEndpoint<Paths>>(\n\t\tendpoint: T,\n\t\tconfig?: FilteredRequestConfig<Paths, T>,\n\t) => fetcher.request(endpoint, config);\n\n\tfn.wrap = () => fetcher.wrap();\n\n\treturn fn;\n}\n\nexport type FetchFn = typeof fetch;\n"],"mappings":";;;;AAaA,IAAa,eAAb,MAAa,aAAoB;CAChC,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,OAAO,WAAWA,IAAuB;AACxC,MAAI,GACH,QAAO;AAGR,aAAW,WAAW,sBAAsB,OAAO,UAAU,WAC5D,QAAO,OAAO,MAAM,KAAK,OAAO;AAGjC,aACQ,eAAe,sBACf,WAAW,UAAU,WAE5B,QAAO,WAAW,MAAM,KAAK,WAAW;AAGzC,QAAM,IAAI,MAAM;CAChB;CAED,YAAYC,UAA0B,CAAE,GAAE;AACzC,OAAK,UAAU,QAAQ,WAAW;AAClC,OAAK,iBAAiB,QAAQ,WAAW,CAAE;AAC3C,OAAK,UAAU;AACf,OAAK,UAAU,aAAa,WAAW,QAAQ,MAAM;CACrD;CAED,MAAM,QACLC,UACAC,QAC6C;EAC7C,MAAM,EAAE,QAAQ,OAAO,GAAG,KAAK,cAAc,SAAS;EAGtD,IAAI,MAAM;AACV,MAAI,UAAU,YAAY,UAAU,OAAO,OAC1C,QAAO,QAAQ,OAAO,OAAkC,CAAC,QACxD,CAAC,CAAC,KAAK,MAAM,KAAK;AACjB,SAAM,IAAI,SAAS,GAAG,IAAI,IAAI,mBAAmB,OAAO,MAAM,CAAC,CAAC;EAChE,EACD;AAIF,MAAI,UAAU,WAAW,UAAU,OAAO,OAAO;GAChD,MAAM,cAAc,WAAG,UAAU,OAAO,OAAO;IAC9C,QAAQ;IACR,aAAa;IACb,WAAW;GACX,EAAC;AACF,OAAI,YACH,SAAQ,GAAG,YAAY;EAExB;EAGD,IAAIC,gBAA6B;GAChC,QAAQ,OAAO,aAAa;GAC5B,SAAS;IACR,GAAG,KAAK;IACR,GAAK,UAAU,aAAa,UAAU,OAAO,WAAY,CAAE;GAC3D;EACD;AAGD,MAAI,UAAU,UAAU,UAAU,OAAO,MAAM;AAC9C,iBAAc,OAAO,KAAK,UAAU,OAAO,KAAK;AAChD,iBAAc,UAAU;IACvB,GAAG,cAAc;IACjB,gBAAgB;GAChB;EACD;AAGD,MAAI,KAAK,QAAQ,UAChB,iBAAgB,MAAM,KAAK,QAAQ,UAAU,cAAc;AAG5D,MAAI;GAEH,IAAI,WAAW,MAAM,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,IAAI,GAAG,cAAc;AAGzE,OAAI,KAAK,QAAQ,WAChB,YAAW,MAAM,KAAK,QAAQ,WAAW,SAAS;AAInD,QAAK,SAAS,GACb,OAAM;AAIP,OACC,SAAS,WAAW,OACpB,SAAS,QAAQ,IAAI,iBAAiB,KAAK,IAE3C;GAID,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,UAAO;EACP,SAAQ,OAAO;AAEf,OAAI,KAAK,QAAQ,QAEhB,OAAM,KAAK,QAAQ,QAAQ,MAAM;AAElC,SAAM;EACN;CACD;CAED,OAAO;AACN,SAAO,CACNF,UACAC,WAEA,KAAK,QAAQ,UAAU,OAAO,CAAC,KAC9B,CAAC,UAAU;GAAE,IAAI;GAAe;EAAM,IACtC,CAAC,WAAW;GAAE,IAAI;GAAgB;EAAO,GACzC;CACF;CAED,AAAQ,cACPD,UACmB;EACnB,MAAM,CAAC,QAAQ,GAAG,WAAW,GAAG,SAAS,MAAM,IAAI;EACnD,MAAM,QAAQ,WAAW,KAAK,IAAI;AAClC,SAAO;GAAE,QAAQ,QAAQ,aAAa,IAAI;GAAI;EAAO;CACrD;AACD;AAED,SAAgB,mBAA0BG,SAA0B;CACnE,MAAM,UAAU,IAAI,aAAoB;CACxC,MAAM,KAAK,CACVH,UACAC,WACI,QAAQ,QAAQ,UAAU,OAAO;AAEtC,IAAG,OAAO,MAAM,QAAQ,MAAM;AAE9B,QAAO;AACP"}
|
package/dist/fetcher.cjs
CHANGED
package/dist/fetcher.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExtractEndpointResponse, FetcherOptions, FilteredRequestConfig, TypedEndpoint, WrappedResult } from "./types-
|
|
1
|
+
import { ExtractEndpointResponse, FetcherOptions, FilteredRequestConfig, TypedEndpoint, WrappedResult } from "./types-OSOkr8AA.cjs";
|
|
2
2
|
|
|
3
3
|
//#region src/fetcher.d.ts
|
|
4
4
|
declare class TypedFetcher<Paths> {
|
package/dist/fetcher.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExtractEndpointResponse, FetcherOptions, FilteredRequestConfig, TypedEndpoint, WrappedResult } from "./types-
|
|
1
|
+
import { ExtractEndpointResponse, FetcherOptions, FilteredRequestConfig, TypedEndpoint, WrappedResult } from "./types-AMWu2wmL.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/fetcher.d.ts
|
|
4
4
|
declare class TypedFetcher<Paths> {
|
package/dist/fetcher.mjs
CHANGED
package/dist/openapi-hooks.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
-
const require_fetcher = require('./fetcher-
|
|
2
|
+
const require_fetcher = require('./fetcher-DtsaihL6.cjs');
|
|
3
3
|
const __tanstack_react_query = require_chunk.__toESM(require("@tanstack/react-query"));
|
|
4
4
|
|
|
5
5
|
//#region src/openapi-hooks.ts
|
package/dist/openapi-hooks.d.cts
CHANGED
package/dist/openapi-hooks.d.mts
CHANGED
package/dist/openapi-hooks.mjs
CHANGED
package/dist/react-query.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-CUT6urMc.cjs');
|
|
2
|
-
const require_fetcher = require('./fetcher-
|
|
2
|
+
const require_fetcher = require('./fetcher-DtsaihL6.cjs');
|
|
3
3
|
const __tanstack_react_query = require_chunk.__toESM(require("@tanstack/react-query"));
|
|
4
4
|
const react = require_chunk.__toESM(require("react"));
|
|
5
5
|
|
package/dist/react-query.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExtractEndpointResponse, FetcherOptions, FilteredRequestConfig, MutationEndpoint, QueryEndpoint, TypedEndpoint } from "./types-
|
|
1
|
+
import { ExtractEndpointResponse, FetcherOptions, FilteredRequestConfig, MutationEndpoint, QueryEndpoint, TypedEndpoint } from "./types-OSOkr8AA.cjs";
|
|
2
2
|
import * as _tanstack_react_query3 from "@tanstack/react-query";
|
|
3
3
|
import { QueryClient, UseInfiniteQueryOptions, UseMutationOptions, UseQueryOptions } from "@tanstack/react-query";
|
|
4
4
|
|
package/dist/react-query.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExtractEndpointResponse, FetcherOptions, FilteredRequestConfig, MutationEndpoint, QueryEndpoint, TypedEndpoint } from "./types-
|
|
1
|
+
import { ExtractEndpointResponse, FetcherOptions, FilteredRequestConfig, MutationEndpoint, QueryEndpoint, TypedEndpoint } from "./types-AMWu2wmL.mjs";
|
|
2
2
|
import * as _tanstack_react_query3 from "@tanstack/react-query";
|
|
3
3
|
import { QueryClient, UseInfiniteQueryOptions, UseMutationOptions, UseQueryOptions } from "@tanstack/react-query";
|
|
4
4
|
|
package/dist/react-query.mjs
CHANGED
|
@@ -97,13 +97,13 @@ interface FetcherOptions {
|
|
|
97
97
|
fetch?: typeof fetch;
|
|
98
98
|
}
|
|
99
99
|
type WrappedResult<T> = {
|
|
100
|
+
ok: true;
|
|
100
101
|
data: T;
|
|
101
|
-
error: null;
|
|
102
102
|
} | {
|
|
103
|
-
|
|
103
|
+
ok: false;
|
|
104
104
|
error: unknown;
|
|
105
105
|
};
|
|
106
106
|
type WrappedApiFunction<Paths> = <T extends TypedEndpoint<Paths>>(endpoint: T, ...args: IsConfigRequired<Paths, T> extends true ? [config: FilteredRequestConfig<Paths, T>] : [config?: FilteredRequestConfig<Paths, T>]) => Promise<WrappedResult<ExtractEndpointResponse<Paths, T>>>;
|
|
107
107
|
//#endregion
|
|
108
108
|
export { EndpointString, ExtractEndpointConfig, ExtractEndpointResponse, ExtractMethod, ExtractPathParams, ExtractQueryParams, ExtractRequestBody, ExtractResponse, FetcherOptions, FilterEndpointByMethod, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, OpenAPIRoutes, ParseEndpoint, QueryEndpoint, RequestConfig, TypedApiFunction, TypedEndpoint, ValidEndpoint, WrappedApiFunction, WrappedResult };
|
|
109
|
-
//# sourceMappingURL=types-
|
|
109
|
+
//# sourceMappingURL=types-AMWu2wmL.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-AMWu2wmL.d.mts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -97,13 +97,13 @@ interface FetcherOptions {
|
|
|
97
97
|
fetch?: typeof fetch;
|
|
98
98
|
}
|
|
99
99
|
type WrappedResult<T> = {
|
|
100
|
+
ok: true;
|
|
100
101
|
data: T;
|
|
101
|
-
error: null;
|
|
102
102
|
} | {
|
|
103
|
-
|
|
103
|
+
ok: false;
|
|
104
104
|
error: unknown;
|
|
105
105
|
};
|
|
106
106
|
type WrappedApiFunction<Paths> = <T extends TypedEndpoint<Paths>>(endpoint: T, ...args: IsConfigRequired<Paths, T> extends true ? [config: FilteredRequestConfig<Paths, T>] : [config?: FilteredRequestConfig<Paths, T>]) => Promise<WrappedResult<ExtractEndpointResponse<Paths, T>>>;
|
|
107
107
|
//#endregion
|
|
108
108
|
export { EndpointString, ExtractEndpointConfig, ExtractEndpointResponse, ExtractMethod, ExtractPathParams, ExtractQueryParams, ExtractRequestBody, ExtractResponse, FetcherOptions, FilterEndpointByMethod, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, OpenAPIRoutes, ParseEndpoint, QueryEndpoint, RequestConfig, TypedApiFunction, TypedEndpoint, ValidEndpoint, WrappedApiFunction, WrappedResult };
|
|
109
|
-
//# sourceMappingURL=types-
|
|
109
|
+
//# sourceMappingURL=types-OSOkr8AA.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-OSOkr8AA.d.cts","names":[],"sources":["../src/types.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/types.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EndpointString, ExtractEndpointConfig, ExtractEndpointResponse, ExtractMethod, ExtractPathParams, ExtractQueryParams, ExtractRequestBody, ExtractResponse, FetcherOptions, FilterEndpointByMethod, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, OpenAPIRoutes, ParseEndpoint, QueryEndpoint, RequestConfig, TypedApiFunction, TypedEndpoint, ValidEndpoint, WrappedApiFunction, WrappedResult } from "./types-
|
|
1
|
+
import { EndpointString, ExtractEndpointConfig, ExtractEndpointResponse, ExtractMethod, ExtractPathParams, ExtractQueryParams, ExtractRequestBody, ExtractResponse, FetcherOptions, FilterEndpointByMethod, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, OpenAPIRoutes, ParseEndpoint, QueryEndpoint, RequestConfig, TypedApiFunction, TypedEndpoint, ValidEndpoint, WrappedApiFunction, WrappedResult } from "./types-OSOkr8AA.cjs";
|
|
2
2
|
export { EndpointString, ExtractEndpointConfig, ExtractEndpointResponse, ExtractMethod, ExtractPathParams, ExtractQueryParams, ExtractRequestBody, ExtractResponse, FetcherOptions, FilterEndpointByMethod, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, OpenAPIRoutes, ParseEndpoint, QueryEndpoint, RequestConfig, TypedApiFunction, TypedEndpoint, ValidEndpoint, WrappedApiFunction, WrappedResult };
|
package/dist/types.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EndpointString, ExtractEndpointConfig, ExtractEndpointResponse, ExtractMethod, ExtractPathParams, ExtractQueryParams, ExtractRequestBody, ExtractResponse, FetcherOptions, FilterEndpointByMethod, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, OpenAPIRoutes, ParseEndpoint, QueryEndpoint, RequestConfig, TypedApiFunction, TypedEndpoint, ValidEndpoint, WrappedApiFunction, WrappedResult } from "./types-
|
|
1
|
+
import { EndpointString, ExtractEndpointConfig, ExtractEndpointResponse, ExtractMethod, ExtractPathParams, ExtractQueryParams, ExtractRequestBody, ExtractResponse, FetcherOptions, FilterEndpointByMethod, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, OpenAPIRoutes, ParseEndpoint, QueryEndpoint, RequestConfig, TypedApiFunction, TypedEndpoint, ValidEndpoint, WrappedApiFunction, WrappedResult } from "./types-AMWu2wmL.mjs";
|
|
2
2
|
export { EndpointString, ExtractEndpointConfig, ExtractEndpointResponse, ExtractMethod, ExtractPathParams, ExtractQueryParams, ExtractRequestBody, ExtractResponse, FetcherOptions, FilterEndpointByMethod, FilteredRequestConfig, IsConfigRequired, MutationEndpoint, OpenAPIRoutes, ParseEndpoint, QueryEndpoint, RequestConfig, TypedApiFunction, TypedEndpoint, ValidEndpoint, WrappedApiFunction, WrappedResult };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geekmidas/client",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
"@types/react-dom": "~19.1.6",
|
|
69
69
|
"jsdom": "~26.1.0",
|
|
70
70
|
"msw": "~2.10.3",
|
|
71
|
-
"@geekmidas/
|
|
72
|
-
"@geekmidas/
|
|
71
|
+
"@geekmidas/schema": "^1.0.0",
|
|
72
|
+
"@geekmidas/constructs": "^3.0.3"
|
|
73
73
|
},
|
|
74
74
|
"peerDependencies": {
|
|
75
75
|
"@tanstack/react-query": ">=5.0.0",
|
|
@@ -383,7 +383,7 @@ describe('TypedFetcher', () => {
|
|
|
383
383
|
});
|
|
384
384
|
|
|
385
385
|
describe('wrap', () => {
|
|
386
|
-
it('should return
|
|
386
|
+
it('should return ok: true with data on success', async () => {
|
|
387
387
|
const client = createTypedFetcher<paths>({
|
|
388
388
|
baseURL: 'https://api.example.com',
|
|
389
389
|
});
|
|
@@ -391,16 +391,19 @@ describe('TypedFetcher', () => {
|
|
|
391
391
|
|
|
392
392
|
const result = await wrappedClient('GET /users');
|
|
393
393
|
|
|
394
|
-
expect(result.
|
|
395
|
-
expect(result
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
394
|
+
expect(result.ok).toBe(true);
|
|
395
|
+
expect('error' in result).toBe(false);
|
|
396
|
+
if (result.ok) {
|
|
397
|
+
expect(result.data).toEqual({
|
|
398
|
+
users: [
|
|
399
|
+
{ id: '1', name: 'John Doe', email: 'john@example.com' },
|
|
400
|
+
{ id: '2', name: 'Jane Smith', email: 'jane@example.com' },
|
|
401
|
+
],
|
|
402
|
+
});
|
|
403
|
+
}
|
|
401
404
|
});
|
|
402
405
|
|
|
403
|
-
it('should return
|
|
406
|
+
it('should return ok: false with error on failure', async () => {
|
|
404
407
|
const client = createTypedFetcher<paths>({
|
|
405
408
|
baseURL: 'https://api.example.com',
|
|
406
409
|
});
|
|
@@ -410,13 +413,16 @@ describe('TypedFetcher', () => {
|
|
|
410
413
|
params: { id: '404' },
|
|
411
414
|
});
|
|
412
415
|
|
|
413
|
-
expect(result.
|
|
414
|
-
expect(result
|
|
415
|
-
|
|
416
|
-
|
|
416
|
+
expect(result.ok).toBe(false);
|
|
417
|
+
expect('data' in result).toBe(false);
|
|
418
|
+
if (!result.ok) {
|
|
419
|
+
expect(result.error).toBeInstanceOf(Response);
|
|
420
|
+
const response = result.error as Response;
|
|
421
|
+
expect(response.status).toBe(404);
|
|
422
|
+
}
|
|
417
423
|
});
|
|
418
424
|
|
|
419
|
-
it('should return
|
|
425
|
+
it('should return ok: false on 500 errors', async () => {
|
|
420
426
|
const client = createTypedFetcher<paths>({
|
|
421
427
|
baseURL: 'https://api.example.com',
|
|
422
428
|
});
|
|
@@ -424,10 +430,13 @@ describe('TypedFetcher', () => {
|
|
|
424
430
|
|
|
425
431
|
const result = await wrappedClient('GET /error');
|
|
426
432
|
|
|
427
|
-
expect(result.
|
|
428
|
-
expect(result
|
|
429
|
-
|
|
430
|
-
|
|
433
|
+
expect(result.ok).toBe(false);
|
|
434
|
+
expect('data' in result).toBe(false);
|
|
435
|
+
if (!result.ok) {
|
|
436
|
+
expect(result.error).toBeInstanceOf(Response);
|
|
437
|
+
const response = result.error as Response;
|
|
438
|
+
expect(response.status).toBe(500);
|
|
439
|
+
}
|
|
431
440
|
});
|
|
432
441
|
|
|
433
442
|
it('should work with path params and body', async () => {
|
|
@@ -441,12 +450,15 @@ describe('TypedFetcher', () => {
|
|
|
441
450
|
body: { name: 'Updated Name' },
|
|
442
451
|
});
|
|
443
452
|
|
|
444
|
-
expect(result.
|
|
445
|
-
expect(result
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
453
|
+
expect(result.ok).toBe(true);
|
|
454
|
+
expect('error' in result).toBe(false);
|
|
455
|
+
if (result.ok) {
|
|
456
|
+
expect(result.data).toEqual({
|
|
457
|
+
id: '456',
|
|
458
|
+
name: 'Updated Name',
|
|
459
|
+
email: 'john@example.com',
|
|
460
|
+
});
|
|
461
|
+
}
|
|
450
462
|
});
|
|
451
463
|
|
|
452
464
|
it('should still call onError handler', async () => {
|
|
@@ -461,7 +473,8 @@ describe('TypedFetcher', () => {
|
|
|
461
473
|
params: { id: '404' },
|
|
462
474
|
});
|
|
463
475
|
|
|
464
|
-
expect(result.
|
|
476
|
+
expect(result.ok).toBe(false);
|
|
477
|
+
expect('data' in result).toBe(false);
|
|
465
478
|
expect(onError).toHaveBeenCalledWith(expect.any(Response));
|
|
466
479
|
});
|
|
467
480
|
});
|
package/src/fetcher.ts
CHANGED
|
@@ -135,8 +135,8 @@ export class TypedFetcher<Paths> {
|
|
|
135
135
|
config?: FilteredRequestConfig<Paths, T>,
|
|
136
136
|
): Promise<WrappedResult<ExtractEndpointResponse<Paths, T>>> =>
|
|
137
137
|
this.request(endpoint, config).then(
|
|
138
|
-
(data) => ({
|
|
139
|
-
(error) => ({
|
|
138
|
+
(data) => ({ ok: true as const, data }),
|
|
139
|
+
(error) => ({ ok: false as const, error }),
|
|
140
140
|
);
|
|
141
141
|
}
|
|
142
142
|
|
package/src/types.ts
CHANGED
|
@@ -211,8 +211,8 @@ export interface FetcherOptions {
|
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
export type WrappedResult<T> =
|
|
214
|
-
| {
|
|
215
|
-
| {
|
|
214
|
+
| { ok: true; data: T }
|
|
215
|
+
| { ok: false; error: unknown };
|
|
216
216
|
|
|
217
217
|
export type WrappedApiFunction<Paths> = <T extends TypedEndpoint<Paths>>(
|
|
218
218
|
endpoint: T,
|