typespec-hono 0.8.0 → 0.9.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.
@@ -12,6 +12,28 @@ import type { input, output, ZodType } from "zod";
12
12
  export interface ResponseArm {
13
13
  readonly status: number | "default" | `${1 | 2 | 3 | 4 | 5}XX`;
14
14
  readonly schema: ZodType | undefined;
15
+ /**
16
+ * The media types this response offers, where the document names MORE than one.
17
+ *
18
+ * Absent where it names one, which is what an application already assumes, so "one type" and
19
+ * "not carried" are the same state rather than two to tell apart. Present, it is the set to
20
+ * negotiate against: `selectContentType` takes the caller's `Accept` and these.
21
+ */
22
+ readonly contentTypes?: readonly string[];
23
+ /**
24
+ * The headers this response declares, as the document publishes them.
25
+ *
26
+ * **Two names, because two different things need them.** `name` is the WIRE name, which is what
27
+ * the response sets; `property` is the name on the value the handler returned, which is where the
28
+ * value is read from. `@header("x-correlation-id") correlationId: string` is `x-correlation-id`
29
+ * on the wire and `correlationId` in the result, and they differ for any header with a hyphen.
30
+ *
31
+ * Absent where the response declares none.
32
+ */
33
+ readonly headers?: readonly {
34
+ readonly name: string;
35
+ readonly property: string;
36
+ }[];
15
37
  readonly when?: {
16
38
  readonly property: string;
17
39
  readonly value: boolean | string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typespec-hono",
3
- "version": "0.8.0",
3
+ "version": "0.9.1",
4
4
  "description": "TypeSpec emitter: generate a Hono server, and the Zod validators it enforces, from an HTTP service definition, agreeing with the OpenAPI document @typespec/openapi3 publishes from the same source.",
5
5
  "keywords": [
6
6
  "cloudflare-workers",
@@ -44,7 +44,7 @@
44
44
  "provenance": true
45
45
  },
46
46
  "dependencies": {
47
- "typespec-http-zod": "^0.10.0"
47
+ "typespec-http-zod": "^0.11.0"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@hono/zod-openapi": "^1.4.0",
package/src/runtime.ts CHANGED
@@ -14,6 +14,25 @@ import type { input, output, ZodType } from "zod";
14
14
  export interface ResponseArm {
15
15
  readonly status: number | "default" | `${1 | 2 | 3 | 4 | 5}XX`;
16
16
  readonly schema: ZodType | undefined;
17
+ /**
18
+ * The media types this response offers, where the document names MORE than one.
19
+ *
20
+ * Absent where it names one, which is what an application already assumes, so "one type" and
21
+ * "not carried" are the same state rather than two to tell apart. Present, it is the set to
22
+ * negotiate against: `selectContentType` takes the caller's `Accept` and these.
23
+ */
24
+ readonly contentTypes?: readonly string[];
25
+ /**
26
+ * The headers this response declares, as the document publishes them.
27
+ *
28
+ * **Two names, because two different things need them.** `name` is the WIRE name, which is what
29
+ * the response sets; `property` is the name on the value the handler returned, which is where the
30
+ * value is read from. `@header("x-correlation-id") correlationId: string` is `x-correlation-id`
31
+ * on the wire and `correlationId` in the result, and they differ for any header with a hyphen.
32
+ *
33
+ * Absent where the response declares none.
34
+ */
35
+ readonly headers?: readonly { readonly name: string; readonly property: string }[];
17
36
  readonly when?: {
18
37
  readonly property: string;
19
38
  readonly value: boolean | string;