@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,122 @@
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 { tcgcToGoCodeModel } from './tcgcadapter/adapter.js';
6
+ import { generateClientFactory } from '../../codegen.go/src/clientFactory.js';
7
+ import { generateConstants } from '../../codegen.go/src/constants.js';
8
+ import { generateGoModFile } from '../../codegen.go/src/gomod.js';
9
+ import { generateInterfaces } from '../../codegen.go/src/interfaces.js';
10
+ import { generateModels } from '../../codegen.go/src/models.js';
11
+ import { generateOperations } from '../../codegen.go/src/operations.js';
12
+ import { generateOptions } from '../../codegen.go/src/options.js';
13
+ import { generatePolymorphicHelpers } from '../../codegen.go/src/polymorphics.js';
14
+ import { generateResponses } from '../../codegen.go/src/responses.js';
15
+ import { generateTimeHelpers } from '../../codegen.go/src/time.js';
16
+ import { generateServers } from '../../codegen.go/src/fake/servers.js';
17
+ import { generateServerFactory } from '../../codegen.go/src/fake/factory.js';
18
+ import { existsSync } from 'fs';
19
+ import { mkdir, readFile, writeFile } from 'fs/promises';
20
+ import 'source-map-support/register.js';
21
+ export async function $onEmit(context) {
22
+ const codeModel = tcgcToGoCodeModel(context);
23
+ await mkdir(context.emitterOutputDir, { recursive: true });
24
+ // don't overwrite an existing go.mod file, update it if required
25
+ const goModFile = `${context.emitterOutputDir}/go.mod`;
26
+ let existingGoMod;
27
+ if (existsSync(goModFile)) {
28
+ existingGoMod = (await readFile(goModFile)).toString();
29
+ }
30
+ const gomod = await generateGoModFile(codeModel, existingGoMod);
31
+ if (gomod.length > 0) {
32
+ writeFile(goModFile, gomod);
33
+ }
34
+ let filePrefix = '';
35
+ if (context.options['file-prefix']) {
36
+ filePrefix = context.options['file-prefix'];
37
+ // if a file prefix was specified, ensure it's properly snaked
38
+ if (filePrefix[filePrefix.length - 1] !== '_') {
39
+ filePrefix += '_';
40
+ }
41
+ }
42
+ const clientFactory = await generateClientFactory(codeModel);
43
+ if (clientFactory.length > 0) {
44
+ writeFile(`${context.emitterOutputDir}/${filePrefix}client_factory.go`, clientFactory);
45
+ }
46
+ const constants = await generateConstants(codeModel);
47
+ if (constants.length > 0) {
48
+ writeFile(`${context.emitterOutputDir}/${filePrefix}constants.go`, constants);
49
+ }
50
+ const interfaces = await generateInterfaces(codeModel);
51
+ if (interfaces.length > 0) {
52
+ writeFile(`${context.emitterOutputDir}/${filePrefix}interfaces.go`, interfaces);
53
+ }
54
+ const models = await generateModels(codeModel);
55
+ if (models.models.length > 0) {
56
+ writeFile(`${context.emitterOutputDir}/${filePrefix}models.go`, models.models);
57
+ }
58
+ if (models.serDe.length > 0) {
59
+ writeFile(`${context.emitterOutputDir}/${filePrefix}models_serde.go`, models.serDe);
60
+ }
61
+ const operations = await generateOperations(codeModel);
62
+ for (const op of operations) {
63
+ let fileName = op.name.toLowerCase();
64
+ // op.name is the client name, e.g. FooClient.
65
+ // insert a _ before Client, i.e. Foo_Client
66
+ // if the name isn't simply Client.
67
+ if (fileName !== 'client') {
68
+ fileName = fileName.substring(0, fileName.length - 6) + '_client';
69
+ }
70
+ writeFile(`${context.emitterOutputDir}/${filePrefix}${fileName}.go`, op.content);
71
+ }
72
+ const options = await generateOptions(codeModel);
73
+ if (options.length > 0) {
74
+ writeFile(`${context.emitterOutputDir}/${filePrefix}options.go`, options);
75
+ }
76
+ const polymorphics = await generatePolymorphicHelpers(codeModel);
77
+ if (polymorphics.length > 0) {
78
+ writeFile(`${context.emitterOutputDir}/${filePrefix}polymorphic_helpers.go`, polymorphics);
79
+ }
80
+ const responses = await generateResponses(codeModel);
81
+ if (responses.responses.length > 0) {
82
+ writeFile(`${context.emitterOutputDir}/${filePrefix}responses.go`, responses.responses);
83
+ }
84
+ if (responses.serDe.length > 0) {
85
+ writeFile(`${context.emitterOutputDir}/${filePrefix}responses_serde.go`, responses.serDe);
86
+ }
87
+ const timeHelpers = await generateTimeHelpers(codeModel);
88
+ for (const helper of timeHelpers) {
89
+ writeFile(`${context.emitterOutputDir}/${filePrefix}${helper.name.toLowerCase()}.go`, helper.content);
90
+ }
91
+ if (context.options['generate-fakes'] === true) {
92
+ const serverContent = await generateServers(codeModel);
93
+ if (serverContent.servers.length > 0) {
94
+ const fakesDir = context.emitterOutputDir + '/fake';
95
+ await mkdir(fakesDir, { recursive: true });
96
+ for (const op of serverContent.servers) {
97
+ let fileName = op.name.toLowerCase();
98
+ // op.name is the server name, e.g. FooServer.
99
+ // insert a _ before Server, i.e. Foo_Server
100
+ // if the name isn't simply Server.
101
+ if (fileName !== 'server') {
102
+ fileName = fileName.substring(0, fileName.length - 6) + '_server';
103
+ }
104
+ writeFile(`${fakesDir}/${filePrefix}${fileName}.go`, op.content);
105
+ }
106
+ const serverFactory = generateServerFactory(codeModel);
107
+ if (serverFactory.length > 0) {
108
+ writeFile(`${fakesDir}/${filePrefix}server_factory.go`, serverFactory);
109
+ }
110
+ writeFile(`${fakesDir}/${filePrefix}internal.go`, serverContent.internals);
111
+ const timeHelpers = await generateTimeHelpers(codeModel, 'fake');
112
+ for (const helper of timeHelpers) {
113
+ writeFile(`${fakesDir}/${filePrefix}${helper.name.toLowerCase()}.go`, helper.content);
114
+ }
115
+ const polymorphics = await generatePolymorphicHelpers(codeModel, 'fake');
116
+ if (polymorphics.length > 0) {
117
+ writeFile(`${fakesDir}/${filePrefix}polymorphic_helpers.go`, polymorphics);
118
+ }
119
+ }
120
+ }
121
+ }
122
+ //# sourceMappingURL=emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './emitter.js';
2
+ export { $lib } from './lib.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,7 @@
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
+ export * from './emitter.js';
6
+ export { $lib } from './lib.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,25 @@
1
+ export interface GoEmitterOptions {
2
+ 'azcore-version'?: string;
3
+ 'disallow-unknown-fields'?: boolean;
4
+ 'file-prefix'?: string;
5
+ 'generate-fakes'?: boolean;
6
+ 'head-as-boolean'?: boolean;
7
+ 'inject-spans'?: boolean;
8
+ 'module'?: string;
9
+ 'module-version'?: string;
10
+ 'rawjson-as-bytes'?: boolean;
11
+ 'slice-elements-byval'?: boolean;
12
+ 'single-client'?: boolean;
13
+ 'stutter'?: string;
14
+ 'fix-const-stuttering'?: boolean;
15
+ 'remove-unreferenced-types'?: boolean;
16
+ }
17
+ export declare const $lib: import("@typespec/compiler").TypeSpecLibrary<{
18
+ [code: string]: import("@typespec/compiler").DiagnosticMessages;
19
+ }, GoEmitterOptions, never>;
20
+ export declare const reportDiagnostic: <C extends string | number, M extends keyof {
21
+ [code: string]: import("@typespec/compiler").DiagnosticMessages;
22
+ }[C]>(program: import("@typespec/compiler").Program, diag: import("@typespec/compiler").DiagnosticReport<{
23
+ [code: string]: import("@typespec/compiler").DiagnosticMessages;
24
+ }, C, M>) => void, createStateSymbol: (name: string) => symbol, getTracer: (program: import("@typespec/compiler").Program) => import("@typespec/compiler").Tracer;
25
+ //# sourceMappingURL=lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../../src/lib.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAgCD,eAAO,MAAM,IAAI;;2BAAgC,CAAC;AAClD,eAAO,MAAQ,gBAAgB;;;;mBAAE,iBAAiB,4BAAE,SAAS,wFAAS,CAAC"}
@@ -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 { createTypeSpecLibrary } from '@typespec/compiler';
6
+ const EmitterOptionsSchema = {
7
+ type: 'object',
8
+ additionalProperties: true,
9
+ properties: {
10
+ 'azcore-version': { type: 'string', nullable: true },
11
+ 'disallow-unknown-fields': { type: 'boolean', nullable: true },
12
+ 'file-prefix': { type: 'string', nullable: true },
13
+ 'generate-fakes': { type: 'boolean', nullable: true },
14
+ 'head-as-boolean': { type: 'boolean', nullable: true },
15
+ 'inject-spans': { type: 'boolean', nullable: true },
16
+ 'module': { type: 'string', nullable: true },
17
+ 'module-version': { type: 'string', nullable: true },
18
+ 'rawjson-as-bytes': { type: 'boolean', nullable: true },
19
+ 'slice-elements-byval': { type: 'boolean', nullable: true },
20
+ 'single-client': { type: 'boolean', nullable: true },
21
+ 'stutter': { type: 'string', nullable: true },
22
+ 'fix-const-stuttering': { type: 'boolean', nullable: true },
23
+ 'remove-unreferenced-types': { type: 'boolean', nullable: true },
24
+ },
25
+ required: [],
26
+ };
27
+ const libDef = {
28
+ name: '@azure-tools/typespec-go',
29
+ diagnostics: {},
30
+ emitter: {
31
+ options: EmitterOptionsSchema,
32
+ },
33
+ };
34
+ export const $lib = createTypeSpecLibrary(libDef);
35
+ export const { reportDiagnostic, createStateSymbol, getTracer } = $lib;
36
+ //# sourceMappingURL=lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../../src/lib.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,qBAAqB,EAAkB,MAAM,oBAAoB,CAAC;AAmB3E,MAAM,oBAAoB,GAAqC;IAC7D,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;IAC1B,UAAU,EAAE;QACV,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,yBAAyB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC9D,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACjD,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrD,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5C,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvD,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,2BAA2B,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;KACjE;IACD,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,EAAE;IACf,OAAO,EAAE;QACP,OAAO,EAAoC,oBAAoB;KAChE;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { GoEmitterOptions } from '../lib.js';
2
+ import * as go from '../../../codemodel.go/src/index.js';
3
+ import { EmitContext } from '@typespec/compiler';
4
+ export declare function tcgcToGoCodeModel(context: EmitContext<GoEmitterOptions>): go.CodeModel;
5
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/tcgcadapter/adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,SAAS,CAmCtF"}
@@ -0,0 +1,119 @@
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 { clientAdapter } from './clients.js';
6
+ import { typeAdapter } from './types.js';
7
+ import * as go from '../../../codemodel.go/src/index.js';
8
+ import { packageNameFromOutputFolder, trimPackagePrefix } from '../../../naming.go/src/naming.js';
9
+ import * as tcgc from '@azure-tools/typespec-client-generator-core';
10
+ const headerText = `Copyright (c) Microsoft Corporation. All rights reserved.
11
+ Licensed under the MIT License. See License.txt in the project root for license information.
12
+ Code generated by Microsoft (R) Go Code Generator.`;
13
+ export function tcgcToGoCodeModel(context) {
14
+ const info = new go.Info('TODO Title');
15
+ const options = new go.Options(headerText, context.options['generate-fakes'] === true, context.options['inject-spans'] === true, context.options['disallow-unknown-fields'] === true);
16
+ if (context.options['azcore-version']) {
17
+ options.azcoreVersion = context.options['azcore-version'];
18
+ }
19
+ const sdkContext = tcgc.createSdkContext(context);
20
+ let codeModelType = 'data-plane';
21
+ if (sdkContext.arm === true) {
22
+ codeModelType = 'azure-arm';
23
+ }
24
+ const codeModel = new go.CodeModel(info, codeModelType, packageNameFromOutputFolder(context.emitterOutputDir), options);
25
+ if (context.options.module && context.options['module-version']) {
26
+ codeModel.options.module = new go.Module(context.options.module, context.options['module-version']);
27
+ }
28
+ else if (context.options.module || context.options['module-version']) {
29
+ throw new Error('--module and --module-version must both or neither be set');
30
+ }
31
+ if (context.options['rawjson-as-bytes']) {
32
+ codeModel.options.rawJSONAsBytes = true;
33
+ }
34
+ if (context.options['slice-elements-byval']) {
35
+ codeModel.options.sliceElementsByval = true;
36
+ }
37
+ fixStutteringTypeNames(sdkContext.experimental_sdkPackage, codeModel, context.options);
38
+ const ta = new typeAdapter(codeModel);
39
+ ta.adaptTypes(sdkContext, context.options['remove-unreferenced-types'] === true);
40
+ const ca = new clientAdapter(ta, context.options);
41
+ ca.adaptClients(sdkContext.experimental_sdkPackage);
42
+ codeModel.sortContent();
43
+ return codeModel;
44
+ }
45
+ function fixStutteringTypeNames(sdkPackage, codeModel, options) {
46
+ let stutteringPrefix = codeModel.packageName;
47
+ if (options.stutter) {
48
+ stutteringPrefix = options.stutter;
49
+ }
50
+ else {
51
+ // if there's a well-known prefix, remove it
52
+ if (stutteringPrefix.startsWith('arm')) {
53
+ stutteringPrefix = stutteringPrefix.substring(3);
54
+ }
55
+ else if (stutteringPrefix.startsWith('az')) {
56
+ stutteringPrefix = stutteringPrefix.substring(2);
57
+ }
58
+ }
59
+ stutteringPrefix = stutteringPrefix.toUpperCase();
60
+ // ensure that enum, client, and struct type names don't stutter
61
+ const recursiveWalkClients = function (client) {
62
+ client.name = trimPackagePrefix(stutteringPrefix, client.name);
63
+ // fix up the synthesized type names for page responses
64
+ for (const sdkMethod of client.methods) {
65
+ if (sdkMethod.kind === 'clientaccessor') {
66
+ recursiveWalkClients(sdkMethod.response);
67
+ continue;
68
+ }
69
+ else if (sdkMethod.kind !== 'paging') {
70
+ continue;
71
+ }
72
+ for (const httpResp of sdkMethod.operation.responses.values()) {
73
+ if (!httpResp.type || httpResp.type.kind !== 'model') {
74
+ continue;
75
+ }
76
+ httpResp.type.name = trimPackagePrefix(stutteringPrefix, httpResp.type.name);
77
+ }
78
+ }
79
+ };
80
+ for (const sdkClient of sdkPackage.clients) {
81
+ recursiveWalkClients(sdkClient);
82
+ }
83
+ // check if the name collides with an existing name. we only do
84
+ // this for model types as clients and enums get a suffix.
85
+ const nameCollision = function (newName) {
86
+ for (const modelType of sdkPackage.models) {
87
+ if (modelType.name === newName) {
88
+ return true;
89
+ }
90
+ }
91
+ return false;
92
+ };
93
+ // tracks type name collilsions due to renaming
94
+ const collisions = new Array();
95
+ // trims the stuttering prefix from typeName and returns the new name.
96
+ // if there's a collision, an entry is added to the collision list.
97
+ const renameType = function (typeName) {
98
+ const originalName = typeName;
99
+ const newName = trimPackagePrefix(stutteringPrefix, originalName);
100
+ // if the type was renamed to remove stuttering, check if it collides with an existing type name
101
+ if (newName !== originalName && nameCollision(newName)) {
102
+ collisions.push(`type ${originalName} was renamed to ${newName} which collides with an existing type name`);
103
+ }
104
+ return newName;
105
+ };
106
+ // to keep compat with autorest.go, this is off by default
107
+ if (options['fix-const-stuttering'] === true) {
108
+ for (const sdkEnum of sdkPackage.enums) {
109
+ sdkEnum.name = renameType(sdkEnum.name);
110
+ }
111
+ }
112
+ for (const modelType of sdkPackage.models) {
113
+ modelType.name = renameType(modelType.name);
114
+ }
115
+ if (collisions.length > 0) {
116
+ throw new Error(collisions.join('\n'));
117
+ }
118
+ }
119
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/tcgcadapter/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import * as tcgc from '@azure-tools/typespec-client-generator-core';
2
+ import { GoEmitterOptions } from '../lib.js';
3
+ import { typeAdapter } from './types.js';
4
+ export declare class clientAdapter {
5
+ private ta;
6
+ private opts;
7
+ private clientParams;
8
+ constructor(ta: typeAdapter, opts: GoEmitterOptions);
9
+ adaptClients(sdkPackage: tcgc.SdkPackage<tcgc.SdkHttpOperation>): void;
10
+ private recursiveAdaptClient;
11
+ private adaptURIParam;
12
+ private adaptMethod;
13
+ private hasDecorator;
14
+ private populateMethod;
15
+ private adaptMethodParameters;
16
+ private adaptContentType;
17
+ private adaptMethodParameter;
18
+ private getMethodNameForDocComment;
19
+ private adaptResponseEnvelope;
20
+ private adaptParameterGroup;
21
+ private adaptHeaderType;
22
+ private adaptPathParameterType;
23
+ private adaptQueryParameterType;
24
+ private adaptParameterKind;
25
+ }
26
+ //# sourceMappingURL=clients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../../src/tcgcadapter/clients.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,IAAI,MAAM,6CAA6C,CAAC;AAGpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAuB,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9D,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,IAAI,CAAmB;IAK/B,OAAO,CAAC,YAAY,CAA4B;gBAEpC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB;IAQnD,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAY/D,OAAO,CAAC,oBAAoB;IAoH5B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,WAAW;IAkDnB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,cAAc;IA4CtB,OAAO,CAAC,qBAAqB;IAqF7B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,oBAAoB;IA+F5B,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,qBAAqB;IA6G7B,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,kBAAkB;CAmB3B"}