@sebspark/openapi-client 1.0.0 → 1.2.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
@@ -27,7 +27,7 @@ import { TypedClient } from '@sebspark/openapi-client'
27
27
  import { MarketdataClient } from './schemas/marketdata'
28
28
 
29
29
  const client = TypedClient<MarketdataClient>(`https://example.com/api`)
30
- const {data} = await client.get('/markets)
30
+ const {data} = await client.get('/markets')
31
31
  ```
32
32
 
33
33
  ## Example
package/dist/index.js CHANGED
@@ -41,47 +41,50 @@ var import_retry = require("@sebspark/retry");
41
41
  var import_axios = __toESM(require("axios"));
42
42
  var TypedClient = (baseURL, globalOptions) => {
43
43
  const client = {
44
- get: (url, args, opts) => callServer(baseURL, url, "get", args, globalOptions == null ? void 0 : globalOptions.retry, opts == null ? void 0 : opts.retry),
45
- post: (url, args, opts) => callServer(baseURL, url, "post", args, globalOptions == null ? void 0 : globalOptions.retry, opts == null ? void 0 : opts.retry),
46
- put: (url, args, opts) => callServer(baseURL, url, "put", args, globalOptions == null ? void 0 : globalOptions.retry, opts == null ? void 0 : opts.retry),
47
- patch: (url, args, opts) => callServer(
48
- baseURL,
49
- url,
50
- "patch",
51
- args,
52
- globalOptions == null ? void 0 : globalOptions.retry,
53
- opts == null ? void 0 : opts.retry
54
- ),
55
- delete: (url, args, opts) => callServer(
56
- baseURL,
57
- url,
58
- "delete",
59
- args,
60
- globalOptions == null ? void 0 : globalOptions.retry,
61
- opts == null ? void 0 : opts.retry
62
- )
44
+ get: (url, args, opts) => callServer(mergeArgs(baseURL, url, "get", args, opts, globalOptions)),
45
+ post: (url, args, opts) => callServer(mergeArgs(baseURL, url, "post", args, opts, globalOptions)),
46
+ put: (url, args, opts) => callServer(mergeArgs(baseURL, url, "put", args, opts, globalOptions)),
47
+ patch: (url, args, opts) => callServer(mergeArgs(baseURL, url, "patch", args, opts, globalOptions)),
48
+ delete: (url, args, opts) => callServer(mergeArgs(baseURL, url, "delete", args, opts, globalOptions))
63
49
  };
64
50
  return client;
65
51
  };
66
- var callServer = async (baseURL, _url, method, args, ...retrySettings) => {
52
+ var callServer = async (args) => {
67
53
  try {
68
- const url = setParams(_url, args == null ? void 0 : args.params);
69
54
  const { headers, data } = await (0, import_retry.retry)(
70
55
  () => import_axios.default.request({
71
- baseURL,
72
- url,
73
- method,
74
- headers: args == null ? void 0 : args.headers,
75
- params: args == null ? void 0 : args.query,
76
- data: args == null ? void 0 : args.body
56
+ baseURL: args.baseUrl,
57
+ url: args.url,
58
+ method: args.method,
59
+ headers: args.headers,
60
+ params: args.params,
61
+ data: args.body
77
62
  }),
78
- ...retrySettings
63
+ args.retry
79
64
  );
80
65
  return { headers, data };
81
66
  } catch (error) {
82
67
  throw (0, import_openapi_core.fromAxiosError)(error);
83
68
  }
84
69
  };
70
+ var mergeArgs = (baseUrl, url, method, requestArgs, extras, global) => {
71
+ const params = merge("params", global, requestArgs, extras);
72
+ const query = merge("query", global, requestArgs, extras);
73
+ const headers = merge("headers", global, requestArgs, extras);
74
+ const body = merge("body", global, requestArgs, extras);
75
+ const retry2 = merge("retry", global, requestArgs, extras);
76
+ const merged = {
77
+ url: setParams(url, params),
78
+ baseUrl,
79
+ method,
80
+ params: query,
81
+ headers,
82
+ body,
83
+ retry: retry2
84
+ };
85
+ return merged;
86
+ };
87
+ var merge = (prop, ...args) => Object.assign({}, ...args.map((a) => (a == null ? void 0 : a[prop]) || {}));
85
88
  var setParams = (url, params = {}) => Object.entries(params).reduce(
86
89
  (url2, [key, val]) => url2.replace(new RegExp(`/:${key}(?!\\w|\\d)`, "g"), `/${val}`),
87
90
  url
package/dist/index.mjs CHANGED
@@ -6,47 +6,50 @@ import { retry } from "@sebspark/retry";
6
6
  import axios from "axios";
7
7
  var TypedClient = (baseURL, globalOptions) => {
8
8
  const client = {
9
- get: (url, args, opts) => callServer(baseURL, url, "get", args, globalOptions == null ? void 0 : globalOptions.retry, opts == null ? void 0 : opts.retry),
10
- post: (url, args, opts) => callServer(baseURL, url, "post", args, globalOptions == null ? void 0 : globalOptions.retry, opts == null ? void 0 : opts.retry),
11
- put: (url, args, opts) => callServer(baseURL, url, "put", args, globalOptions == null ? void 0 : globalOptions.retry, opts == null ? void 0 : opts.retry),
12
- patch: (url, args, opts) => callServer(
13
- baseURL,
14
- url,
15
- "patch",
16
- args,
17
- globalOptions == null ? void 0 : globalOptions.retry,
18
- opts == null ? void 0 : opts.retry
19
- ),
20
- delete: (url, args, opts) => callServer(
21
- baseURL,
22
- url,
23
- "delete",
24
- args,
25
- globalOptions == null ? void 0 : globalOptions.retry,
26
- opts == null ? void 0 : opts.retry
27
- )
9
+ get: (url, args, opts) => callServer(mergeArgs(baseURL, url, "get", args, opts, globalOptions)),
10
+ post: (url, args, opts) => callServer(mergeArgs(baseURL, url, "post", args, opts, globalOptions)),
11
+ put: (url, args, opts) => callServer(mergeArgs(baseURL, url, "put", args, opts, globalOptions)),
12
+ patch: (url, args, opts) => callServer(mergeArgs(baseURL, url, "patch", args, opts, globalOptions)),
13
+ delete: (url, args, opts) => callServer(mergeArgs(baseURL, url, "delete", args, opts, globalOptions))
28
14
  };
29
15
  return client;
30
16
  };
31
- var callServer = async (baseURL, _url, method, args, ...retrySettings) => {
17
+ var callServer = async (args) => {
32
18
  try {
33
- const url = setParams(_url, args == null ? void 0 : args.params);
34
19
  const { headers, data } = await retry(
35
20
  () => axios.request({
36
- baseURL,
37
- url,
38
- method,
39
- headers: args == null ? void 0 : args.headers,
40
- params: args == null ? void 0 : args.query,
41
- data: args == null ? void 0 : args.body
21
+ baseURL: args.baseUrl,
22
+ url: args.url,
23
+ method: args.method,
24
+ headers: args.headers,
25
+ params: args.params,
26
+ data: args.body
42
27
  }),
43
- ...retrySettings
28
+ args.retry
44
29
  );
45
30
  return { headers, data };
46
31
  } catch (error) {
47
32
  throw fromAxiosError(error);
48
33
  }
49
34
  };
35
+ var mergeArgs = (baseUrl, url, method, requestArgs, extras, global) => {
36
+ const params = merge("params", global, requestArgs, extras);
37
+ const query = merge("query", global, requestArgs, extras);
38
+ const headers = merge("headers", global, requestArgs, extras);
39
+ const body = merge("body", global, requestArgs, extras);
40
+ const retry2 = merge("retry", global, requestArgs, extras);
41
+ const merged = {
42
+ url: setParams(url, params),
43
+ baseUrl,
44
+ method,
45
+ params: query,
46
+ headers,
47
+ body,
48
+ retry: retry2
49
+ };
50
+ return merged;
51
+ };
52
+ var merge = (prop, ...args) => Object.assign({}, ...args.map((a) => (a == null ? void 0 : a[prop]) || {}));
50
53
  var setParams = (url, params = {}) => Object.entries(params).reduce(
51
54
  (url2, [key, val]) => url2.replace(new RegExp(`/:${key}(?!\\w|\\d)`, "g"), `/${val}`),
52
55
  url
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sebspark/openapi-client",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -9,18 +9,21 @@
9
9
  "dist"
10
10
  ],
11
11
  "scripts": {
12
+ "generate": "yarn openapi-typegen -i ./src/test/ -o ./src/test/",
12
13
  "build": "tsup-node src/index.ts --format esm,cjs --dts",
13
14
  "dev": "tsc --watch --noEmit",
14
15
  "lint": "biome check .",
15
16
  "test": "vitest --passWithNoTests --coverage",
17
+ "pretest": "yarn generate",
16
18
  "typecheck": "vitest --typecheck.only --passWithNoTests"
17
19
  },
18
20
  "devDependencies": {
21
+ "@sebspark/openapi-typegen": "*",
19
22
  "tsconfig": "*"
20
23
  },
21
24
  "dependencies": {
22
25
  "@sebspark/openapi-core": "*",
23
26
  "@sebspark/retry": "*",
24
- "axios": "1.6.5"
27
+ "axios": "1.6.7"
25
28
  }
26
- }
29
+ }