@openapi-qraft/react 2.5.0-beta.2 → 2.5.0-beta.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
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @openapi-qraft/react
|
|
2
2
|
|
|
3
|
+
## 2.5.0-beta.3
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- c9afb3b: Generate `null` type and return `null` data for the empty (204) responses instead of an empty object `{}`.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- @openapi-qraft/tanstack-query-react-types@2.5.0-beta.3
|
|
12
|
+
|
|
3
13
|
## 2.5.0-beta.2
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
* @beta
|
|
6
6
|
*/ async function processResponse(response) {
|
|
7
7
|
if (response.status === 204 || response.headers.get('Content-Length') === '0') return response.ok ? {
|
|
8
|
-
data:
|
|
8
|
+
data: null,
|
|
9
9
|
response
|
|
10
10
|
} : {
|
|
11
|
-
error:
|
|
11
|
+
error: null,
|
|
12
12
|
response
|
|
13
13
|
};
|
|
14
14
|
const contentType = response.headers.get('Content-Type')?.toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseUtils.cjs","sources":["../../../src/lib/responseUtils.ts"],"sourcesContent":["import type { RequestFnResponse } from '@openapi-qraft/tanstack-query-react-types';\n\n/**\n * Processes the response from the server.\n * @beta\n */\nexport async function processResponse<TData, TError>(\n response: Response\n): Promise<RequestFnResponse<TData, TError>> {\n if (response.status === 204 || response.headers.get('Content-Length') === '0')\n return (\n response.ok ? { data:
|
|
1
|
+
{"version":3,"file":"responseUtils.cjs","sources":["../../../src/lib/responseUtils.ts"],"sourcesContent":["import type { RequestFnResponse } from '@openapi-qraft/tanstack-query-react-types';\n\n/**\n * Processes the response from the server.\n * @beta\n */\nexport async function processResponse<TData, TError>(\n response: Response\n): Promise<RequestFnResponse<TData, TError>> {\n if (response.status === 204 || response.headers.get('Content-Length') === '0')\n return (\n response.ok ? { data: null, response } : { error: null, response }\n ) as RequestFnResponse<TData, TError>;\n\n const contentType = response.headers.get('Content-Type')?.toLowerCase();\n\n const isJsonResponse =\n contentType?.includes('/json') || contentType?.includes('+json');\n\n if (isJsonResponse) {\n // clone response before parsing every time to allow multiple reads\n const jsonResponse = response.clone().json();\n return resolveResponse(\n response,\n response.ok ? jsonResponse : Promise.reject(await jsonResponse)\n );\n }\n\n const textResponse = response.clone().text() as Promise<TData>;\n\n return resolveResponse(\n response,\n response.ok ? textResponse : Promise.reject(await textResponse)\n );\n}\n\n/**\n * Resolves the response from the server.\n * @beta\n */\nexport function resolveResponse<TData, TError>(\n error: Error\n): Promise<RequestFnResponse<TData, TError>>;\nexport function resolveResponse<TData, TError>(\n responseToReturn: Response,\n responsePromise: Promise<TData>\n): Promise<RequestFnResponse<TData, TError>>;\nexport function resolveResponse<TData, TError>(\n responseToReturn: Response | Error,\n responsePromise?: Promise<TData>\n): Promise<RequestFnResponse<TData, TError>> {\n if (!responsePromise)\n return Promise.reject({\n error: responseToReturn,\n response: undefined,\n data: undefined,\n });\n\n return responsePromise\n .then(\n (data) =>\n ({ data, response: responseToReturn }) as RequestFnResponse<\n TData,\n TError\n >\n )\n .catch(\n (error) =>\n ({ error, response: responseToReturn }) as RequestFnResponse<\n TData,\n TError\n >\n );\n}\n"],"names":["processResponse","response","status","headers","get","ok","data","error","contentType","toLowerCase","isJsonResponse","includes","jsonResponse","clone","json","resolveResponse","Promise","reject","textResponse","text","responseToReturn","responsePromise","undefined","then","catch"],"mappings":";;AAEA;;;IAIO,eAAeA,eAAAA,CACpBC,QAAkB,EAAA;AAElB,IAAA,IAAIA,QAASC,CAAAA,MAAM,KAAK,GAAA,IAAOD,SAASE,OAAO,CAACC,GAAG,CAAC,gBAAsB,CAAA,KAAA,GAAA,EACxE,OACEH,QAAAA,CAASI,EAAE,GAAG;QAAEC,IAAM,EAAA,IAAA;AAAML,QAAAA,QAAAA;KAAa,GAAA;QAAEM,KAAO,EAAA,IAAA;AAAMN,QAAAA,QAAAA;AAAS,KAAA,CAAA;AAGrE,IAAA,MAAMO,cAAcP,QAASE,CAAAA,OAAO,CAACC,GAAG,CAAC,cAAiBK,CAAAA,EAAAA,WAAAA,EAAAA,CAAAA;AAE1D,IAAA,MAAMC,cACJF,GAAAA,WAAAA,EAAaG,QAAS,CAAA,OAAA,CAAA,IAAYH,aAAaG,QAAS,CAAA,OAAA,CAAA,CAAA;AAE1D,IAAA,IAAID,cAAgB,EAAA;;AAElB,QAAA,MAAME,YAAeX,GAAAA,QAAAA,CAASY,KAAK,EAAA,CAAGC,IAAI,EAAA,CAAA;QAC1C,OAAOC,eAAAA,CACLd,UACAA,QAASI,CAAAA,EAAE,GAAGO,YAAeI,GAAAA,OAAAA,CAAQC,MAAM,CAAC,MAAML,YAAAA,CAAAA,CAAAA,CAAAA;AAEtD,KAAA;AAEA,IAAA,MAAMM,YAAejB,GAAAA,QAAAA,CAASY,KAAK,EAAA,CAAGM,IAAI,EAAA,CAAA;IAE1C,OAAOJ,eAAAA,CACLd,UACAA,QAASI,CAAAA,EAAE,GAAGa,YAAeF,GAAAA,OAAAA,CAAQC,MAAM,CAAC,MAAMC,YAAAA,CAAAA,CAAAA,CAAAA;AAEtD,CAAA;AAaO,SAASH,eAAAA,CACdK,gBAAkC,EAClCC,eAAgC,EAAA;AAEhC,IAAA,IAAI,CAACA,eAAAA,EACH,OAAOL,OAAAA,CAAQC,MAAM,CAAC;QACpBV,KAAOa,EAAAA,gBAAAA;QACPnB,QAAUqB,EAAAA,SAAAA;QACVhB,IAAMgB,EAAAA,SAAAA;AACR,KAAA,CAAA,CAAA;AAEF,IAAA,OAAOD,eACJE,CAAAA,IAAI,CACH,CAACjB,QACE;AAAEA,YAAAA,IAAAA;YAAML,QAAUmB,EAAAA,gBAAAA;AAAiB,SAAA,CAKvCI,CAAAA,CAAAA,KAAK,CACJ,CAACjB,SACE;AAAEA,YAAAA,KAAAA;YAAON,QAAUmB,EAAAA,gBAAAA;SAAiB,CAAA,CAAA,CAAA;AAK7C;;;;;"}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* @beta
|
|
4
4
|
*/ async function processResponse(response) {
|
|
5
5
|
if (response.status === 204 || response.headers.get('Content-Length') === '0') return response.ok ? {
|
|
6
|
-
data:
|
|
6
|
+
data: null,
|
|
7
7
|
response
|
|
8
8
|
} : {
|
|
9
|
-
error:
|
|
9
|
+
error: null,
|
|
10
10
|
response
|
|
11
11
|
};
|
|
12
12
|
const contentType = response.headers.get('Content-Type')?.toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseUtils.js","sources":["../../../src/lib/responseUtils.ts"],"sourcesContent":["import type { RequestFnResponse } from '@openapi-qraft/tanstack-query-react-types';\n\n/**\n * Processes the response from the server.\n * @beta\n */\nexport async function processResponse<TData, TError>(\n response: Response\n): Promise<RequestFnResponse<TData, TError>> {\n if (response.status === 204 || response.headers.get('Content-Length') === '0')\n return (\n response.ok ? { data:
|
|
1
|
+
{"version":3,"file":"responseUtils.js","sources":["../../../src/lib/responseUtils.ts"],"sourcesContent":["import type { RequestFnResponse } from '@openapi-qraft/tanstack-query-react-types';\n\n/**\n * Processes the response from the server.\n * @beta\n */\nexport async function processResponse<TData, TError>(\n response: Response\n): Promise<RequestFnResponse<TData, TError>> {\n if (response.status === 204 || response.headers.get('Content-Length') === '0')\n return (\n response.ok ? { data: null, response } : { error: null, response }\n ) as RequestFnResponse<TData, TError>;\n\n const contentType = response.headers.get('Content-Type')?.toLowerCase();\n\n const isJsonResponse =\n contentType?.includes('/json') || contentType?.includes('+json');\n\n if (isJsonResponse) {\n // clone response before parsing every time to allow multiple reads\n const jsonResponse = response.clone().json();\n return resolveResponse(\n response,\n response.ok ? jsonResponse : Promise.reject(await jsonResponse)\n );\n }\n\n const textResponse = response.clone().text() as Promise<TData>;\n\n return resolveResponse(\n response,\n response.ok ? textResponse : Promise.reject(await textResponse)\n );\n}\n\n/**\n * Resolves the response from the server.\n * @beta\n */\nexport function resolveResponse<TData, TError>(\n error: Error\n): Promise<RequestFnResponse<TData, TError>>;\nexport function resolveResponse<TData, TError>(\n responseToReturn: Response,\n responsePromise: Promise<TData>\n): Promise<RequestFnResponse<TData, TError>>;\nexport function resolveResponse<TData, TError>(\n responseToReturn: Response | Error,\n responsePromise?: Promise<TData>\n): Promise<RequestFnResponse<TData, TError>> {\n if (!responsePromise)\n return Promise.reject({\n error: responseToReturn,\n response: undefined,\n data: undefined,\n });\n\n return responsePromise\n .then(\n (data) =>\n ({ data, response: responseToReturn }) as RequestFnResponse<\n TData,\n TError\n >\n )\n .catch(\n (error) =>\n ({ error, response: responseToReturn }) as RequestFnResponse<\n TData,\n TError\n >\n );\n}\n"],"names":["processResponse","response","status","headers","get","ok","data","error","contentType","toLowerCase","isJsonResponse","includes","jsonResponse","clone","json","resolveResponse","Promise","reject","textResponse","text","responseToReturn","responsePromise","undefined","then","catch"],"mappings":"AAEA;;;IAIO,eAAeA,eAAAA,CACpBC,QAAkB,EAAA;AAElB,IAAA,IAAIA,QAASC,CAAAA,MAAM,KAAK,GAAA,IAAOD,SAASE,OAAO,CAACC,GAAG,CAAC,gBAAsB,CAAA,KAAA,GAAA,EACxE,OACEH,QAAAA,CAASI,EAAE,GAAG;QAAEC,IAAM,EAAA,IAAA;AAAML,QAAAA,QAAAA;KAAa,GAAA;QAAEM,KAAO,EAAA,IAAA;AAAMN,QAAAA,QAAAA;AAAS,KAAA,CAAA;AAGrE,IAAA,MAAMO,cAAcP,QAASE,CAAAA,OAAO,CAACC,GAAG,CAAC,cAAiBK,CAAAA,EAAAA,WAAAA,EAAAA,CAAAA;AAE1D,IAAA,MAAMC,cACJF,GAAAA,WAAAA,EAAaG,QAAS,CAAA,OAAA,CAAA,IAAYH,aAAaG,QAAS,CAAA,OAAA,CAAA,CAAA;AAE1D,IAAA,IAAID,cAAgB,EAAA;;AAElB,QAAA,MAAME,YAAeX,GAAAA,QAAAA,CAASY,KAAK,EAAA,CAAGC,IAAI,EAAA,CAAA;QAC1C,OAAOC,eAAAA,CACLd,UACAA,QAASI,CAAAA,EAAE,GAAGO,YAAeI,GAAAA,OAAAA,CAAQC,MAAM,CAAC,MAAML,YAAAA,CAAAA,CAAAA,CAAAA;AAEtD,KAAA;AAEA,IAAA,MAAMM,YAAejB,GAAAA,QAAAA,CAASY,KAAK,EAAA,CAAGM,IAAI,EAAA,CAAA;IAE1C,OAAOJ,eAAAA,CACLd,UACAA,QAASI,CAAAA,EAAE,GAAGa,YAAeF,GAAAA,OAAAA,CAAQC,MAAM,CAAC,MAAMC,YAAAA,CAAAA,CAAAA,CAAAA;AAEtD,CAAA;AAaO,SAASH,eAAAA,CACdK,gBAAkC,EAClCC,eAAgC,EAAA;AAEhC,IAAA,IAAI,CAACA,eAAAA,EACH,OAAOL,OAAAA,CAAQC,MAAM,CAAC;QACpBV,KAAOa,EAAAA,gBAAAA;QACPnB,QAAUqB,EAAAA,SAAAA;QACVhB,IAAMgB,EAAAA,SAAAA;AACR,KAAA,CAAA,CAAA;AAEF,IAAA,OAAOD,eACJE,CAAAA,IAAI,CACH,CAACjB,QACE;AAAEA,YAAAA,IAAAA;YAAML,QAAUmB,EAAAA,gBAAAA;AAAiB,SAAA,CAKvCI,CAAAA,CAAAA,KAAK,CACJ,CAACjB,SACE;AAAEA,YAAAA,KAAAA;YAAON,QAAUmB,EAAAA,gBAAAA;SAAiB,CAAA,CAAA,CAAA;AAK7C;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openapi-qraft/react",
|
|
3
|
-
"version": "2.5.0-beta.
|
|
3
|
+
"version": "2.5.0-beta.3",
|
|
4
4
|
"description": "OpenAPI client for React, providing type-safe requests and dynamic TanStack Query React Hooks via a modular, Proxy-based architecture.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "NODE_ENV=production rollup --config rollup.config.mjs && tsc --project tsconfig.build.json --emitDeclarationOnly",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"sideEffects": false,
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@openapi-qraft/tanstack-query-react-types": "2.5.0-beta.
|
|
18
|
+
"@openapi-qraft/tanstack-query-react-types": "2.5.0-beta.3"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
21
|
"@tanstack/query-core": "^5.0.0",
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
"react": "^18 || ^19"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@openapi-qraft/cli": "2.5.0-beta.
|
|
26
|
+
"@openapi-qraft/cli": "2.5.0-beta.3",
|
|
27
27
|
"@openapi-qraft/eslint-config": "1.0.1",
|
|
28
|
-
"@openapi-qraft/openapi-typescript-plugin": "^1.2.15-beta.
|
|
28
|
+
"@openapi-qraft/openapi-typescript-plugin": "^1.2.15-beta.3",
|
|
29
29
|
"@openapi-qraft/rollup-config": "1.1.1",
|
|
30
|
-
"@openapi-qraft/tanstack-query-react-plugin": "2.5.0-beta.
|
|
31
|
-
"@openapi-qraft/test-fixtures": "1.0
|
|
30
|
+
"@openapi-qraft/tanstack-query-react-plugin": "2.5.0-beta.3",
|
|
31
|
+
"@openapi-qraft/test-fixtures": "1.1.0-beta.1",
|
|
32
32
|
"@tanstack/query-core": "^5.66.3",
|
|
33
33
|
"@tanstack/react-query": "^5.66.3",
|
|
34
34
|
"@testing-library/dom": "^10.4.0",
|
package/src/lib/responseUtils.ts
CHANGED
|
@@ -9,7 +9,7 @@ export async function processResponse<TData, TError>(
|
|
|
9
9
|
): Promise<RequestFnResponse<TData, TError>> {
|
|
10
10
|
if (response.status === 204 || response.headers.get('Content-Length') === '0')
|
|
11
11
|
return (
|
|
12
|
-
response.ok ? { data:
|
|
12
|
+
response.ok ? { data: null, response } : { error: null, response }
|
|
13
13
|
) as RequestFnResponse<TData, TError>;
|
|
14
14
|
|
|
15
15
|
const contentType = response.headers.get('Content-Type')?.toLowerCase();
|