@azure-tools/typespec-java 0.8.7 → 0.8.9

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,4 +1,4 @@
1
- import { ModelProperty, Operation, Program } from "@typespec/compiler";
1
+ import { ModelProperty, Operation, Program, Type, Union } from "@typespec/compiler";
2
2
  import { HttpOperation } from "@typespec/http";
3
3
  import { ApiVersions, Parameter } from "@autorest/codemodel";
4
4
  import { LroMetadata } from "@azure-tools/typespec-azure-core";
@@ -8,8 +8,9 @@ import { EmitterOptions } from "./emitter.js";
8
8
  export declare const specialHeaderNames: Set<string>;
9
9
  export declare const originApiVersion = "modelerfour:synthesized/api-version";
10
10
  export declare function loadExamples(program: Program, options: EmitterOptions): Promise<Map<Operation, any>>;
11
- export declare function operationContainsJsonMergePatch(op: HttpOperation): boolean;
12
- export declare function operationIsMultipleContentTypes(httpOperation: HttpOperation): boolean;
11
+ export declare function operationIsJsonMergePatch(op: HttpOperation): boolean;
12
+ export declare function operationIsMultipleContentTypes(op: HttpOperation): boolean;
13
+ export declare function operationRefersUnion(program: Program, op: HttpOperation, cache: Map<Type, Union | null | undefined>): Union | null;
13
14
  export declare function isPayloadProperty(program: Program, property: ModelProperty): boolean;
14
15
  export declare function getClientApiVersions(client: CodeModelClient): ApiVersions | undefined;
15
16
  export declare function getServiceVersion(client: CodeModelClient | CodeModel): ServiceVersion;
