@readyfor/api-client-base 0.243.0-pr981.418eff9 → 0.243.0-pr981.f3ebbce

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 (38) hide show
  1. package/dist/apiClientConfigStore.mjs +4 -3
  2. package/dist/apiError.mjs +1 -0
  3. package/dist/chunk-7P6ASYW6.mjs +9 -0
  4. package/dist/{chunk-EYKOWAWU.mjs → chunk-BIWBZZRT.mjs} +1 -1
  5. package/dist/{chunk-T2LQ4KT5.mjs → chunk-D6TR6JPT.mjs} +1 -1
  6. package/dist/{chunk-Z2IX5DM2.mjs → chunk-DATABM5C.mjs} +1 -1
  7. package/dist/{chunk-X4CTIU5H.mjs → chunk-DLVEXL2J.mjs} +2 -2
  8. package/dist/{chunk-2ORFVC4H.mjs → chunk-LYXJUKKR.mjs} +1 -1
  9. package/dist/{chunk-E3EKMNYV.mjs → chunk-PAUHDRVC.mjs} +41 -32
  10. package/dist/{chunk-GIFAQKW5.mjs → chunk-SMMDKVWH.mjs} +10 -1
  11. package/dist/fetcher.js +40 -52
  12. package/dist/fetcher.mjs +6 -5
  13. package/dist/index.d.mts +0 -1
  14. package/dist/index.d.ts +0 -1
  15. package/dist/index.js +40 -30
  16. package/dist/index.mjs +10 -12
  17. package/dist/react/ApiClientConfigProvider.mjs +5 -4
  18. package/dist/react/index.mjs +6 -5
  19. package/dist/react/swr.mjs +1 -0
  20. package/dist/react/useApiClientConfig.mjs +6 -5
  21. package/dist/requestUrl.mjs +5 -4
  22. package/dist/requestUrl.test.d.mts +2 -0
  23. package/dist/requestUrl.test.d.ts +2 -0
  24. package/dist/requestUrl.test.js +171 -0
  25. package/dist/requestUrl.test.mjs +117 -0
  26. package/dist/store.mjs +1 -0
  27. package/dist/utils/headersInit.mjs +2 -1
  28. package/dist/utils/headersInit.test.d.mts +2 -0
  29. package/dist/utils/headersInit.test.d.ts +2 -0
  30. package/dist/utils/headersInit.test.js +81 -0
  31. package/dist/utils/headersInit.test.mjs +67 -0
  32. package/dist/utils/requestInit.mjs +3 -2
  33. package/dist/utils/requestInit.test.d.mts +2 -0
  34. package/dist/utils/requestInit.test.d.ts +2 -0
  35. package/dist/utils/requestInit.test.js +133 -0
  36. package/dist/utils/requestInit.test.mjs +106 -0
  37. package/dist/zod.mjs +1 -0
  38. package/package.json +2 -5
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (let key of __getOwnPropNames(from))
11
+ if (!__hasOwnProp.call(to, key) && key !== except)
12
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
13
+ }
14
+ return to;
15
+ };
16
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
17
+ // If the importer is in node compatibility mode or this is not an ESM
18
+ // file that has been converted to a CommonJS file using a Babel-
19
+ // compatible transform (i.e. "__esModule" has not been set), then set
20
+ // "default" to the CommonJS "module.exports" for node compatibility.
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+
25
+ // src/requestUrl.ts
26
+ var import_qs = __toESM(require("qs"));
27
+
28
+ // src/store.ts
29
+ var createStore = (initialState) => {
30
+ let state = initialState;
31
+ const listeners = /* @__PURE__ */ new Set();
32
+ const getState = () => state;
33
+ const setState = (fn) => {
34
+ state = fn(state);
35
+ listeners.forEach((listener) => listener());
36
+ };
37
+ const subscribe = (listener) => {
38
+ listeners.add(listener);
39
+ return () => listeners.delete(listener);
40
+ };
41
+ return {
42
+ getState,
43
+ setState,
44
+ subscribe
45
+ };
46
+ };
47
+
48
+ // src/apiClientConfigStore.ts
49
+ var defaultConfig = {};
50
+ var store = createStore(defaultConfig);
51
+
52
+ // src/requestUrl.ts
53
+ function __internal__requestUrl(...args) {
54
+ const config2 = store.getState();
55
+ const rawPath = args[0];
56
+ const params = args[1] || {};
57
+ const query = args[2];
58
+ const hostName = config2.hostName ? typeof config2.hostName === "string" ? config2.hostName : config2.hostName(rawPath) : "";
59
+ const path = hostName + Object.entries(params).reduce(
60
+ (path2, [key, value]) => path2.replace(`{${key}}`, String(value)),
61
+ rawPath
62
+ );
63
+ return query ? `${path}?${import_qs.default.stringify(query)}` : path;
64
+ }
65
+
66
+ // src/requestUrl.test.ts
67
+ var config = {
68
+ hostName: (url) => url.startsWith("/api/v1") ? "https://v1host.example.com" : "https://v2host.example.com"
69
+ };
70
+ describe("__internal_requestUrl", () => {
71
+ describe("path\u306E\u307F\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306E\u6642", () => {
72
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u6642", () => {
73
+ test("path\u304C\u305D\u306E\u307E\u307E\u8FD4\u3055\u308C\u308B", () => {
74
+ store.setState(() => ({}));
75
+ expect(__internal__requestUrl("/api/v1/my/fundraising/header")).toEqual(
76
+ "/api/v1/my/fundraising/header"
77
+ );
78
+ expect(__internal__requestUrl("/api/v2/token")).toEqual(
79
+ "/api/v2/token"
80
+ );
81
+ });
82
+ });
83
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u6642", () => {
84
+ test("hostUrl\u4ED8\u304D\u306EURL\u304C\u8FD4\u3055\u308C\u308B", () => {
85
+ store.setState(() => config);
86
+ expect(__internal__requestUrl("/api/v1/my/fundraising/header")).toEqual(
87
+ "https://v1host.example.com/api/v1/my/fundraising/header"
88
+ );
89
+ expect(__internal__requestUrl("/api/v2/token")).toEqual(
90
+ "https://v2host.example.com/api/v2/token"
91
+ );
92
+ });
93
+ });
94
+ });
95
+ describe("path\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3042\u308B\u6642", () => {
96
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u6642", () => {
97
+ test("path\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u7F6E\u304D\u63DB\u3048\u3089\u308C\u305Fpath\u304C\u8FD4\u3055\u308C\u308B", () => {
98
+ store.setState(() => ({}));
99
+ expect(
100
+ __internal__requestUrl(
101
+ "/api/v1/my/fundraising/projects/{project_id}",
102
+ {
103
+ project_id: 12345
104
+ }
105
+ )
106
+ ).toEqual("/api/v1/my/fundraising/projects/12345");
107
+ });
108
+ });
109
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u6642", () => {
110
+ test("path\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u7F6E\u304D\u63DB\u3048\u3089\u308C\u305FURL\u304C\u8FD4\u3055\u308C\u308B", () => {
111
+ store.setState(() => config);
112
+ expect(
113
+ __internal__requestUrl(
114
+ "/api/v1/my/fundraising/projects/{project_id}",
115
+ {
116
+ project_id: 12345
117
+ }
118
+ )
119
+ ).toEqual(
120
+ "https://v1host.example.com/api/v1/my/fundraising/projects/12345"
121
+ );
122
+ });
123
+ });
124
+ });
125
+ describe("query\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3042\u308B\u6642", () => {
126
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u6642", () => {
127
+ test("query\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3064\u3051\u3089\u308C\u305Fpath\u304C\u8FD4\u3055\u308C\u308B", () => {
128
+ store.setState(() => ({}));
129
+ expect(
130
+ __internal__requestUrl(
131
+ "/api/v1/my/messages/tree",
132
+ {},
133
+ { follow_id: 12345 }
134
+ )
135
+ ).toEqual("/api/v1/my/messages/tree?follow_id=12345");
136
+ expect(
137
+ __internal__requestUrl(
138
+ "/api/v2/contributions/project_info",
139
+ {},
140
+ { project_id: "12345" }
141
+ )
142
+ ).toEqual("/api/v2/contributions/project_info?project_id=12345");
143
+ });
144
+ });
145
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u6642", () => {
146
+ test("query\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3064\u3051\u3089\u308C\u305FURL\u304C\u8FD4\u3055\u308C\u308B", () => {
147
+ store.setState(() => config);
148
+ expect(
149
+ __internal__requestUrl(
150
+ "/api/v1/my/messages/tree",
151
+ {},
152
+ { follow_id: 12345 }
153
+ )
154
+ ).toEqual(
155
+ "https://v1host.example.com/api/v1/my/messages/tree?follow_id=12345"
156
+ );
157
+ expect(
158
+ __internal__requestUrl(
159
+ "/api/v2/contributions/project_info",
160
+ {},
161
+ { project_id: "12345" }
162
+ )
163
+ ).toEqual(
164
+ "https://v2host.example.com/api/v2/contributions/project_info?project_id=12345"
165
+ );
166
+ });
167
+ });
168
+ });
169
+ describe("path\u30D1\u30E9\u30E1\u30FC\u30BF\u3068query\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3042\u308B\u6642", () => {
170
+ });
171
+ });
@@ -0,0 +1,117 @@
1
+ import {
2
+ __internal__requestUrl
3
+ } from "./chunk-BIWBZZRT.mjs";
4
+ import {
5
+ store
6
+ } from "./chunk-DATABM5C.mjs";
7
+ import "./chunk-LYXJUKKR.mjs";
8
+ import "./chunk-SMMDKVWH.mjs";
9
+ import "./chunk-3SEO7S3Q.mjs";
10
+ import "./chunk-7P6ASYW6.mjs";
11
+
12
+ // src/requestUrl.test.ts
13
+ var config = {
14
+ hostName: (url) => url.startsWith("/api/v1") ? "https://v1host.example.com" : "https://v2host.example.com"
15
+ };
16
+ describe("__internal_requestUrl", () => {
17
+ describe("path\u306E\u307F\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306E\u6642", () => {
18
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u6642", () => {
19
+ test("path\u304C\u305D\u306E\u307E\u307E\u8FD4\u3055\u308C\u308B", () => {
20
+ store.setState(() => ({}));
21
+ expect(__internal__requestUrl("/api/v1/my/fundraising/header")).toEqual(
22
+ "/api/v1/my/fundraising/header"
23
+ );
24
+ expect(__internal__requestUrl("/api/v2/token")).toEqual(
25
+ "/api/v2/token"
26
+ );
27
+ });
28
+ });
29
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u6642", () => {
30
+ test("hostUrl\u4ED8\u304D\u306EURL\u304C\u8FD4\u3055\u308C\u308B", () => {
31
+ store.setState(() => config);
32
+ expect(__internal__requestUrl("/api/v1/my/fundraising/header")).toEqual(
33
+ "https://v1host.example.com/api/v1/my/fundraising/header"
34
+ );
35
+ expect(__internal__requestUrl("/api/v2/token")).toEqual(
36
+ "https://v2host.example.com/api/v2/token"
37
+ );
38
+ });
39
+ });
40
+ });
41
+ describe("path\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3042\u308B\u6642", () => {
42
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u6642", () => {
43
+ test("path\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u7F6E\u304D\u63DB\u3048\u3089\u308C\u305Fpath\u304C\u8FD4\u3055\u308C\u308B", () => {
44
+ store.setState(() => ({}));
45
+ expect(
46
+ __internal__requestUrl(
47
+ "/api/v1/my/fundraising/projects/{project_id}",
48
+ {
49
+ project_id: 12345
50
+ }
51
+ )
52
+ ).toEqual("/api/v1/my/fundraising/projects/12345");
53
+ });
54
+ });
55
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u6642", () => {
56
+ test("path\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u7F6E\u304D\u63DB\u3048\u3089\u308C\u305FURL\u304C\u8FD4\u3055\u308C\u308B", () => {
57
+ store.setState(() => config);
58
+ expect(
59
+ __internal__requestUrl(
60
+ "/api/v1/my/fundraising/projects/{project_id}",
61
+ {
62
+ project_id: 12345
63
+ }
64
+ )
65
+ ).toEqual(
66
+ "https://v1host.example.com/api/v1/my/fundraising/projects/12345"
67
+ );
68
+ });
69
+ });
70
+ });
71
+ describe("query\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3042\u308B\u6642", () => {
72
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u6642", () => {
73
+ test("query\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3064\u3051\u3089\u308C\u305Fpath\u304C\u8FD4\u3055\u308C\u308B", () => {
74
+ store.setState(() => ({}));
75
+ expect(
76
+ __internal__requestUrl(
77
+ "/api/v1/my/messages/tree",
78
+ {},
79
+ { follow_id: 12345 }
80
+ )
81
+ ).toEqual("/api/v1/my/messages/tree?follow_id=12345");
82
+ expect(
83
+ __internal__requestUrl(
84
+ "/api/v2/contributions/project_info",
85
+ {},
86
+ { project_id: "12345" }
87
+ )
88
+ ).toEqual("/api/v2/contributions/project_info?project_id=12345");
89
+ });
90
+ });
91
+ describe("url\u306Econfig\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u6642", () => {
92
+ test("query\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3064\u3051\u3089\u308C\u305FURL\u304C\u8FD4\u3055\u308C\u308B", () => {
93
+ store.setState(() => config);
94
+ expect(
95
+ __internal__requestUrl(
96
+ "/api/v1/my/messages/tree",
97
+ {},
98
+ { follow_id: 12345 }
99
+ )
100
+ ).toEqual(
101
+ "https://v1host.example.com/api/v1/my/messages/tree?follow_id=12345"
102
+ );
103
+ expect(
104
+ __internal__requestUrl(
105
+ "/api/v2/contributions/project_info",
106
+ {},
107
+ { project_id: "12345" }
108
+ )
109
+ ).toEqual(
110
+ "https://v2host.example.com/api/v2/contributions/project_info?project_id=12345"
111
+ );
112
+ });
113
+ });
114
+ });
115
+ describe("path\u30D1\u30E9\u30E1\u30FC\u30BF\u3068query\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u3042\u308B\u6642", () => {
116
+ });
117
+ });
package/dist/store.mjs CHANGED
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  createStore
3
3
  } from "./chunk-3SEO7S3Q.mjs";
