@readyfor/api-client-base 0.242.1 → 0.243.0-pr981.52c46aa

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 (48) hide show
  1. package/dist/apiClientConfigStore.d.mts +2 -1
  2. package/dist/apiClientConfigStore.d.ts +2 -1
  3. package/dist/apiClientConfigStore.js +30 -0
  4. package/dist/apiClientConfigStore.mjs +6 -1
  5. package/dist/apiError.mjs +1 -0
  6. package/dist/chunk-7P6ASYW6.mjs +9 -0
  7. package/dist/{chunk-RGDL3AEX.mjs → chunk-BIWBZZRT.mjs} +1 -1
  8. package/dist/{chunk-5ZI7SAUQ.mjs → chunk-D6TR6JPT.mjs} +1 -1
  9. package/dist/chunk-DATABM5C.mjs +21 -0
  10. package/dist/chunk-DLVEXL2J.mjs +37 -0
  11. package/dist/{chunk-BNXKKSJH.mjs → chunk-IF7WWYV5.mjs} +32 -41
  12. package/dist/chunk-LYXJUKKR.mjs +14 -0
  13. package/dist/chunk-SMMDKVWH.mjs +29 -0
  14. package/dist/fetcher.js +52 -40
  15. package/dist/fetcher.mjs +5 -2
  16. package/dist/index.d.mts +2 -1
  17. package/dist/index.d.ts +2 -1
  18. package/dist/index.js +60 -40
  19. package/dist/index.mjs +11 -3
  20. package/dist/react/ApiClientConfigProvider.mjs +5 -2
  21. package/dist/react/index.js +26 -30
  22. package/dist/react/index.mjs +6 -3
  23. package/dist/react/swr.mjs +1 -0
  24. package/dist/react/useApiClientConfig.js +26 -30
  25. package/dist/react/useApiClientConfig.mjs +6 -3
  26. package/dist/requestUrl.mjs +5 -2
  27. package/dist/requestUrl.test.mjs +5 -2
  28. package/dist/store.mjs +1 -0
  29. package/dist/utils/headersInit.d.mts +17 -0
  30. package/dist/utils/headersInit.d.ts +17 -0
  31. package/dist/utils/headersInit.js +44 -0
  32. package/dist/utils/headersInit.mjs +7 -0
  33. package/dist/utils/headersInit.test.d.mts +2 -0
  34. package/dist/utils/headersInit.test.d.ts +2 -0
  35. package/dist/utils/headersInit.test.js +81 -0
  36. package/dist/utils/headersInit.test.mjs +67 -0
  37. package/dist/utils/requestInit.d.mts +9 -0
  38. package/dist/utils/requestInit.d.ts +9 -0
  39. package/dist/utils/requestInit.js +53 -0
  40. package/dist/utils/requestInit.mjs +8 -0
  41. package/dist/utils/requestInit.test.d.mts +2 -0
  42. package/dist/utils/requestInit.test.d.ts +2 -0
  43. package/dist/utils/requestInit.test.js +133 -0
  44. package/dist/utils/requestInit.test.mjs +106 -0
  45. package/dist/zod.mjs +1 -0
  46. package/package.json +8 -9
  47. package/dist/chunk-472P3XVV.mjs +0 -13
  48. package/dist/chunk-JOSDYCJN.mjs +0 -62
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, { get: all[name], enumerable: true });
6
+ };
7
+
8
+ // src/utils/headersInit.ts
9
+ var headersInit_exports = {};
10
+ __export(headersInit_exports, {
11
+ mergeHeadersInit: () => mergeHeadersInit
12
+ });
13
+ var mergeHeadersInit = (baseHeadersInit, overrideHeadersInit) => {
14
+ const base = new Headers(baseHeadersInit);
15
+ const override = new Headers(overrideHeadersInit);
16
+ const setCookies = base.getSetCookie().concat(override.getSetCookie());
17
+ base.delete("set-cookie");
18
+ override.delete("set-cookie");
19
+ const mergedHeaders = new Headers({
20
+ ...Object.fromEntries(base),
21
+ ...Object.fromEntries(override)
22
+ });
23
+ setCookies.forEach((cookie) => {
24
+ mergedHeaders.append("set-cookie", cookie);
25
+ });
26
+ return mergedHeaders;
27
+ };
28
+
29
+ // src/utils/requestInit.ts
30
+ var mergeRequestInit = ({ headers: baseHeaders, ...base }, { headers: overrideHeaders, ...override }) => ({
31
+ ...base,
32
+ ...override,
33
+ headers: baseHeaders === void 0 ? overrideHeaders : overrideHeaders === void 0 ? baseHeaders : mergeHeadersInit(baseHeaders, overrideHeaders)
34
+ });
35
+
36
+ // src/utils/requestInit.test.ts
37
+ describe("mergeRequestInit", () => {
38
+ test("RequestInit\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30DE\u30FC\u30B8\u3067\u304D\u308B", () => {
39
+ const base = {
40
+ method: "GET",
41
+ cache: "force-cache"
42
+ };
43
+ const overrideSignal = new AbortController().signal;
44
+ const override = {
45
+ method: "POST",
46
+ body: JSON.stringify({ key: "value" }),
47
+ headers: {
48
+ "Content-Type": "application/json"
49
+ },
50
+ cache: "no-cache",
51
+ signal: overrideSignal
52
+ };
53
+ const result = mergeRequestInit(base, override);
54
+ expect(result).toEqual({
55
+ cache: "no-cache",
56
+ method: "POST",
57
+ headers: {
58
+ "Content-Type": "application/json"
59
+ },
60
+ body: JSON.stringify({ key: "value" }),
61
+ signal: overrideSignal
62
+ });
63
+ });
64
+ test("header\u4EE5\u5916\u306F\u3001null\u3084undefined\u3092\u8A2D\u5B9A\u3059\u308B\u4E8B\u3067base\u306E\u8A2D\u5B9A\u3092\u7121\u52B9\u306B\u3067\u304D\u308B", () => {
65
+ const base = {
66
+ method: "POST",
67
+ body: "request body",
68
+ mode: "cors",
69
+ signal: new AbortController().signal,
70
+ headers: {
71
+ Authorization: "Bearer token"
72
+ }
73
+ };
74
+ const override = {
75
+ body: null,
76
+ mode: void 0,
77
+ signal: null
78
+ };
79
+ const result = mergeRequestInit(base, override);
80
+ expect(result).toEqual({
81
+ method: "POST",
82
+ body: null,
83
+ mode: void 0,
84
+ headers: {
85
+ Authorization: "Bearer token"
86
+ },
87
+ signal: null
88
+ });
89
+ });
90
+ describe("headers\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u7279\u6B8A\u51E6\u7406", () => {
91
+ test("headers\u3092\u5408\u6210\u3059\u308B\u3068\u304D\u3001\u7247\u65B9\u306E\u307F\u6307\u5B9A\u304C\u3042\u308B\u5834\u5408\u306F\u3001\u305D\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u305D\u306E\u307E\u307E\u8FD4\u3059\u3088\u3046\u3059\u308B", () => {
92
+ const arr = [["X-Test", "value"]];
93
+ expect(mergeRequestInit({ headers: arr }, {}).headers).toBe(arr);
94
+ expect(mergeRequestInit({}, { headers: arr }).headers).toBe(arr);
95
+ const record = { "X-Test": "value" };
96
+ expect(mergeRequestInit({ headers: record }, {}).headers).toBe(record);
97
+ expect(mergeRequestInit({}, { headers: record }).headers).toBe(record);
98
+ const instance = new Headers({ "X-Test": "value" });
99
+ expect(mergeRequestInit({ headers: instance }, {}).headers).toBe(
100
+ instance
101
+ );
102
+ expect(mergeRequestInit({}, { headers: instance }).headers).toBe(
103
+ instance
104
+ );
105
+ });
106
+ test("headers\u304C\u4E21\u65B9\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u6642\u306F\u3001mergeHeadersInit\u3092\u4F7F\u7528\u3057\u3066\u30DE\u30FC\u30B8\u3055\u308C\u308B", () => {
107
+ const mergeHeadersInitSpy = jest.spyOn(headersInit_exports, "mergeHeadersInit");
108
+ const base = {
109
+ headers: {
110
+ "Content-Type": "application/json",
111
+ Authorization: "Bearer token"
112
+ }
113
+ };
114
+ const override = {
115
+ headers: {
116
+ "X-Test": "value"
117
+ }
118
+ };
119
+ const result = mergeRequestInit(base, override);
120
+ expect([...new Headers(result.headers)]).toEqual([
121
+ ["authorization", "Bearer token"],
122
+ ["content-type", "application/json"],
123
+ ["x-test", "value"]
124
+ ]);
125
+ expect(mergeHeadersInitSpy).toHaveBeenCalledTimes(1);
126
+ expect(mergeHeadersInitSpy).toHaveBeenCalledWith(
127
+ base.headers,
128
+ override.headers
129
+ );
130
+ mergeHeadersInitSpy.mockRestore();
131
+ });
132
+ });
133
+ });
@@ -0,0 +1,106 @@
1
+ import {
2
+ mergeRequestInit
3
+ } from "../chunk-LYXJUKKR.mjs";
4
+ import {
5
+ headersInit_exports
6
+ } from "../chunk-SMMDKVWH.mjs";
7
+ import "../chunk-7P6ASYW6.mjs";
8
+
9
+ // src/utils/requestInit.test.ts
10
+ describe("mergeRequestInit", () => {
11
+ test("RequestInit\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30DE\u30FC\u30B8\u3067\u304D\u308B", () => {
12
+ const base = {
13
+ method: "GET",
14
+ cache: "force-cache"
15
+ };
16
+ const overrideSignal = new AbortController().signal;
17
+ const override = {
18
+ method: "POST",
19
+ body: JSON.stringify({ key: "value" }),
20
+ headers: {
21
+ "Content-Type": "application/json"
22
+ },
23
+ cache: "no-cache",
24
+ signal: overrideSignal
25
+ };
26
+ const result = mergeRequestInit(base, override);
27
+ expect(result).toEqual({
28
+ cache: "no-cache",
29
+ method: "POST",
30
+ headers: {
31
+ "Content-Type": "application/json"
32
+ },
33
+ body: JSON.stringify({ key: "value" }),
34
+ signal: overrideSignal
35
+ });
36
+ });
37
+ test("header\u4EE5\u5916\u306F\u3001null\u3084undefined\u3092\u8A2D\u5B9A\u3059\u308B\u4E8B\u3067base\u306E\u8A2D\u5B9A\u3092\u7121\u52B9\u306B\u3067\u304D\u308B", () => {
38
+ const base = {
39
+ method: "POST",
40
+ body: "request body",
41
+ mode: "cors",
42
+ signal: new AbortController().signal,
43
+ headers: {
44
+ Authorization: "Bearer token"
45
+ }
46
+ };
47
+ const override = {
48
+ body: null,
49
+ mode: void 0,
50
+ signal: null
51
+ };
52
+ const result = mergeRequestInit(base, override);
53
+ expect(result).toEqual({
54
+ method: "POST",
55
+ body: null,
56
+ mode: void 0,
57
+ headers: {
58
+ Authorization: "Bearer token"
59
+ },
60
+ signal: null
61
+ });
62
+ });
63
+ describe("headers\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u7279\u6B8A\u51E6\u7406", () => {
64
+ test("headers\u3092\u5408\u6210\u3059\u308B\u3068\u304D\u3001\u7247\u65B9\u306E\u307F\u6307\u5B9A\u304C\u3042\u308B\u5834\u5408\u306F\u3001\u305D\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u305D\u306E\u307E\u307E\u8FD4\u3059\u3088\u3046\u3059\u308B", () => {
65
+ const arr = [["X-Test", "value"]];
66
+ expect(mergeRequestInit({ headers: arr }, {}).headers).toBe(arr);
67
+ expect(mergeRequestInit({}, { headers: arr }).headers).toBe(arr);
68
+ const record = { "X-Test": "value" };
69
+ expect(mergeRequestInit({ headers: record }, {}).headers).toBe(record);
70
+ expect(mergeRequestInit({}, { headers: record }).headers).toBe(record);
71
+ const instance = new Headers({ "X-Test": "value" });
72
+ expect(mergeRequestInit({ headers: instance }, {}).headers).toBe(
73
+ instance
74
+ );
75
+ expect(mergeRequestInit({}, { headers: instance }).headers).toBe(
76
+ instance
77
+ );
78
+ });
79
+ test("headers\u304C\u4E21\u65B9\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u6642\u306F\u3001mergeHeadersInit\u3092\u4F7F\u7528\u3057\u3066\u30DE\u30FC\u30B8\u3055\u308C\u308B", () => {
80
+ const mergeHeadersInitSpy = jest.spyOn(headersInit_exports, "mergeHeadersInit");
81
+ const base = {
82
+ headers: {
83
+ "Content-Type": "application/json",
84
+ Authorization: "Bearer token"
85
+ }
86
+ };
87
+ const override = {
88
+ headers: {
89
+ "X-Test": "value"
90
+ }
91
+ };
92
+ const result = mergeRequestInit(base, override);
93
+ expect([...new Headers(result.headers)]).toEqual([
94
+ ["authorization", "Bearer token"],
95
+ ["content-type", "application/json"],
96
+ ["x-test", "value"]
97
+ ]);
98
+ expect(mergeHeadersInitSpy).toHaveBeenCalledTimes(1);
99
+ expect(mergeHeadersInitSpy).toHaveBeenCalledWith(
100
+ base.headers,
101
+ override.headers
102
+ );
103
+ mergeHeadersInitSpy.mockRestore();
104
+ });
105
+ });
106
+ });
package/dist/zod.mjs CHANGED
@@ -2,6 +2,7 @@ import {
2
2
  isZodError,
3
3
  schemaForType
4
4
  } from "./chunk-JCZWXJBU.mjs";
