@sebspark/openapi-client 0.1.0 → 1.0.0
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/README.md +3 -3
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +9 -32
- package/dist/index.mjs +6 -31
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -24,10 +24,10 @@ Use [@sebspark/openapi-typegen](../packages/openapi-typegen)
|
|
|
24
24
|
|
|
25
25
|
```typescript
|
|
26
26
|
import { TypedClient } from '@sebspark/openapi-client'
|
|
27
|
-
import {
|
|
27
|
+
import { MarketdataClient } from './schemas/marketdata'
|
|
28
28
|
|
|
29
|
-
const client = TypedClient<
|
|
30
|
-
const
|
|
29
|
+
const client = TypedClient<MarketdataClient>(`https://example.com/api`)
|
|
30
|
+
const {data} = await client.get('/markets)
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
## Example
|
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
}
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
21
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
22
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
23
|
// file that has been converted to a CommonJS file using a Babel-
|
|
@@ -36,36 +37,8 @@ module.exports = __toCommonJS(src_exports);
|
|
|
36
37
|
|
|
37
38
|
// src/client.ts
|
|
38
39
|
var import_openapi_core = require("@sebspark/openapi-core");
|
|
40
|
+
var import_retry = require("@sebspark/retry");
|
|
39
41
|
var import_axios = __toESM(require("axios"));
|
|
40
|
-
|
|
41
|
-
// src/retry.ts
|
|
42
|
-
var defaultSettings = {
|
|
43
|
-
retryCondition: () => true
|
|
44
|
-
};
|
|
45
|
-
var wait = (ms) => new Promise((resolve) => setTimeout(() => resolve(), ms));
|
|
46
|
-
var retry = async (func, ...settings) => {
|
|
47
|
-
const s = settings.filter((s2) => s2);
|
|
48
|
-
if (!s.length)
|
|
49
|
-
return func();
|
|
50
|
-
const merged = Object.assign(defaultSettings, ...s);
|
|
51
|
-
const makeCall = async (retries = 0) => {
|
|
52
|
-
try {
|
|
53
|
-
const response = await func();
|
|
54
|
-
return response;
|
|
55
|
-
} catch (error) {
|
|
56
|
-
if (merged.retryCondition(error) && retries < merged.maxRetries) {
|
|
57
|
-
retries++;
|
|
58
|
-
await wait(merged.interval(retries));
|
|
59
|
-
return makeCall(retries);
|
|
60
|
-
} else {
|
|
61
|
-
throw error;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
return makeCall(0);
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
// src/client.ts
|
|
69
42
|
var TypedClient = (baseURL, globalOptions) => {
|
|
70
43
|
const client = {
|
|
71
44
|
get: (url, args, opts) => callServer(baseURL, url, "get", args, globalOptions == null ? void 0 : globalOptions.retry, opts == null ? void 0 : opts.retry),
|
|
@@ -93,7 +66,7 @@ var TypedClient = (baseURL, globalOptions) => {
|
|
|
93
66
|
var callServer = async (baseURL, _url, method, args, ...retrySettings) => {
|
|
94
67
|
try {
|
|
95
68
|
const url = setParams(_url, args == null ? void 0 : args.params);
|
|
96
|
-
const
|
|
69
|
+
const { headers, data } = await (0, import_retry.retry)(
|
|
97
70
|
() => import_axios.default.request({
|
|
98
71
|
baseURL,
|
|
99
72
|
url,
|
|
@@ -104,7 +77,7 @@ var callServer = async (baseURL, _url, method, args, ...retrySettings) => {
|
|
|
104
77
|
}),
|
|
105
78
|
...retrySettings
|
|
106
79
|
);
|
|
107
|
-
return
|
|
80
|
+
return { headers, data };
|
|
108
81
|
} catch (error) {
|
|
109
82
|
throw (0, import_openapi_core.fromAxiosError)(error);
|
|
110
83
|
}
|
|
@@ -113,7 +86,11 @@ var setParams = (url, params = {}) => Object.entries(params).reduce(
|
|
|
113
86
|
(url2, [key, val]) => url2.replace(new RegExp(`/:${key}(?!\\w|\\d)`, "g"), `/${val}`),
|
|
114
87
|
url
|
|
115
88
|
);
|
|
89
|
+
|
|
90
|
+
// src/index.ts
|
|
91
|
+
__reExport(src_exports, require("@sebspark/retry"), module.exports);
|
|
116
92
|
// Annotate the CommonJS export names for ESM import in node:
|
|
117
93
|
0 && (module.exports = {
|
|
118
|
-
TypedClient
|
|
94
|
+
TypedClient,
|
|
95
|
+
...require("@sebspark/retry")
|
|
119
96
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -2,36 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
fromAxiosError
|
|
4
4
|
} from "@sebspark/openapi-core";
|
|
5
|
+
import { retry } from "@sebspark/retry";
|
|
5
6
|
import axios from "axios";
|
|
6
|
-
|
|
7
|
-
// src/retry.ts
|
|
8
|
-
var defaultSettings = {
|
|
9
|
-
retryCondition: () => true
|
|
10
|
-
};
|
|
11
|
-
var wait = (ms) => new Promise((resolve) => setTimeout(() => resolve(), ms));
|
|
12
|
-
var retry = async (func, ...settings) => {
|
|
13
|
-
const s = settings.filter((s2) => s2);
|
|
14
|
-
if (!s.length)
|
|
15
|
-
return func();
|
|
16
|
-
const merged = Object.assign(defaultSettings, ...s);
|
|
17
|
-
const makeCall = async (retries = 0) => {
|
|
18
|
-
try {
|
|
19
|
-
const response = await func();
|
|
20
|
-
return response;
|
|
21
|
-
} catch (error) {
|
|
22
|
-
if (merged.retryCondition(error) && retries < merged.maxRetries) {
|
|
23
|
-
retries++;
|
|
24
|
-
await wait(merged.interval(retries));
|
|
25
|
-
return makeCall(retries);
|
|
26
|
-
} else {
|
|
27
|
-
throw error;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
return makeCall(0);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
// src/client.ts
|
|
35
7
|
var TypedClient = (baseURL, globalOptions) => {
|
|
36
8
|
const client = {
|
|
37
9
|
get: (url, args, opts) => callServer(baseURL, url, "get", args, globalOptions == null ? void 0 : globalOptions.retry, opts == null ? void 0 : opts.retry),
|
|
@@ -59,7 +31,7 @@ var TypedClient = (baseURL, globalOptions) => {
|
|
|
59
31
|
var callServer = async (baseURL, _url, method, args, ...retrySettings) => {
|
|
60
32
|
try {
|
|
61
33
|
const url = setParams(_url, args == null ? void 0 : args.params);
|
|
62
|
-
const
|
|
34
|
+
const { headers, data } = await retry(
|
|
63
35
|
() => axios.request({
|
|
64
36
|
baseURL,
|
|
65
37
|
url,
|
|
@@ -70,7 +42,7 @@ var callServer = async (baseURL, _url, method, args, ...retrySettings) => {
|
|
|
70
42
|
}),
|
|
71
43
|
...retrySettings
|
|
72
44
|
);
|
|
73
|
-
return
|
|
45
|
+
return { headers, data };
|
|
74
46
|
} catch (error) {
|
|
75
47
|
throw fromAxiosError(error);
|
|
76
48
|
}
|
|
@@ -79,6 +51,9 @@ var setParams = (url, params = {}) => Object.entries(params).reduce(
|
|
|
79
51
|
(url2, [key, val]) => url2.replace(new RegExp(`/:${key}(?!\\w|\\d)`, "g"), `/${val}`),
|
|
80
52
|
url
|
|
81
53
|
);
|
|
54
|
+
|
|
55
|
+
// src/index.ts
|
|
56
|
+
export * from "@sebspark/retry";
|
|
82
57
|
export {
|
|
83
58
|
TypedClient
|
|
84
59
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sebspark/openapi-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -11,15 +11,16 @@
|
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "tsup-node src/index.ts --format esm,cjs --dts",
|
|
13
13
|
"dev": "tsc --watch --noEmit",
|
|
14
|
-
"lint": "
|
|
14
|
+
"lint": "biome check .",
|
|
15
15
|
"test": "vitest --passWithNoTests --coverage",
|
|
16
|
-
"typecheck": "vitest typecheck --passWithNoTests"
|
|
16
|
+
"typecheck": "vitest --typecheck.only --passWithNoTests"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"tsconfig": "*"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@sebspark/openapi-core": "*",
|
|
23
|
-
"
|
|
23
|
+
"@sebspark/retry": "*",
|
|
24
|
+
"axios": "1.6.5"
|
|
24
25
|
}
|
|
25
26
|
}
|