@mittwald/api-client-commons 2.0.2 → 3.0.0-alpha.1

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.
Files changed (69) hide show
  1. package/README.md +32 -0
  2. package/dist/cjs/core/ApiClientBase.js +16 -0
  3. package/{dist-cjs → dist/cjs}/core/Request.js +1 -4
  4. package/dist/cjs/index.d.ts +3 -0
  5. package/dist/cjs/index.js +19 -0
  6. package/{dist-cjs → dist/cjs}/types/OpenAPIOperation.d.ts +3 -3
  7. package/{dist-cjs/types/Request.d.ts → dist/cjs/types/RequestType.d.ts} +2 -2
  8. package/dist/cjs/types/assertStatus.d.ts +5 -0
  9. package/dist/cjs/types/assertStatus.js +11 -0
  10. package/dist/{types → cjs/types}/index.d.ts +4 -2
  11. package/{dist-cjs → dist/cjs}/types/index.js +4 -1
  12. package/dist/cjs/types/simplify.d.ts +3 -0
  13. package/dist/esm/index.d.ts +3 -0
  14. package/dist/esm/index.js +3 -0
  15. package/dist/{types → esm/types}/OpenAPIOperation.d.ts +3 -3
  16. package/dist/{types/Request.d.ts → esm/types/RequestType.d.ts} +2 -2
  17. package/dist/esm/types/assertStatus.d.ts +5 -0
  18. package/dist/esm/types/assertStatus.js +7 -0
  19. package/{dist-cjs → dist/esm}/types/index.d.ts +4 -2
  20. package/dist/{types → esm/types}/index.js +4 -1
  21. package/dist/esm/types/simplify.d.ts +3 -0
  22. package/package.json +14 -15
  23. package/dist/index.js +0 -1
  24. package/dist/types/Request.js +0 -1
  25. package/dist-cjs/core/ApiClientBase.js +0 -42
  26. /package/{dist-cjs → dist/cjs}/axios.d.ts +0 -0
  27. /package/{dist-cjs → dist/cjs}/axios.js +0 -0
  28. /package/{dist-cjs → dist/cjs}/core/ApiClientBase.d.ts +0 -0
  29. /package/{dist-cjs → dist/cjs}/core/ApiClientError.d.ts +0 -0
  30. /package/{dist-cjs → dist/cjs}/core/ApiClientError.js +0 -0
  31. /package/{dist-cjs → dist/cjs}/core/OpenAPIPath.d.ts +0 -0
  32. /package/{dist-cjs → dist/cjs}/core/OpenAPIPath.js +0 -0
  33. /package/{dist-cjs → dist/cjs}/core/Request.d.ts +0 -0
  34. /package/{dist-cjs → dist/cjs}/core/index.d.ts +0 -0
  35. /package/{dist-cjs → dist/cjs}/core/index.js +0 -0
  36. /package/{dist-cjs → dist/cjs}/types/NullableOnNoRequiredKeysDeep.d.ts +0 -0
  37. /package/{dist-cjs → dist/cjs}/types/NullableOnNoRequiredKeysDeep.js +0 -0
  38. /package/{dist-cjs → dist/cjs}/types/OpenAPIOperation.js +0 -0
  39. /package/{dist-cjs → dist/cjs}/types/RequestFunction.d.ts +0 -0
  40. /package/{dist-cjs → dist/cjs}/types/RequestFunction.js +0 -0
  41. /package/{dist-cjs/index.js → dist/cjs/types/RequestType.js} +0 -0
  42. /package/{dist-cjs → dist/cjs}/types/Response.d.ts +0 -0
  43. /package/{dist-cjs → dist/cjs}/types/Response.js +0 -0
  44. /package/{dist-cjs → dist/cjs}/types/http.d.ts +0 -0
  45. /package/{dist-cjs → dist/cjs}/types/http.js +0 -0
  46. /package/{dist-cjs/types/Request.js → dist/cjs/types/simplify.js} +0 -0
  47. /package/dist/{axios.d.ts → esm/axios.d.ts} +0 -0
  48. /package/dist/{axios.js → esm/axios.js} +0 -0
  49. /package/dist/{core → esm/core}/ApiClientBase.d.ts +0 -0
  50. /package/dist/{core → esm/core}/ApiClientBase.js +0 -0
  51. /package/dist/{core → esm/core}/ApiClientError.d.ts +0 -0
  52. /package/dist/{core → esm/core}/ApiClientError.js +0 -0
  53. /package/dist/{core → esm/core}/OpenAPIPath.d.ts +0 -0
  54. /package/dist/{core → esm/core}/OpenAPIPath.js +0 -0
  55. /package/dist/{core → esm/core}/Request.d.ts +0 -0
  56. /package/dist/{core → esm/core}/Request.js +0 -0
  57. /package/dist/{core → esm/core}/index.d.ts +0 -0
  58. /package/dist/{core → esm/core}/index.js +0 -0
  59. /package/dist/{types → esm/types}/NullableOnNoRequiredKeysDeep.d.ts +0 -0
  60. /package/dist/{types → esm/types}/NullableOnNoRequiredKeysDeep.js +0 -0
  61. /package/dist/{types → esm/types}/OpenAPIOperation.js +0 -0
  62. /package/dist/{types → esm/types}/RequestFunction.d.ts +0 -0
  63. /package/dist/{types → esm/types}/RequestFunction.js +0 -0
  64. /package/{dist-cjs/index.d.ts → dist/esm/types/RequestType.js} +0 -0
  65. /package/dist/{types → esm/types}/Response.d.ts +0 -0
  66. /package/dist/{types → esm/types}/Response.js +0 -0
  67. /package/dist/{types → esm/types}/http.d.ts +0 -0
  68. /package/dist/{types → esm/types}/http.js +0 -0
  69. /package/dist/{index.d.ts → esm/types/simplify.js} +0 -0