5
+ import "./chunk-7P6ASYW6.mjs";
5
6
  export {
6
7
  isZodError,
7
8
  schemaForType
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@readyfor/api-client-base",
3
- "version": "0.242.1",
3
+ "version": "0.243.0-pr981.52c46aa",
4
4
  "license": "SEE LICENSE IN LICENSE.md",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -27,9 +27,6 @@
27
27
  ]
28
28
  }
29
29
  },
30
- "scripts": {
31
- "build": "tsup"
32
- },
33
30
  "dependencies": {
34
31
  "qs": "6.14.0",
35
32
  "zod": "^3.24.1"
@@ -38,9 +35,9 @@
38
35
  "@types/qs": "6.9.18",
39
36
  "@types/react": "19.1.2",
40
37
  "@types/use-sync-external-store": "1.5.0",
41
- "react": "catalog:react19",
42
- "swr": "catalog:",
43
- "use-sync-external-store": "catalog:use-sync-external-store"
38
+ "react": "19.1.0",
39
+ "swr": "2.3.3",
40
+ "use-sync-external-store": "1.5.0"
44
41
  },
45
42
  "peerDependencies": {
46
43
  "react": ">=18.x <=19.x",
@@ -70,5 +67,7 @@
70
67
  "src"
71
68
  ]
