@azure-tools/typespec-go 0.8.5 → 0.8.7
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/codegen.go/src/core/clientFactory.d.ts +12 -0
- package/dist/codegen.go/src/core/clientFactory.d.ts.map +1 -0
- package/dist/codegen.go/src/{clientFactory.js → core/clientFactory.js} +17 -9
- package/dist/codegen.go/src/core/clientFactory.js.map +1 -0
- package/dist/codegen.go/src/core/cloudConfig.d.ts +11 -0
- package/dist/codegen.go/src/core/cloudConfig.d.ts.map +1 -0
- package/dist/codegen.go/src/{cloudConfig.js → core/cloudConfig.js} +7 -15
- package/dist/codegen.go/src/core/cloudConfig.js.map +1 -0
- package/dist/codegen.go/src/core/constants.d.ts +9 -0
- package/dist/codegen.go/src/core/constants.d.ts.map +1 -0
- package/dist/codegen.go/src/{constants.js → core/constants.js} +10 -5
- package/dist/codegen.go/src/core/constants.js.map +1 -0
- package/dist/codegen.go/src/{errors.d.ts → core/errors.d.ts} +1 -1
- package/dist/codegen.go/src/core/errors.d.ts.map +1 -0
- package/dist/codegen.go/src/core/errors.js.map +1 -0
- package/dist/codegen.go/src/core/example.d.ts +16 -0
- package/dist/codegen.go/src/core/example.d.ts.map +1 -0
- package/dist/codegen.go/src/{example.js → core/example.js} +77 -43
- package/dist/codegen.go/src/core/example.js.map +1 -0
- package/dist/codegen.go/src/core/gomod.d.ts +12 -0
- package/dist/codegen.go/src/core/gomod.d.ts.map +1 -0
- package/dist/codegen.go/src/{gomod.js → core/gomod.js} +15 -12
- package/dist/codegen.go/src/core/gomod.js.map +1 -0
- package/dist/codegen.go/src/{helpers.d.ts → core/helpers.d.ts} +21 -8
- package/dist/codegen.go/src/core/helpers.d.ts.map +1 -0
- package/dist/codegen.go/src/{helpers.js → core/helpers.js} +43 -30
- package/dist/codegen.go/src/core/helpers.js.map +1 -0
- package/dist/codegen.go/src/core/imports.d.ts +17 -0
- package/dist/codegen.go/src/core/imports.d.ts.map +1 -0
- package/dist/codegen.go/src/{imports.js → core/imports.js} +25 -0
- package/dist/codegen.go/src/core/imports.js.map +1 -0
- package/dist/codegen.go/src/core/interfaces.d.ts +9 -0
- package/dist/codegen.go/src/core/interfaces.d.ts.map +1 -0
- package/dist/codegen.go/src/{interfaces.js → core/interfaces.js} +11 -5
- package/dist/codegen.go/src/core/interfaces.js.map +1 -0
- package/dist/codegen.go/src/core/license.d.ts +9 -0
- package/dist/codegen.go/src/core/license.d.ts.map +1 -0
- package/dist/codegen.go/src/{license.js → core/license.js} +4 -13
- package/dist/codegen.go/src/core/license.js.map +1 -0
- package/dist/codegen.go/src/core/metadata.d.ts +3 -0
- package/dist/codegen.go/src/core/metadata.d.ts.map +1 -0
- package/dist/codegen.go/src/core/metadata.js.map +1 -0
- package/dist/codegen.go/src/core/models.d.ts +15 -0
- package/dist/codegen.go/src/core/models.d.ts.map +1 -0
- package/dist/codegen.go/src/{models.js → core/models.js} +17 -11
- package/dist/codegen.go/src/core/models.js.map +1 -0
- package/dist/codegen.go/src/core/operations.d.ts +17 -0
- package/dist/codegen.go/src/core/operations.d.ts.map +1 -0
- package/dist/codegen.go/src/{operations.js → core/operations.js} +34 -27
- package/dist/codegen.go/src/core/operations.js.map +1 -0
- package/dist/codegen.go/src/core/options.d.ts +9 -0
- package/dist/codegen.go/src/core/options.d.ts.map +1 -0
- package/dist/codegen.go/src/{options.js → core/options.js} +11 -6
- package/dist/codegen.go/src/core/options.js.map +1 -0
- package/dist/codegen.go/src/core/polymorphics.d.ts +10 -0
- package/dist/codegen.go/src/core/polymorphics.d.ts.map +1 -0
- package/dist/codegen.go/src/{polymorphics.js → core/polymorphics.js} +16 -10
- package/dist/codegen.go/src/core/polymorphics.js.map +1 -0
- package/dist/codegen.go/src/core/responses.d.ts +14 -0
- package/dist/codegen.go/src/core/responses.d.ts.map +1 -0
- package/dist/codegen.go/src/{responses.js → core/responses.js} +14 -8
- package/dist/codegen.go/src/core/responses.js.map +1 -0
- package/dist/codegen.go/src/core/time.d.ts +15 -0
- package/dist/codegen.go/src/core/time.d.ts.map +1 -0
- package/dist/codegen.go/src/{time.js → core/time.js} +19 -14
- package/dist/codegen.go/src/core/time.js.map +1 -0
- package/dist/codegen.go/src/core/version.d.ts +10 -0
- package/dist/codegen.go/src/core/version.d.ts.map +1 -0
- package/dist/codegen.go/src/{version.js → core/version.js} +4 -12
- package/dist/codegen.go/src/core/version.js.map +1 -0
- package/dist/codegen.go/src/core/xmlAdditionalProps.d.ts +9 -0
- package/dist/codegen.go/src/core/xmlAdditionalProps.d.ts.map +1 -0
- package/dist/codegen.go/src/{xmlAdditionalProps.js → core/xmlAdditionalProps.js} +11 -7
- package/dist/codegen.go/src/core/xmlAdditionalProps.js.map +1 -0
- package/dist/codegen.go/src/emitter.d.ts +42 -0
- package/dist/codegen.go/src/emitter.d.ts.map +1 -0
- package/dist/codegen.go/src/emitter.js +290 -0
- package/dist/codegen.go/src/emitter.js.map +1 -0
- package/dist/codegen.go/src/fake/factory.d.ts +8 -1
- package/dist/codegen.go/src/fake/factory.d.ts.map +1 -1
- package/dist/codegen.go/src/fake/factory.js +17 -9
- package/dist/codegen.go/src/fake/factory.js.map +1 -1
- package/dist/codegen.go/src/fake/internal.d.ts +8 -1
- package/dist/codegen.go/src/fake/internal.d.ts.map +1 -1
- package/dist/codegen.go/src/fake/internal.js +12 -5
- package/dist/codegen.go/src/fake/internal.js.map +1 -1
- package/dist/codegen.go/src/fake/servers.d.ts +7 -1
- package/dist/codegen.go/src/fake/servers.d.ts.map +1 -1
- package/dist/codegen.go/src/fake/servers.js +22 -15
- package/dist/codegen.go/src/fake/servers.js.map +1 -1
- package/dist/codegen.go/src/index.d.ts +4 -0
- package/dist/codegen.go/src/index.d.ts.map +1 -0
- package/dist/codegen.go/src/index.js +8 -0
- package/dist/codegen.go/src/index.js.map +1 -0
- package/dist/codemodel.go/src/client.d.ts +1 -1
- package/dist/codemodel.go/src/client.d.ts.map +1 -1
- package/dist/codemodel.go/src/{package.d.ts → codeModel.d.ts} +11 -35
- package/dist/codemodel.go/src/codeModel.d.ts.map +1 -0
- package/dist/codemodel.go/src/codeModel.js +29 -0
- package/dist/codemodel.go/src/codeModel.js.map +1 -0
- package/dist/codemodel.go/src/index.d.ts +3 -2
- package/dist/codemodel.go/src/index.d.ts.map +1 -1
- package/dist/codemodel.go/src/index.js +3 -2
- package/dist/codemodel.go/src/index.js.map +1 -1
- package/dist/codemodel.go/src/module.d.ts +70 -0
- package/dist/codemodel.go/src/module.d.ts.map +1 -0
- package/dist/codemodel.go/src/module.js +39 -0
- package/dist/codemodel.go/src/module.js.map +1 -0
- package/dist/typespec-go/src/emitter.d.ts.map +1 -1
- package/dist/typespec-go/src/emitter.js +32 -168
- package/dist/typespec-go/src/emitter.js.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/adapter.d.ts.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/adapter.js +19 -18
- package/dist/typespec-go/src/tcgcadapter/adapter.js.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/clients.d.ts +7 -0
- package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/clients.js +95 -26
- package/dist/typespec-go/src/tcgcadapter/clients.js.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/types.d.ts +7 -0
- package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +1 -1
- package/dist/typespec-go/src/tcgcadapter/types.js +12 -3
- package/dist/typespec-go/src/tcgcadapter/types.js.map +1 -1
- package/package.json +22 -22
- package/dist/codegen.go/src/clientFactory.d.ts +0 -3
- package/dist/codegen.go/src/clientFactory.d.ts.map +0 -1
- package/dist/codegen.go/src/clientFactory.js.map +0 -1
- package/dist/codegen.go/src/cloudConfig.d.ts +0 -10
- package/dist/codegen.go/src/cloudConfig.d.ts.map +0 -1
- package/dist/codegen.go/src/cloudConfig.js.map +0 -1
- package/dist/codegen.go/src/constants.d.ts +0 -3
- package/dist/codegen.go/src/constants.d.ts.map +0 -1
- package/dist/codegen.go/src/constants.js.map +0 -1
- package/dist/codegen.go/src/errors.d.ts.map +0 -1
- package/dist/codegen.go/src/errors.js.map +0 -1
- package/dist/codegen.go/src/example.d.ts +0 -8
- package/dist/codegen.go/src/example.d.ts.map +0 -1
- package/dist/codegen.go/src/example.js.map +0 -1
- package/dist/codegen.go/src/gomod.d.ts +0 -3
- package/dist/codegen.go/src/gomod.d.ts.map +0 -1
- package/dist/codegen.go/src/gomod.js.map +0 -1
- package/dist/codegen.go/src/helpers.d.ts.map +0 -1
- package/dist/codegen.go/src/helpers.js.map +0 -1
- package/dist/codegen.go/src/imports.d.ts +0 -11
- package/dist/codegen.go/src/imports.d.ts.map +0 -1
- package/dist/codegen.go/src/imports.js.map +0 -1
- package/dist/codegen.go/src/interfaces.d.ts +0 -3
- package/dist/codegen.go/src/interfaces.d.ts.map +0 -1
- package/dist/codegen.go/src/interfaces.js.map +0 -1
- package/dist/codegen.go/src/license.d.ts +0 -10
- package/dist/codegen.go/src/license.d.ts.map +0 -1
- package/dist/codegen.go/src/license.js.map +0 -1
- package/dist/codegen.go/src/metadata.d.ts +0 -3
- package/dist/codegen.go/src/metadata.d.ts.map +0 -1
- package/dist/codegen.go/src/metadata.js.map +0 -1
- package/dist/codegen.go/src/models.d.ts +0 -8
- package/dist/codegen.go/src/models.d.ts.map +0 -1
- package/dist/codegen.go/src/models.js.map +0 -1
- package/dist/codegen.go/src/operations.d.ts +0 -9
- package/dist/codegen.go/src/operations.d.ts.map +0 -1
- package/dist/codegen.go/src/operations.js.map +0 -1
- package/dist/codegen.go/src/options.d.ts +0 -3
- package/dist/codegen.go/src/options.d.ts.map +0 -1
- package/dist/codegen.go/src/options.js.map +0 -1
- package/dist/codegen.go/src/polymorphics.d.ts +0 -3
- package/dist/codegen.go/src/polymorphics.d.ts.map +0 -1
- package/dist/codegen.go/src/polymorphics.js.map +0 -1
- package/dist/codegen.go/src/responses.d.ts +0 -7
- package/dist/codegen.go/src/responses.d.ts.map +0 -1
- package/dist/codegen.go/src/responses.js.map +0 -1
- package/dist/codegen.go/src/time.d.ts +0 -8
- package/dist/codegen.go/src/time.d.ts.map +0 -1
- package/dist/codegen.go/src/time.js.map +0 -1
- package/dist/codegen.go/src/version.d.ts +0 -10
- package/dist/codegen.go/src/version.d.ts.map +0 -1
- package/dist/codegen.go/src/version.js.map +0 -1
- package/dist/codegen.go/src/xmlAdditionalProps.d.ts +0 -3
- package/dist/codegen.go/src/xmlAdditionalProps.d.ts.map +0 -1
- package/dist/codegen.go/src/xmlAdditionalProps.js.map +0 -1
- package/dist/codemodel.go/src/package.d.ts.map +0 -1
- package/dist/codemodel.go/src/package.js +0 -78
- package/dist/codemodel.go/src/package.js.map +0 -1
- /package/dist/codegen.go/src/{errors.js → core/errors.js} +0 -0
- /package/dist/codegen.go/src/{metadata.js → core/metadata.js} +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as go from '../../../codemodel.go/src/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates the content for client_factory.go file.
|
|
4
|
+
* For non-ARM targets, the empty string is returned.
|
|
5
|
+
*
|
|
6
|
+
* @param pkg contains the package content
|
|
7
|
+
* @param target the codegen target for the package
|
|
8
|
+
* @param options the emitter options
|
|
9
|
+
* @returns the text for the file or the empty string
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateClientFactory(pkg: go.PackageContent, target: go.CodeModelType, options: go.Options): string;
|
|
12
|
+
//# sourceMappingURL=clientFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientFactory.d.ts","sourceRoot":"","sources":["../../../../../codegen.go/src/core/clientFactory.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAIzD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,MAAM,CAiHnH"}
|
|
@@ -2,24 +2,32 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
import * as go from '
|
|
5
|
+
import * as go from '../../../codemodel.go/src/index.js';
|
|
6
6
|
import * as helpers from './helpers.js';
|
|
7
7
|
import { ImportManager } from './imports.js';
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Creates the content for client_factory.go file.
|
|
10
|
+
* For non-ARM targets, the empty string is returned.
|
|
11
|
+
*
|
|
12
|
+
* @param pkg contains the package content
|
|
13
|
+
* @param target the codegen target for the package
|
|
14
|
+
* @param options the emitter options
|
|
15
|
+
* @returns the text for the file or the empty string
|
|
16
|
+
*/
|
|
17
|
+
export function generateClientFactory(pkg, target, options) {
|
|
10
18
|
// generate client factory only for ARM
|
|
11
|
-
if (
|
|
19
|
+
if (target !== 'azure-arm' || pkg.clients.length === 0) {
|
|
12
20
|
return '';
|
|
13
21
|
}
|
|
14
22
|
let result = '';
|
|
15
23
|
// the list of packages to import
|
|
16
24
|
const imports = new ImportManager();
|
|
17
25
|
let clientFactoryParams;
|
|
18
|
-
if (
|
|
19
|
-
clientFactoryParams = helpers.getAllClientParameters(
|
|
26
|
+
if (options.factoryGatherAllParams) {
|
|
27
|
+
clientFactoryParams = helpers.getAllClientParameters(pkg, target);
|
|
20
28
|
}
|
|
21
29
|
else {
|
|
22
|
-
clientFactoryParams = helpers.getCommonClientParameters(
|
|
30
|
+
clientFactoryParams = helpers.getCommonClientParameters(pkg, target);
|
|
23
31
|
}
|
|
24
32
|
const clientFactoryParamsMap = new Map();
|
|
25
33
|
for (const param of clientFactoryParams) {
|
|
@@ -65,7 +73,7 @@ export async function generateClientFactory(codeModel) {
|
|
|
65
73
|
result += '\t}, nil\n';
|
|
66
74
|
result += '}\n\n';
|
|
67
75
|
// add new sub client method for all operation groups
|
|
68
|
-
for (const client of
|
|
76
|
+
for (const client of pkg.clients) {
|
|
69
77
|
const clientPrivateParams = new Array();
|
|
70
78
|
const clientCommonParams = new Array();
|
|
71
79
|
if (client.instance?.kind === 'constructable') {
|
|
@@ -108,7 +116,7 @@ export async function generateClientFactory(codeModel) {
|
|
|
108
116
|
result += '\t}\n';
|
|
109
117
|
result += '}\n\n';
|
|
110
118
|
}
|
|
111
|
-
result = helpers.contentPreamble(
|
|
119
|
+
result = helpers.contentPreamble(helpers.getPackageName(pkg)) + imports.text() + result;
|
|
112
120
|
return result;
|
|
113
121
|
}
|
|
114
122
|
//# sourceMappingURL=clientFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientFactory.js","sourceRoot":"","sources":["../../../../../codegen.go/src/core/clientFactory.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAC;AACzD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAsB,EAAE,MAAwB,EAAE,OAAmB;IACzG,uCAAuC;IACvC,IAAI,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,iCAAiC;IACjC,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IAEpC,IAAI,mBAA+C,CAAC;IACpD,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;QACnC,mBAAmB,GAAI,OAAO,CAAC,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAA8B,CAAC;IACrE,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;QACxC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,MAAM,IAAI,kFAAkF,CAAC;IAC7F,MAAM,IAAI,mEAAmE,CAAC;IAC9E,MAAM,IAAI,+BAA+B,CAAC;IAC1C,KAAK,MAAM,WAAW,IAAI,mBAAmB,EAAE,CAAC;QAC9C,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC3C,6CAA6C;YAC7C,SAAS;QACX,CAAC;QACD,MAAM,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI,OAAO,CAAC,uBAAuB,CAAC,WAAW,CAAC,IAAI,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,0BAA0B,CAAC;IACrC,MAAM,IAAI,OAAO,CAAC;IAElB,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAChE,MAAM,IAAI,0FAA0F,CAAC;IACrG,MAAM,IAAI,uFAAuF,CAAC;IAClG,KAAK,MAAM,WAAW,IAAI,mBAAmB,EAAE,CAAC;QAC9C,MAAM,IAAI,OAAO,CAAC,yBAAyB,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,IAAI,OAAO,CAAC,yBAAyB,CAAC,YAAY,EAAE,EAAC,OAAO,EAAE,mEAAmE,EAAC,CAAC,CAAC;IAC1I,MAAM,IAAI,OAAO,CAAC,yBAAyB,CAAC,SAAS,EAAE,EAAC,OAAO,EAAE,wCAAwC,EAAC,CAAC,CAAC;IAE5G,MAAM,IAAI,yBAAyB,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,0DAA0D,CAAC;IAC1P,MAAM,IAAI,oFAAoF,CAAC;IAC/F,MAAM,IAAI,qBAAqB,CAAC;IAChC,MAAM,IAAI,uBAAuB,CAAC;IAClC,MAAM,IAAI,OAAO,CAAC;IAClB,MAAM,IAAI,4BAA4B,CAAC;IACvC,KAAK,MAAM,WAAW,IAAI,mBAAmB,EAAE,CAAC;QAC9C,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC3C,6CAA6C;YAC7C,SAAS;QACX,CAAC;QACD,MAAM,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,CAAC;IAC9D,CAAC;IACD,MAAM,IAAI,2BAA2B,CAAC;IACtC,MAAM,IAAI,YAAY,CAAC;IACvB,MAAM,IAAI,OAAO,CAAC;IAElB,qDAAqD;IACrD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,mBAAmB,GAAG,IAAI,KAAK,EAAsB,CAAC;QAC5D,MAAM,kBAAkB,GAAG,IAAI,KAAK,EAAsB,CAAC;QAC3D,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;YAC9C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAChD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpC,IAAI,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;wBACpC,SAAS;oBACX,CAAC;yBAAM,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClD,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,MAAM,QAAQ,8BAA8B,MAAM,CAAC,IAAI,KAAK,CAAC;QACvE,MAAM,IAAI,2BAA2B,QAAQ,GAAG,CAAC;QACjD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC3C,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;YACnE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,MAAM,MAAM,CAAC,IAAI,MAAM,CAAC;QAClC,MAAM,IAAI,aAAa,MAAM,CAAC,IAAI,KAAK,CAAC;QAExC,wEAAwE;QACxE,KAAK,MAAM,WAAW,IAAI,mBAAmB,EAAE,CAAC;YAC9C,MAAM,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,CAAC;QAC9D,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,kBAAkB,EAAE,CAAC;YAC7C,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAC3C,6CAA6C;gBAC7C,SAAS;YACX,CAAC;YACD,MAAM,IAAI,OAAO,WAAW,CAAC,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,CAAC;QAChE,CAAC;QAED,MAAM,IAAI,6BAA6B,CAAC;QACxC,MAAM,IAAI,OAAO,CAAC;QAClB,MAAM,IAAI,OAAO,CAAC;IACpB,CAAC;IAED,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC;IACxF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as go from '../../../codemodel.go/src/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* generates the contents for the cloud_config.go file.
|
|
4
|
+
* if cloud config info isn't required, the empty string is returned.
|
|
5
|
+
*
|
|
6
|
+
* @param module the module for which to generate the file
|
|
7
|
+
* @param target the codegen target for the module
|
|
8
|
+
* @returns the text for the file or the empty string
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateCloudConfig(module: go.Module, target: go.CodeModelType): string;
|
|
11
|
+
//# sourceMappingURL=cloudConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudConfig.d.ts","sourceRoot":"","sources":["../../../../../codegen.go/src/core/cloudConfig.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAsDvF"}
|
|
@@ -7,17 +7,18 @@ import * as helpers from './helpers.js';
|
|
|
7
7
|
* generates the contents for the cloud_config.go file.
|
|
8
8
|
* if cloud config info isn't required, the empty string is returned.
|
|
9
9
|
*
|
|
10
|
-
* @param
|
|
10
|
+
* @param module the module for which to generate the file
|
|
11
|
+
* @param target the codegen target for the module
|
|
11
12
|
* @returns the text for the file or the empty string
|
|
12
13
|
*/
|
|
13
|
-
export function generateCloudConfig(
|
|
14
|
-
if (
|
|
14
|
+
export function generateCloudConfig(module, target) {
|
|
15
|
+
if (target === 'azure-arm') {
|
|
15
16
|
// this is handled in azcore
|
|
16
17
|
return '';
|
|
17
18
|
}
|
|
18
19
|
// check if this SDK uses token auth
|
|
19
20
|
let tokenCred;
|
|
20
|
-
for (const client of
|
|
21
|
+
for (const client of module.clients) {
|
|
21
22
|
if (client.instance?.kind !== 'constructable') {
|
|
22
23
|
continue;
|
|
23
24
|
}
|
|
@@ -40,19 +41,10 @@ export function generateCloudConfig(codeModel) {
|
|
|
40
41
|
// cloud config is only required for token auth
|
|
41
42
|
return '';
|
|
42
43
|
}
|
|
43
|
-
let cloudConfig = helpers.contentPreamble(
|
|
44
|
+
let cloudConfig = helpers.contentPreamble(helpers.getPackageName(module));
|
|
44
45
|
cloudConfig += 'import "github.com/Azure/azure-sdk-for-go/sdk/azcore/cloud"\n\n';
|
|
45
46
|
cloudConfig += '// ServiceName is the [cloud.ServiceName] for this module, used to identify the respective [cloud.ServiceConfiguration].\n';
|
|
46
|
-
let serviceName;
|
|
47
|
-
if (codeModel.options.module) {
|
|
48
|
-
serviceName = codeModel.options.module;
|
|
49
|
-
}
|
|
50
|
-
else if (codeModel.options.containingModule) {
|
|
51
|
-
serviceName = `${codeModel.options.containingModule}/${codeModel.packageName}`;
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
throw new Error('unreachable');
|
|
55
|
-
}
|
|
47
|
+
let serviceName = module.identity;
|
|
56
48
|
const azureSdkPrefix = 'github.com/Azure/azure-sdk-for-go/sdk/';
|
|
57
49
|
if (serviceName.startsWith(azureSdkPrefix)) {
|
|
58
50
|
serviceName = serviceName.substring(azureSdkPrefix.length);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudConfig.js","sourceRoot":"","sources":["../../../../../codegen.go/src/core/cloudConfig.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAGxC;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAwB;IAC7E,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,4BAA4B;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oCAAoC;IACpC,IAAI,SAAyC,CAAC;IAC9C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;YAC9C,SAAS;QACX,CAAC;QACD,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACvD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBAC9E,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;oBACvB,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,+CAA+C;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,WAAW,IAAI,iEAAiE,CAAC;IAEjF,WAAW,IAAI,4HAA4H,CAAC;IAE5I,IAAI,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;IAClC,MAAM,cAAc,GAAG,wCAAwC,CAAC;IAChE,IAAI,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3C,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IACD,WAAW,IAAI,0CAA0C,WAAW,OAAO,CAAC;IAE5E,mFAAmF;IACnF,WAAW,IAAI,iBAAiB,CAAC;IACjC,WAAW,IAAI,yEAAyE,CAAC;IACzF,8EAA8E;IAC9E,WAAW,IAAI,kBAAkB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC;IACxF,WAAW,IAAI,OAAO,CAAC;IACvB,WAAW,IAAI,OAAO,CAAC;IAEvB,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as go from '../../../codemodel.go/src/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates the content for the constants.go file.
|
|
4
|
+
*
|
|
5
|
+
* @param pkg contains the package content
|
|
6
|
+
* @returns the text for the file or the empty string
|
|
7
|
+
*/
|
|
8
|
+
export declare function generateConstants(pkg: go.PackageContent): string;
|
|
9
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../codegen.go/src/core/constants.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,GAAG,MAAM,CAgChE"}
|
|
@@ -4,13 +4,18 @@
|
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { values } from '@azure-tools/linq';
|
|
6
6
|
import * as helpers from './helpers.js';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Creates the content for the constants.go file.
|
|
9
|
+
*
|
|
10
|
+
* @param pkg contains the package content
|
|
11
|
+
* @returns the text for the file or the empty string
|
|
12
|
+
*/
|
|
13
|
+
export function generateConstants(pkg) {
|
|
14
|
+
if (pkg.constants.length === 0) {
|
|
10
15
|
return '';
|
|
11
16
|
}
|
|
12
|
-
let text = helpers.contentPreamble(
|
|
13
|
-
for (const enm of values(
|
|
17
|
+
let text = helpers.contentPreamble(helpers.getPackageName(pkg));
|
|
18
|
+
for (const enm of values(pkg.constants)) {
|
|
14
19
|
text += helpers.formatDocCommentWithPrefix(enm.name, enm.docs);
|
|
15
20
|
text += `type ${enm.name} ${enm.type}\n\n`;
|
|
16
21
|
const vals = new Array();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../codegen.go/src/core/constants.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAGxC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAsB;IACtD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,IAAI,IAAI,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,IAAI,QAAQ,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,KAAK,EAAU,CAAC;QACjC,IAAI,IAAI,WAAW,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,OAAO,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC;YACnC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,WAAW,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;YAC/B,CAAC;YACD,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,MAAM,WAAW,IAAI,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,IAAI,OAAO,CAAC;QAChB,IAAI,IAAI,MAAM,GAAG,CAAC,cAAc,wCAAwC,GAAG,CAAC,IAAI,gBAAgB,CAAC;QACjG,IAAI,IAAI,QAAQ,GAAG,CAAC,cAAc,QAAQ,GAAG,CAAC,IAAI,MAAM,CAAC;QACzD,IAAI,IAAI,cAAc,GAAG,CAAC,IAAI,OAAO,CAAC;QACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,IAAI,OAAO,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,OAAO,CAAC;QAChB,IAAI,IAAI,OAAO,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../codegen.go/src/core/errors.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;gBAEb,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;CAI7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../codegen.go/src/core/errors.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAI/F;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAY;IAEzB,YAAY,IAAe,EAAE,OAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as go from '../../../codemodel.go/src/index.js';
|
|
2
|
+
export declare class ExampleContent {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly content: string;
|
|
5
|
+
constructor(name: string, content: string);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Creates the content for all the *_example_test.go files.
|
|
9
|
+
*
|
|
10
|
+
* @param pkg contains the package content
|
|
11
|
+
* @param target the codegen target for the module
|
|
12
|
+
* @param options the emitter options
|
|
13
|
+
* @returns the text for the files or the empty string
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateExamples(pkg: go.PackageContent, target: go.CodeModelType, options: go.Options): Array<ExampleContent>;
|
|
16
|
+
//# sourceMappingURL=example.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../../../../codegen.go/src/core/example.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAOzD,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,CA+M7H"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { camelCase, capitalize } from '@azure-tools/codegen';
|
|
6
|
-
import * as go from '
|
|
6
|
+
import * as go from '../../../codemodel.go/src/index.js';
|
|
7
7
|
import * as helpers from './helpers.js';
|
|
8
8
|
import { ImportManager } from './imports.js';
|
|
9
9
|
import { fixUpMethodName } from './operations.js';
|
|
@@ -17,15 +17,22 @@ export class ExampleContent {
|
|
|
17
17
|
this.content = content;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Creates the content for all the *_example_test.go files.
|
|
22
|
+
*
|
|
23
|
+
* @param pkg contains the package content
|
|
24
|
+
* @param target the codegen target for the module
|
|
25
|
+
* @param options the emitter options
|
|
26
|
+
* @returns the text for the files or the empty string
|
|
27
|
+
*/
|
|
28
|
+
export function generateExamples(pkg, target, options) {
|
|
22
29
|
// generate examples
|
|
23
30
|
const examples = new Array();
|
|
24
|
-
if (
|
|
31
|
+
if (pkg.clients.length === 0) {
|
|
25
32
|
return examples;
|
|
26
33
|
}
|
|
27
|
-
const azureARM =
|
|
28
|
-
for (const client of
|
|
34
|
+
const azureARM = target === 'azure-arm';
|
|
35
|
+
for (const client of pkg.clients) {
|
|
29
36
|
// client must be constructable to create a sample
|
|
30
37
|
if (client.instance?.kind != 'constructable') {
|
|
31
38
|
continue;
|
|
@@ -38,19 +45,20 @@ export async function generateExamples(codeModel) {
|
|
|
38
45
|
imports.add('context');
|
|
39
46
|
imports.add('log');
|
|
40
47
|
imports.add('github.com/Azure/azure-sdk-for-go/sdk/azidentity');
|
|
41
|
-
imports.
|
|
48
|
+
imports.addForPkg(pkg);
|
|
42
49
|
}
|
|
43
50
|
let clientFactoryParams = new Array();
|
|
44
|
-
if (
|
|
45
|
-
clientFactoryParams = helpers.getAllClientParameters(
|
|
51
|
+
if (options.factoryGatherAllParams) {
|
|
52
|
+
clientFactoryParams = helpers.getAllClientParameters(pkg, target);
|
|
46
53
|
}
|
|
47
54
|
else {
|
|
48
|
-
clientFactoryParams = helpers.getCommonClientParameters(
|
|
55
|
+
clientFactoryParams = helpers.getCommonClientParameters(pkg, target);
|
|
49
56
|
}
|
|
50
57
|
const clientFactoryParamsMap = new Map();
|
|
51
58
|
for (const param of clientFactoryParams) {
|
|
52
59
|
clientFactoryParamsMap.set(param.name, param);
|
|
53
60
|
}
|
|
61
|
+
const pkgName = helpers.getPackageName(pkg);
|
|
54
62
|
let exampleText = '';
|
|
55
63
|
for (const method of client.methods) {
|
|
56
64
|
if (method.examples.length === 0)
|
|
@@ -91,7 +99,7 @@ export async function generateExamples(codeModel) {
|
|
|
91
99
|
clientFactoryParamsExample.push({ parameter: clientParam, value: generateFakeExample(clientParam.type, clientParam.name) });
|
|
92
100
|
}
|
|
93
101
|
}
|
|
94
|
-
exampleText += `\tclientFactory, err := ${
|
|
102
|
+
exampleText += `\tclientFactory, err := ${pkgName}.NewClientFactory(${clientFactoryParamsExample.map(p => getExampleValue(pkg, p.value, '\t', imports, p.parameter.byValue)).join(', ')}, nil)\n`;
|
|
95
103
|
exampleText += `\tif err != nil {\n`;
|
|
96
104
|
exampleText += `\t\tlog.Fatalf("failed to create client: %v", err)\n`;
|
|
97
105
|
exampleText += `\t}\n`;
|
|
@@ -103,12 +111,12 @@ export async function generateExamples(codeModel) {
|
|
|
103
111
|
}
|
|
104
112
|
}
|
|
105
113
|
if (clientPrivateParameters.length > 0) {
|
|
106
|
-
clientRef += `${clientPrivateParameters.map(p => getExampleValue(
|
|
114
|
+
clientRef += `${clientPrivateParameters.map(p => getExampleValue(pkg, p.value, '\t', imports, p.parameter.byValue).slice(1)).join(', ')}`;
|
|
107
115
|
}
|
|
108
116
|
clientRef += `)`;
|
|
109
117
|
}
|
|
110
118
|
else {
|
|
111
|
-
exampleText += `\tclient, err := ${
|
|
119
|
+
exampleText += `\tclient, err := ${pkgName}.${client.instance.constructors[0].name}(${clientParameters.map(p => getExampleValue(pkg, p.value, '\t', imports, p.parameter.byValue).slice(1)).join(', ')}, cred, nil)\n`;
|
|
112
120
|
exampleText += `\tif err != nil {\n`;
|
|
113
121
|
exampleText += `\t\tlog.Fatalf("failed to create client: %v", err)\n`;
|
|
114
122
|
exampleText += `\t}\n`;
|
|
@@ -122,20 +130,24 @@ export async function generateExamples(codeModel) {
|
|
|
122
130
|
if (methodParam) {
|
|
123
131
|
methodParameters.push(methodParam);
|
|
124
132
|
}
|
|
133
|
+
else if (go.isRequiredParameter(param.style)) {
|
|
134
|
+
// if the parameter is required but lacks example value, generate a fake example
|
|
135
|
+
methodParameters.push({ parameter: param, value: generateFakeExample(param.type, param.name) });
|
|
136
|
+
}
|
|
125
137
|
}
|
|
126
138
|
}
|
|
127
139
|
const methodOptionalParameters = example.optionalParamsGroup.filter(p => p.parameter.location === 'method');
|
|
128
140
|
const checkResponse = example.responseEnvelope !== undefined;
|
|
129
141
|
let methodOptionalParametersText = 'nil';
|
|
130
142
|
if (methodOptionalParameters.length > 0) {
|
|
131
|
-
methodOptionalParametersText = `&${
|
|
132
|
-
methodOptionalParametersText += methodOptionalParameters.map(p => `${capitalize(p.parameter.name)}: ${getExampleValue(
|
|
143
|
+
methodOptionalParametersText = `&${pkgName}.${method.optionalParamsGroup.groupName}{\n`;
|
|
144
|
+
methodOptionalParametersText += methodOptionalParameters.map(p => `${capitalize(p.parameter.name)}: ${getExampleValue(pkg, p.value, '\t', imports, p.parameter.byValue).slice(1)}`).join(',\n');
|
|
133
145
|
methodOptionalParametersText += `}`;
|
|
134
146
|
}
|
|
135
147
|
switch (method.kind) {
|
|
136
148
|
case 'lroMethod':
|
|
137
149
|
case 'lroPageableMethod':
|
|
138
|
-
exampleText += `\tpoller, err := ${clientRef}.${fixUpMethodName(method)}(ctx, ${methodParameters.map(p => getExampleValue(
|
|
150
|
+
exampleText += `\tpoller, err := ${clientRef}.${fixUpMethodName(method)}(ctx, ${methodParameters.map(p => getExampleValue(pkg, p.value, '\t', imports, p.parameter.byValue).slice(1)).join(', ')}${methodParameters.length > 0 ? ', ' : ''}${methodOptionalParametersText.split('\n').join('\n\t')})\n`;
|
|
139
151
|
exampleText += `\tif err != nil {\n`;
|
|
140
152
|
exampleText += `\t\tlog.Fatalf("failed to finish the request: %v", err)\n`;
|
|
141
153
|
exampleText += `\t}\n`;
|
|
@@ -145,13 +157,13 @@ export async function generateExamples(codeModel) {
|
|
|
145
157
|
exampleText += `\t}\n`;
|
|
146
158
|
break;
|
|
147
159
|
case 'method':
|
|
148
|
-
exampleText += `\t${checkResponse ? 'res' : '_'}, err ${checkResponse ? ':=' : '='} ${clientRef}.${fixUpMethodName(method)}(ctx, ${methodParameters.map(p => getExampleValue(
|
|
160
|
+
exampleText += `\t${checkResponse ? 'res' : '_'}, err ${checkResponse ? ':=' : '='} ${clientRef}.${fixUpMethodName(method)}(ctx, ${methodParameters.map(p => getExampleValue(pkg, p.value, '\t', imports, p.parameter.byValue).slice(1)).join(', ')}${methodParameters.length > 0 ? ', ' : ''}${methodOptionalParametersText.split('\n').join('\n\t')})\n`;
|
|
149
161
|
exampleText += `\tif err != nil {\n`;
|
|
150
162
|
exampleText += `\t\tlog.Fatalf("failed to finish the request: %v", err)\n`;
|
|
151
163
|
exampleText += `\t}\n`;
|
|
152
164
|
break;
|
|
153
165
|
case 'pageableMethod':
|
|
154
|
-
exampleText += `\tpager := ${clientRef}.${fixUpMethodName(method)}(${methodParameters.map(p => getExampleValue(
|
|
166
|
+
exampleText += `\tpager := ${clientRef}.${fixUpMethodName(method)}(${methodParameters.map(p => getExampleValue(pkg, p.value, '\t', imports, p.parameter.byValue).slice(1)).join(', ')}${methodParameters.length > 0 ? ', ' : ''}${methodOptionalParametersText.split('\n').join('\n\t')})\n`;
|
|
155
167
|
break;
|
|
156
168
|
default:
|
|
157
169
|
method;
|
|
@@ -173,11 +185,11 @@ export async function generateExamples(codeModel) {
|
|
|
173
185
|
exampleText += `\t\t\t_ = v\n`;
|
|
174
186
|
exampleText += `\t\t}\n`;
|
|
175
187
|
exampleText += `\t\t// If the HTTP response code is 200 as defined in example definition, your page structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.\n`;
|
|
176
|
-
exampleText += `\t\t// page = ${
|
|
188
|
+
exampleText += `\t\t// page = ${pkgName}.${example.responseEnvelope?.response.name}{\n`;
|
|
177
189
|
for (const header of example.responseEnvelope?.headers ?? []) {
|
|
178
|
-
exampleText += `\t\t// \t${header.header.fieldName}: ${getExampleValue(
|
|
190
|
+
exampleText += `\t\t// \t${header.header.fieldName}: ${getExampleValue(pkg, header.value, '', undefined, true).split('\n').join('\n\t\t// \t')}\n`;
|
|
179
191
|
}
|
|
180
|
-
exampleText += `\t\t// \t${(example.responseEnvelope?.result.type).name}: ${getExampleValue(
|
|
192
|
+
exampleText += `\t\t// \t${(example.responseEnvelope?.result.type).name}: ${getExampleValue(pkg, example.responseEnvelope?.result, '', undefined, true).split('\n').join('\n\t\t// \t')},\n`;
|
|
181
193
|
exampleText += '\t\t// }\n';
|
|
182
194
|
exampleText += `\t}\n`;
|
|
183
195
|
}
|
|
@@ -187,12 +199,12 @@ export async function generateExamples(codeModel) {
|
|
|
187
199
|
exampleText += `\t// You could use response here. We use blank identifier for just demo purposes.\n`;
|
|
188
200
|
exampleText += `\t_ = res\n`;
|
|
189
201
|
exampleText += `\t// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.\n`;
|
|
190
|
-
exampleText += `\t// res = ${
|
|
202
|
+
exampleText += `\t// res = ${pkgName}.${example.responseEnvelope?.response.name}{\n`;
|
|
191
203
|
for (const header of example.responseEnvelope?.headers ?? []) {
|
|
192
|
-
exampleText += `\t// \t${header.header.fieldName}: ${getExampleValue(
|
|
204
|
+
exampleText += `\t// \t${header.header.fieldName}: ${getExampleValue(pkg, header.value, '', undefined, true).split('\n').join('\n\t// \t')}\n`;
|
|
193
205
|
}
|
|
194
206
|
if (example.responseEnvelope?.result) {
|
|
195
|
-
exampleText += `\t// \t${fieldName ? fieldName : (example.responseEnvelope?.result.type).name}: ${getExampleValue(
|
|
207
|
+
exampleText += `\t// \t${fieldName ? fieldName : (example.responseEnvelope?.result.type).name}: ${getExampleValue(pkg, example.responseEnvelope.result, '').split('\n').join('\n\t// \t')},\n`;
|
|
196
208
|
}
|
|
197
209
|
exampleText += '\t// }\n';
|
|
198
210
|
}
|
|
@@ -203,19 +215,20 @@ export async function generateExamples(codeModel) {
|
|
|
203
215
|
if (exampleText === '')
|
|
204
216
|
continue;
|
|
205
217
|
// stitch it all together
|
|
206
|
-
let text = helpers.contentPreamble(
|
|
218
|
+
let text = helpers.contentPreamble(pkgName + '_test');
|
|
207
219
|
text += imports.text();
|
|
208
220
|
text += exampleText;
|
|
209
221
|
examples.push(new ExampleContent(client.name, text));
|
|
210
222
|
}
|
|
211
223
|
return examples;
|
|
212
224
|
}
|
|
213
|
-
function getExampleValue(
|
|
225
|
+
function getExampleValue(src, example, indent, imports, byValue = false, inArray = false) {
|
|
226
|
+
const pkgName = helpers.getPackageName(src);
|
|
214
227
|
switch (example.kind) {
|
|
215
228
|
case 'string': {
|
|
216
229
|
let exampleText = `"${escapeString(example.value)}"`;
|
|
217
230
|
if (example.type.kind === 'constant') {
|
|
218
|
-
exampleText = getConstantValue(
|
|
231
|
+
exampleText = getConstantValue(src, example.type, example.value);
|
|
219
232
|
}
|
|
220
233
|
else if (example.type.kind === 'time') {
|
|
221
234
|
exampleText = getTimeValue(example.type, example.value, imports);
|
|
@@ -224,11 +237,11 @@ function getExampleValue(codeModel, example, indent, imports, byValue = false, i
|
|
|
224
237
|
exampleText = `[]byte("${escapeString(example.value)}")`;
|
|
225
238
|
}
|
|
226
239
|
else if (example.type.kind === 'literal' && example.type.type.kind === 'constant') {
|
|
227
|
-
exampleText = getConstantValue(
|
|
240
|
+
exampleText = getConstantValue(src, example.type.type, example.type.literal.value);
|
|
228
241
|
}
|
|
229
242
|
else if (example.type.kind === 'etag') {
|
|
230
243
|
imports?.add(example.type.module);
|
|
231
|
-
|
|
244
|
+
exampleText = `${go.getTypeDeclaration(example.type, pkgName)}("${escapeString(example.value)}")`;
|
|
232
245
|
}
|
|
233
246
|
return `${indent}${getPointerValue(example.type, exampleText, byValue, imports)}`;
|
|
234
247
|
}
|
|
@@ -236,7 +249,7 @@ function getExampleValue(codeModel, example, indent, imports, byValue = false, i
|
|
|
236
249
|
let exampleText = `${example.value}`;
|
|
237
250
|
switch (example.type.kind) {
|
|
238
251
|
case 'constant':
|
|
239
|
-
exampleText = `${indent}${getConstantValue(
|
|
252
|
+
exampleText = `${indent}${getConstantValue(src, example.type, example.value)}`;
|
|
240
253
|
break;
|
|
241
254
|
case 'time':
|
|
242
255
|
exampleText = getTimeValue(example.type, example.value, imports);
|
|
@@ -247,7 +260,7 @@ function getExampleValue(codeModel, example, indent, imports, byValue = false, i
|
|
|
247
260
|
case 'boolean': {
|
|
248
261
|
let exampleText = `${example.value}`;
|
|
249
262
|
if (example.type.kind === 'constant') {
|
|
250
|
-
exampleText = `${indent}${getConstantValue(
|
|
263
|
+
exampleText = `${indent}${getConstantValue(src, example.type, example.value)}`;
|
|
251
264
|
}
|
|
252
265
|
return `${indent}${getPointerValue(example.type, exampleText, byValue, imports)}`;
|
|
253
266
|
}
|
|
@@ -260,26 +273,26 @@ function getExampleValue(codeModel, example, indent, imports, byValue = false, i
|
|
|
260
273
|
// if polymorphic, need to add type name in array, so inArray will be set to false
|
|
261
274
|
// if other case, no need to add type name in array, so inArray will be set to true
|
|
262
275
|
const isElementPolymorphic = example.type.elementType.kind === 'interface';
|
|
263
|
-
let exampleText = `${indent}${getRef(byValue)}${go.getTypeDeclaration(example.type,
|
|
276
|
+
let exampleText = `${indent}${getRef(byValue)}${go.getTypeDeclaration(example.type, pkgName)}{\n`;
|
|
264
277
|
for (const element of example.value) {
|
|
265
|
-
exampleText += `${getExampleValue(
|
|
278
|
+
exampleText += `${getExampleValue(src, element, indent + '\t', imports, isElementByValue && !isElementPolymorphic, !isElementPolymorphic)},\n`;
|
|
266
279
|
}
|
|
267
280
|
exampleText += `${indent}}`;
|
|
268
281
|
return exampleText;
|
|
269
282
|
}
|
|
270
283
|
case 'dictionary': {
|
|
271
|
-
let exampleText = `${indent}${getRef(byValue)}${go.getTypeDeclaration(example.type,
|
|
284
|
+
let exampleText = `${indent}${getRef(byValue)}${go.getTypeDeclaration(example.type, pkgName)}{\n`;
|
|
272
285
|
const isValueByValue = example.type.valueTypeByValue;
|
|
273
286
|
const isValuePolymorphic = example.type.valueType.kind === 'interface';
|
|
274
287
|
for (const key in example.value) {
|
|
275
|
-
exampleText += `${indent}\t"${key}": ${getExampleValue(
|
|
288
|
+
exampleText += `${indent}\t"${key}": ${getExampleValue(src, example.value[key], indent + '\t', imports, isValueByValue && !isValuePolymorphic).slice(indent.length + 1)},\n`;
|
|
276
289
|
}
|
|
277
290
|
exampleText += `${indent}}`;
|
|
278
291
|
return exampleText;
|
|
279
292
|
}
|
|
280
293
|
case 'model': {
|
|
281
294
|
const isModelPolymorphic = example.type.kind === 'polymorphicModel';
|
|
282
|
-
let exampleText = `${indent}${getRef(byValue && !isModelPolymorphic)}${go.getTypeDeclaration(example.type,
|
|
295
|
+
let exampleText = `${indent}${getRef(byValue && !isModelPolymorphic)}${go.getTypeDeclaration(example.type, pkgName)}{\n`;
|
|
283
296
|
if (inArray) {
|
|
284
297
|
exampleText = `${indent}{\n`;
|
|
285
298
|
}
|
|
@@ -287,7 +300,7 @@ function getExampleValue(codeModel, example, indent, imports, byValue = false, i
|
|
|
287
300
|
const goField = example.type.fields.find(f => f.name === field);
|
|
288
301
|
const isFieldByValue = goField.byValue ?? false;
|
|
289
302
|
const isFieldPolymorphic = goField.type.kind === 'interface';
|
|
290
|
-
exampleText += `${indent}\t${field}: ${getExampleValue(
|
|
303
|
+
exampleText += `${indent}\t${field}: ${getExampleValue(src, example.value[field], indent + '\t', imports, isFieldByValue && !isFieldPolymorphic).slice(indent.length + 1)},\n`;
|
|
291
304
|
}
|
|
292
305
|
if (example.additionalProperties) {
|
|
293
306
|
const additionalPropertiesField = example.type.fields.find(f => f.annotations.isAdditionalProperties);
|
|
@@ -296,9 +309,9 @@ function getExampleValue(codeModel, example, indent, imports, byValue = false, i
|
|
|
296
309
|
}
|
|
297
310
|
const isAdditionalPropertiesFieldByValue = additionalPropertiesField.type.valueTypeByValue ?? false;
|
|
298
311
|
const isAdditionalPropertiesPolymorphic = additionalPropertiesField.type.valueType.kind === 'interface';
|
|
299
|
-
exampleText += `${indent}\t${additionalPropertiesField.name}: ${getRef(additionalPropertiesField.byValue)}${go.getTypeDeclaration(additionalPropertiesField.type,
|
|
312
|
+
exampleText += `${indent}\t${additionalPropertiesField.name}: ${getRef(additionalPropertiesField.byValue)}${go.getTypeDeclaration(additionalPropertiesField.type, pkgName)}{\n`;
|
|
300
313
|
for (const key in example.additionalProperties) {
|
|
301
|
-
exampleText += `${indent}\t"${key}": ${getExampleValue(
|
|
314
|
+
exampleText += `${indent}\t"${key}": ${getExampleValue(src, example.additionalProperties[key], indent + '\t', imports, isAdditionalPropertiesFieldByValue && !isAdditionalPropertiesPolymorphic).slice(indent.length + 1)},\n`;
|
|
302
315
|
}
|
|
303
316
|
exampleText += `${indent}},\n`;
|
|
304
317
|
}
|
|
@@ -312,17 +325,17 @@ function getExampleValue(codeModel, example, indent, imports, byValue = false, i
|
|
|
312
325
|
function getRef(byValue) {
|
|
313
326
|
return byValue ? '' : '&';
|
|
314
327
|
}
|
|
315
|
-
function getConstantValue(
|
|
328
|
+
function getConstantValue(src, type, value) {
|
|
316
329
|
for (const constantValue of type.values) {
|
|
317
330
|
if (constantValue.value === value) {
|
|
318
|
-
return `${
|
|
331
|
+
return `${helpers.getPackageName(src)}.${constantValue.name}`;
|
|
319
332
|
}
|
|
320
333
|
}
|
|
321
334
|
switch (type.type) {
|
|
322
335
|
case 'string':
|
|
323
|
-
return `${
|
|
336
|
+
return `${helpers.getPackageName(src)}.${type.name}("${value}")`;
|
|
324
337
|
default:
|
|
325
|
-
return `${
|
|
338
|
+
return `${helpers.getPackageName(src)}.${type.name}(${value})`;
|
|
326
339
|
}
|
|
327
340
|
}
|
|
328
341
|
function getTimeValue(type, value, imports) {
|
|
@@ -359,6 +372,7 @@ function getPointerValue(type, valueString, byValue, imports) {
|
|
|
359
372
|
switch (type.kind) {
|
|
360
373
|
case 'any':
|
|
361
374
|
case 'constant':
|
|
375
|
+
case 'etag':
|
|
362
376
|
case 'literal':
|
|
363
377
|
case 'string':
|
|
364
378
|
case 'time':
|
|
@@ -450,6 +464,26 @@ function generateFakeExample(goType, name) {
|
|
|
450
464
|
case 'tokenCredential':
|
|
451
465
|
// we hard code the credential var name to cred
|
|
452
466
|
return new go.TokenCredentialExample('cred');
|
|
467
|
+
case 'encodedBytes':
|
|
468
|
+
return new go.StringExample(`<${name ?? 'test'}>`, goType);
|
|
469
|
+
case 'time':
|
|
470
|
+
// use a placeholder date value for time types
|
|
471
|
+
return new go.StringExample('2006-01-02T15:04:05Z', goType);
|
|
472
|
+
case 'etag':
|
|
473
|
+
return new go.StringExample(`<${name ?? 'etag'}>`, goType);
|
|
474
|
+
case 'model':
|
|
475
|
+
case 'polymorphicModel':
|
|
476
|
+
// return an empty struct example for model types
|
|
477
|
+
return new go.StructExample(goType);
|
|
478
|
+
case 'slice':
|
|
479
|
+
// return an empty array example for slice types
|
|
480
|
+
return new go.ArrayExample(goType);
|
|
481
|
+
case 'map':
|
|
482
|
+
// return an empty map example for map types
|
|
483
|
+
return new go.DictionaryExample(goType);
|
|
484
|
+
case 'interface':
|
|
485
|
+
// for interface types, use the root type (which is a PolymorphicModel) to create an example
|
|
486
|
+
return new go.StructExample(goType.rootType);
|
|
453
487
|
default:
|
|
454
488
|
throw new CodegenError('InternalError', `unhandled fake example kind ${goType.kind}`);
|
|
455
489
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.js","sourceRoot":"","sources":["../../../../../codegen.go/src/core/example.ts"],"names":[],"mappings":"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"}
|