@azure-tools/typespec-go 0.1.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/LICENSE +21 -0
- package/README.md +16 -0
- package/dist/codegen.go/src/clientFactory.d.ts +3 -0
- package/dist/codegen.go/src/clientFactory.d.ts.map +1 -0
- package/dist/codegen.go/src/clientFactory.js +77 -0
- package/dist/codegen.go/src/clientFactory.js.map +1 -0
- package/dist/codegen.go/src/constants.d.ts +3 -0
- package/dist/codegen.go/src/constants.d.ts.map +1 -0
- package/dist/codegen.go/src/constants.js +59 -0
- package/dist/codegen.go/src/constants.js.map +1 -0
- package/dist/codegen.go/src/fake/factory.d.ts +3 -0
- package/dist/codegen.go/src/fake/factory.d.ts.map +1 -0
- package/dist/codegen.go/src/fake/factory.js +69 -0
- package/dist/codegen.go/src/fake/factory.js.map +1 -0
- package/dist/codegen.go/src/fake/internal.d.ts +14 -0
- package/dist/codegen.go/src/fake/internal.d.ts.map +1 -0
- package/dist/codegen.go/src/fake/internal.js +197 -0
- package/dist/codegen.go/src/fake/internal.js.map +1 -0
- package/dist/codegen.go/src/fake/servers.d.ts +14 -0
- package/dist/codegen.go/src/fake/servers.d.ts.map +1 -0
- package/dist/codegen.go/src/fake/servers.js +1255 -0
- package/dist/codegen.go/src/fake/servers.js.map +1 -0
- package/dist/codegen.go/src/gomod.d.ts +3 -0
- package/dist/codegen.go/src/gomod.d.ts.map +1 -0
- package/dist/codegen.go/src/gomod.js +55 -0
- package/dist/codegen.go/src/gomod.js.map +1 -0
- package/dist/codegen.go/src/helpers.d.ts +32 -0
- package/dist/codegen.go/src/helpers.d.ts.map +1 -0
- package/dist/codegen.go/src/helpers.js +586 -0
- package/dist/codegen.go/src/helpers.js.map +1 -0
- package/dist/codegen.go/src/imports.d.ts +11 -0
- package/dist/codegen.go/src/imports.d.ts.map +1 -0
- package/dist/codegen.go/src/imports.js +65 -0
- package/dist/codegen.go/src/imports.js.map +1 -0
- package/dist/codegen.go/src/interfaces.d.ts +3 -0
- package/dist/codegen.go/src/interfaces.d.ts.map +1 -0
- package/dist/codegen.go/src/interfaces.js +36 -0
- package/dist/codegen.go/src/interfaces.js.map +1 -0
- package/dist/codegen.go/src/models.d.ts +9 -0
- package/dist/codegen.go/src/models.d.ts.map +1 -0
- package/dist/codegen.go/src/models.js +849 -0
- package/dist/codegen.go/src/models.js.map +1 -0
- package/dist/codegen.go/src/operations.d.ts +9 -0
- package/dist/codegen.go/src/operations.d.ts.map +1 -0
- package/dist/codegen.go/src/operations.js +1337 -0
- package/dist/codegen.go/src/operations.js.map +1 -0
- package/dist/codegen.go/src/options.d.ts +3 -0
- package/dist/codegen.go/src/options.d.ts.map +1 -0
- package/dist/codegen.go/src/options.js +64 -0
- package/dist/codegen.go/src/options.js.map +1 -0
- package/dist/codegen.go/src/polymorphics.d.ts +3 -0
- package/dist/codegen.go/src/polymorphics.d.ts.map +1 -0
- package/dist/codegen.go/src/polymorphics.js +169 -0
- package/dist/codegen.go/src/polymorphics.js.map +1 -0
- package/dist/codegen.go/src/responses.d.ts +7 -0
- package/dist/codegen.go/src/responses.d.ts.map +1 -0
- package/dist/codegen.go/src/responses.js +167 -0
- package/dist/codegen.go/src/responses.js.map +1 -0
- package/dist/codegen.go/src/time.d.ts +8 -0
- package/dist/codegen.go/src/time.d.ts.map +1 -0
- package/dist/codegen.go/src/time.js +511 -0
- package/dist/codegen.go/src/time.js.map +1 -0
- package/dist/codemodel.go/src/client.d.ts +96 -0
- package/dist/codemodel.go/src/client.d.ts.map +1 -0
- package/dist/codemodel.go/src/client.js +114 -0
- package/dist/codemodel.go/src/client.js.map +1 -0
- package/dist/codemodel.go/src/index.d.ts +6 -0
- package/dist/codemodel.go/src/index.d.ts.map +1 -0
- package/dist/codemodel.go/src/index.js +10 -0
- package/dist/codemodel.go/src/index.js.map +1 -0
- package/dist/codemodel.go/src/package.d.ts +49 -0
- package/dist/codemodel.go/src/package.d.ts.map +1 -0
- package/dist/codemodel.go/src/package.js +86 -0
- package/dist/codemodel.go/src/package.js.map +1 -0
- package/dist/codemodel.go/src/param.d.ts +162 -0
- package/dist/codemodel.go/src/param.d.ts.map +1 -0
- package/dist/codemodel.go/src/param.js +189 -0
- package/dist/codemodel.go/src/param.js.map +1 -0
- package/dist/codemodel.go/src/result.d.ts +102 -0
- package/dist/codemodel.go/src/result.d.ts.map +1 -0
- package/dist/codemodel.go/src/result.js +119 -0
- package/dist/codemodel.go/src/result.js.map +1 -0
- package/dist/codemodel.go/src/type.d.ts +181 -0
- package/dist/codemodel.go/src/type.d.ts.map +1 -0
- package/dist/codemodel.go/src/type.js +242 -0
- package/dist/codemodel.go/src/type.js.map +1 -0
- package/dist/naming.go/src/mappings.d.ts +3 -0
- package/dist/naming.go/src/mappings.d.ts.map +1 -0
- package/dist/naming.go/src/mappings.js +128 -0
- package/dist/naming.go/src/mappings.js.map +1 -0
- package/dist/naming.go/src/naming.d.ts +10 -0
- package/dist/naming.go/src/naming.d.ts.map +1 -0
- package/dist/naming.go/src/naming.js +114 -0
- package/dist/naming.go/src/naming.js.map +1 -0
- package/dist/typespec-go/src/emitter.d.ts +5 -0
- package/dist/typespec-go/src/emitter.d.ts.map +1 -0
- package/dist/typespec-go/src/emitter.js +122 -0
- package/dist/typespec-go/src/emitter.js.map +1 -0
- package/dist/typespec-go/src/index.d.ts +3 -0
- package/dist/typespec-go/src/index.d.ts.map +1 -0
- package/dist/typespec-go/src/index.js +7 -0
- package/dist/typespec-go/src/index.js.map +1 -0
- package/dist/typespec-go/src/lib.d.ts +25 -0
- package/dist/typespec-go/src/lib.d.ts.map +1 -0
- package/dist/typespec-go/src/lib.js +36 -0
- package/dist/typespec-go/src/lib.js.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/adapter.d.ts +5 -0
- package/dist/typespec-go/src/tcgcadapter/adapter.d.ts.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/adapter.js +119 -0
- package/dist/typespec-go/src/tcgcadapter/adapter.js.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/clients.d.ts +26 -0
- package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/clients.js +621 -0
- package/dist/typespec-go/src/tcgcadapter/clients.js.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/types.d.ts +29 -0
- package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +1 -0
- package/dist/typespec-go/src/tcgcadapter/types.js +975 -0
- package/dist/typespec-go/src/tcgcadapter/types.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import * as go from '../../codemodel.go/src/index.js';
|
|
6
|
+
import { values } from '@azure-tools/linq';
|
|
7
|
+
import { sortAscending } from './helpers.js';
|
|
8
|
+
// tracks packages that need to be imported
|
|
9
|
+
export class ImportManager {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.imports = new Array();
|
|
12
|
+
}
|
|
13
|
+
// adds a package for importing if not already in the list
|
|
14
|
+
// accepts an optional package alias.
|
|
15
|
+
add(imp, alias) {
|
|
16
|
+
for (const existing of values(this.imports)) {
|
|
17
|
+
if (existing.imp === imp) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
this.imports.push({ imp: imp, alias: alias });
|
|
22
|
+
}
|
|
23
|
+
// returns the number of packages in the list
|
|
24
|
+
length() {
|
|
25
|
+
return this.imports.length;
|
|
26
|
+
}
|
|
27
|
+
// returns the import list as Go source code
|
|
28
|
+
text() {
|
|
29
|
+
if (this.imports.length === 0) {
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
32
|
+
else if (this.imports.length === 1) {
|
|
33
|
+
const first = this.imports[0];
|
|
34
|
+
return `import ${this.alias(first)}"${first.imp}"\n\n`;
|
|
35
|
+
}
|
|
36
|
+
this.imports.sort((a, b) => { return sortAscending(a.imp, b.imp); });
|
|
37
|
+
let text = 'import (\n';
|
|
38
|
+
for (const imp of values(this.imports)) {
|
|
39
|
+
text += `\t${this.alias(imp)}"${imp.imp}"\n`;
|
|
40
|
+
}
|
|
41
|
+
text += ')\n\n';
|
|
42
|
+
return text;
|
|
43
|
+
}
|
|
44
|
+
addImportForType(type) {
|
|
45
|
+
if (go.isMapType(type)) {
|
|
46
|
+
this.addImportForType(type.valueType);
|
|
47
|
+
}
|
|
48
|
+
else if (go.isSliceType(type)) {
|
|
49
|
+
this.addImportForType(type.elementType);
|
|
50
|
+
}
|
|
51
|
+
else if (go.isQualifiedType(type)) {
|
|
52
|
+
this.add(type.packageName);
|
|
53
|
+
}
|
|
54
|
+
else if (go.isTimeType(type)) {
|
|
55
|
+
this.add('time');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
alias(entry) {
|
|
59
|
+
if (entry.alias) {
|
|
60
|
+
return `${entry.alias} `;
|
|
61
|
+
}
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../../codegen.go/src/imports.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,2CAA2C;AAC3C,MAAM,OAAO,aAAa;IAGxB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,EAAe,CAAC;IAC1C,CAAC;IAED,0DAA0D;IAC1D,qCAAqC;IACrC,GAAG,CAAC,GAAW,EAAE,KAAc;QAC7B,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC3C,IAAI,QAAQ,CAAC,GAAG,KAAK,GAAG,EAAE;gBACxB,OAAO;aACR;SACF;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,6CAA6C;IAC7C,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,4CAA4C;IAC5C,IAAI;QACF,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,OAAO,EAAE,CAAC;SACX;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC;SACxD;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAc,EAAE,CAAc,EAAE,EAAE,GAAG,OAAO,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/F,IAAI,IAAI,GAAG,YAAY,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACtC,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;SAC9C;QACD,IAAI,IAAI,OAAO,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,IAAqB;QACpC,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvC;aAAM,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACzC;aAAM,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;YACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC5B;aAAM,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAClB;IACH,CAAC;IAEO,KAAK,CAAC,KAAkB;QAC9B,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;SAC1B;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../codegen.go/src/interfaces.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAKtD,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BjF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { comment } from '@azure-tools/codegen';
|
|
6
|
+
import { contentPreamble, sortAscending } from './helpers.js';
|
|
7
|
+
// Creates the content in interfaces.go
|
|
8
|
+
export async function generateInterfaces(codeModel) {
|
|
9
|
+
if (codeModel.interfaceTypes.length === 0) {
|
|
10
|
+
// no polymorphic types
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
let text = contentPreamble(codeModel);
|
|
14
|
+
for (const iface of codeModel.interfaceTypes) {
|
|
15
|
+
const methodName = `Get${iface.rootType.name}`;
|
|
16
|
+
text += `// ${iface.name} provides polymorphic access to related types.\n`;
|
|
17
|
+
text += `// Call the interface's ${methodName}() method to access the common type.\n`;
|
|
18
|
+
text += '// Use a type switch to determine the concrete type. The possible types are:\n';
|
|
19
|
+
const possibleTypeNames = new Array();
|
|
20
|
+
possibleTypeNames.push(`*${iface.rootType.name}`);
|
|
21
|
+
for (const possibleType of iface.possibleTypes) {
|
|
22
|
+
possibleTypeNames.push(`*${possibleType.name}`);
|
|
23
|
+
}
|
|
24
|
+
possibleTypeNames.sort(sortAscending);
|
|
25
|
+
text += comment(possibleTypeNames.join(', '), '// - ');
|
|
26
|
+
text += `\ntype ${iface.name} interface {\n`;
|
|
27
|
+
if (iface.parent) {
|
|
28
|
+
text += `\t${iface.parent.name}\n`;
|
|
29
|
+
}
|
|
30
|
+
text += `\t// ${methodName} returns the ${iface.rootType.name} content of the underlying type.\n`;
|
|
31
|
+
text += `\t${methodName}() *${iface.rootType.name}\n`;
|
|
32
|
+
text += '}\n\n';
|
|
33
|
+
}
|
|
34
|
+
return text;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=interfaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../codegen.go/src/interfaces.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAGhG,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9D,uCAAuC;AACvC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,SAAuB;IAC9D,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QACzC,uBAAuB;QACvB,OAAO,EAAE,CAAC;KACX;IAED,IAAI,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,cAAc,EAAE;QAC5C,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,IAAI,MAAM,KAAK,CAAC,IAAI,kDAAkD,CAAC;QAC3E,IAAI,IAAI,2BAA2B,UAAU,wCAAwC,CAAC;QACtF,IAAI,IAAI,iFAAiF,CAAC;QAC1F,MAAM,iBAAiB,GAAG,IAAI,KAAK,EAAU,CAAC;QAC9C,iBAAiB,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE;YAC9C,iBAAiB,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;SACjD;QACD,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtC,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,IAAI,UAAU,KAAK,CAAC,IAAI,gBAAgB,CAAC;QAC7C,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;SACpC;QACD,IAAI,IAAI,QAAQ,UAAU,gBAAgB,KAAK,CAAC,QAAQ,CAAC,IAAI,oCAAoC,CAAC;QAClG,IAAI,IAAI,KAAK,UAAU,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;QACtD,IAAI,IAAI,OAAO,CAAC;KACjB;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as go from '../../codemodel.go/src/index.js';
|
|
2
|
+
export interface ModelsSerDe {
|
|
3
|
+
models: string;
|
|
4
|
+
serDe: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function generateModels(codeModel: go.CodeModel): Promise<ModelsSerDe>;
|
|
7
|
+
export declare function getXMLSerialization(field: go.ModelField, isResponseEnvelope: boolean): string;
|
|
8
|
+
export declare function getStar(byValue: boolean): string;
|
|
9
|
+
//# sourceMappingURL=models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../codegen.go/src/models.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAMtD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,wBAAsB,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CA+HlF;AAmqBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,GAAG,MAAM,CAiD7F;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAKhD"}
|