@azure-tools/typespec-rust 0.29.0 → 0.30.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.
- package/dist/src/codegen/clients.js +214 -97
- package/dist/src/codegen/clients.js.map +1 -1
- package/dist/src/codegen/codeGenerator.d.ts.map +1 -1
- package/dist/src/codegen/codeGenerator.js +3 -1
- package/dist/src/codegen/codeGenerator.js.map +1 -1
- package/dist/src/codegen/context.d.ts +1 -1
- package/dist/src/codegen/context.d.ts.map +1 -1
- package/dist/src/codegen/context.js +1 -1
- package/dist/src/codegen/context.js.map +1 -1
- package/dist/src/codegen/enums.js +0 -1
- package/dist/src/codegen/enums.js.map +1 -1
- package/dist/src/codegen/helpers.d.ts +4 -0
- package/dist/src/codegen/helpers.d.ts.map +1 -1
- package/dist/src/codegen/helpers.js +23 -2
- package/dist/src/codegen/helpers.js.map +1 -1
- package/dist/src/codegen/mod.d.ts.map +1 -1
- package/dist/src/codegen/mod.js +4 -1
- package/dist/src/codegen/mod.js.map +1 -1
- package/dist/src/codegen/unions.d.ts +8 -1
- package/dist/src/codegen/unions.d.ts.map +1 -1
- package/dist/src/codegen/unions.js +42 -13
- package/dist/src/codegen/unions.js.map +1 -1
- package/dist/src/codegen/use.d.ts.map +1 -1
- package/dist/src/codegen/use.js +2 -1
- package/dist/src/codegen/use.js.map +1 -1
- package/dist/src/codemodel/client.d.ts +5 -0
- package/dist/src/codemodel/client.d.ts.map +1 -1
- package/dist/src/codemodel/client.js +1 -0
- package/dist/src/codemodel/client.js.map +1 -1
- package/dist/src/codemodel/crate.d.ts +1 -1
- package/dist/src/codemodel/crate.d.ts.map +1 -1
- package/dist/src/codemodel/crate.js +1 -1
- package/dist/src/codemodel/crate.js.map +1 -1
- package/dist/src/codemodel/types.d.ts +20 -22
- package/dist/src/codemodel/types.d.ts.map +1 -1
- package/dist/src/codemodel/types.js +8 -10
- package/dist/src/codemodel/types.js.map +1 -1
- package/dist/src/emitter.d.ts.map +1 -1
- package/dist/src/emitter.js +18 -15
- package/dist/src/emitter.js.map +1 -1
- package/dist/src/lib.d.ts +2 -0
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +6 -0
- package/dist/src/lib.js.map +1 -1
- package/dist/src/tcgcadapter/adapter.d.ts +5 -13
- package/dist/src/tcgcadapter/adapter.d.ts.map +1 -1
- package/dist/src/tcgcadapter/adapter.js +73 -88
- package/dist/src/tcgcadapter/adapter.js.map +1 -1
- package/dist/src/tcgcadapter/naming.d.ts +2 -1
- package/dist/src/tcgcadapter/naming.d.ts.map +1 -1
- package/dist/src/tcgcadapter/naming.js +3 -2
- package/dist/src/tcgcadapter/naming.js.map +1 -1
- package/package.json +2 -2
|
@@ -167,22 +167,20 @@ export class MarkerType {
|
|
|
167
167
|
this.docs = {};
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
|
-
export class
|
|
171
|
-
constructor(name, visibility,
|
|
172
|
-
this.kind = '
|
|
170
|
+
export class DiscriminatedUnion {
|
|
171
|
+
constructor(name, visibility, discriminant) {
|
|
172
|
+
this.kind = 'discriminatedUnion';
|
|
173
173
|
this.name = name;
|
|
174
174
|
this.visibility = visibility;
|
|
175
175
|
this.members = new Array();
|
|
176
|
-
this.
|
|
177
|
-
this.envelopeName = envelopeName;
|
|
176
|
+
this.discriminant = discriminant;
|
|
178
177
|
}
|
|
179
178
|
}
|
|
180
|
-
export class
|
|
181
|
-
constructor(
|
|
182
|
-
this.kind = '
|
|
183
|
-
this.name = name;
|
|
179
|
+
export class DiscriminatedUnionMember {
|
|
180
|
+
constructor(type, discriminantValue) {
|
|
181
|
+
this.kind = 'discriminatedUnionMember';
|
|
184
182
|
this.type = type;
|
|
185
|
-
this.
|
|
183
|
+
this.discriminantValue = discriminantValue;
|
|
186
184
|
}
|
|
187
185
|
}
|
|
188
186
|
export class Model extends StructBase {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/codemodel/types.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAS,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/codemodel/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAoB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAKhE,OAAO,EAAE,WAAW,EAAY,MAAM,oBAAoB,CAAC;AAC3D,OAAO,gCAAgC,CAAC;AAExC;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAoB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAKhE,OAAO,EAAE,WAAW,EAAY,MAAM,oBAAoB,CAAC;AAC3D,OAAO,gCAAgC,CAAC;AAExC;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,CAAC,iBA6GrE"}
|
package/dist/src/emitter.js
CHANGED
|
@@ -25,21 +25,6 @@ export async function $onEmit(context) {
|
|
|
25
25
|
const crate = adapter.tcgcToCrate();
|
|
26
26
|
await mkdir(`${context.emitterOutputDir}/src`, { recursive: true });
|
|
27
27
|
const codegen = new CodeGenerator(crate);
|
|
28
|
-
// don't overwrite an existing Cargo.toml file by default
|
|
29
|
-
// TODO: consider merging existing dependencies with emitted dependencies when overwriting
|
|
30
|
-
// https://github.com/Azure/typespec-rust/issues/22
|
|
31
|
-
const cargoTomlPath = `${context.emitterOutputDir}/Cargo.toml`;
|
|
32
|
-
if (existsSync(cargoTomlPath) && context.options['overwrite-cargo-toml'] !== true) {
|
|
33
|
-
context.program.reportDiagnostic({
|
|
34
|
-
code: 'FileAlreadyExists',
|
|
35
|
-
severity: 'warning',
|
|
36
|
-
message: `skip overwriting file ${cargoTomlPath}`,
|
|
37
|
-
target: NoTarget,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
await writeFile(cargoTomlPath, codegen.emitCargoToml());
|
|
42
|
-
}
|
|
43
28
|
const libRsPath = `${context.emitterOutputDir}/src/lib.rs`;
|
|
44
29
|
if (existsSync(libRsPath) && context.options['overwrite-lib-rs'] !== true) {
|
|
45
30
|
context.program.reportDiagnostic({
|
|
@@ -57,6 +42,24 @@ export async function $onEmit(context) {
|
|
|
57
42
|
for (const file of files) {
|
|
58
43
|
await writeToGeneratedDir(context.emitterOutputDir, file.name, file.content);
|
|
59
44
|
}
|
|
45
|
+
// NOTE: To allow the generated code to add cargo dependencies as needed (by calling crate.addDependency()),
|
|
46
|
+
// we should be calling emitCargoToml() after all the calls to emitContent() above, and not before.
|
|
47
|
+
// https://github.com/Azure/typespec-rust/issues/746
|
|
48
|
+
// don't overwrite an existing Cargo.toml file by default
|
|
49
|
+
// TODO: consider merging existing dependencies with emitted dependencies when overwriting
|
|
50
|
+
// https://github.com/Azure/typespec-rust/issues/22
|
|
51
|
+
const cargoTomlPath = `${context.emitterOutputDir}/Cargo.toml`;
|
|
52
|
+
if (existsSync(cargoTomlPath) && context.options['overwrite-cargo-toml'] !== true) {
|
|
53
|
+
context.program.reportDiagnostic({
|
|
54
|
+
code: 'FileAlreadyExists',
|
|
55
|
+
severity: 'warning',
|
|
56
|
+
message: `skip overwriting file ${cargoTomlPath}`,
|
|
57
|
+
target: NoTarget,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
await writeFile(cargoTomlPath, codegen.emitCargoToml());
|
|
62
|
+
}
|
|
60
63
|
}
|
|
61
64
|
catch (error) {
|
|
62
65
|
failed = true;
|
package/dist/src/emitter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,4BAA4B;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAsB,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAe,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,gCAAgC,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAwC;IACpE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEpC,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,gBAAgB,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;QAEzC,
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export interface RustEmitterOptions {
|
|
|
4
4
|
'crate-name': string;
|
|
5
5
|
/** The version of the generated Rust crate */
|
|
6
6
|
'crate-version': string;
|
|
7
|
+
/** Whether to skip emitting client constructors and their options type. Defaults to false */
|
|
8
|
+
'omit-constructors': boolean;
|
|
7
9
|
/** Whether to overwrite an existing Cargo.toml file. Defaults to false */
|
|
8
10
|
'overwrite-cargo-toml': boolean;
|
|
9
11
|
/** Whether to overwrite an existing lib.rs file. Defaults to false */
|
package/dist/src/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAOA,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,sBAAsB,EAAE,OAAO,CAAC;IAChC,sEAAsE;IACtE,kBAAkB,EAAE,OAAO,CAAC;IAC5B,+EAA+E;IAC/E,qBAAqB,EAAE,OAAO,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAOA,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,6FAA6F;IAC7F,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0EAA0E;IAC1E,sBAAsB,EAAE,OAAO,CAAC;IAChC,sEAAsE;IACtE,kBAAkB,EAAE,OAAO,CAAC;IAC5B,+EAA+E;IAC/E,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAgFD,eAAO,MAAM,IAAI;;;;;;;;;;;;;6BAAgC,CAAC;AAElD,eAAO,MAAQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAE,iBAAiB,4BAAE,SAAS,wFAAS,CAAC"}
|
package/dist/src/lib.js
CHANGED
|
@@ -17,6 +17,12 @@ const EmitterOptionsSchema = {
|
|
|
17
17
|
nullable: false,
|
|
18
18
|
description: 'The version of the generated Rust crate'
|
|
19
19
|
},
|
|
20
|
+
'omit-constructors': {
|
|
21
|
+
type: 'boolean',
|
|
22
|
+
nullable: false,
|
|
23
|
+
default: false,
|
|
24
|
+
description: 'Whether to skip emitting client constructors and their options type. Defaults to false'
|
|
25
|
+
},
|
|
20
26
|
'overwrite-cargo-toml': {
|
|
21
27
|
type: 'boolean',
|
|
22
28
|
nullable: false,
|
package/dist/src/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,qBAAqB,EAAkB,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/lib.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,qBAAqB,EAAkB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAkBzF,MAAM,oBAAoB,GAAuC;IAC/D,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;IAC1B,UAAU,EAAE;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,sCAAsC;SACpD;QACD,eAAe,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,yCAAyC;SACvD;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,wFAAwF;SACtG;QACD,sBAAsB,EAAE;YACtB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,qEAAqE;SACnF;QACD,kBAAkB,EAAE;YAClB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,iEAAiE;SAC/E;QACD,qBAAqB,EAAE;YACrB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,0EAA0E;SACxF;KACF;IACD,QAAQ,EAAE;QACR,YAAY;QACZ,eAAe;KAChB;CACF,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE;QACX,eAAe,EAAE;YACf,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,kLAAkL,SAAS,KAAK,OAAO,EAAE;aAC/N;SACF;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,kDAAkD,SAAS,EAAE;aACnF;SACF;QACD,eAAe,EAAE;YACf,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,uKAAuK,SAAS,EAAE;aACxM;SACF;QACD,gBAAgB,EAAE;YAChB,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE;gBACR,OAAO,EAAE,YAAY,CAAA,mFAAmF,OAAO,EAAE;aAClH;SACF;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,oBAAoB;KAC9B;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAClD,gEAAgE;AAChE,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as tsp from '@typespec/compiler';
|
|
2
2
|
import { RustEmitterOptions } from '../lib.js';
|
|
3
3
|
import * as rust from '../codemodel/index.js';
|
|
4
4
|
/** ErrorCode defines the types of adapter errors */
|
|
@@ -21,8 +21,8 @@ export type ErrorCode =
|
|
|
21
21
|
*/
|
|
22
22
|
export declare class AdapterError extends Error {
|
|
23
23
|
readonly code: ErrorCode;
|
|
24
|
-
readonly target: DiagnosticTarget | typeof NoTarget;
|
|
25
|
-
constructor(code: ErrorCode, message: string, target?: DiagnosticTarget);
|
|
24
|
+
readonly target: tsp.DiagnosticTarget | typeof tsp.NoTarget;
|
|
25
|
+
constructor(code: ErrorCode, message: string, target?: tsp.DiagnosticTarget);
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* ExternalError is thrown when an external component reports a
|
|
@@ -38,7 +38,7 @@ export declare class Adapter {
|
|
|
38
38
|
* @param context the compiler context from which to create the Adapter
|
|
39
39
|
* @returns
|
|
40
40
|
*/
|
|
41
|
-
static create(context: EmitContext<RustEmitterOptions>): Promise<Adapter>;
|
|
41
|
+
static create(context: tsp.EmitContext<RustEmitterOptions>): Promise<Adapter>;
|
|
42
42
|
private readonly crate;
|
|
43
43
|
private readonly ctx;
|
|
44
44
|
private readonly options;
|
|
@@ -76,21 +76,13 @@ export declare class Adapter {
|
|
|
76
76
|
* @returns a Rust model
|
|
77
77
|
*/
|
|
78
78
|
private getModel;
|
|
79
|
-
/**
|
|
80
|
-
* Gets properties of a TypeSpec union
|
|
81
|
-
*
|
|
82
|
-
* @param union tcgc union to convert
|
|
83
|
-
* @returns TypeSpec union properties
|
|
84
|
-
*/
|
|
85
|
-
private getUnionProperties;
|
|
86
79
|
/**
|
|
87
80
|
* converts a tcgc union to a Rust union
|
|
88
81
|
*
|
|
89
82
|
* @param union the tcgc union to convert
|
|
90
|
-
* @param stack is a stack of model type names used to detect recursive type definitions
|
|
91
83
|
* @returns a Rust union
|
|
92
84
|
*/
|
|
93
|
-
private
|
|
85
|
+
private getDiscriminatedUnion;
|
|
94
86
|
private getSerializedPropertyName;
|
|
95
87
|
/**
|
|
96
88
|
* converts a tcgc model property to a model field
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/tcgcadapter/adapter.ts"],"names":[],"mappings":"AASA,OAAO,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/tcgcadapter/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// cspell: ignore addl responseheader subclients lropaging
|
|
6
6
|
import * as codegen from '@azure-tools/codegen';
|
|
7
7
|
import { values } from '@azure-tools/linq';
|
|
8
|
-
import
|
|
8
|
+
import * as tsp from '@typespec/compiler';
|
|
9
9
|
import * as helpers from './helpers.js';
|
|
10
10
|
import * as naming from './naming.js';
|
|
11
11
|
import * as shared from '../shared/shared.js';
|
|
@@ -21,7 +21,7 @@ export class AdapterError extends Error {
|
|
|
21
21
|
constructor(code, message, target) {
|
|
22
22
|
super(message);
|
|
23
23
|
this.code = code;
|
|
24
|
-
this.target = target !== null && target !== void 0 ? target : NoTarget;
|
|
24
|
+
this.target = target !== null && target !== void 0 ? target : tsp.NoTarget;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
@@ -99,8 +99,12 @@ export class Adapter {
|
|
|
99
99
|
}
|
|
100
100
|
/** converts all tcgc types to their Rust type equivalent */
|
|
101
101
|
adaptTypes() {
|
|
102
|
+
var _a;
|
|
102
103
|
for (const sdkUnion of this.ctx.sdkPackage.unions.filter(u => u.kind === 'union')) {
|
|
103
|
-
|
|
104
|
+
if (!sdkUnion.discriminatedOptions) {
|
|
105
|
+
throw new AdapterError('UnsupportedTsp', 'non-discriminated unions are not supported', (_a = sdkUnion.__raw) === null || _a === void 0 ? void 0 : _a.node);
|
|
106
|
+
}
|
|
107
|
+
const rustUnion = this.getDiscriminatedUnion(sdkUnion);
|
|
104
108
|
this.crate.unions.push(rustUnion);
|
|
105
109
|
}
|
|
106
110
|
for (const sdkEnum of this.ctx.sdkPackage.enums) {
|
|
@@ -112,6 +116,7 @@ export class Adapter {
|
|
|
112
116
|
const rustEnum = this.getEnum(sdkEnum);
|
|
113
117
|
this.crate.enums.push(rustEnum);
|
|
114
118
|
}
|
|
119
|
+
const processedTypes = new Set();
|
|
115
120
|
for (const model of this.ctx.sdkPackage.models) {
|
|
116
121
|
if ((model.usage & tcgc.UsageFlags.Input) === 0 && (model.usage & tcgc.UsageFlags.Output) === 0 && (model.usage & tcgc.UsageFlags.Spread) === 0) {
|
|
117
122
|
// skip types without input and output usage. this will include core
|
|
@@ -119,6 +124,14 @@ export class Adapter {
|
|
|
119
124
|
// we keep the models for spread params as we internally use them.
|
|
120
125
|
continue;
|
|
121
126
|
}
|
|
127
|
+
// TODO: workaround for https://github.com/Azure/typespec-azure/issues/3614
|
|
128
|
+
if (processedTypes.has(model.name)) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
processedTypes.add(model.name);
|
|
133
|
+
}
|
|
134
|
+
// END workaround
|
|
122
135
|
const rustModel = this.getModel(model);
|
|
123
136
|
this.crate.models.push(rustModel);
|
|
124
137
|
}
|
|
@@ -208,7 +221,9 @@ export class Adapter {
|
|
|
208
221
|
if (modelName.length === 0) {
|
|
209
222
|
throw new AdapterError('InternalError', 'unnamed model', (_a = model.__raw) === null || _a === void 0 ? void 0 : _a.node); // TODO: this might no longer be an issue
|
|
210
223
|
}
|
|
211
|
-
|
|
224
|
+
// remove any non-word characters from the name.
|
|
225
|
+
// the most common case is something like Foo.Bar.Baz
|
|
226
|
+
modelName = codegen.capitalize(modelName).replace(/\W/g, '');
|
|
212
227
|
let rustModel = this.types.get(modelName);
|
|
213
228
|
if (rustModel) {
|
|
214
229
|
return rustModel;
|
|
@@ -285,70 +300,14 @@ export class Adapter {
|
|
|
285
300
|
stack.pop();
|
|
286
301
|
return rustModel;
|
|
287
302
|
}
|
|
288
|
-
/**
|
|
289
|
-
* Gets properties of a TypeSpec union
|
|
290
|
-
*
|
|
291
|
-
* @param union tcgc union to convert
|
|
292
|
-
* @returns TypeSpec union properties
|
|
293
|
-
*/
|
|
294
|
-
// TODO: Rewrite getting information from __raw?.node after https://github.com/microsoft/typespec/issues/8455 is implemented
|
|
295
|
-
getUnionProperties(union) {
|
|
296
|
-
var _a;
|
|
297
|
-
const result = {
|
|
298
|
-
discriminatorValues: new Map(),
|
|
299
|
-
discriminatorPropertyName: 'kind',
|
|
300
|
-
envelopePropertyName: 'value'
|
|
301
|
-
};
|
|
302
|
-
/*
|
|
303
|
-
eslint-disable
|
|
304
|
-
@typescript-eslint/no-explicit-any,
|
|
305
|
-
@typescript-eslint/no-unnecessary-type-assertion,
|
|
306
|
-
@typescript-eslint/no-unsafe-argument,
|
|
307
|
-
@typescript-eslint/no-unsafe-assignment,
|
|
308
|
-
@typescript-eslint/no-unsafe-member-access
|
|
309
|
-
*/
|
|
310
|
-
const tspRawNode = (_a = union.__raw) === null || _a === void 0 ? void 0 : _a.node;
|
|
311
|
-
if (tspRawNode) {
|
|
312
|
-
for (const unionMember of Array.from(tspRawNode.symbol.members)) {
|
|
313
|
-
const discriminatorValue = unionMember[0];
|
|
314
|
-
const discriminatorTypeName = unionMember[1].node.value.target.sv;
|
|
315
|
-
result.discriminatorValues.set(discriminatorTypeName, discriminatorValue);
|
|
316
|
-
}
|
|
317
|
-
for (const decorator of tspRawNode.decorators) {
|
|
318
|
-
if (decorator.target.sv === 'discriminated') {
|
|
319
|
-
const argument = decorator.arguments[0];
|
|
320
|
-
if (argument) {
|
|
321
|
-
for (const property of argument.properties) {
|
|
322
|
-
const propertyName = property.id.sv;
|
|
323
|
-
const propertyValue = property.value.value;
|
|
324
|
-
if (propertyName === 'envelope') {
|
|
325
|
-
if (propertyValue === 'none') {
|
|
326
|
-
result.envelopePropertyName = '';
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
else if (propertyName === 'discriminatorPropertyName') {
|
|
330
|
-
result.discriminatorPropertyName = propertyValue;
|
|
331
|
-
}
|
|
332
|
-
else if (propertyName === 'envelopePropertyName') {
|
|
333
|
-
result.envelopePropertyName = propertyValue;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
/* eslint-enable */
|
|
341
|
-
return result;
|
|
342
|
-
}
|
|
343
303
|
/**
|
|
344
304
|
* converts a tcgc union to a Rust union
|
|
345
305
|
*
|
|
346
306
|
* @param union the tcgc union to convert
|
|
347
|
-
* @param stack is a stack of model type names used to detect recursive type definitions
|
|
348
307
|
* @returns a Rust union
|
|
349
308
|
*/
|
|
350
|
-
|
|
351
|
-
var _a, _b, _c;
|
|
309
|
+
getDiscriminatedUnion(union) {
|
|
310
|
+
var _a, _b, _c, _d;
|
|
352
311
|
if (union.name.length === 0) {
|
|
353
312
|
throw new AdapterError('InternalError', 'unnamed union', (_a = union.__raw) === null || _a === void 0 ? void 0 : _a.node);
|
|
354
313
|
}
|
|
@@ -357,31 +316,45 @@ export class Adapter {
|
|
|
357
316
|
if (rustUnion) {
|
|
358
317
|
return rustUnion;
|
|
359
318
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
319
|
+
if (!union.discriminatedOptions) {
|
|
320
|
+
// we should have verified this earlier.
|
|
321
|
+
// having this check means the compiler won't bark
|
|
322
|
+
// at us when accessing union.discriminatedOptions
|
|
323
|
+
throw new AdapterError('InternalError', 'getDiscriminatedUnion called for non-discriminated union', (_b = union.__raw) === null || _b === void 0 ? void 0 : _b.node);
|
|
364
324
|
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
rustUnion = new rust.Union(unionName, adaptAccessFlags(union.access), tspUnionProperties.discriminatorPropertyName, tspUnionProperties.envelopePropertyName);
|
|
325
|
+
rustUnion = new rust.DiscriminatedUnion(unionName, adaptAccessFlags(union.access), union.discriminatedOptions.discriminatorPropertyName);
|
|
326
|
+
rustUnion.envelopeName = union.discriminatedOptions.envelopePropertyName;
|
|
368
327
|
rustUnion.docs = this.adaptDocs(union.summary, union.doc);
|
|
369
328
|
this.types.set(unionName, rustUnion);
|
|
329
|
+
// TODO: remove when https://github.com/microsoft/typespec/issues/8455 is complete
|
|
330
|
+
const discriminatorValues = new Map();
|
|
331
|
+
const rawUnion = union.__raw;
|
|
332
|
+
if (rawUnion) {
|
|
333
|
+
for (const [variantKey, variant] of rawUnion.variants) {
|
|
334
|
+
const discriminatorValue = typeof variantKey === 'string' ? variantKey : variantKey.toString();
|
|
335
|
+
if (variant.type.kind === 'Model') {
|
|
336
|
+
discriminatorValues.set(variant.type.name, discriminatorValue);
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
throw new AdapterError('InternalError', `unexpected kind ${variant.type.kind} for discriminated union member`, rawUnion);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
// END WORKAROUND
|
|
370
344
|
for (const unionMember of union.variantTypes) {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
throw new AdapterError('UnsupportedTsp', `non-model union member`, (_b = unionMember.__raw) === null || _b === void 0 ? void 0 : _b.node);
|
|
345
|
+
if (unionMember.kind !== 'model') {
|
|
346
|
+
throw new AdapterError('UnsupportedTsp', `non-model union member kind ${unionMember.kind}`, (_c = unionMember.__raw) === null || _c === void 0 ? void 0 : _c.node);
|
|
374
347
|
}
|
|
375
|
-
|
|
348
|
+
// TODO: use unionMember.discriminatorValue
|
|
349
|
+
const discriminatorValue = discriminatorValues.get(unionMember.name);
|
|
376
350
|
if (!discriminatorValue) {
|
|
377
|
-
throw new AdapterError('InternalError', `
|
|
351
|
+
throw new AdapterError('InternalError', `didn't find discriminant value for type ${unionMember.name}`, (_d = unionMember.__raw) === null || _d === void 0 ? void 0 : _d.node);
|
|
378
352
|
}
|
|
379
|
-
const
|
|
380
|
-
const rustUnionMember = new rust.
|
|
353
|
+
const unionMemberType = this.getModel(unionMember);
|
|
354
|
+
const rustUnionMember = new rust.DiscriminatedUnionMember(unionMemberType, discriminatorValue);
|
|
381
355
|
rustUnionMember.docs = this.adaptDocs(unionMember.summary, unionMember.doc);
|
|
382
356
|
rustUnion.members.push(rustUnionMember);
|
|
383
357
|
}
|
|
384
|
-
stack.pop();
|
|
385
358
|
return rustUnion;
|
|
386
359
|
}
|
|
387
360
|
getSerializedPropertyName(property) {
|
|
@@ -446,7 +419,7 @@ export class Adapter {
|
|
|
446
419
|
* @returns the adapted Rust type
|
|
447
420
|
*/
|
|
448
421
|
getType(type, stack) {
|
|
449
|
-
var _a, _b;
|
|
422
|
+
var _a, _b, _c;
|
|
450
423
|
const getDateTimeEncoding = (encoding) => {
|
|
451
424
|
var _a;
|
|
452
425
|
switch (encoding) {
|
|
@@ -584,10 +557,13 @@ export class Adapter {
|
|
|
584
557
|
return timeType;
|
|
585
558
|
}
|
|
586
559
|
case 'union': {
|
|
587
|
-
|
|
560
|
+
if (!type.discriminatedOptions) {
|
|
561
|
+
throw new AdapterError('UnsupportedTsp', 'non-discriminated unions are not supported', (_b = type.__raw) === null || _b === void 0 ? void 0 : _b.node);
|
|
562
|
+
}
|
|
563
|
+
return this.getDiscriminatedUnion(type);
|
|
588
564
|
}
|
|
589
565
|
default:
|
|
590
|
-
throw new AdapterError('UnsupportedTsp', `unhandled tcgc type ${type.kind}`, (
|
|
566
|
+
throw new AdapterError('UnsupportedTsp', `unhandled tcgc type ${type.kind}`, (_c = type.__raw) === null || _c === void 0 ? void 0 : _c.node);
|
|
591
567
|
}
|
|
592
568
|
}
|
|
593
569
|
/** returns a Box type */
|
|
@@ -852,6 +828,7 @@ export class Adapter {
|
|
|
852
828
|
clientOptionsField.defaultValue = 'ClientOptions::default()';
|
|
853
829
|
clientOptionsStruct.fields.push(clientOptionsField);
|
|
854
830
|
rustClient.constructable = new rust.ClientConstruction(new rust.ClientOptions(clientOptionsStruct));
|
|
831
|
+
rustClient.constructable.suppressed = this.options['omit-constructors'];
|
|
855
832
|
clientOptionsStruct.docs.summary = `Options used when creating a ${this.asDocLink(rustClient.name, rustClient.name)}`;
|
|
856
833
|
// NOTE: per tcgc convention, if there is no param of kind credential
|
|
857
834
|
// it means that the client doesn't require any kind of authentication.
|
|
@@ -889,7 +866,7 @@ export class Adapter {
|
|
|
889
866
|
code: 'UnsupportedAuthenticationScheme',
|
|
890
867
|
severity: 'warning',
|
|
891
868
|
message: `authentication scheme ${cred.type} is not supported`,
|
|
892
|
-
target: (_b = (_a = param.__raw) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : NoTarget,
|
|
869
|
+
target: (_b = (_a = param.__raw) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : tsp.NoTarget,
|
|
893
870
|
});
|
|
894
871
|
return AuthTypes.WithAuth;
|
|
895
872
|
}
|
|
@@ -1018,7 +995,7 @@ export class Adapter {
|
|
|
1018
995
|
code: 'LroPagingNotSupported',
|
|
1019
996
|
severity: 'warning',
|
|
1020
997
|
message: `skip emitting Paging LRO ${method.name}`,
|
|
1021
|
-
target: (_d = (_c = method.__raw) === null || _c === void 0 ? void 0 : _c.node) !== null && _d !== void 0 ? _d : NoTarget,
|
|
998
|
+
target: (_d = (_c = method.__raw) === null || _c === void 0 ? void 0 : _c.node) !== null && _d !== void 0 ? _d : tsp.NoTarget,
|
|
1022
999
|
});
|
|
1023
1000
|
continue;
|
|
1024
1001
|
}
|
|
@@ -1082,6 +1059,9 @@ export class Adapter {
|
|
|
1082
1059
|
// client-side default value makes the param optional
|
|
1083
1060
|
if (param.optional || param.clientDefaultValue) {
|
|
1084
1061
|
optional = true;
|
|
1062
|
+
if (!param.clientDefaultValue) {
|
|
1063
|
+
paramType = this.getOptionType(this.typeToWireType(paramType));
|
|
1064
|
+
}
|
|
1085
1065
|
const paramField = new rust.StructField(paramName, 'pub', paramType);
|
|
1086
1066
|
paramField.docs = this.adaptDocs(param.summary, param.doc);
|
|
1087
1067
|
constructable.options.type.fields.push(paramField);
|
|
@@ -1154,7 +1134,7 @@ export class Adapter {
|
|
|
1154
1134
|
code: 'PagingMethodRename',
|
|
1155
1135
|
severity: 'warning',
|
|
1156
1136
|
message: `renamed paging method from ${method.name} to ${srcMethodName}`,
|
|
1157
|
-
target: (_b = (_a = method.__raw) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : NoTarget,
|
|
1137
|
+
target: (_b = (_a = method.__raw) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : tsp.NoTarget,
|
|
1158
1138
|
});
|
|
1159
1139
|
}
|
|
1160
1140
|
const languageIndependentName = method.crossLanguageDefinitionId;
|
|
@@ -1529,14 +1509,15 @@ export class Adapter {
|
|
|
1529
1509
|
// adapt the response headers and add them to the trait
|
|
1530
1510
|
for (const header of responseHeaders) {
|
|
1531
1511
|
let responseHeader;
|
|
1512
|
+
const lowerCasedHeader = header.serializedName.toLowerCase();
|
|
1532
1513
|
if (header.type.kind === 'dict') {
|
|
1533
1514
|
if (header.serializedName !== 'x-ms-meta' && header.serializedName !== 'x-ms-or') {
|
|
1534
1515
|
throw new AdapterError('InternalError', `unexpected response header collection ${header.serializedName}`, header.__raw.node);
|
|
1535
1516
|
}
|
|
1536
|
-
responseHeader = new rust.ResponseHeaderHashMap(snakeCaseName(header.name),
|
|
1517
|
+
responseHeader = new rust.ResponseHeaderHashMap(snakeCaseName(header.name), lowerCasedHeader);
|
|
1537
1518
|
}
|
|
1538
1519
|
else {
|
|
1539
|
-
responseHeader = new rust.ResponseHeaderScalar(snakeCaseName(header.name), fixETagName(
|
|
1520
|
+
responseHeader = new rust.ResponseHeaderScalar(snakeCaseName(header.name), fixETagName(lowerCasedHeader), this.typeToWireType(this.getType(header.type)));
|
|
1540
1521
|
}
|
|
1541
1522
|
responseHeader.docs = this.adaptDocs(header.summary, header.doc);
|
|
1542
1523
|
responseHeadersMap.set(header, responseHeader);
|
|
@@ -1765,7 +1746,7 @@ export class Adapter {
|
|
|
1765
1746
|
}
|
|
1766
1747
|
return param.name;
|
|
1767
1748
|
};
|
|
1768
|
-
const paramName = naming.getEscapedReservedName(snakeCaseName(getCorrespondingClientParamName(param)), 'param');
|
|
1749
|
+
const paramName = naming.getEscapedReservedName(snakeCaseName(getCorrespondingClientParamName(param)), 'param', reservedParams);
|
|
1769
1750
|
let paramType = this.getType(param.type);
|
|
1770
1751
|
// for required header/path/query method string params, we might emit them as borrowed types
|
|
1771
1752
|
if (!param.optional && !param.onClient && (param.kind === 'header' || param.kind === 'path' || param.kind === 'query')) {
|
|
@@ -1970,6 +1951,7 @@ export class Adapter {
|
|
|
1970
1951
|
switch (type.kind) {
|
|
1971
1952
|
case 'bytes':
|
|
1972
1953
|
case 'decimal':
|
|
1954
|
+
case 'discriminatedUnion':
|
|
1973
1955
|
case 'encodedBytes':
|
|
1974
1956
|
case 'enum':
|
|
1975
1957
|
case 'enumValue':
|
|
@@ -1985,8 +1967,6 @@ export class Adapter {
|
|
|
1985
1967
|
case 'slice':
|
|
1986
1968
|
case 'str':
|
|
1987
1969
|
case 'String':
|
|
1988
|
-
case 'union':
|
|
1989
|
-
case 'unionMember':
|
|
1990
1970
|
case 'Url':
|
|
1991
1971
|
case 'Vec':
|
|
1992
1972
|
return type;
|
|
@@ -2238,4 +2218,9 @@ function isHttpStatusCodeRange(statusCode) {
|
|
|
2238
2218
|
function adaptAccessFlags(access) {
|
|
2239
2219
|
return access === 'public' ? 'pub' : 'pubCrate';
|
|
2240
2220
|
}
|
|
2221
|
+
/** contains reserved param names */
|
|
2222
|
+
const reservedParams = new Set([
|
|
2223
|
+
// reserved per SDK guidelines
|
|
2224
|
+
'options',
|
|
2225
|
+
]);
|
|
2241
2226
|
//# sourceMappingURL=adapter.js.map
|