@@ -1 +1 @@
1
- {"version":3,"file":"operation-utils.d.ts","sourceRoot":"","sources":["../../src/operation-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAA8C,MAAM,oBAAoB,CAAC;AACnH,OAAO,EACL,aAAa,EAMd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,eAAO,MAAM,kBAAkB,aAM7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,wCAAwC,CAAC;AAEtE,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAmD1G;AASD,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAS1E;AAED,wBAAgB,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAarF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,WAM1E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,SAAS,CAMrF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,cAAc,CAcrF;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CA4CvG;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAcvE"}
1
+ {"version":3,"file":"operation-utils.d.ts","sourceRoot":"","sources":["../../src/operation-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAkC,MAAM,oBAAoB,CAAC;AACpH,OAAO,EACL,aAAa,EAMd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAK9C,eAAO,MAAM,kBAAkB,aAM7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,wCAAwC,CAAC;AAEtE,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAmD1G;AASD,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CASpE;AAED,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAa1E;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,EAAE,EAAE,aAAa,EACjB,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GACzC,KAAK,GAAG,IAAI,CA+Bd;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,WAM1E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,GAAG,SAAS,CAMrF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,cAAc,CAcrF;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CA+BvG;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAcvE"}
@@ -1,10 +1,11 @@
1
- import { SyntaxKind, ignoreDiagnostics, resolvePath } from "@typespec/compiler";
1
+ import { ignoreDiagnostics, resolvePath } from "@typespec/compiler";
2
2
  import { getHeaderFieldName, getQueryParamName, getPathParamName, isStatusCode, getAllHttpServices, } from "@typespec/http";
3
3
  import { resolveOperationId } from "@typespec/openapi";
4
4
  import { Parameter } from "@autorest/codemodel";
5
5
  import { ServiceVersion } from "./common/client.js";
6
6
  import { getVersion } from "@typespec/versioning";
7
7
  import { getNamespace, logWarning, pascalCase } from "./utils.js";
8
+ import { unionReferredByType } from "./type-utils.js";
8
9
  export const specialHeaderNames = new Set([
9
10
  "repeatability-request-id",
10
11
  "repeatability-first-sent",
@@ -70,7 +71,7 @@ function pascalCaseForOperationId(name) {
70
71
  .map((s) => pascalCase(s))
71
72
  .join("_");
72
73
  }
73
- export function operationContainsJsonMergePatch(op) {
74
+ export function operationIsJsonMergePatch(op) {
74
75
  for (const param of op.parameters.parameters) {
75
76
  if (param.type === "header" && param.name.toLowerCase() === "content-type") {
76
77
  if (param.param.type.kind === "String" && param.param.type.value === "application/merge-patch+json") {
@@ -80,9 +81,9 @@ export function operationContainsJsonMergePatch(op) {
80
81
  }
81
82
  return false;
82
83
  }
83
- export function operationIsMultipleContentTypes(httpOperation) {
84
- if (httpOperation.parameters.parameters &&
85
- httpOperation.parameters.parameters.some((parameter) => {
84
+ export function operationIsMultipleContentTypes(op) {
85
+ if (op.parameters.parameters &&
86
+ op.parameters.parameters.some((parameter) => {
86
87
  var _a, _b, _c;
87
88
  return (parameter === null || parameter === void 0 ? void 0 : parameter.type) === "header" &&
88
89
  ((_a = parameter === null || parameter === void 0 ? void 0 : parameter.name) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === "content-type" &&
@@ -92,6 +93,39 @@ export function operationIsMultipleContentTypes(httpOperation) {
92
93
  }
93
94
  return false;
94
95
  }
96
+ export function operationRefersUnion(program, op, cache) {
97
+ // request parameters
98
+ for (const parameter of op.parameters.parameters) {
99
+ const ret = unionReferredByType(program, parameter.param.type, cache);
100
+ if (ret) {
101
+ return ret;
102
+ }
103
+ }
104
+ // request body
105
+ if (op.parameters.body) {
106
+ if (op.parameters.body.parameter) {
107
+ const ret = unionReferredByType(program, op.parameters.body.parameter.type, cache);
108
+ if (ret) {
109
+ return ret;
110
+ }
111
+ }
112
+ else if (op.parameters.body.type) {
113
+ const ret = unionReferredByType(program, op.parameters.body.type, cache);
114
+ if (ret) {
115
+ return ret;
116
+ }
117
+ }
118
+ }
119
+ // response body
120
+ if (op.responses && op.responses.length > 0 && op.responses[0].type) {
121
+ const ret = unionReferredByType(program, op.responses[0].type, cache);
122
+ if (ret) {
123
+ return ret;
124
+ }
125
+ }
126
+ // TODO (weidxu): LRO response
127
+ return null;
128
+ }
95
129
  export function isPayloadProperty(program, property) {
96
130
  const headerInfo = getHeaderFieldName(program, property);
97
131
  const queryInfo = getQueryParamName(program, property);
@@ -126,26 +160,14 @@ export function getServiceVersion(client) {
126
160
  return new ServiceVersion(name, description);
127
161
  }
128
162
  export function isLroNewPollingStrategy(httpOperation, lroMetadata) {
129
- // at present, checks if operation uses template from Azure.Core
130
- const azureCoreLroSvs = [
131
- "LongRunningResourceCreateOrReplace",
132
- "LongRunningResourceCreateOrUpdate",
133
- "LongRunningResourceDelete",
134
- "LongRunningResourceAction",
135
- "LongRunningRpcOperation",
136
- ];
137
163
  const operation = httpOperation.operation;
138
164
  let useNewStrategy = false;
139
165
  if (lroMetadata.pollingInfo &&
140
166
  lroMetadata.statusMonitorStep &&
141
167
  lroMetadata.pollingInfo.responseModel.name === "OperationStatus" &&
142
168
  getNamespace(lroMetadata.pollingInfo.responseModel) === "Azure.Core.Foundations") {
143
- if (operation.node.signature.kind === SyntaxKind.OperationSignatureReference) {
144
- if (operation.node.signature.baseOperation.target.kind === SyntaxKind.MemberExpression) {
145
- const sv = operation.node.signature.baseOperation.target.id.sv;
146
- useNewStrategy = azureCoreLroSvs.includes(sv);
147
- }
148
- }
169
+ useNewStrategy =
170
+ operation.sourceOperation !== undefined && getNamespace(operation.sourceOperation) === "Azure.Core";
149
171
  }
150
172
  if (!useNewStrategy) {
151
173
  // following 2 pattern in LroMetadata requires new polling strategy
@@ -1 +1 @@
1
- {"version":3,"file":"operation-utils.js","sourceRoot":"","sources":["../../src/operation-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnH,OAAO,EAEL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAe,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAA6B,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG/E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAElE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACxC,0BAA0B;IAC1B,0BAA0B;IAC1B,wBAAwB;IACxB,mBAAmB;IACnB,0BAA0B;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAgB,EAAE,OAAuB;IAC1E,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvD,IAAI,OAAO,CAAC,oBAAoB,CAAC,EAAE;QACjC,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAe,CAAC;QAEtD,MAAM,OAAO,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,OAAO,GAAG,SAAS,CAAC;QACxB,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE;YAC1C,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;YAC1C,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;SAC/C;QAED,MAAM,UAAU,GAAG,OAAO;YACxB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;YACrD,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC/C,IAAI;YACF,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,oBAAoB,CAAC;SACvF;QAAC,OAAO,GAAG,EAAE;YACZ,UAAU,CAAC,OAAO,EAAE,uBAAuB,UAAU,mBAAmB,CAAC,CAAC;YAC1E,OAAO,oBAAoB,CAAC;SAC7B;QACD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE;YACnC,IAAI;gBACF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACnF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;oBACxB,UAAU,CAAC,OAAO,EAAE,iBAAiB,QAAQ,2BAA2B,CAAC,CAAC;oBAC1E,SAAS;iBACV;gBAED,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;oBACpD,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;iBAC1D;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,UAAU,CAAC,OAAO,EAAE,gCAAgC,QAAQ,IAAI,CAAC,CAAC;aACnE;SACF;QAED,IAAI,sBAAsB,CAAC,IAAI,GAAG,CAAC,EAAE;YACnC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACpB,MAAM,WAAW,GAAG,wBAAwB,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxF,IAAI,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;oBAC3C,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;iBACjF;YACH,CAAC,CAAC,CAAC;SACJ;KACF;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAY;IAC5C,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACzB,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,EAAiB;IAC/D,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,EAAE;YAC1E,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,8BAA8B,EAAE;gBACnG,OAAO,IAAI,CAAC;aACb;SACF;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,aAA4B;IAC1E,IACE,aAAa,CAAC,UAAU,CAAC,UAAU;QACnC,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CACtC,CAAC,SAAS,EAAE,EAAE;;YACZ,OAAA,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,QAAQ;gBAC5B,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,0CAAE,WAAW,EAAE,MAAK,cAAc;gBACjD,CAAA,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,IAAI,0CAAE,IAAI,MAAK,OAAO,CAAA;SAAA,CAC3C,EACD;QACA,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,QAAuB;IACzE,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,OAAO,CAAC,CAAC,UAAU,IAAI,SAAS,IAAI,QAAQ,IAAI,cAAc,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAuB;;IAC1D,IAAI,MAAA,MAAM,CAAC,gBAAgB,0CAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,gBAAgB,CAAC,EAAE;QACzE,OAAO,MAAM,CAAC,WAAW,CAAC;KAC3B;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAmC;IACnE,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;IACxC,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC3B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;KACzD;SAAM;QACL,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;KACtC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QAC5B,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;KACzB;SAAM;QACL,IAAI,GAAG,IAAI,GAAG,gBAAgB,CAAC;KAChC;IACD,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAA4B,EAAE,WAAwB;IAC5F,gEAAgE;IAChE,MAAM,eAAe,GAAG;QACtB,oCAAoC;QACpC,mCAAmC;QACnC,2BAA2B;QAC3B,2BAA2B;QAC3B,yBAAyB;KAC1B,CAAC;IAEF,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;IAC1C,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IACE,WAAW,CAAC,WAAW;QACvB,WAAW,CAAC,iBAAiB;QAC7B,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,KAAK,iBAAiB;QAChE,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,wBAAwB,EAChF;QACA,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,2BAA2B,EAAE;YAC5E,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,gBAAgB,EAAE;gBACtF,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/D,cAAc,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAC/C;SACF;KACF;IAED,IAAI,CAAC,cAAc,EAAE;QACnB,mEAAmE;QAEnE,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;YAC1D,mCAAmC;YACnC,cAAc,GAAG,IAAI,CAAC;SACvB;aAAM,IACL,aAAa,CAAC,IAAI,KAAK,MAAM;YAC7B,WAAW,CAAC,SAAS;YACrB,WAAW,CAAC,SAAS,CAAC,IAAI,KAAK,wBAAwB;YACvD,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAC9C;YACA,8CAA8C;YAC9C,cAAc,GAAG,IAAI,CAAC;SACvB;KACF;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,SAAoB;IAC1D,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE;QAC9G,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc;aAC1D;SACF;QACD,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,cAAc,EAAE,SAAS,CAAC,cAAc;QACxC,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"operation-utils.js","sourceRoot":"","sources":["../../src/operation-utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { EncodeData, IntrinsicScalarName, Model, Scalar, TemplatedTypeBase, Type, UnionVariant } from "@typespec/compiler";
1
+ import { EncodeData, IntrinsicScalarName, Model, Program, Scalar, TemplatedTypeBase, Type, Union, UnionVariant } from "@typespec/compiler";
2
2
  import { DurationSchema } from "./common/schemas/time";
3
3
  /** Acts as a cache for processing inputs.
4
4
  *
@@ -28,4 +28,5 @@ export declare function isNullableType(type: Type): boolean;
28
28
  export declare function isSameLiteralTypes(variants: UnionVariant[]): boolean;
29
29
  export declare function getDurationFormat(encode: EncodeData): DurationSchema["format"];
30
30
  export declare function hasScalarAsBase(type: Scalar, scalarName: IntrinsicScalarName): boolean;
31
+ export declare function unionReferredByType(program: Program, type: Type, cache: Map<Type, Union | null | undefined>): Union | null;
31
32
  //# sourceMappingURL=type-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,KAAK,EACL,MAAM,EACN,iBAAiB,EACjB,IAAI,EACJ,YAAY,EAIb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;GAMG;AACH,qBAAa,eAAe,CAAC,EAAE,EAAE,GAAG;IAEtB,OAAO,CAAC,SAAS;IAD7B,OAAO,CAAC,OAAO,CAAsB;gBACjB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;IACrE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS;IAG5B,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG;IAI7B,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,SAAS;CAQxE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAOnF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE/D;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAQ7F;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAgBvD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAOlD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAQpE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAc9E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAStF"}
1
+ {"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../src/type-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,KAAK,EACL,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,IAAI,EACJ,KAAK,EACL,YAAY,EAIb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;;;;GAMG;AACH,qBAAa,eAAe,CAAC,EAAE,EAAE,GAAG;IAEtB,OAAO,CAAC,SAAS;IAD7B,OAAO,CAAC,OAAO,CAAsB;gBACjB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG;IACrE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS;IAG5B,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG;IAI7B,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,SAAS;CAQxE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAOnF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAE/D;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,GAAG,OAAO,CAQ7F;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAgBvD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAOlD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAQpE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAc9E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAStF;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GACzC,KAAK,GAAG,IAAI,CAoDd"}
@@ -109,4 +109,60 @@ export function hasScalarAsBase(type, scalarName) {
109
109
  }
110
110
  return false;
111
111
  }
112
+ export function unionReferredByType(program, type, cache) {
113
+ if (cache.has(type)) {
114
+ const ret = cache.get(type);
115
+ if (ret) {
116
+ return ret;
117
+ }
118
+ else {
119
+ return null;
120
+ }
121
+ }
122
+ cache.set(type, undefined);
123
+ if (type.kind === "Union") {
124
+ // ref CodeModelBuilder.processUnionSchema
125
+ const nonNullVariants = Array.from(type.variants.values()).filter((it) => !isNullType(it.type));
126
+ if (nonNullVariants.length === 1) {
127
+ // Type | null, follow that Type
128
+ const ret = unionReferredByType(program, nonNullVariants[0], cache);
129
+ if (ret) {
130
+ cache.set(type, ret);
131
+ return ret;
132
+ }
133
+ }
134
+ else if (isSameLiteralTypes(nonNullVariants)) {
135
+ // "literal1" | "literal2" -> Enum
136
+ cache.set(type, null);
137
+ return null;
138
+ }
139
+ else {
140
+ // found Union
141
+ cache.set(type, type);
142
+ return type;
143
+ }
144
+ }
145
+ else if (type.kind === "Model") {
146
+ if (type.indexer) {
147
+ // follow indexer (for Array/Record)
148
+ const ret = unionReferredByType(program, type.indexer.value, cache);
149
+ if (ret) {
150
+ cache.set(type, ret);
151
+ return ret;
152
+ }
153
+ }
154
+ // follow properties
155
+ for (const property of type.properties.values()) {
156
+ const ret = unionReferredByType(program, property.type, cache);
157
+ if (ret) {
158
+ cache.set(type, ret);
159
+ return ret;
160
+ }
161
+ }
162
+ cache.set(type, null);
163
+ return null;
164
+ }
165
+ cache.set(type, null);
166
+ return null;
167
+ }
112
168
  //# sourceMappingURL=type-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../src/type-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-utils.js","sourceRoot":"","sources":["../../src/type-utils.ts"],"names":[],"mappings":"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"}