@furystack/rest-client-fetch 8.1.8 → 9.0.1

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 CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## [9.0.1] - 2026-05-21
4
+
5
+ ### 📚 Documentation
6
+
7
+ - Rewrote JSDoc on `createClient` and `ResponseError` to follow the new value-test guidance: dropped restate-the-type narration, kept intent / trade-offs / constraints around error shape and request building.
8
+
9
+ ### ⬆️ Dependencies
10
+
11
+ - Bump dev `vitest` to `^4.1.5`.
12
+ - Bumped `vitest` to `^4.1.7`. No source changes — dev-tooling bump only.
13
+
14
+ ## [9.0.0] - 2026-04-25
15
+
16
+ ### 💥 Breaking Changes
17
+
18
+ - Version bumped to align with the monorepo-wide functional DI migration. No DI surface in this package; the browser REST client (`createClient<Api>({ endpointUrl })`) is unchanged. See the [v7 migration guide](../../docs/migrations/v7-functional-di.md) for the full picture on other packages.
19
+
3
20
  ## [8.1.8] - 2026-04-22
4
21
 
5
22
  ### ⬆️ Dependencies
@@ -30,11 +30,20 @@ export type ReturnType<T> = T extends {
30
30
  result: infer TResult;
31
31
  } ? TResult : never;