package/README.md CHANGED
@@ -1 +1,33 @@
1
1
  Common code base used by `@mittwald/api-client-*` package.
2
+
3
+ ## API
4
+
5
+ ### assertStatus
6
+
7
+ The API client does not validate any response status by design, to give you the
8
+ most flexibility while handling also erroneous responses. If you want to assert
9
+ some desired response status, you can use the `assertStatus` function.
10
+
11
+ #### assertStatus(response, expectedStatus)
12
+
13
+ Returns: void
14
+
15
+ This method throws an `ApiClientError` if the given `response` does not match
16
+ the `expectedStatus`.
17
+
18
+ When you are using TypeScript this function also asserts the correct response
19
+ type.
20
+
21
+ ```ts
22
+ const response = await client.project.getProject({
23
+ pathParameters: {
24
+ projectId: "...",
25
+ },
26
+ });
27
+
28
+ assertStatus(response, 200);
29
+
30
+ const project = response.data;
31
+ // Project properties can now be accessed safely
32
+ const name = project.name;
33
+ ```
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiClientBase = void 0;
4
+ const axios_1 = require("axios");
5
+ const Request_js_1 = require("./Request.js");
6
+ class ApiClientBase {
7
+ constructor(axiosConfig = axios_1.default) {
8
+ this.axios =
9
+ axiosConfig instanceof axios_1.Axios ? axiosConfig : axios_1.default.create(axiosConfig);
10
+ }
11
+ requestFunctionFactory(operation) {
12
+ return (conf) => new Request_js_1.default(this.axios, operation, conf).execute();
13
+ }
14
+ }
15
+ exports.ApiClientBase = ApiClientBase;
16
+ exports.default = ApiClientBase;
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.Request = void 0;
7
- const OpenAPIPath_js_1 = __importDefault(require("./OpenAPIPath.js"));
4
+ const OpenAPIPath_js_1 = require("./OpenAPIPath.js");
8
5
  class Request {
9
6
  constructor(axiosInstance, operationDescriptor, config) {
10
7
  this.axios = axiosInstance;
@@ -0,0 +1,3 @@
1
+ export * from "./core/index.js";
2
+ export * from "./types/index.js";
3
+ export * from "./axios.js";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./core/index.js"), exports);
18
+ __exportStar(require("./types/index.js"), exports);
19
+ __exportStar(require("./axios.js"), exports);
@@ -1,10 +1,10 @@
1
1
  import { AnyResponse, Response } from "./Response.js";
2
- import { AnyRequest, Request } from "./Request.js";
2
+ import { AnyRequest, RequestType } from "./RequestType.js";
3
3
  import { HttpMethod } from "./http.js";
4
- export interface OpenAPIOperation<TIgnoredRequest extends AnyRequest = Request, IgnoredResponse extends AnyResponse = Response> {
4
+ export interface OpenAPIOperation<TIgnoredRequest extends AnyRequest = RequestType, IgnoredResponse extends AnyResponse = Response> {
5
5
  operationId: string;
6
6
  path: string;
7
7
  method: HttpMethod;
8
8
  }
9
9
  export type InferredRequestType<TOp> = TOp extends OpenAPIOperation<infer TReq> ? TReq : never;
10
- export type InferredResponseType<TOp> = TOp extends OpenAPIOperation<Request, infer TRes> ? TRes : never;
10
+ export type InferredResponseType<TOp> = TOp extends OpenAPIOperation<RequestType, infer TRes> ? TRes : never;
@@ -9,6 +9,6 @@ type RequestWithHeaders<THeaders> = THeaders extends null ? object : {
9
9
  headers: THeaders;
10
10
  };
11
11
  type EmptyRequest = Record<string, never>;
12
- export type Request<TData extends HttpPayload = null, TPathParameters extends PathParameters | null = null, THeader extends HttpHeaders | null = null> = TData | TPathParameters | THeader extends null ? EmptyRequest : RequestWithData<TData> & RequestWithPathParameters<TPathParameters> & RequestWithHeaders<THeader>;
13
- export type AnyRequest = Request<any, any, any>;
12
+ export type RequestType<TData extends HttpPayload = null, TPathParameters extends PathParameters | null = null, THeader extends HttpHeaders | null = null> = TData | TPathParameters | THeader extends null ? EmptyRequest : RequestWithData<TData> & RequestWithPathParameters<TPathParameters> & RequestWithHeaders<THeader>;
13
+ export type AnyRequest = RequestType<any, any, any>;
14
14
  export {};
@@ -0,0 +1,5 @@
1
+ import { Response } from "./Response.js";
2
+ export declare function assertStatus<T extends Response, S extends T["status"]>(response: T, expectedStatus: S): asserts response is T & {
3
+ status: S;
4
+ };
5
+ export default assertStatus;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertStatus = void 0;
4
+ const ApiClientError_js_1 = require("../core/ApiClientError.js");
5
+ function assertStatus(response, expectedStatus) {
6
+ if (response.status !== expectedStatus) {
7
+ throw ApiClientError_js_1.default.fromResponse(`Unexpected response status (expected ${expectedStatus}, got: ${response.status})`, response);
8
+ }
9
+ }
10
+ exports.assertStatus = assertStatus;
11
+ exports.default = assertStatus;
@@ -1,6 +1,8 @@
1
- export * from "./Request.js";
1
+ export * from "./RequestType.js";
2
2
  export * from "./RequestFunction.js";
3
3
  export * from "./Response.js";
4
4
  export * from "./OpenAPIOperation.js";
5
5
  export * from "./http.js";
6
- export { Simplify } from "type-fest";
6
+ export * from "./assertStatus.js";
7
+ export * from "./simplify.js";
8
+ export * from "./assertStatus.js";
@@ -14,8 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./Request.js"), exports);
17
+ __exportStar(require("./RequestType.js"), exports);
18
18
  __exportStar(require("./RequestFunction.js"), exports);
19
19
  __exportStar(require("./Response.js"), exports);
20
20
  __exportStar(require("./OpenAPIOperation.js"), exports);
21
21
  __exportStar(require("./http.js"), exports);
22
+ __exportStar(require("./assertStatus.js"), exports);
23
+ __exportStar(require("./simplify.js"), exports);
24
+ __exportStar(require("./assertStatus.js"), exports);
@@ -0,0 +1,3 @@
1
+ export type Simplify<T> = {
2
+ [KeyType in keyof T]: T[KeyType];
3
+ } & {};
@@ -0,0 +1,3 @@
1
+ export * from "./core/index.js";
2
+ export * from "./types/index.js";
3
+ export * from "./axios.js";
@@ -0,0 +1,3 @@
1
+ export * from "./core/index.js";
2
+ export * from "./types/index.js";
3
+ export * from "./axios.js";
@@ -1,10 +1,10 @@
1
1
  import { AnyResponse, Response } from "./Response.js";
2
- import { AnyRequest, Request } from "./Request.js";
2
+ import { AnyRequest, RequestType } from "./RequestType.js";
3
3
  import { HttpMethod } from "./http.js";
4
- export interface OpenAPIOperation<TIgnoredRequest extends AnyRequest = Request, IgnoredResponse extends AnyResponse = Response> {
4
+ export interface OpenAPIOperation<TIgnoredRequest extends AnyRequest = RequestType, IgnoredResponse extends AnyResponse = Response> {
5
5
  operationId: string;
6
6
  path: string;
7
7
  method: HttpMethod;
8
8
  }
9
9
  export type InferredRequestType<TOp> = TOp extends OpenAPIOperation<infer TReq> ? TReq : never;
10
- export type InferredResponseType<TOp> = TOp extends OpenAPIOperation<Request, infer TRes> ? TRes : never;
10
+ export type InferredResponseType<TOp> = TOp extends OpenAPIOperation<RequestType, infer TRes> ? TRes : never;
@@ -9,6 +9,6 @@ type RequestWithHeaders<THeaders> = THeaders extends null ? object : {
9
9
  headers: THeaders;
10
10
  };
11
11
  type EmptyRequest = Record<string, never>;
12
- export type Request<TData extends HttpPayload = null, TPathParameters extends PathParameters | null = null, THeader extends HttpHeaders | null = null> = TData | TPathParameters | THeader extends null ? EmptyRequest : RequestWithData<TData> & RequestWithPathParameters<TPathParameters> & RequestWithHeaders<THeader>;
13
- export type AnyRequest = Request<any, any, any>;
12
+ export type RequestType<TData extends HttpPayload = null, TPathParameters extends PathParameters | null = null, THeader extends HttpHeaders | null = null> = TData | TPathParameters | THeader extends null ? EmptyRequest : RequestWithData<TData> & RequestWithPathParameters<TPathParameters> & RequestWithHeaders<THeader>;
13
+ export type AnyRequest = RequestType<any, any, any>;
14
14
  export {};
@@ -0,0 +1,5 @@
1
+ import { Response } from "./Response.js";
2
+ export declare function assertStatus<T extends Response, S extends T["status"]>(response: T, expectedStatus: S): asserts response is T & {
3
+ status: S;
4
+ };
5
+ export default assertStatus;
@@ -0,0 +1,7 @@
1
+ import ApiClientError from "../core/ApiClientError.js";
2
+ export function assertStatus(response, expectedStatus) {
3
+ if (response.status !== expectedStatus) {
4
+ throw ApiClientError.fromResponse(`Unexpected response status (expected ${expectedStatus}, got: ${response.status})`, response);
5
+ }
6
+ }
7
+ export default assertStatus;
@@ -1,6 +1,8 @@
1
- export * from "./Request.js";
1
+ export * from "./RequestType.js";
2
2
  export * from "./RequestFunction.js";
3
3
  export * from "./Response.js";
4
4
  export * from "./OpenAPIOperation.js";
5
5
  export * from "./http.js";
6
- export { Simplify } from "type-fest";
6
+ export * from "./assertStatus.js";
7
+ export * from "./simplify.js";
8
+ export * from "./assertStatus.js";
@@ -1,5 +1,8 @@
1
- export * from "./Request.js";
1
+ export * from "./RequestType.js";
2
2
  export * from "./RequestFunction.js";
3
3
  export * from "./Response.js";
4
4
  export * from "./OpenAPIOperation.js";
5
5
  export * from "./http.js";
6
+ export * from "./assertStatus.js";
7
+ export * from "./simplify.js";
8
+ export * from "./assertStatus.js";
@@ -0,0 +1,3 @@
1
+ export type Simplify<T> = {
2
+ [KeyType in keyof T]: T[KeyType];
3
+ } & {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mittwald/api-client-commons",
3
- "version": "2.0.2",
3
+ "version": "3.0.0-alpha.1",
4
4
  "description": "Common types and utilities for mittwald API clients",
5
5
  "license": "MIT",
6
6
  "repository": "https://github.com/mittwald/api-client-js.git",
@@ -10,19 +10,18 @@
10
10
  },
11
11
  "homepage": "https://developer.mittwald.de",
12
12
  "bugs": "https://github.com/mittwald/api-client-js/issues",
13
+ "main": "dist/cjs/index.js",
13
14
  "type": "module",
14
15
  "exports": {
15
16
  ".": {
16
- "import": "./dist/core/index.js",
17
- "default": "./dist-cjs/core/index.js"
18
- },
19
- "./axios": {
20
- "import": "./dist/axios.js",
21
- "default": "./dist-cjs/axios.js"
22
- },
23
- "./types": {
24
- "import": "./dist/types/index.js",
25
- "default": "./dist-cjs/types/index.js"
17
+ "types": {
18
+ "require": "./dist/cjs/index.d.ts",
19
+ "default": "./dist/esm/index.d.ts"
20
+ },
21
+ "default": {
22
+ "require": "./dist/cjs/index.js",
23
+ "default": "./dist/esm/index.js"
24
+ }
26
25
  }
27
26
  },
28
27
  "scripts": {
@@ -30,7 +29,7 @@
30
29
  "test:tsd": "pnpify run tsd"
31
30
  },
32
31
  "files": [
33
- "{dist,dist-cjs}/**/*.{js,d.ts}"
32
+ "dist/**/*.{js,d.ts}"
34
33
  ],
35
34
  "keywords": [
36
35
  "mittwald",
@@ -44,11 +43,11 @@
44
43
  "axios": "^1.4.0",
45
44
  "parse-path": "^7.0.0",
46
45
  "path-to-regexp": "^6.2.1",
47
- "type-fest": "^3.10.0"
46
+ "type-fest": "^3.12.0"
48
47
  },
49
48
  "devDependencies": {
50
- "@yarnpkg/pnpify": "^4.0.0-rc.43",
49
+ "@yarnpkg/pnpify": "^4.0.0-rc.48",
51
50
  "tsd": "^0.28.1"
52
51
  },
53
- "types": "./dist/index.d.ts"
52
+ "types": "dist/cjs/index.d.ts"
54
53
  }
package/dist/index.js DELETED
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.ApiClientBase = void 0;
30
- const axios_1 = __importStar(require("axios"));
31
- const Request_js_1 = __importDefault(require("./Request.js"));
32
- class ApiClientBase {
33
- constructor(axiosConfig = axios_1.default) {
34
- this.axios =
35
- axiosConfig instanceof axios_1.Axios ? axiosConfig : axios_1.default.create(axiosConfig);
36
- }
37
- requestFunctionFactory(operation) {
38
- return (conf) => new Request_js_1.default(this.axios, operation, conf).execute();
39
- }
40
- }
41
- exports.ApiClientBase = ApiClientBase;
42
- exports.default = ApiClientBase;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes