@rexeus/typeweaver-types 0.6.5 → 0.7.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.
@@ -34,21 +34,25 @@ import type { I<%= entityResponse.name %>Response, <%= entityResponse.name %>Res
34
34
  <%= ownResponse.header ? `I${ownResponse.name}ResponseHeader` : 'undefined' %>,
35
35
  <%= ownResponse.body ? `I${ownResponse.name}ResponseBody` : 'undefined' %>
36
36
  > implements I<%= ownResponse.name %>Response {
37
- public override readonly statusCode: HttpStatusCode.<%= ownResponse.statusCodeKey %>;
37
+ public override readonly statusCode = HttpStatusCode.<%= ownResponse.statusCodeKey %>;
38
38
 
39
- public constructor(response: I<%= ownResponse.name %>Response) {
39
+ <% if (ownResponse.header || ownResponse.body) { %>
40
+ public constructor(response: Omit<I<%= ownResponse.name %>Response, "statusCode">) {
40
41
  super(
41
- response.statusCode,
42
+ HttpStatusCode.<%= ownResponse.statusCodeKey %>,
42
43
  <%= ownResponse.header ? `response.header` : 'undefined' %>,
43
44
  <%= ownResponse.body ? `response.body` : 'undefined' %>,
44
45
  );
45
-
46
- if(response.statusCode !== HttpStatusCode.<%= ownResponse.statusCodeKey %>) {
47
- throw new Error(`Invalid status code: '${response.statusCode}' for <%= ownResponse.name %>Response`);
48
- }
49
-
50
- this.statusCode = response.statusCode;
51
46
  }
47
+ <% } else { %>
48
+ public constructor() {
49
+ super(
50
+ HttpStatusCode.<%= ownResponse.statusCodeKey %>,
51
+ undefined,
52
+ undefined,
53
+ );
54
+ }
55
+ <% } %>
52
56
  }
53
57
  <% } %>
54
58
 
@@ -89,7 +89,11 @@ export class <%= pascalCaseOperationId %>ResponseValidator extends ResponseValid
89
89
  return result;
90
90
  }
91
91
 
92
+ <% if (response.hasHeader || response.hasBody) { %>
92
93
  return { isValid: true, data: new <%= response.name %>Response(result.data as I<%= response.name %>Response) };
94
+ <% } else { %>
95
+ return { isValid: true, data: new <%= response.name %>Response() };
96
+ <% } %>
93
97
  }
94
98
  <% } %>
95
99
  }
@@ -26,21 +26,25 @@ export class <%= pascalCaseName %>Response extends HttpResponse<
26
26
  <%= sharedResponse.header ? `I${pascalCaseName}ResponseHeader` : 'undefined' %>,
27
27
  <%= sharedResponse.body ? `I${pascalCaseName}ResponseBody` : 'undefined' %>
28
28
  > implements I<%= pascalCaseName %>Response {
29
- public override readonly statusCode: HttpStatusCode.<%= httpStatusCode[sharedResponse.statusCode] %>;
29
+ public override readonly statusCode = HttpStatusCode.<%= httpStatusCode[sharedResponse.statusCode] %>;
30
30
 
31
- public constructor(response: I<%= pascalCaseName %>Response) {
31
+ <% if (sharedResponse.header || sharedResponse.body) { %>
32
+ public constructor(response: Omit<I<%= pascalCaseName %>Response, "statusCode">) {
32
33
  super(
33
- response.statusCode,
34
+ HttpStatusCode.<%= httpStatusCode[sharedResponse.statusCode] %>,
34
35
  <%= sharedResponse.header ? `response.header` : 'undefined' %>,
35
36
  <%= sharedResponse.body ? `response.body` : 'undefined' %>,
36
37
  );
37
-
38
- if (response.statusCode !== HttpStatusCode.<%= httpStatusCode[sharedResponse.statusCode] %>) {
39
- throw new Error(`Invalid status code: '${response.statusCode}' for <%= pascalCaseName %>Response`);
40
- }
41
-
42
- this.statusCode = response.statusCode;
43
38
  }
39
+ <% } else { %>
40
+ public constructor() {
41
+ super(
42
+ HttpStatusCode.<%= httpStatusCode[sharedResponse.statusCode] %>,
43
+ undefined,
44
+ undefined,
45
+ );
46
+ }
47
+ <% } %>
44
48
  }
45
49
 
46
50
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rexeus/typeweaver-types",
3
- "version": "0.6.5",
3
+ "version": "0.7.0",
4
4
  "description": "Generates request and response types plus validators aligned with your API contract. Powered by Typeweaver 🧵✨",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -47,18 +47,18 @@
47
47
  },
48
48
  "homepage": "https://github.com/rexeus/typeweaver#readme",
49
49
  "peerDependencies": {
50
- "@rexeus/typeweaver-core": "^0.6.5",
51
- "@rexeus/typeweaver-gen": "^0.6.5"
50
+ "@rexeus/typeweaver-core": "^0.7.0",
51
+ "@rexeus/typeweaver-gen": "^0.7.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "oxc-transform": "^0.115.0",
55
55
  "test-utils": "file:../test-utils",
56
- "@rexeus/typeweaver-core": "^0.6.5",
57
- "@rexeus/typeweaver-gen": "^0.6.5"
56
+ "@rexeus/typeweaver-core": "^0.7.0",
57
+ "@rexeus/typeweaver-gen": "^0.7.0"
58
58
  },
59
59
  "dependencies": {
60
60
  "case": "^1.6.3",
61
- "@rexeus/typeweaver-zod-to-ts": "^0.6.5"
61
+ "@rexeus/typeweaver-zod-to-ts": "^0.7.0"
62
62
  },
63
63
  "scripts": {
64
64
  "typecheck": "tsc --noEmit",