32
32
  export interface ClientOptions {
33
+ /** Base URL prepended to every request path. */
33
34
  endpointUrl: string;
35
+ /** `fetch` override (e.g. for tests, or for interceptor wrappers). */
34
36
  fetch?: typeof fetch;
37
+ /** Forwarded to every underlying `fetch` call (`headers`, `credentials`, `mode`, …). */
35
38
  requestInit?: RequestInit;
39
+ /** Override for query-string serialization. Default: `serializeToQueryString` from `@furystack/rest`. */
36
40
  serializeQueryParams?: (param: any) => string;
37
- /** Called when `response.json()` fails during response parsing. The default behavior (returning `null`) is unchanged. */
41
+ /**
42
+ * Called when `response.json()` throws during the default response
43
+ * parser. The result still resolves to `{ result: null }` so callers
44
+ * don't have to wrap every call in try/catch — use this hook for
45
+ * telemetry rather than control flow.
46
+ */
38
47
  onResponseParseError?: (options: {
39
48
  response: Response;
40
49
  error: unknown;
@@ -45,6 +54,18 @@ export declare const defaultResponseParser: <T>(response: Response) => Promise<{
45
54
  result: T;
46
55
  }>;
47
56
  export declare const compileRoute: <T extends Record<string, unknown>>(url: string, params: T) => string;
57
+ /**
58
+ * Builds a typed REST client from a {@link RestApi} contract. Each call
59
+ * narrows the `body` / `query` / `url` / `headers` arguments and the
60
+ * returned `result` against the contract entry chosen by `method` +
61
+ * `action`. Throws {@link ResponseError} on non-2xx responses.
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * const client = createClient<MyApi>({ endpointUrl: '/api' })
66
+ * const { result } = await client({ method: 'GET', action: '/users' })
67
+ * ```
68
+ */
48
69
  export declare const createClient: <T extends RestApi>(clientOptions: ClientOptions) => <TMethod extends keyof T, TAction extends keyof T[TMethod], TBodyType extends BodyParameter<T[TMethod][TAction]>, TQuery extends QueryParameter<T[TMethod][TAction]>, TUrlParams extends UrlParameter<T[TMethod][TAction]>, TReturns extends ReturnType<T[TMethod][TAction]>, THeaders extends HeaderParameter<T[TMethod][TAction]>>(options: {
49
70
  method: TMethod;
50
71
  action: TAction;
@@ -1 +1 @@
1
- {"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAK9C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG,OAAO,CAAA;AAEnG,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG,OAAO,CAAA;AAEtG,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,CAAC,CAAA;CAAE,GAAG,OAAO,CAAA;AAEhG,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,GAAG,OAAO,CAAA;AAE3G,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAEzE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,OAAO,CAAA;CAAE,GAAG,OAAO,GAAG,KAAK,CAAA;AAEjF,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,wFAAwF;IACxF,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,yGAAyG;IACzG,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAA;IAC7C;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;CACjF;AA+BD,eAAO,MAAM,qBAAqB,GAAU,CAAC,EAAE,UAAU,QAAQ,KAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CACnE,CAAA;AAK1C,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,MAAM,EAAE,QAAQ,CAAC,WACzC,CAAA;AAQ7C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,OAAO,EAAE,eAAe,aAAa,MAKxE,OAAO,SAAS,MAAM,CAAC,EACvB,OAAO,SAAS,MAAM,CAAC,CAAC,OAAO,CAAC,EAChC,SAAS,SAAS,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EACpD,MAAM,SAAS,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAClD,UAAU,SAAS,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EACpD,QAAQ,SAAS,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAChD,QAAQ,SAAS,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAErD,SAAS;IACP,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CAC3F,GAAG,SAAS,GACX,MAAM,GACN,UAAU,GACV,QAAQ,KACT,OAAO,CAAC;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,CAgCpD,CAAA"}
@@ -32,6 +32,18 @@ const createResponseParser = (onParseError) => {
32
32
  return defaultResponseParser;
33
33
  return async (response) => parseResponseCore(response, (error) => onParseError({ response, error }));
34
34
  };
35
+ /**
36
+ * Builds a typed REST client from a {@link RestApi} contract. Each call
37
+ * narrows the `body` / `query` / `url` / `headers` arguments and the
38
+ * returned `result` against the contract entry chosen by `method` +
39
+ * `action`. Throws {@link ResponseError} on non-2xx responses.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * const client = createClient<MyApi>({ endpointUrl: '/api' })
44
+ * const { result } = await client({ method: 'GET', action: '/users' })
45
+ * ```
46
+ */
35
47
  export const createClient = (clientOptions) => {
36
48
  const fetchMethod = clientOptions.fetch || fetch;
37
49
  const responseParser = createResponseParser(clientOptions.onResponseParseError);
@@ -1 +1 @@
1
- {"version":3,"file":"create-client.js","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-client.js","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion -- false positives: `vi.fn` mocks for `fetch` widen to `any`, then need a bridge cast back to `fetchType` so `createClient` typechecks */
1
2
  import { describe, expect, it, vi } from 'vitest';
2
3
  import { createClient } from './create-client.js';
3
4
  const endpointUrl = 'http://localhost';
@@ -1 +1 @@
1
- {"version":3,"file":"create-client.spec.js","sourceRoot":"","sources":["../src/create-client.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,WAAW,GAAG,kBAAkB,CAAA;AAItC,UAAU,CAAC,KAAK,GAAI,UAAmC,CAAC,KAAK,IAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAA0B,CAAA;AAEvG,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;QACnD,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;QAC5C,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAChC,IAAI;YACJ,EAAE,EAAE,KAAK;SACV,CAAC,CAAyB,CAAC,CAAA;QAE5B,MAAM,MAAM,GAAG,YAAY,CAAoD;YAC7E,WAAW;YACX,KAAK;SACN,CAAC,CAAA;QAEF,MAAM,MAAM,CACV,MAAM,CAAC;YACL,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,KAAK;SACd,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACpC,IAAI;YACJ,EAAE,EAAE,IAAI;SACT,CAAC,CAAC,CAAA;QAEH,MAAM,MAAM,GAAG,YAAY,CAAsD;YAC/E,WAAW;YACX,KAAK,EAAE,KAA6B;SACrC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,KAAK;SACd,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAE3C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,WAAW,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QACvF,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACpC,IAAI;YACJ,EAAE,EAAE,IAAI;SACT,CAAC,CAAC,CAAA;QAEH,MAAM,MAAM,GAAG,YAAY,CAExB;YACD,WAAW;YACX,KAAK,EAAE,KAA6B;SACrC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;SAC3B,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAE3C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,WAAW,8BAA8B,EAAE;YACzE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,MAAM,KAAK,GAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACpC,IAAI;YACJ,EAAE,EAAE,IAAI;SACT,CAAC,CAAC,CAAA;QAEH,MAAM,MAAM,GAAG,YAAY,CAExB;YACD,WAAW;YACX,KAAK,EAAE,KAA6B;SACrC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,KAAK;YACb,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;SACzB,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAE3C,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,WAAW,WAAW,EAAE;YACtD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,SAAS;SAChB,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACpC,MAAM,KAAK,GAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACpC,IAAI;YACJ,EAAE,EAAE,IAAI;SACT,CAAC,CAAC,CAAA;QAEH,MAAM,MAAM,GAAG,YAAY,CAAmE;YAC5F,WAAW;YACX,KAAK,EAAE,KAA6B;SACrC,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC;YACX,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;SACjB,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,WAAW,OAAO,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;SACjC,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACpC,MAAM,KAAK,GAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACpC,IAAI;YACJ,EAAE,EAAE,IAAI;SACT,CAAC,CAAC,CAAA;QAEH,MAAM,MAAM,GAAG,YAAY,CAAwE;YACjG,WAAW;YACX,KAAK,EAAE,KAA6B;SACrC,CAAC,CAAA;QAEF,MAAM,MAAM,CAAC;YACX,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,WAAW,OAAO,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,CAAA;QACtC,MAAM,KAAK,GAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACpC,IAAI;YACJ,OAAO,EAAE;gBACP,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY;aACxB;YACD,EAAE,EAAE,IAAI;SACT,CAAC,CAAC,CAAA;QAEH,MAAM,MAAM,GAAG,YAAY,CAExB;YACD,WAAW;YACX,KAAK,EAAE,KAA6B;SACrC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAElC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,WAAW,OAAO,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;QAC5C,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,CAAA;QAChD,MAAM,KAAK,GAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YACpC,QAAQ;YACR,OAAO,EAAE;gBACP,GAAG,EAAE,GAAG,EAAE,CAAC,gBAAgB;aAC5B;YACD,EAAE,EAAE,IAAI;SACT,CAAC,CAAC,CAAA;QAEH,MAAM,MAAM,GAAG,YAAY,CAExB;YACD,WAAW;YACX,KAAK,EAAE,KAA6B;SACrC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAExC,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,WAAW,OAAO,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,KAAK;aACb;SACF,CAAC,CAAA;QACF,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;YAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;gBAC5B,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;YACjC,CAAC,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACpC,IAAI;gBACJ,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE;aAC3C,CAAC,CAAyB,CAAC,CAAA;YAE5B,MAAM,MAAM,GAAG,YAAY,CAAoD;gBAC7E,WAAW;gBACX,KAAK,EAAE,SAAS;gBAChB,oBAAoB,EAAE,UAAU;aACjC,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;YAE/D,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;YAC3C,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC;gBACtC,QAAQ,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAW;gBACzD,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAU;aAClC,CAAC,CAAA;YACF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;YAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC9C,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBACpC,IAAI;gBACJ,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE;aAC3C,CAAC,CAAyB,CAAC,CAAA;YAE5B,MAAM,MAAM,GAAG,YAAY,CAAsD;gBAC/E,WAAW;gBACX,KAAK,EAAE,SAAS;gBAChB,oBAAoB,EAAE,UAAU;aACjC,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;YAE/D,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;YACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"create-client.spec.js","sourceRoot":"","sources":["../src/create-client.spec.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Thrown by the client returned from `createClient` when `response.ok` is
3
+ * `false`. Carries the raw `Response` so callers can read the status,
4
+ * headers, or attempt their own body parsing.
5
+ */
1
6
  export declare class ResponseError extends Error {
2
7
  response: Response;
3
8
  constructor(message: string, response: Response);
@@ -1 +1 @@
1
- {"version":3,"file":"response-error.d.ts","sourceRoot":"","sources":["../src/response-error.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;IAG7B,QAAQ,EAAE,QAAQ;gBADzB,OAAO,EAAE,MAAM,EACR,QAAQ,EAAE,QAAQ;CAI5B"}
1
+ {"version":3,"file":"response-error.d.ts","sourceRoot":"","sources":["../src/response-error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAG7B,QAAQ,EAAE,QAAQ;gBADzB,OAAO,EAAE,MAAM,EACR,QAAQ,EAAE,QAAQ;CAI5B"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Thrown by the client returned from `createClient` when `response.ok` is
3
+ * `false`. Carries the raw `Response` so callers can read the status,
4
+ * headers, or attempt their own body parsing.
5
+ */
1
6
  export class ResponseError extends Error {
2
7
  response;
3
8
  constructor(message, response) {
@@ -1 +1 @@
1
- {"version":3,"file":"response-error.js","sourceRoot":"","sources":["../src/response-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAc,SAAQ,KAAK;IAG7B;IAFT,YACE,OAAe,EACR,QAAkB;QAEzB,KAAK,CAAC,OAAO,CAAC,CAAA;QAFP,aAAQ,GAAR,QAAQ,CAAU;IAG3B,CAAC;CACF"}
1
+ {"version":3,"file":"response-error.js","sourceRoot":"","sources":["../src/response-error.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAG7B;IAFT,YACE,OAAe,EACR,QAAkB;QAEzB,KAAK,CAAC,OAAO,CAAC,CAAA;QAFP,aAAQ,GAAR,QAAQ,CAAU;IAG3B,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@furystack/rest-client-fetch",
3
- "version": "8.1.8",
3
+ "version": "9.0.1",
4
4
  "description": "Native browser fetch based REST API implementation for FuryStack",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -39,12 +39,12 @@
39
39
  },
40
40
  "homepage": "https://github.com/furystack/furystack",
41
41
  "dependencies": {
42
- "@furystack/rest": "^9.0.0",
42
+ "@furystack/rest": "^10.0.1",
43
43
  "path-to-regexp": "^8.4.2"
44
44
  },
45
45
  "devDependencies": {
46
46
  "typescript": "^6.0.3",
47
- "vitest": "^4.1.4"
47
+ "vitest": "^4.1.7"
48
48
  },
49
49
  "engines": {
50
50
  "node": ">=22.0.0"
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion -- false positives: `vi.fn` mocks for `fetch` widen to `any`, then need a bridge cast back to `fetchType` so `createClient` typechecks */
1
2
  import { describe, expect, it, vi } from 'vitest'
2
3
  import { createClient } from './create-client.js'
3
4
 
@@ -16,11 +16,20 @@ export type TActionReturns<T> = T extends { result: infer U } ? U : never
16
16
  export type ReturnType<T> = T extends { result: infer TResult } ? TResult : never
17
17
 
18
18
  export interface ClientOptions {
19
+ /** Base URL prepended to every request path. */
19
20
  endpointUrl: string
21
+ /** `fetch` override (e.g. for tests, or for interceptor wrappers). */
20
22
  fetch?: typeof fetch
23
+ /** Forwarded to every underlying `fetch` call (`headers`, `credentials`, `mode`, …). */
21
24
  requestInit?: RequestInit
25
+ /** Override for query-string serialization. Default: `serializeToQueryString` from `@furystack/rest`. */
22
26
  serializeQueryParams?: (param: any) => string
23
- /** Called when `response.json()` fails during response parsing. The default behavior (returning `null`) is unchanged. */
27
+ /**
28
+ * Called when `response.json()` throws during the default response
29
+ * parser. The result still resolves to `{ result: null }` so callers
30
+ * don't have to wrap every call in try/catch — use this hook for
31
+ * telemetry rather than control flow.
32
+ */
24
33
  onResponseParseError?: (options: { response: Response; error: unknown }) => void
25
34
  }
26
35
 
@@ -68,6 +77,18 @@ const createResponseParser = (onParseError?: ClientOptions['onResponseParseError
68
77
  parseResponseCore<T>(response, (error) => onParseError({ response, error }))
69
78
  }
70
79
 
80
+ /**
81
+ * Builds a typed REST client from a {@link RestApi} contract. Each call
82
+ * narrows the `body` / `query` / `url` / `headers` arguments and the
83
+ * returned `result` against the contract entry chosen by `method` +
84
+ * `action`. Throws {@link ResponseError} on non-2xx responses.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * const client = createClient<MyApi>({ endpointUrl: '/api' })
89
+ * const { result } = await client({ method: 'GET', action: '/users' })
90
+ * ```
91
+ */
71
92
  export const createClient = <T extends RestApi>(clientOptions: ClientOptions) => {
72
93
  const fetchMethod = clientOptions.fetch || fetch
73
94
  const responseParser = createResponseParser(clientOptions.onResponseParseError)
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Thrown by the client returned from `createClient` when `response.ok` is
3
+ * `false`. Carries the raw `Response` so callers can read the status,
4
+ * headers, or attempt their own body parsing.
5
+ */
1
6
  export class ResponseError extends Error {
2
7
  constructor(
3
8
  message: string,