@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 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 { MarketdataAPIClient } from './schemas/marketdata'
27
+ import { MarketdataClient } from './schemas/marketdata'
28
28
 
29
- const client = TypedClient<MarketdataAPIClient>(`https://example.com/api`)
30
- const markets = await client.get('/markets)
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
@@ -1,4 +1,5 @@
1
1
  import { BaseClient, ClientOptions } from '@sebspark/openapi-core';
2
+ export * from '@sebspark/retry';
2
3
 
3
4
  declare const TypedClient: <C extends Partial<BaseClient>>(baseURL: string, globalOptions?: ClientOptions) => C;
4
5
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { BaseClient, ClientOptions } from '@sebspark/openapi-core';
2
+ export * from '@sebspark/retry';
2
3
 
3
4
  declare const TypedClient: <C extends Partial<BaseClient>>(baseURL: string, globalOptions?: ClientOptions) => C;
4
5
 
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 response = await retry(
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 response.data;
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 response = await retry(
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 response.data;
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": "0.1.0",
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": "eslint \"src/**/*.ts*\"",
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
- "axios": "1.6.0"
23
+ "@sebspark/retry": "*",
24
+ "axios": "1.6.5"
24
25
  }
25
26
  }