@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.
Files changed (119) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/codegen.go/src/clientFactory.d.ts +3 -0
  4. package/dist/codegen.go/src/clientFactory.d.ts.map +1 -0
  5. package/dist/codegen.go/src/clientFactory.js +77 -0
  6. package/dist/codegen.go/src/clientFactory.js.map +1 -0
  7. package/dist/codegen.go/src/constants.d.ts +3 -0
  8. package/dist/codegen.go/src/constants.d.ts.map +1 -0
  9. package/dist/codegen.go/src/constants.js +59 -0
  10. package/dist/codegen.go/src/constants.js.map +1 -0
  11. package/dist/codegen.go/src/fake/factory.d.ts +3 -0
  12. package/dist/codegen.go/src/fake/factory.d.ts.map +1 -0
  13. package/dist/codegen.go/src/fake/factory.js +69 -0
  14. package/dist/codegen.go/src/fake/factory.js.map +1 -0
  15. package/dist/codegen.go/src/fake/internal.d.ts +14 -0
  16. package/dist/codegen.go/src/fake/internal.d.ts.map +1 -0
  17. package/dist/codegen.go/src/fake/internal.js +197 -0
  18. package/dist/codegen.go/src/fake/internal.js.map +1 -0
  19. package/dist/codegen.go/src/fake/servers.d.ts +14 -0
  20. package/dist/codegen.go/src/fake/servers.d.ts.map +1 -0
  21. package/dist/codegen.go/src/fake/servers.js +1255 -0
  22. package/dist/codegen.go/src/fake/servers.js.map +1 -0
  23. package/dist/codegen.go/src/gomod.d.ts +3 -0
  24. package/dist/codegen.go/src/gomod.d.ts.map +1 -0
  25. package/dist/codegen.go/src/gomod.js +55 -0
  26. package/dist/codegen.go/src/gomod.js.map +1 -0
  27. package/dist/codegen.go/src/helpers.d.ts +32 -0
  28. package/dist/codegen.go/src/helpers.d.ts.map +1 -0
  29. package/dist/codegen.go/src/helpers.js +586 -0
  30. package/dist/codegen.go/src/helpers.js.map +1 -0
  31. package/dist/codegen.go/src/imports.d.ts +11 -0
  32. package/dist/codegen.go/src/imports.d.ts.map +1 -0
  33. package/dist/codegen.go/src/imports.js +65 -0
  34. package/dist/codegen.go/src/imports.js.map +1 -0
  35. package/dist/codegen.go/src/interfaces.d.ts +3 -0
  36. package/dist/codegen.go/src/interfaces.d.ts.map +1 -0
  37. package/dist/codegen.go/src/interfaces.js +36 -0
  38. package/dist/codegen.go/src/interfaces.js.map +1 -0
  39. package/dist/codegen.go/src/models.d.ts +9 -0
  40. package/dist/codegen.go/src/models.d.ts.map +1 -0
  41. package/dist/codegen.go/src/models.js +849 -0
  42. package/dist/codegen.go/src/models.js.map +1 -0
  43. package/dist/codegen.go/src/operations.d.ts +9 -0
  44. package/dist/codegen.go/src/operations.d.ts.map +1 -0
  45. package/dist/codegen.go/src/operations.js +1337 -0
  46. package/dist/codegen.go/src/operations.js.map +1 -0
  47. package/dist/codegen.go/src/options.d.ts +3 -0
  48. package/dist/codegen.go/src/options.d.ts.map +1 -0
  49. package/dist/codegen.go/src/options.js +64 -0
  50. package/dist/codegen.go/src/options.js.map +1 -0
  51. package/dist/codegen.go/src/polymorphics.d.ts +3 -0
  52. package/dist/codegen.go/src/polymorphics.d.ts.map +1 -0
  53. package/dist/codegen.go/src/polymorphics.js +169 -0
  54. package/dist/codegen.go/src/polymorphics.js.map +1 -0
  55. package/dist/codegen.go/src/responses.d.ts +7 -0
  56. package/dist/codegen.go/src/responses.d.ts.map +1 -0
  57. package/dist/codegen.go/src/responses.js +167 -0
  58. package/dist/codegen.go/src/responses.js.map +1 -0
  59. package/dist/codegen.go/src/time.d.ts +8 -0
  60. package/dist/codegen.go/src/time.d.ts.map +1 -0
  61. package/dist/codegen.go/src/time.js +511 -0
  62. package/dist/codegen.go/src/time.js.map +1 -0
  63. package/dist/codemodel.go/src/client.d.ts +96 -0
  64. package/dist/codemodel.go/src/client.d.ts.map +1 -0
  65. package/dist/codemodel.go/src/client.js +114 -0
  66. package/dist/codemodel.go/src/client.js.map +1 -0
  67. package/dist/codemodel.go/src/index.d.ts +6 -0
  68. package/dist/codemodel.go/src/index.d.ts.map +1 -0
  69. package/dist/codemodel.go/src/index.js +10 -0
  70. package/dist/codemodel.go/src/index.js.map +1 -0
  71. package/dist/codemodel.go/src/package.d.ts +49 -0
  72. package/dist/codemodel.go/src/package.d.ts.map +1 -0
  73. package/dist/codemodel.go/src/package.js +86 -0
  74. package/dist/codemodel.go/src/package.js.map +1 -0
  75. package/dist/codemodel.go/src/param.d.ts +162 -0
  76. package/dist/codemodel.go/src/param.d.ts.map +1 -0
  77. package/dist/codemodel.go/src/param.js +189 -0
  78. package/dist/codemodel.go/src/param.js.map +1 -0
  79. package/dist/codemodel.go/src/result.d.ts +102 -0
  80. package/dist/codemodel.go/src/result.d.ts.map +1 -0
  81. package/dist/codemodel.go/src/result.js +119 -0
  82. package/dist/codemodel.go/src/result.js.map +1 -0
  83. package/dist/codemodel.go/src/type.d.ts +181 -0
  84. package/dist/codemodel.go/src/type.d.ts.map +1 -0
  85. package/dist/codemodel.go/src/type.js +242 -0
  86. package/dist/codemodel.go/src/type.js.map +1 -0
  87. package/dist/naming.go/src/mappings.d.ts +3 -0
  88. package/dist/naming.go/src/mappings.d.ts.map +1 -0
  89. package/dist/naming.go/src/mappings.js +128 -0
  90. package/dist/naming.go/src/mappings.js.map +1 -0
  91. package/dist/naming.go/src/naming.d.ts +10 -0
  92. package/dist/naming.go/src/naming.d.ts.map +1 -0
  93. package/dist/naming.go/src/naming.js +114 -0
  94. package/dist/naming.go/src/naming.js.map +1 -0
  95. package/dist/typespec-go/src/emitter.d.ts +5 -0
  96. package/dist/typespec-go/src/emitter.d.ts.map +1 -0
  97. package/dist/typespec-go/src/emitter.js +122 -0
  98. package/dist/typespec-go/src/emitter.js.map +1 -0
  99. package/dist/typespec-go/src/index.d.ts +3 -0
  100. package/dist/typespec-go/src/index.d.ts.map +1 -0
  101. package/dist/typespec-go/src/index.js +7 -0
  102. package/dist/typespec-go/src/index.js.map +1 -0
  103. package/dist/typespec-go/src/lib.d.ts +25 -0
  104. package/dist/typespec-go/src/lib.d.ts.map +1 -0
  105. package/dist/typespec-go/src/lib.js +36 -0
  106. package/dist/typespec-go/src/lib.js.map +1 -0
  107. package/dist/typespec-go/src/tcgcadapter/adapter.d.ts +5 -0
  108. package/dist/typespec-go/src/tcgcadapter/adapter.d.ts.map +1 -0
  109. package/dist/typespec-go/src/tcgcadapter/adapter.js +119 -0
  110. package/dist/typespec-go/src/tcgcadapter/adapter.js.map +1 -0
  111. package/dist/typespec-go/src/tcgcadapter/clients.d.ts +26 -0
  112. package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +1 -0
  113. package/dist/typespec-go/src/tcgcadapter/clients.js +621 -0
  114. package/dist/typespec-go/src/tcgcadapter/clients.js.map +1 -0
  115. package/dist/typespec-go/src/tcgcadapter/types.d.ts +29 -0
  116. package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +1 -0
  117. package/dist/typespec-go/src/tcgcadapter/types.js +975 -0
  118. package/dist/typespec-go/src/tcgcadapter/types.js.map +1 -0
  119. 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,3 @@
1
+ import * as go from '../../codemodel.go/src/index.js';
2
+ export declare function generateInterfaces(codeModel: go.CodeModel): Promise<string>;
3
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -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"}