@azure-tools/typespec-java 0.18.1 → 0.18.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.
- package/dist/src/code-model-builder.d.ts +3 -2
- package/dist/src/code-model-builder.d.ts.map +1 -1
- package/dist/src/code-model-builder.js +52 -53
- package/dist/src/code-model-builder.js.map +1 -1
- package/dist/src/common/client.d.ts +3 -5
- package/dist/src/common/client.d.ts.map +1 -1
- package/dist/src/common/client.js +1 -6
- package/dist/src/common/client.js.map +1 -1
- package/dist/src/common/operation.d.ts +2 -2
- package/dist/src/common/operation.d.ts.map +1 -1
- package/dist/src/common/operation.js.map +1 -1
- package/dist/src/emitter.d.ts +1 -0
- package/dist/src/emitter.d.ts.map +1 -1
- package/dist/src/emitter.js +1 -0
- package/dist/src/emitter.js.map +1 -1
- package/dist/src/external-schemas.d.ts +3 -2
- package/dist/src/external-schemas.d.ts.map +1 -1
- package/dist/src/external-schemas.js +122 -35
- package/dist/src/external-schemas.js.map +1 -1
- package/dist/src/operation-utils.d.ts +1 -12
- package/dist/src/operation-utils.d.ts.map +1 -1
- package/dist/src/operation-utils.js +2 -108
- package/dist/src/operation-utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/target/emitter.jar +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ArraySchema, ObjectSchema, Property } from "@autorest/codemodel";
|
|
2
2
|
import { KnownMediaType } from "@azure-tools/codegen";
|
|
3
|
-
import { getJavaNamespace, pascalCase } from "./utils.js";
|
|
3
|
+
import { getJavaNamespace, getNamespace, pascalCase } from "./utils.js";
|
|
4
4
|
/*
|
|
5
5
|
* These schema need to reflect
|
|
6
6
|
* 1. wire schema via "serializedName"
|
|
@@ -81,41 +81,128 @@ export function createPollOperationDetailsSchema(schemas, stringSchema) {
|
|
|
81
81
|
return pollOperationDetailsSchema;
|
|
82
82
|
}
|
|
83
83
|
const fileDetailsMap = new Map();
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
namespace: namespace,
|
|
92
|
-
},
|
|
93
|
-
java: {
|
|
94
|
-
namespace: getJavaNamespace(namespace),
|
|
95
|
-
},
|
|
96
|
-
},
|
|
97
|
-
serializationFormats: [KnownMediaType.Multipart],
|
|
98
|
-
});
|
|
99
|
-
fileDetailsSchema.serializationFormats;
|
|
100
|
-
schemas.add(fileDetailsSchema);
|
|
101
|
-
fileDetailsSchema.addProperty(new Property("content", "The content of the file.", binarySchema, {
|
|
102
|
-
required: true,
|
|
103
|
-
nullable: false,
|
|
104
|
-
readOnly: false,
|
|
105
|
-
}));
|
|
106
|
-
fileDetailsSchema.addProperty(new Property("filename", "The filename of the file.", stringSchema, {
|
|
107
|
-
required: false,
|
|
108
|
-
nullable: false,
|
|
109
|
-
readOnly: false,
|
|
110
|
-
}));
|
|
111
|
-
fileDetailsSchema.addProperty(new Property("contentType", "The content-type of the file.", stringSchema, {
|
|
112
|
-
required: false,
|
|
113
|
-
nullable: false,
|
|
114
|
-
readOnly: false,
|
|
115
|
-
clientDefaultValue: "application/octet-stream",
|
|
116
|
-
}));
|
|
117
|
-
fileDetailsMap.set(schemaName, fileDetailsSchema);
|
|
84
|
+
function getFileSchemaName(baseName) {
|
|
85
|
+
// make sure suffix "FileDetails"
|
|
86
|
+
if (baseName.toLocaleLowerCase().endsWith("filedetails")) {
|
|
87
|
+
return pascalCase(baseName);
|
|
88
|
+
}
|
|
89
|
+
else if (baseName.toLocaleLowerCase().endsWith("file")) {
|
|
90
|
+
return pascalCase(baseName) + "Details";
|
|
118
91
|
}
|
|
92
|
+
else {
|
|
93
|
+
return pascalCase(baseName) + "FileDetails";
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function createFileDetailsSchema(schemaName, propertyName, namespace, schemas) {
|
|
97
|
+
const fileDetailsSchema = new ObjectSchema(schemaName, 'The file details for the "' + propertyName + '" field.', {
|
|
98
|
+
language: {
|
|
99
|
+
default: {
|
|
100
|
+
namespace: namespace,
|
|
101
|
+
},
|
|
102
|
+
java: {
|
|
103
|
+
namespace: getJavaNamespace(namespace),
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
serializationFormats: [KnownMediaType.Multipart],
|
|
107
|
+
});
|
|
108
|
+
schemas.add(fileDetailsSchema);
|
|
109
|
+
fileDetailsMap.set(schemaName, fileDetailsSchema);
|
|
119
110
|
return fileDetailsSchema;
|
|
120
111
|
}
|
|
112
|
+
function addContentProperty(fileDetailsSchema, binarySchema) {
|
|
113
|
+
fileDetailsSchema.addProperty(new Property("content", "The content of the file.", binarySchema, {
|
|
114
|
+
required: true,
|
|
115
|
+
nullable: false,
|
|
116
|
+
readOnly: false,
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
function addFilenameProperty(fileDetailsSchema, stringSchema, filenameProperty, processSchemaFunc) {
|
|
120
|
+
fileDetailsSchema.addProperty(new Property("filename", "The filename of the file.", (filenameProperty === null || filenameProperty === void 0 ? void 0 : filenameProperty.type.kind) === "constant" && processSchemaFunc
|
|
121
|
+
? processSchemaFunc(filenameProperty.type)
|
|
122
|
+
: stringSchema, {
|
|
123
|
+
required: filenameProperty ? !filenameProperty.optional : false,
|
|
124
|
+
nullable: false,
|
|
125
|
+
readOnly: false,
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
function addContentTypeProperty(fileDetailsSchema, stringSchema, contentTypeProperty, processSchemaFunc) {
|
|
129
|
+
fileDetailsSchema.addProperty(new Property("contentType", "The content-type of the file.", (contentTypeProperty === null || contentTypeProperty === void 0 ? void 0 : contentTypeProperty.type.kind) === "constant" && processSchemaFunc
|
|
130
|
+
? processSchemaFunc(contentTypeProperty.type)
|
|
131
|
+
: stringSchema, {
|
|
132
|
+
required: contentTypeProperty ? !contentTypeProperty.optional : false,
|
|
133
|
+
nullable: false,
|
|
134
|
+
readOnly: false,
|
|
135
|
+
clientDefaultValue: (contentTypeProperty === null || contentTypeProperty === void 0 ? void 0 : contentTypeProperty.type.kind) === "constant" ? undefined : "application/octet-stream",
|
|
136
|
+
}));
|
|
137
|
+
}
|
|
138
|
+
export function getFileDetailsSchema(property, namespace, schemas, binarySchema, stringSchema, processSchemaFunc) {
|
|
139
|
+
var _a;
|
|
140
|
+
let fileSdkType;
|
|
141
|
+
if (property.type.kind === "model") {
|
|
142
|
+
fileSdkType = property.type;
|
|
143
|
+
}
|
|
144
|
+
else if (property.type.kind === "array" && property.type.valueType.kind === "model") {
|
|
145
|
+
fileSdkType = property.type.valueType;
|
|
146
|
+
}
|
|
147
|
+
if (fileSdkType) {
|
|
148
|
+
// property.type is File, use name and properties from property.type for the File schema
|
|
149
|
+
/*
|
|
150
|
+
Current logic:
|
|
151
|
+
- Class name suffix "FileDetails"
|
|
152
|
+
- No class hierarchy for File
|
|
153
|
+
- File has 3 properties: "content", "filename", "contentType" (Note that it is "contents" in TypeSpec)
|
|
154
|
+
- No adjustment on "content" property, it is always BinaryData and required
|
|
155
|
+
- Allow constant type for "filename" and "contentType" (to be discussed for other types e.g. enum)
|
|
156
|
+
- Allow required for "filename" and "contentType"
|
|
157
|
+
*/
|
|
158
|
+
const filePropertyName = property.name;
|
|
159
|
+
const fileSchemaName = fileSdkType.name;
|
|
160
|
+
const schemaName = getFileSchemaName(fileSchemaName);
|
|
161
|
+
let fileDetailsSchema = fileDetailsMap.get(schemaName);
|
|
162
|
+
if (!fileDetailsSchema) {
|
|
163
|
+
const typeNamespace = (_a = getNamespace(property.type.__raw)) !== null && _a !== void 0 ? _a : namespace;
|
|
164
|
+
fileDetailsSchema = createFileDetailsSchema(schemaName, filePropertyName, typeNamespace, schemas);
|
|
165
|
+
// description if available
|
|
166
|
+
if (fileSdkType.description) {
|
|
167
|
+
fileDetailsSchema.summary = fileSdkType.description;
|
|
168
|
+
}
|
|
169
|
+
if (fileSdkType.details) {
|
|
170
|
+
fileDetailsSchema.language.default.description = fileSdkType.details;
|
|
171
|
+
}
|
|
172
|
+
// crossLanguageDefinitionId
|
|
173
|
+
fileDetailsSchema.crossLanguageDefinitionId = fileSdkType.crossLanguageDefinitionId;
|
|
174
|
+
let contentTypeProperty;
|
|
175
|
+
let filenameProperty;
|
|
176
|
+
// find "filename" and "contentType" property in current model and its base models
|
|
177
|
+
while (fileSdkType !== undefined) {
|
|
178
|
+
for (const property of fileSdkType.properties) {
|
|
179
|
+
if (!filenameProperty && property.name === "filename") {
|
|
180
|
+
filenameProperty = property;
|
|
181
|
+
}
|
|
182
|
+
if (!contentTypeProperty && property.name === "contentType") {
|
|
183
|
+
contentTypeProperty = property;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
fileSdkType = fileSdkType.baseModel;
|
|
187
|
+
}
|
|
188
|
+
addContentProperty(fileDetailsSchema, binarySchema);
|
|
189
|
+
addFilenameProperty(fileDetailsSchema, stringSchema, filenameProperty, processSchemaFunc);
|
|
190
|
+
addContentTypeProperty(fileDetailsSchema, stringSchema, contentTypeProperty, processSchemaFunc);
|
|
191
|
+
}
|
|
192
|
+
return fileDetailsSchema;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
// property.type is bytes, create a File schema
|
|
196
|
+
const filePropertyName = property.name;
|
|
197
|
+
const schemaName = getFileSchemaName(filePropertyName);
|
|
198
|
+
let fileDetailsSchema = fileDetailsMap.get(schemaName);
|
|
199
|
+
if (!fileDetailsSchema) {
|
|
200
|
+
fileDetailsSchema = createFileDetailsSchema(schemaName, filePropertyName, namespace, schemas);
|
|
201
|
+
addContentProperty(fileDetailsSchema, binarySchema);
|
|
202
|
+
addFilenameProperty(fileDetailsSchema, stringSchema);
|
|
203
|
+
addContentTypeProperty(fileDetailsSchema, stringSchema);
|
|
204
|
+
}
|
|
205
|
+
return fileDetailsSchema;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
121
208
|
//# sourceMappingURL=external-schemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-schemas.js","sourceRoot":"","sources":["../../src/external-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,YAAY,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"external-schemas.js","sourceRoot":"","sources":["../../src/external-schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,YAAY,EAAE,QAAQ,EAAiC,MAAM,qBAAqB,CAAC;AACvH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AASxE;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAgB,EAAE,YAA0B;IACpF,MAAM,mBAAmB,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,4CAA4C,EAAE;QAClG,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,SAAS,EAAE,wBAAwB;aACpC;SACF;KACF,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,mBAAmB,CAAC,WAAW,CAC7B,IAAI,QAAQ,CAAC,MAAM,EAAE,+BAA+B,EAAE,YAAY,EAAE;QAClE,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;KACf,CAAC,CACH,CAAC;IACF,mBAAmB,CAAC,WAAW,CAC7B,IAAI,QAAQ,CAAC,SAAS,EAAE,kCAAkC,EAAE,YAAY,EAAE;QACxE,cAAc,EAAE,SAAS;QACzB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;KACf,CAAC,CACH,CAAC;IACF,mBAAmB,CAAC,WAAW,CAC7B,IAAI,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,EAAE,YAAY,EAAE;QAChE,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf,CAAC,CACH,CAAC;IACF,MAAM,kBAAkB,GAAG,IAAI,WAAW,CAAC,cAAc,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CAAC;IACxG,mBAAmB,CAAC,WAAW,CAC7B,IAAI,QAAQ,CACV,cAAc,EACd,0EAA0E,EAC1E,kBAAkB,EAClB;QACE,cAAc,EAAE,SAAS;QACzB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf,CACF,CACF,CAAC;IACF,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,OAAgB,EAAE,YAA0B;IAC3F,MAAM,0BAA0B,GAAG,IAAI,YAAY,CACjD,sBAAsB,EACtB,4CAA4C,EAC5C;QACE,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,SAAS,EAAE,wBAAwB;aACpC;YACD,IAAI,EAAE;gBACJ,SAAS,EAAE,6BAA6B;aACzC;SACF;KACF,CACF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,0BAA0B,CAAC,WAAW,CACpC,IAAI,QAAQ,CAAC,aAAa,EAAE,iCAAiC,EAAE,YAAY,EAAE;QAC3E,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;KACf,CAAC,CACH,CAAC;IACF,0BAA0B,CAAC,WAAW,CACpC,IAAI,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,EAAE,YAAY,EAAE;QACnE,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;KACf,CAAC,CACH,CAAC;IACF,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7E,0BAA0B,CAAC,WAAW,CACpC,IAAI,QAAQ,CAAC,OAAO,EAAE,gEAAgE,EAAE,mBAAmB,EAAE;QAC3G,cAAc,EAAE,OAAO;QACvB,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE;YACR,IAAI,EAAE;gBACJ,SAAS,EAAE,uBAAuB;aACnC;SACF;KACF,CAAC,CACH,CAAC;IACF,OAAO,0BAA0B,CAAC;AACpC,CAAC;AAED,MAAM,cAAc,GAA8B,IAAI,GAAG,EAAE,CAAC;AAE5D,SAAS,iBAAiB,CAAC,QAAgB;IACzC,iCAAiC;IACjC,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB,EAAE,YAAoB,EAAE,SAAiB,EAAE,OAAgB;IAC5G,MAAM,iBAAiB,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE,4BAA4B,GAAG,YAAY,GAAG,UAAU,EAAE;QAC/G,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,SAAS,EAAE,SAAS;aACrB;YACD,IAAI,EAAE;gBACJ,SAAS,EAAE,gBAAgB,CAAC,SAAS,CAAC;aACvC;SACF;QACD,oBAAoB,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC;KACjD,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAClD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,kBAAkB,CAAC,iBAA+B,EAAE,YAA0B;IACrF,iBAAiB,CAAC,WAAW,CAC3B,IAAI,QAAQ,CAAC,SAAS,EAAE,0BAA0B,EAAE,YAAY,EAAE;QAChE,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,iBAA+B,EAC/B,YAA0B,EAC1B,gBAAuC,EACvC,iBAA6C;IAE7C,iBAAiB,CAAC,WAAW,CAC3B,IAAI,QAAQ,CACV,UAAU,EACV,2BAA2B,EAC3B,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAC,IAAI,MAAK,UAAU,IAAI,iBAAiB;QAC7D,CAAC,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC,YAAY,EAChB;QACE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;QAC/D,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB,CACF,CACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,iBAA+B,EAC/B,YAA0B,EAC1B,mBAA0C,EAC1C,iBAA6C;IAE7C,iBAAiB,CAAC,WAAW,CAC3B,IAAI,QAAQ,CACV,aAAa,EACb,+BAA+B,EAC/B,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,IAAI,CAAC,IAAI,MAAK,UAAU,IAAI,iBAAiB;QAChE,CAAC,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC7C,CAAC,CAAC,YAAY,EAChB;QACE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;QACrE,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;QACf,kBAAkB,EAAE,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,IAAI,CAAC,IAAI,MAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B;KAC3G,CACF,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAkC,EAClC,SAAiB,EACjB,OAAgB,EAChB,YAA0B,EAC1B,YAA0B,EAC1B,iBAA4C;;IAE5C,IAAI,WAAqC,CAAC;IAC1C,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACtF,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,wFAAwF;QACxF;;;;;;;;WAQG;QACH,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC;QACvC,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC;QACxC,MAAM,UAAU,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,iBAAiB,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,MAAA,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAI,SAAS,CAAC;YACrE,iBAAiB,GAAG,uBAAuB,CAAC,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YAElG,2BAA2B;YAC3B,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC5B,iBAAiB,CAAC,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC;YACtD,CAAC;YACD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;YACvE,CAAC;YACD,4BAA4B;YAC3B,iBAA6C,CAAC,yBAAyB,GAAG,WAAW,CAAC,yBAAyB,CAAC;YAEjH,IAAI,mBAAmB,CAAC;YACxB,IAAI,gBAAgB,CAAC;YAErB,kFAAkF;YAClF,OAAO,WAAW,KAAK,SAAS,EAAE,CAAC;gBACjC,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;oBAC9C,IAAI,CAAC,gBAAgB,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACtD,gBAAgB,GAAG,QAAQ,CAAC;oBAC9B,CAAC;oBACD,IAAI,CAAC,mBAAmB,IAAI,QAAQ,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;wBAC5D,mBAAmB,GAAG,QAAQ,CAAC;oBACjC,CAAC;gBACH,CAAC;gBACD,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC;YACtC,CAAC;YAED,kBAAkB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YACpD,mBAAmB,CAAC,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;YAC1F,sBAAsB,CAAC,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,+CAA+C;QAC/C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC;QACvC,MAAM,UAAU,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,iBAAiB,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,iBAAiB,GAAG,uBAAuB,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAE9F,kBAAkB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YACpD,mBAAmB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YACrD,sBAAsB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;AACH,CAAC"}
|
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
import { ModelProperty,
|
|
1
|
+
import { ModelProperty, Program, Type, Union } from "@typespec/compiler";
|
|
2
2
|
import { HttpOperation } from "@typespec/http";
|
|
3
3
|
import { Parameter } from "@autorest/codemodel";
|
|
4
4
|
import { LroMetadata } from "@azure-tools/typespec-azure-core";
|
|
5
5
|
import { Client as CodeModelClient, ServiceVersion } from "./common/client.js";
|
|
6
6
|
import { CodeModel } from "./common/code-model.js";
|
|
7
|
-
import { EmitterOptions } from "./emitter.js";
|
|
8
|
-
import { SdkContext } from "@azure-tools/typespec-client-generator-core";
|
|
9
7
|
export declare const SPECIAL_HEADER_NAMES: Set<string>;
|
|
10
8
|
export declare const ORIGIN_API_VERSION = "modelerfour:synthesized/api-version";
|
|
11
9
|
export declare function isKnownContentType(contentTypes: string[]): boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Load examples from the examples directory.
|
|
14
|
-
*
|
|
15
|
-
* @param program the program.
|
|
16
|
-
* @param options the emitter options.
|
|
17
|
-
* @param sdkContext the SdkContext.
|
|
18
|
-
* @returns the Map of Operation to JSON. The Operation would be operation.projectionSource if available.
|
|
19
|
-
*/
|
|
20
|
-
export declare function loadExamples(program: Program, options: EmitterOptions, sdkContext: SdkContext): Promise<Map<Operation, any>>;
|
|
21
10
|
export declare function operationIsJsonMergePatch(op: HttpOperation): boolean;
|
|
22
11
|
export declare function operationIsMultipart(op: HttpOperation): boolean;
|
|
23
12
|
export declare function operationIsMultipleContentTypes(op: HttpOperation): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-utils.d.ts","sourceRoot":"","sources":["../../src/operation-utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"operation-utils.d.ts","sourceRoot":"","sources":["../../src/operation-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAa,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAyE,MAAM,gBAAgB,CAAC;AACtH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,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;AAInD,eAAO,MAAM,oBAAoB,aAM/B,CAAC;AAEH,eAAO,MAAM,kBAAkB,wCAAwC,CAAC;AAkBxE,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAMlE;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAE/D;AAaD,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,GAAG,SAAS,GAAG,OAAO,CAShG;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,cAAc,CAerF;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CA2BvG;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAcvE"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getHeaderFieldName, getQueryParamName, getPathParamName, isStatusCode, getAllHttpServices, getHttpService, } from "@typespec/http";
|
|
3
|
-
import { resolveOperationId } from "@typespec/openapi";
|
|
1
|
+
import { getHeaderFieldName, getQueryParamName, getPathParamName, isStatusCode } from "@typespec/http";
|
|
4
2
|
import { Parameter } from "@autorest/codemodel";
|
|
5
|
-
import { buildVersionProjections } from "@typespec/versioning";
|
|
6
3
|
import { ServiceVersion } from "./common/client.js";
|
|
7
|
-
import { getNamespace,
|
|
4
|
+
import { getNamespace, pascalCase } from "./utils.js";
|
|
8
5
|
import { modelIs, unionReferredByType } from "./type-utils.js";
|
|
9
|
-
import { getDefaultApiVersion } from "@azure-tools/typespec-client-generator-core";
|
|
10
|
-
import { pathToFileURL } from "url";
|
|
11
6
|
export const SPECIAL_HEADER_NAMES = new Set([
|
|
12
7
|
"repeatability-request-id",
|
|
13
8
|
"repeatability-first-sent",
|
|
@@ -37,107 +32,6 @@ export function isKnownContentType(contentTypes) {
|
|
|
37
32
|
return SUPPORTED_MIME_TYPES.has(it);
|
|
38
33
|
});
|
|
39
34
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Load examples from the examples directory.
|
|
42
|
-
*
|
|
43
|
-
* @param program the program.
|
|
44
|
-
* @param options the emitter options.
|
|
45
|
-
* @param sdkContext the SdkContext.
|
|
46
|
-
* @returns the Map of Operation to JSON. The Operation would be operation.projectionSource if available.
|
|
47
|
-
*/
|
|
48
|
-
export async function loadExamples(program, options, sdkContext) {
|
|
49
|
-
var _a;
|
|
50
|
-
// sdkContextApiVersion could contain "all" or "latest"
|
|
51
|
-
const sdkContextApiVersion = sdkContext.apiVersion;
|
|
52
|
-
const operationExamplesMap = new Map();
|
|
53
|
-
const operationExamplesDirectory = options["examples-directory"];
|
|
54
|
-
if (operationExamplesDirectory) {
|
|
55
|
-
const operationIdExamplesMap = new Map();
|
|
56
|
-
let service = ignoreDiagnostics(getAllHttpServices(program))[0];
|
|
57
|
-
let version = undefined;
|
|
58
|
-
if (sdkContextApiVersion && !["all", "latest"].includes(sdkContextApiVersion)) {
|
|
59
|
-
version = sdkContextApiVersion;
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
version = (_a = getDefaultApiVersion(sdkContext, service.namespace)) === null || _a === void 0 ? void 0 : _a.value;
|
|
63
|
-
}
|
|
64
|
-
if (version) {
|
|
65
|
-
// projection
|
|
66
|
-
const versionProjections = buildVersionProjections(program, service.namespace).filter((it) => it.version === version);
|
|
67
|
-
const projectedProgram = projectProgram(program, versionProjections[0].projections);
|
|
68
|
-
const projectedService = projectedProgram.projector.projectedTypes.get(service.namespace);
|
|
69
|
-
if ((projectedService === null || projectedService === void 0 ? void 0 : projectedService.kind) === "Namespace") {
|
|
70
|
-
service = ignoreDiagnostics(getHttpService(program, projectedService));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
let exampleDir = version
|
|
74
|
-
? resolvePath(operationExamplesDirectory, version)
|
|
75
|
-
: resolvePath(operationExamplesDirectory);
|
|
76
|
-
if (!(await directoryExists(program, exampleDir))) {
|
|
77
|
-
if (program.projectRoot) {
|
|
78
|
-
// try resolve "examples-directory" relative to program.projectRoot
|
|
79
|
-
exampleDir = version
|
|
80
|
-
? resolvePath(program.projectRoot, operationExamplesDirectory, version)
|
|
81
|
-
: resolvePath(program.projectRoot, operationExamplesDirectory);
|
|
82
|
-
if (!(await directoryExists(program, exampleDir))) {
|
|
83
|
-
logWarning(program, `Examples directory '${exampleDir}' does not exist.`);
|
|
84
|
-
return operationExamplesMap;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
const exampleFiles = await program.host.readDir(exampleDir);
|
|
89
|
-
for (const fileName of exampleFiles) {
|
|
90
|
-
try {
|
|
91
|
-
const exampleFilePath = resolvePath(exampleDir, fileName);
|
|
92
|
-
const exampleFile = await program.host.readFile(exampleFilePath);
|
|
93
|
-
const example = JSON.parse(exampleFile.text);
|
|
94
|
-
if (!example.operationId) {
|
|
95
|
-
logWarning(program, `Example file '${fileName}' is missing operationId.`);
|
|
96
|
-
continue;
|
|
97
|
-
}
|
|
98
|
-
if (!operationIdExamplesMap.has(example.operationId)) {
|
|
99
|
-
example["x-ms-original-file"] = pathToFileURL(exampleFilePath).toString();
|
|
100
|
-
operationIdExamplesMap.set(example.operationId, example);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
catch (err) {
|
|
104
|
-
logWarning(program, `Failed to load example file '${fileName}'.`);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
if (operationIdExamplesMap.size > 0) {
|
|
108
|
-
const routes = service.operations;
|
|
109
|
-
routes.forEach((it) => {
|
|
110
|
-
var _a;
|
|
111
|
-
const operationId = pascalCaseForOperationId(resolveOperationId(program, it.operation));
|
|
112
|
-
if (operationIdExamplesMap.has(operationId)) {
|
|
113
|
-
let operation = it.operation;
|
|
114
|
-
if (((_a = operation.projectionSource) === null || _a === void 0 ? void 0 : _a.kind) === "Operation") {
|
|
115
|
-
operation = operation.projectionSource;
|
|
116
|
-
}
|
|
117
|
-
operationExamplesMap.set(operation, operationIdExamplesMap.get(operationId));
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return operationExamplesMap;
|
|
123
|
-
}
|
|
124
|
-
async function directoryExists(program, directory) {
|
|
125
|
-
try {
|
|
126
|
-
if (!(await program.host.stat(directory)).isDirectory()) {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
catch (err) {
|
|
131
|
-
return false;
|
|
132
|
-
}
|
|
133
|
-
return true;
|
|
134
|
-
}
|
|
135
|
-
function pascalCaseForOperationId(name) {
|
|
136
|
-
return name
|
|
137
|
-
.split("_")
|
|
138
|
-
.map((s) => pascalCase(s))
|
|
139
|
-
.join("_");
|
|
140
|
-
}
|
|
141
35
|
export function operationIsJsonMergePatch(op) {
|
|
142
36
|
return operationIsContentType(op, "application/merge-patch+json");
|
|
143
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-utils.js","sourceRoot":"","sources":["../../src/operation-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"operation-utils.js","sourceRoot":"","sources":["../../src/operation-utils.ts"],"names":[],"mappings":"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"}
|