72
69
  },
73
- "gitHead": "5ab6de0f074cb6e80534983a87ec28bb7dfe0b4d"
74
- }
70
+ "scripts": {
71
+ "build": "tsup"
72
+ }
73
+ }
@@ -1,13 +0,0 @@
1
- import {
2
- createStore
3
- } from "./chunk-3SEO7S3Q.mjs";
4
-
5
- // src/apiClientConfigStore.ts
6
- var defaultConfig = {};
7
- var store = createStore(defaultConfig);
8
- var setApiClientConfig = (config) => store.setState(() => config);
9
-
10
- export {
11
- store,
12
- setApiClientConfig
13
- };
@@ -1,62 +0,0 @@
1
- import {
2
- useApiClientConfigContext
3
- } from "./chunk-5ZI7SAUQ.mjs";
4
-
5
- // src/react/useApiClientConfig.ts
6
- import { useCallback, useMemo } from "react";
7
- import { useSyncExternalStore } from "use-sync-external-store/shim/index.js";
8
- import { useSyncExternalStoreWithSelector } from "use-sync-external-store/shim/with-selector.js";
9
- var useApiClientConfig = () => {
10
- const store = useApiClientConfigContext();
11
- return useSyncExternalStore(store.subscribe, store.getState);
12
- };
13
- var useApiClientConfigWithSelector = (selector) => {
14
- const store = useApiClientConfigContext();
15
- return useSyncExternalStoreWithSelector(
16
- store.subscribe,
17
- store.getState,
18
- null,
19
- selector
20
- );
21
- };
22
- var useRequestInit = (customRequestInit = {}) => {
23
- const { defaultRequestInit = {} } = useApiClientConfig();
24
- const keys = useMemo(
25
- () => Object.keys({
26
- ...defaultRequestInit,
27
- ...customRequestInit
28
- }),
29
- [defaultRequestInit, customRequestInit]
30
- );
31
- const get = useCallback((key) => {
32
- if (customRequestInit[key] === void 0) {
33
- return defaultRequestInit[key];
34
- }
35
- if (defaultRequestInit[key] === void 0) {
36
- return customRequestInit[key];
37
- }
38
- if (typeof customRequestInit[key] === "object" && typeof defaultRequestInit[key] === "object") {
39
- return { ...defaultRequestInit[key], ...customRequestInit[key] };
40
- }
41
- if (Array.isArray(customRequestInit[key]) && Array.isArray(defaultRequestInit[key])) {
42
- return [...defaultRequestInit[key], ...customRequestInit[key]];
43
- }
44
- return customRequestInit[key] ?? defaultRequestInit[key];
45
- }, []);
46
- return useMemo(
47
- () => keys.reduce(
48
- (acc, key) => ({
49
- ...acc,
50
- [key]: get(key)
51
- }),
52
- {}
53
- ),
54
- [keys, get]
55
- );
56
- };
57
-
58
- export {
59
- useApiClientConfig,
60
- useApiClientConfigWithSelector,
61
- useRequestInit
62
- };