4
+ import "./chunk-7P6ASYW6.mjs";
4
5
  export {
5
6
  createStore
6
7
  };
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  mergeHeadersInit
3
- } from "../chunk-GIFAQKW5.mjs";
3
+ } from "../chunk-SMMDKVWH.mjs";
4
+ import "../chunk-7P6ASYW6.mjs";
4
5
  export {
5
6
  mergeHeadersInit
6
7
  };
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ // src/utils/headersInit.ts
4
+ var mergeHeadersInit = (baseHeadersInit, overrideHeadersInit) => {
5
+ const base = new Headers(baseHeadersInit);
6
+ const override = new Headers(overrideHeadersInit);
7
+ const setCookies = base.getSetCookie().concat(override.getSetCookie());
8
+ base.delete("set-cookie");
9
+ override.delete("set-cookie");
10
+ const mergedHeaders = new Headers({
11
+ ...Object.fromEntries(base),
12
+ ...Object.fromEntries(override)
13
+ });
14
+ setCookies.forEach((cookie) => {
15
+ mergedHeaders.append("set-cookie", cookie);
16
+ });
17
+ return mergedHeaders;
18
+ };
19
+
20
+ // src/utils/headersInit.test.ts
21
+ describe("mergeHeadersInit", () => {
22
+ test("Set-Cookie\u4EE5\u5916\u306E\u30D8\u30C3\u30C0\u30FC\u306F\u5F15\u6570\u3067\u4E0A\u66F8\u304D\u3055\u308C\u3001Set-Cookie\u30D8\u30C3\u30C0\u30FC\u306F\u4E21\u65B9\u306E\u3082\u306E\u3092\u7D50\u5408\u3059\u308B", () => {
23
+ const base = {
24
+ "Content-Type": "application/json",
25
+ Authorization: "Basic token",
26
+ "Set-Cookie": "base=value",
27
+ "X-Test": "base value"
28
+ };
29
+ const override = {
30
+ Authorization: "Bearer token",
31
+ "X-Test": "override value",
32
+ "Set-Cookie": "override=value"
33
+ };
34
+ const result = new Headers(mergeHeadersInit(base, override));
35
+ expect([...result]).toEqual([
36
+ ["authorization", "Bearer token"],
37
+ ["content-type", "application/json"],
38
+ ["set-cookie", "base=value"],
39
+ ["set-cookie", "override=value"],
40
+ ["x-test", "override value"]
41
+ ]);
42
+ });
43
+ describe("\u5185\u90E8\u3067\u5229\u7528\u3057\u3066\u3044\u308BHeaders\u306E\u56DE\u5E30\u30C6\u30B9\u30C8", () => {
44
+ test("Set-Cookie\u30D8\u30C3\u30C0\u30FC\u306F\u30AB\u30F3\u30DE\u3067\u7D50\u5408\u3055\u308C\u305A\u3001\u305D\u308C\u4EE5\u5916\u306E\u30D8\u30C3\u30C0\u30FC\u306F\u30AB\u30F3\u30DE\u3067\u7D50\u5408\u3055\u308C\u308B", () => {
45
+ expect([
46
+ ...new Headers([
47
+ ["X-Test", "test1"],
48
+ ["X-Test", "test2"],
49
+ ["X-Test", "test3"],
50
+ ["Accept", "text/html"],
51
+ ["Accept", "application/json"],
52
+ ["Accept", "application/xml"],
53
+ ["Set-Cookie", "a=1"],
54
+ ["Set-Cookie", "b=2"],
55
+ ["Set-Cookie", "c=3"]
56
+ ])
57
+ ]).toEqual([
58
+ ["accept", "text/html, application/json, application/xml"],
59
+ ["set-cookie", "a=1"],
60
+ ["set-cookie", "b=2"],
61
+ ["set-cookie", "c=3"],
62
+ ["x-test", "test1, test2, test3"]
63
+ ]);
64
+ });
65
+ test("\u30D8\u30C3\u30C0\u30FC\u306F\u5C0F\u6587\u5B57\u306B\u6B63\u898F\u5316\u3055\u308C\u308B", () => {
66
+ expect([
67
+ ...new Headers([
68
+ ["ACCEPT", "text/html"],
69
+ ["accept", "application/json"],
70
+ ["Set-Cookie", "a=1"],
71
+ ["aCcePT", "application/xml"],
72
+ ["set-cookie", "b=2"]
73
+ ])
74
+ ]).toEqual([
75
+ ["accept", "text/html, application/json, application/xml"],
76
+ ["set-cookie", "a=1"],
77
+ ["set-cookie", "b=2"]
78
+ ]);
79
+ });
80
+ });
81
+ });
@@ -0,0 +1,67 @@
1
+ import {
2
+ mergeHeadersInit
3
+ } from "../chunk-SMMDKVWH.mjs";
4
+ import "../chunk-7P6ASYW6.mjs";
5
+
6
+ // src/utils/headersInit.test.ts
7
+ describe("mergeHeadersInit", () => {
8
+ test("Set-Cookie\u4EE5\u5916\u306E\u30D8\u30C3\u30C0\u30FC\u306F\u5F15\u6570\u3067\u4E0A\u66F8\u304D\u3055\u308C\u3001Set-Cookie\u30D8\u30C3\u30C0\u30FC\u306F\u4E21\u65B9\u306E\u3082\u306E\u3092\u7D50\u5408\u3059\u308B", () => {
9
+ const base = {
10
+ "Content-Type": "application/json",
11
+ Authorization: "Basic token",
12
+ "Set-Cookie": "base=value",
13
+ "X-Test": "base value"
14
+ };
15
+ const override = {
16
+ Authorization: "Bearer token",
17
+ "X-Test": "override value",
18
+ "Set-Cookie": "override=value"
19
+ };
20
+ const result = new Headers(mergeHeadersInit(base, override));
21
+ expect([...result]).toEqual([
22
+ ["authorization", "Bearer token"],
23
+ ["content-type", "application/json"],
24
+ ["set-cookie", "base=value"],
25
+ ["set-cookie", "override=value"],
26
+ ["x-test", "override value"]
27
+ ]);
28
+ });
29
+ describe("\u5185\u90E8\u3067\u5229\u7528\u3057\u3066\u3044\u308BHeaders\u306E\u56DE\u5E30\u30C6\u30B9\u30C8", () => {
30
+ test("Set-Cookie\u30D8\u30C3\u30C0\u30FC\u306F\u30AB\u30F3\u30DE\u3067\u7D50\u5408\u3055\u308C\u305A\u3001\u305D\u308C\u4EE5\u5916\u306E\u30D8\u30C3\u30C0\u30FC\u306F\u30AB\u30F3\u30DE\u3067\u7D50\u5408\u3055\u308C\u308B", () => {
31
+ expect([
32
+ ...new Headers([
33
+ ["X-Test", "test1"],
34
+ ["X-Test", "test2"],
35
+ ["X-Test", "test3"],
36
+ ["Accept", "text/html"],
37
+ ["Accept", "application/json"],
38
+ ["Accept", "application/xml"],
39
+ ["Set-Cookie", "a=1"],
40
+ ["Set-Cookie", "b=2"],
41
+ ["Set-Cookie", "c=3"]
42
+ ])
43
+ ]).toEqual([
44
+ ["accept", "text/html, application/json, application/xml"],
45
+ ["set-cookie", "a=1"],
46
+ ["set-cookie", "b=2"],
47
+ ["set-cookie", "c=3"],
48
+ ["x-test", "test1, test2, test3"]
49
+ ]);
50
+ });
51
+ test("\u30D8\u30C3\u30C0\u30FC\u306F\u5C0F\u6587\u5B57\u306B\u6B63\u898F\u5316\u3055\u308C\u308B", () => {
52
+ expect([
53
+ ...new Headers([
54
+ ["ACCEPT", "text/html"],
55
+ ["accept", "application/json"],
56
+ ["Set-Cookie", "a=1"],
57
+ ["aCcePT", "application/xml"],
58
+ ["set-cookie", "b=2"]
59
+ ])
60
+ ]).toEqual([
61
+ ["accept", "text/html, application/json, application/xml"],
62
+ ["set-cookie", "a=1"],
63
+ ["set-cookie", "b=2"]
64
+ ]);
65
+ });
66
+ });
67
+ });
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  mergeRequestInit
3
- } from "../chunk-2ORFVC4H.mjs";
4
- import "../chunk-GIFAQKW5.mjs";
3
+ } from "../chunk-LYXJUKKR.mjs";
4
+ import "../chunk-SMMDKVWH.mjs";
5
+ import "../chunk-7P6ASYW6.mjs";
5
6
  export {
6
7
  mergeRequestInit
7
8
  };
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -0,0 +1,2 @@
1
+
2
+ export { }
@@ -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
+ });