@furystack/rest-client-fetch 8.0.31 → 8.0.33
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 +11 -68
- package/README.md +138 -7
- package/esm/create-client.d.ts.map +1 -1
- package/esm/create-client.js.map +1 -1
- package/esm/create-client.spec.js +11 -14
- package/esm/create-client.spec.js.map +1 -1
- package/package.json +3 -3
- package/src/create-client.spec.ts +13 -14
- package/src/create-client.ts +6 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,78 +1,21 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
3
|
+
## [8.0.33] - 2026-01-26
|
|
5
4
|
|
|
6
|
-
###
|
|
5
|
+
### ⬆️ Dependencies
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
- Updated `@furystack/inject` with fix for singleton injector reference being overwritten by child injectors
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
## [8.0.32] - 2026-01-22
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
### ⬆️ Dependencies
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
- Dependency updates
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
### 📚 Documentation
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
- Expanded README with detailed usage examples and API documentation
|
|
19
18
|
|
|
20
|
-
|
|
19
|
+
### 🔧 Chores
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
25
|
-
|
|
26
|
-
### [3.0.24](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@3.0.23...@furystack/rest-client-fetch@3.0.24) (2021-12-08)
|
|
27
|
-
|
|
28
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
29
|
-
|
|
30
|
-
### [3.0.23](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@3.0.22...@furystack/rest-client-fetch@3.0.23) (2021-11-30)
|
|
31
|
-
|
|
32
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
33
|
-
|
|
34
|
-
### [3.0.22](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@3.0.21...@furystack/rest-client-fetch@3.0.22) (2021-11-29)
|
|
35
|
-
|
|
36
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
37
|
-
|
|
38
|
-
### [3.0.21](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@3.0.20...@furystack/rest-client-fetch@3.0.21) (2021-11-19)
|
|
39
|
-
|
|
40
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
41
|
-
|
|
42
|
-
### [3.0.20](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@3.0.19...@furystack/rest-client-fetch@3.0.20) (2021-11-09)
|
|
43
|
-
|
|
44
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
45
|
-
|
|
46
|
-
### [3.0.19](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@3.0.18...@furystack/rest-client-fetch@3.0.19) (2021-10-15)
|
|
47
|
-
|
|
48
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
49
|
-
|
|
50
|
-
### [3.0.18](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@3.0.17...@furystack/rest-client-fetch@3.0.18) (2021-10-05)
|
|
51
|
-
|
|
52
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
53
|
-
|
|
54
|
-
### [3.0.17](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@3.0.16...@furystack/rest-client-fetch@3.0.17) (2021-09-16)
|
|
55
|
-
|
|
56
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
57
|
-
|
|
58
|
-
### [3.0.16](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@3.0.15...@furystack/rest-client-fetch@3.0.16) (2021-08-27)
|
|
59
|
-
|
|
60
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
61
|
-
|
|
62
|
-
### [3.0.15](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@3.0.14...@furystack/rest-client-fetch@3.0.15) (2021-08-19)
|
|
63
|
-
|
|
64
|
-
**Note:** Version bump only for package @furystack/rest-client-fetch
|
|
65
|
-
|
|
66
|
-
### [3.0.14](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@1.2.21...@furystack/rest-client-fetch@3.0.14) (2021-08-19)
|
|
67
|
-
|
|
68
|
-
### 🐛 Bug Fixes
|
|
69
|
-
|
|
70
|
-
- **rest-client-fetch:** added response ([ab5938a](https://github.com/furystack/furystack/commit/ab5938a6b02de40ae19095adc3c620b1960c1f65))
|
|
71
|
-
- **rest-client-fetch:** response parsing ([6cd03fc](https://github.com/furystack/furystack/commit/6cd03fc6d8efafaa712e1196d08accc0ae1f9046))
|
|
72
|
-
|
|
73
|
-
### [3.0.13](https://github.com/furystack/furystack/compare/@furystack/rest-client-fetch@1.2.21...@furystack/rest-client-fetch@3.0.13) (2021-07-30)
|
|
74
|
-
|
|
75
|
-
### 🐛 Bug Fixes
|
|
76
|
-
|
|
77
|
-
- **rest-client-fetch:** added response ([ab5938a](https://github.com/furystack/furystack/commit/ab5938a6b02de40ae19095adc3c620b1960c1f65))
|
|
78
|
-
- **rest-client-fetch:** response parsing ([6cd03fc](https://github.com/furystack/furystack/commit/6cd03fc6d8efafaa712e1196d08accc0ae1f9046))
|
|
21
|
+
- Migrated to centralized changelog management system
|
package/README.md
CHANGED
|
@@ -1,16 +1,147 @@
|
|
|
1
|
-
# rest-client-fetch
|
|
1
|
+
# @furystack/rest-client-fetch
|
|
2
2
|
|
|
3
|
-
REST client
|
|
4
|
-
|
|
3
|
+
REST client for FuryStack with native Fetch implementation.
|
|
4
|
+
|
|
5
|
+
This package provides a type-safe client for consuming REST APIs defined with `@furystack/rest` in the browser.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @furystack/rest-client-fetch
|
|
11
|
+
# or
|
|
12
|
+
yarn add @furystack/rest-client-fetch
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
### Basic Setup
|
|
5
18
|
|
|
6
19
|
```ts
|
|
7
|
-
import { MyApi } from 'my-common-package'
|
|
8
20
|
import { createClient } from '@furystack/rest-client-fetch'
|
|
21
|
+
import type { MyApi } from 'my-common-package'
|
|
9
22
|
|
|
10
|
-
|
|
11
|
-
endpointUrl: 'http://
|
|
23
|
+
const api = createClient<MyApi>({
|
|
24
|
+
endpointUrl: 'http://localhost:8080/api',
|
|
12
25
|
requestInit: {
|
|
13
|
-
credentials: 'include',
|
|
26
|
+
credentials: 'include', // Include cookies for authentication
|
|
14
27
|
},
|
|
15
28
|
})
|
|
16
29
|
```
|
|
30
|
+
|
|
31
|
+
### Making Requests
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
// GET request
|
|
35
|
+
const { result, response } = await api({
|
|
36
|
+
method: 'GET',
|
|
37
|
+
action: '/users',
|
|
38
|
+
})
|
|
39
|
+
console.log(result) // Array of users
|
|
40
|
+
|
|
41
|
+
// GET request with URL parameters
|
|
42
|
+
const { result: user } = await api({
|
|
43
|
+
method: 'GET',
|
|
44
|
+
action: '/users/:id',
|
|
45
|
+
url: { id: '123' },
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
// GET request with query parameters
|
|
49
|
+
const { result: filtered } = await api({
|
|
50
|
+
method: 'GET',
|
|
51
|
+
action: '/users',
|
|
52
|
+
query: { role: 'admin', active: true },
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
// POST request with body
|
|
56
|
+
const { result: created } = await api({
|
|
57
|
+
method: 'POST',
|
|
58
|
+
action: '/users',
|
|
59
|
+
body: { name: 'John', email: 'john@example.com' },
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
// Request with custom headers
|
|
63
|
+
const { result } = await api({
|
|
64
|
+
method: 'GET',
|
|
65
|
+
action: '/protected-resource',
|
|
66
|
+
headers: { 'X-Custom-Header': 'value' },
|
|
67
|
+
})
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Error Handling
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import { ResponseError } from '@furystack/rest-client-fetch'
|
|
74
|
+
|
|
75
|
+
try {
|
|
76
|
+
const { result } = await api({
|
|
77
|
+
method: 'GET',
|
|
78
|
+
action: '/users/:id',
|
|
79
|
+
url: { id: 'not-found' },
|
|
80
|
+
})
|
|
81
|
+
} catch (error) {
|
|
82
|
+
if (error instanceof ResponseError) {
|
|
83
|
+
console.log('Status:', error.response.status)
|
|
84
|
+
console.log('Message:', error.message)
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Custom Response Parser
|
|
90
|
+
|
|
91
|
+
```ts
|
|
92
|
+
const { result } = await api({
|
|
93
|
+
method: 'GET',
|
|
94
|
+
action: '/binary-data',
|
|
95
|
+
responseParser: async (response) => {
|
|
96
|
+
const blob = await response.blob()
|
|
97
|
+
return { response, result: blob }
|
|
98
|
+
},
|
|
99
|
+
})
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Custom Query Serialization
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
const api = createClient<MyApi>({
|
|
106
|
+
endpointUrl: 'http://localhost:8080/api',
|
|
107
|
+
serializeQueryParams: (params) => {
|
|
108
|
+
// Custom serialization logic
|
|
109
|
+
return `?${new URLSearchParams(params).toString()}`
|
|
110
|
+
},
|
|
111
|
+
})
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Client Options
|
|
115
|
+
|
|
116
|
+
| Option | Type | Description |
|
|
117
|
+
| ---------------------- | ------------------------ | ---------------------------------------------------- |
|
|
118
|
+
| `endpointUrl` | `string` | Base URL for the API |
|
|
119
|
+
| `fetch` | `typeof fetch` | Custom fetch implementation (optional) |
|
|
120
|
+
| `requestInit` | `RequestInit` | Default request options (headers, credentials, etc.) |
|
|
121
|
+
| `serializeQueryParams` | `(param: any) => string` | Custom query string serializer |
|
|
122
|
+
|
|
123
|
+
## Type Safety
|
|
124
|
+
|
|
125
|
+
The client is fully type-safe. When you define your API interface:
|
|
126
|
+
|
|
127
|
+
```ts
|
|
128
|
+
// In your common package
|
|
129
|
+
interface MyApi extends RestApi {
|
|
130
|
+
GET: {
|
|
131
|
+
'/users': { result: User[] }
|
|
132
|
+
'/users/:id': { result: User; url: { id: string } }
|
|
133
|
+
}
|
|
134
|
+
POST: {
|
|
135
|
+
'/users': { result: User; body: CreateUserDto }
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
The client will enforce correct types for:
|
|
141
|
+
|
|
142
|
+
- Method (`GET`, `POST`, etc.)
|
|
143
|
+
- Action (the URL path)
|
|
144
|
+
- URL parameters
|
|
145
|
+
- Query parameters
|
|
146
|
+
- Request body
|
|
147
|
+
- Response type
|
|
@@ -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":"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"}
|
package/esm/create-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client.js","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAoBnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAK,QAAkB,EAA8C,EAAE;IAC/G,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAA;IAE3D,IAAI,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;QAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,WAAW,KAAK,gBAAgB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAM,CAAA;QAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;QAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAS,EAAE,CAAA;IACxC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,MAA+B,EAAE,EAAE,CAChE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;AAE5F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAoC,GAAW,EAAE,MAAS,EAAE,EAAE,CACxF,OAAO,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAA;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAoB,aAA4B,EAAE,EAAE;IAC9E,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,IAAI,KAAK,CAAA;IAEhD,OAAO,KAAK,EASV,OAOU,EACyC,EAAE;QACrD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"create-client.js","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAoBnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAK,QAAkB,EAA8C,EAAE;IAC/G,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACxD,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAA;IAE3D,IAAI,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;QAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,WAAW,KAAK,gBAAgB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAM,CAAA;QAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;QAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAS,EAAE,CAAA;IACxC,CAAC;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,MAA+B,EAAE,EAAE,CAChE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;AAE5F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAoC,GAAW,EAAE,MAAS,EAAE,EAAE,CACxF,OAAO,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAA;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAoB,aAA4B,EAAE,EAAE;IAC9E,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,IAAI,KAAK,CAAA;IAEhD,OAAO,KAAK,EASV,OAOU,EACyC,EAAE;QACrD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAKrC,CAAA;QAED,MAAM,SAAS,GACb,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,MAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,MAAiB,CAAC;YAChF,CAAC,KAAK;gBACJ,CAAC,CAAC,aAAa,CAAC,oBAAoB;oBAClC,CAAC,CAAC,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC;oBAC3C,CAAC,CAAC,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC,CAAA;QAET,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE;YAC3F,GAAG,aAAa,CAAC,WAAW;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;YACjC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC7C,GAAG,CAAC,OAAO;gBACT,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,GAAG,aAAa,CAAC,WAAW,EAAE,OAAO;wBACrC,GAAG,OAAO;qBACX;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAA;QAEF,OAAO,CAAC,OAAO,CAAC,cAAc,IAAI,qBAAqB,CAAC,CAAC,QAAQ,CAAC,CAAA;IACpE,CAAC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
2
1
|
import { describe, expect, it, vi } from 'vitest';
|
|
3
2
|
import { createClient } from './create-client.js';
|
|
4
3
|
const endpointUrl = 'http://localhost';
|
|
5
|
-
|
|
6
|
-
globalThis.fetch = globalThis.fecth || (() => null);
|
|
4
|
+
globalThis.fetch = globalThis.fetch || (() => null);
|
|
7
5
|
describe('@furystack/rest-client-fetch', () => {
|
|
8
6
|
it('Should return a method', () => {
|
|
9
|
-
|
|
10
|
-
const result = createClient({ endpointUrl, fetch: () => undefined });
|
|
7
|
+
const result = createClient({ endpointUrl, fetch });
|
|
11
8
|
expect(typeof result).toBe('function');
|
|
12
9
|
});
|
|
13
10
|
it('Should create with native Fetch by default', () => {
|
|
@@ -16,10 +13,10 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
16
13
|
});
|
|
17
14
|
it('Should throw if request is not OK', async () => {
|
|
18
15
|
const json = vi.fn(async () => ({ value: 1 }));
|
|
19
|
-
const fetch = vi.fn(async () => ({
|
|
16
|
+
const fetch = vi.fn((async () => ({
|
|
20
17
|
json,
|
|
21
18
|
ok: false,
|
|
22
|
-
}));
|
|
19
|
+
})));
|
|
23
20
|
const client = createClient({
|
|
24
21
|
endpointUrl,
|
|
25
22
|
fetch,
|
|
@@ -37,7 +34,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
37
34
|
}));
|
|
38
35
|
const client = createClient({
|
|
39
36
|
endpointUrl,
|
|
40
|
-
fetch,
|
|
37
|
+
fetch: fetch,
|
|
41
38
|
});
|
|
42
39
|
const result = await client({
|
|
43
40
|
action: '/test',
|
|
@@ -55,7 +52,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
55
52
|
}));
|
|
56
53
|
const client = createClient({
|
|
57
54
|
endpointUrl,
|
|
58
|
-
fetch,
|
|
55
|
+
fetch: fetch,
|
|
59
56
|
});
|
|
60
57
|
const result = await client({
|
|
61
58
|
action: '/test',
|
|
@@ -77,7 +74,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
77
74
|
}));
|
|
78
75
|
const client = createClient({
|
|
79
76
|
endpointUrl,
|
|
80
|
-
fetch,
|
|
77
|
+
fetch: fetch,
|
|
81
78
|
});
|
|
82
79
|
const result = await client({
|
|
83
80
|
action: '/test/:urlValue',
|
|
@@ -99,7 +96,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
99
96
|
}));
|
|
100
97
|
const client = createClient({
|
|
101
98
|
endpointUrl,
|
|
102
|
-
fetch,
|
|
99
|
+
fetch: fetch,
|
|
103
100
|
});
|
|
104
101
|
await client({
|
|
105
102
|
action: '/test',
|
|
@@ -120,7 +117,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
120
117
|
}));
|
|
121
118
|
const client = createClient({
|
|
122
119
|
endpointUrl,
|
|
123
|
-
fetch,
|
|
120
|
+
fetch: fetch,
|
|
124
121
|
});
|
|
125
122
|
await client({
|
|
126
123
|
action: '/test',
|
|
@@ -148,7 +145,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
148
145
|
}));
|
|
149
146
|
const client = createClient({
|
|
150
147
|
endpointUrl,
|
|
151
|
-
fetch,
|
|
148
|
+
fetch: fetch,
|
|
152
149
|
});
|
|
153
150
|
const result = await client({
|
|
154
151
|
action: '/test',
|
|
@@ -178,7 +175,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
178
175
|
}));
|
|
179
176
|
const client = createClient({
|
|
180
177
|
endpointUrl,
|
|
181
|
-
fetch,
|
|
178
|
+
fetch: fetch,
|
|
182
179
|
});
|
|
183
180
|
const result = await client({
|
|
184
181
|
action: '/test',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client.spec.js","sourceRoot":"","sources":["../src/create-client.spec.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"create-client.spec.js","sourceRoot":"","sources":["../src/create-client.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@furystack/rest-client-fetch",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.33",
|
|
4
4
|
"description": "Native browser fetch based REST API implementation for FuryStack",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
},
|
|
38
38
|
"homepage": "https://github.com/furystack/furystack",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@furystack/rest": "^8.0.
|
|
40
|
+
"@furystack/rest": "^8.0.33",
|
|
41
41
|
"path-to-regexp": "^8.3.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"typescript": "^5.9.3",
|
|
45
|
-
"vitest": "^4.0.
|
|
45
|
+
"vitest": "^4.0.17"
|
|
46
46
|
},
|
|
47
47
|
"gitHead": "1045d854bfd8c475b7035471d130d401417a2321"
|
|
48
48
|
}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
2
1
|
import { describe, expect, it, vi } from 'vitest'
|
|
3
2
|
import { createClient } from './create-client.js'
|
|
4
3
|
|
|
5
4
|
const endpointUrl = 'http://localhost'
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
type fetchType = typeof fetch
|
|
7
|
+
|
|
8
|
+
globalThis.fetch = (globalThis as { fetch: fetchType }).fetch || ((() => null) as unknown as fetchType)
|
|
9
9
|
|
|
10
10
|
describe('@furystack/rest-client-fetch', () => {
|
|
11
11
|
it('Should return a method', () => {
|
|
12
|
-
|
|
13
|
-
const result = createClient({ endpointUrl, fetch: () => undefined })
|
|
12
|
+
const result = createClient({ endpointUrl, fetch })
|
|
14
13
|
expect(typeof result).toBe('function')
|
|
15
14
|
})
|
|
16
15
|
|
|
@@ -21,10 +20,10 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
21
20
|
|
|
22
21
|
it('Should throw if request is not OK', async () => {
|
|
23
22
|
const json = vi.fn(async () => ({ value: 1 }))
|
|
24
|
-
const fetch
|
|
23
|
+
const fetch = vi.fn((async () => ({
|
|
25
24
|
json,
|
|
26
25
|
ok: false,
|
|
27
|
-
}))
|
|
26
|
+
})) as unknown as fetchType)
|
|
28
27
|
|
|
29
28
|
const client = createClient<{ GET: { '/test': { result: { foo: number } } } }>({
|
|
30
29
|
endpointUrl,
|
|
@@ -48,7 +47,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
48
47
|
|
|
49
48
|
const client = createClient<{ GET: { '/test': { result: { value: number } } } }>({
|
|
50
49
|
endpointUrl,
|
|
51
|
-
fetch,
|
|
50
|
+
fetch: fetch as unknown as fetchType,
|
|
52
51
|
})
|
|
53
52
|
|
|
54
53
|
const result = await client({
|
|
@@ -73,7 +72,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
73
72
|
GET: { '/test': { result: { value: number }; query: { value: string } } }
|
|
74
73
|
}>({
|
|
75
74
|
endpointUrl,
|
|
76
|
-
fetch,
|
|
75
|
+
fetch: fetch as unknown as fetchType,
|
|
77
76
|
})
|
|
78
77
|
|
|
79
78
|
const result = await client({
|
|
@@ -102,7 +101,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
102
101
|
GET: { '/test/:urlValue': { result: { value: number }; url: { urlValue: string } } }
|
|
103
102
|
}>({
|
|
104
103
|
endpointUrl,
|
|
105
|
-
fetch,
|
|
104
|
+
fetch: fetch as unknown as fetchType,
|
|
106
105
|
})
|
|
107
106
|
|
|
108
107
|
const result = await client({
|
|
@@ -129,7 +128,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
129
128
|
|
|
130
129
|
const client = createClient<{ POST: { '/test': { result: object; body: { foo: number } } } }>({
|
|
131
130
|
endpointUrl,
|
|
132
|
-
fetch,
|
|
131
|
+
fetch: fetch as unknown as fetchType,
|
|
133
132
|
})
|
|
134
133
|
|
|
135
134
|
await client({
|
|
@@ -154,7 +153,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
154
153
|
|
|
155
154
|
const client = createClient<{ POST: { '/test': { result: object; headers: { token: string } } } }>({
|
|
156
155
|
endpointUrl,
|
|
157
|
-
fetch,
|
|
156
|
+
fetch: fetch as unknown as fetchType,
|
|
158
157
|
})
|
|
159
158
|
|
|
160
159
|
await client({
|
|
@@ -188,7 +187,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
188
187
|
POST: { '/test': { result: string; headers: { token: string } } }
|
|
189
188
|
}>({
|
|
190
189
|
endpointUrl,
|
|
191
|
-
fetch,
|
|
190
|
+
fetch: fetch as unknown as fetchType,
|
|
192
191
|
})
|
|
193
192
|
|
|
194
193
|
const result = await client({
|
|
@@ -225,7 +224,7 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
225
224
|
POST: { '/test': { result: string; headers: { token: string } } }
|
|
226
225
|
}>({
|
|
227
226
|
endpointUrl,
|
|
228
|
-
fetch,
|
|
227
|
+
fetch: fetch as unknown as fetchType,
|
|
229
228
|
})
|
|
230
229
|
|
|
231
230
|
const result = await client({
|
package/src/create-client.ts
CHANGED
|
@@ -74,7 +74,12 @@ export const createClient = <T extends RestApi>(clientOptions: ClientOptions) =>
|
|
|
74
74
|
TUrlParams &
|
|
75
75
|
THeaders,
|
|
76
76
|
): Promise<{ response: Response; result: TReturns }> => {
|
|
77
|
-
const { url, query, body, headers } = options as
|
|
77
|
+
const { url, query, body, headers } = options as unknown as {
|
|
78
|
+
url: TUrlParams
|
|
79
|
+
query: TQuery
|
|
80
|
+
body: TBodyType
|
|
81
|
+
headers: THeaders
|
|
82
|
+
}
|
|
78
83
|
|
|
79
84
|
const urlToSend =
|
|
80
85
|
(url ? compileRoute(options.action as string, url) : (options.action as string)) +
|