@typespec/http 1.7.0-dev.2 → 1.7.0-dev.3
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAUV,SAAS,EACT,OAAO,EAER,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,qBAAqB,EAAyC,MAAM,YAAY,CAAC;AAE1F;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,GACnB,CAAC,qBAAqB,EAAE,EAAE,SAAS,UAAU,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAUV,SAAS,EACT,OAAO,EAER,MAAM,oBAAoB,CAAC;AAO5B,OAAO,EAAE,qBAAqB,EAAyC,MAAM,YAAY,CAAC;AAE1F;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,GACnB,CAAC,qBAAqB,EAAE,EAAE,SAAS,UAAU,EAAE,CAAC,CA2BlD"}
|
package/dist/src/responses.js
CHANGED
|
@@ -13,16 +13,18 @@ export function getResponsesForOperation(program, operation) {
|
|
|
13
13
|
const responses = new ResponseIndex();
|
|
14
14
|
const tk = $(program);
|
|
15
15
|
if (tk.union.is(responseType) && !tk.union.getDiscriminatedUnion(responseType)) {
|
|
16
|
+
// Check if the union itself has a @doc to use as the response description
|
|
17
|
+
const unionDescription = getDoc(program, responseType);
|
|
16
18
|
for (const option of responseType.variants.values()) {
|
|
17
19
|
if (isNullType(option.type)) {
|
|
18
20
|
// TODO how should we treat this? https://github.com/microsoft/typespec/issues/356
|
|
19
21
|
continue;
|
|
20
22
|
}
|
|
21
|
-
processResponseType(program, diagnostics, operation, responses, option.type);
|
|
23
|
+
processResponseType(program, diagnostics, operation, responses, option.type, unionDescription);
|
|
22
24
|
}
|
|
23
25
|
}
|
|
24
26
|
else {
|
|
25
|
-
processResponseType(program, diagnostics, operation, responses, responseType);
|
|
27
|
+
processResponseType(program, diagnostics, operation, responses, responseType, undefined);
|
|
26
28
|
}
|
|
27
29
|
return diagnostics.wrap(responses.values());
|
|
28
30
|
}
|
|
@@ -49,18 +51,20 @@ class ResponseIndex {
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
|
-
function processResponseType(program, diagnostics, operation, responses, responseType) {
|
|
54
|
+
function processResponseType(program, diagnostics, operation, responses, responseType, parentDescription) {
|
|
53
55
|
const tk = $(program);
|
|
54
56
|
// If the response type is itself a union (and not discriminated), expand it recursively.
|
|
55
57
|
// This handles cases where a named union is used as a return type (e.g., `op read(): MyUnion`)
|
|
56
58
|
// or when unions are nested (e.g., a union variant is itself a union).
|
|
57
59
|
// Each variant will be processed separately to extract its status codes and responses.
|
|
58
60
|
if (tk.union.is(responseType) && !tk.union.getDiscriminatedUnion(responseType)) {
|
|
61
|
+
// Check if this nested union has its own @doc, otherwise inherit parent's description
|
|
62
|
+
const unionDescription = getDoc(program, responseType) ?? parentDescription;
|
|
59
63
|
for (const option of responseType.variants.values()) {
|
|
60
64
|
if (isNullType(option.type)) {
|
|
61
65
|
continue;
|
|
62
66
|
}
|
|
63
|
-
processResponseType(program, diagnostics, operation, responses, option.type);
|
|
67
|
+
processResponseType(program, diagnostics, operation, responses, option.type, unionDescription);
|
|
64
68
|
}
|
|
65
69
|
return;
|
|
66
70
|
}
|
|
@@ -94,7 +98,7 @@ function processResponseType(program, diagnostics, operation, responses, respons
|
|
|
94
98
|
const response = responses.get(statusCode) ?? {
|
|
95
99
|
statusCodes: statusCode,
|
|
96
100
|
type: responseType,
|
|
97
|
-
description: getResponseDescription(program, operation, responseType, statusCode, metadata),
|
|
101
|
+
description: getResponseDescription(program, operation, responseType, statusCode, metadata, parentDescription),
|
|
98
102
|
responses: [],
|
|
99
103
|
};
|
|
100
104
|
if (resolvedBody !== undefined) {
|
|
@@ -161,7 +165,11 @@ function isResponseEnvelope(metadata) {
|
|
|
161
165
|
prop.kind === "multipartBody" ||
|
|
162
166
|
prop.kind === "statusCode");
|
|
163
167
|
}
|
|
164
|
-
function getResponseDescription(program, operation, responseType, statusCode, metadata) {
|
|
168
|
+
function getResponseDescription(program, operation, responseType, statusCode, metadata, parentDescription) {
|
|
169
|
+
// If a parent union provided a description, use that first
|
|
170
|
+
if (parentDescription) {
|
|
171
|
+
return parentDescription;
|
|
172
|
+
}
|
|
165
173
|
// NOTE: If the response type is an envelope and not the same as the body
|
|
166
174
|
// type, then use its @doc as the response description. However, if the
|
|
167
175
|
// response type is the same as the body type, then use the default status
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAGzB,MAAM,EACN,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,UAAU,EACV,UAAU,GAMX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAG1E;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,SAAoB;IAEpB,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;IACtC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACtB,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/E,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,kFAAkF;gBAClF,SAAS;YACX,CAAC;YACD,mBAAmB,
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAGzB,MAAM,EACN,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,UAAU,EACV,UAAU,GAMX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,CAAC,EAAE,MAAM,4BAA4B,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAE1F,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAG1E;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAgB,EAChB,SAAoB;IAEpB,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;IACtC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACtB,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/E,0EAA0E;QAC1E,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACvD,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,kFAAkF;gBAClF,SAAS;YACX,CAAC;YACD,mBAAmB,CACjB,OAAO,EACP,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,CAAC,IAAI,EACX,gBAAgB,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,aAAa;IACR,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;IAEpD,GAAG,CAAC,UAAgC;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACrD,CAAC;IAEM,GAAG,CAAC,UAAgC,EAAE,QAA+B;QAC1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAEM,MAAM;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,UAAgC;QACxC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACzD,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;CACF;AAED,SAAS,mBAAmB,CAC1B,OAAgB,EAChB,WAAgC,EAChC,SAAoB,EACpB,SAAwB,EACxB,YAAkB,EAClB,iBAA0B;IAE1B,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAEtB,yFAAyF;IACzF,+FAA+F;IAC/F,uEAAuE;IACvE,uFAAuF;IACvF,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/E,sFAAsF;QACtF,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,iBAAiB,CAAC;QAC5E,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,mBAAmB,CACjB,OAAO,EACP,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,CAAC,IAAI,EACX,gBAAgB,CACjB,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IAED,WAAW;IACX,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CACrD,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,IAAI,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAC5F,CAAC;IACF,qCAAqC;IACrC,MAAM,WAAW,GAAoB,WAAW,CAAC,IAAI,CACnD,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,CACxD,CAAC;IAEF,uBAAuB;IACvB,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEtD,iEAAiE;IACjE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,IAAI,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC;YACxC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACpC,YAAY,GAAG,SAAS,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,gDAAgD;QACzE,CAAC;aAAM,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,YAAY,GAAG,SAAS,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,oEAAoE;QACpE,iEAAiE;QACjE,MAAM,QAAQ,GAA0B,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;YACnE,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,sBAAsB,CACjC,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,iBAAiB,CAClB;YACD,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,YAAY;gBAClB,OAAO;gBACP,UAAU,EAAE,QAAQ;aACrB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,YAAkB,EAClB,QAAwB;IAExB,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAEhD,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,IAAI,WAAW,EAAE,CAAC;gBAChB,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,YAAY;iBACrB,CAAC,CAAC;YACL,CAAC;YACD,WAAW,GAAG,IAAI,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,oDAAoD;IACpD,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAsB,YAAY,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAgB,EAAE,MAA6B;IAC/E,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,OAAgB,EAChB,QAAwB;IAExB,MAAM,eAAe,GAAkC,EAAE,CAAC;IAC1D,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAwB;IAClD,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,KAAK,MAAM;QACpB,IAAI,CAAC,IAAI,KAAK,UAAU;QACxB,IAAI,CAAC,IAAI,KAAK,eAAe;QAC7B,IAAI,CAAC,IAAI,KAAK,YAAY,CAC7B,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,SAAoB,EACpB,YAAkB,EAClB,UAAmC,EACnC,QAAwB,EACxB,iBAA0B;IAE1B,2DAA2D;IAC3D,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,yEAAyE;IACzE,uEAAuE;IACvE,0EAA0E;IAC1E,0EAA0E;IAC1E,sEAAsE;IACtE,wEAAwE;IACxE,sCAAsC;IACtC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC3C,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC;QAC9C,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC;QAClC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,wBAAwB,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC"}
|