@autorest/typescript 6.0.0-alpha.16.20220105.1 → 6.0.0-alpha.16.20220119.1

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 (55) hide show
  1. package/dist/src/autorestSession.d.ts +1 -0
  2. package/dist/src/autorestSession.d.ts.map +1 -1
  3. package/dist/src/autorestSession.js.map +1 -1
  4. package/dist/src/generators/indexGenerator.d.ts.map +1 -1
  5. package/dist/src/generators/indexGenerator.js +66 -3
  6. package/dist/src/generators/indexGenerator.js.map +1 -1
  7. package/dist/src/generators/static/packageFileGenerator.js +6 -0
  8. package/dist/src/generators/static/packageFileGenerator.js.map +1 -1
  9. package/dist/src/restLevelClient/generateClient.d.ts +1 -1
  10. package/dist/src/restLevelClient/generateClient.d.ts.map +1 -1
  11. package/dist/src/restLevelClient/generateClient.js +23 -193
  12. package/dist/src/restLevelClient/generateClient.js.map +1 -1
  13. package/dist/src/restLevelClient/generateClientDefinition.d.ts +6 -0
  14. package/dist/src/restLevelClient/generateClientDefinition.d.ts.map +1 -0
  15. package/dist/src/restLevelClient/generateClientDefinition.js +228 -0
  16. package/dist/src/restLevelClient/generateClientDefinition.js.map +1 -0
  17. package/dist/src/restLevelClient/generatePagingHelper.d.ts.map +1 -1
  18. package/dist/src/restLevelClient/generatePagingHelper.js +2 -1
  19. package/dist/src/restLevelClient/generatePagingHelper.js.map +1 -1
  20. package/dist/src/restLevelClient/generateParameterTypes.d.ts.map +1 -1
  21. package/dist/src/restLevelClient/generateParameterTypes.js +51 -1
  22. package/dist/src/restLevelClient/generateParameterTypes.js.map +1 -1
  23. package/dist/src/restLevelClient/generatePollingHelper.d.ts.map +1 -1
  24. package/dist/src/restLevelClient/generatePollingHelper.js +3 -1
  25. package/dist/src/restLevelClient/generatePollingHelper.js.map +1 -1
  26. package/dist/src/restLevelClient/generateResponseTypes.d.ts.map +1 -1
  27. package/dist/src/restLevelClient/generateResponseTypes.js +4 -1
  28. package/dist/src/restLevelClient/generateResponseTypes.js.map +1 -1
  29. package/dist/src/restLevelClient/generateRestLevel.d.ts.map +1 -1
  30. package/dist/src/restLevelClient/generateRestLevel.js +5 -1
  31. package/dist/src/restLevelClient/generateRestLevel.js.map +1 -1
  32. package/dist/src/restLevelClient/generateSchemaTypes.d.ts.map +1 -1
  33. package/dist/src/restLevelClient/generateSchemaTypes.js +5 -2
  34. package/dist/src/restLevelClient/generateSchemaTypes.js.map +1 -1
  35. package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts +4 -0
  36. package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts.map +1 -0
  37. package/dist/src/restLevelClient/generateTopLevelIndexFile.js +41 -0
  38. package/dist/src/restLevelClient/generateTopLevelIndexFile.js.map +1 -0
  39. package/dist/src/utils/autorestOptions.d.ts.map +1 -1
  40. package/dist/src/utils/autorestOptions.js +8 -0
  41. package/dist/src/utils/autorestOptions.js.map +1 -1
  42. package/package.json +2 -2
  43. package/src/autorestSession.ts +1 -0
  44. package/src/generators/indexGenerator.ts +75 -4
  45. package/src/generators/static/packageFileGenerator.ts +6 -0
  46. package/src/restLevelClient/generateClient.ts +25 -276
  47. package/src/restLevelClient/generateClientDefinition.ts +325 -0
  48. package/src/restLevelClient/generatePagingHelper.ts +3 -2
  49. package/src/restLevelClient/generateParameterTypes.ts +91 -2
  50. package/src/restLevelClient/generatePollingHelper.ts +3 -1
  51. package/src/restLevelClient/generateResponseTypes.ts +4 -1
  52. package/src/restLevelClient/generateRestLevel.ts +8 -2
  53. package/src/restLevelClient/generateSchemaTypes.ts +5 -3
  54. package/src/restLevelClient/generateTopLevelIndexFile.ts +41 -0
  55. package/src/utils/autorestOptions.ts +9 -0
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateTopLevelIndexFile = void 0;
4
+ const path = require("path");
5
+ const autorestSession_1 = require("../autorestSession");
6
+ const nameUtils_1 = require("../utils/nameUtils");
7
+ const batchOutputFolder = [];
8
+ function generateTopLevelIndexFile(model, project) {
9
+ const { batch, srcPath } = autorestSession_1.getAutorestOptions();
10
+ if (srcPath) {
11
+ const clientName = model.language.default.name;
12
+ const moduleName = nameUtils_1.normalizeName(clientName, nameUtils_1.NameType.File);
13
+ const relativePath = srcPath.replace('/src', '');
14
+ batchOutputFolder.push([relativePath, clientName, moduleName]);
15
+ }
16
+ if (batch && batch.length > 1 && batchOutputFolder.length === batch.length) {
17
+ const { srcPath } = autorestSession_1.getAutorestOptions();
18
+ const fileDirectory = path.join(srcPath, '../../');
19
+ const file = project.createSourceFile('/src/index.ts', undefined, {
20
+ overwrite: true
21
+ });
22
+ file.moveToDirectory(fileDirectory);
23
+ const allModules = [];
24
+ batchOutputFolder.forEach(item => {
25
+ file.addImportDeclaration({
26
+ namespaceImport: item[1],
27
+ moduleSpecifier: `${item[0]}`
28
+ });
29
+ file.addExportDeclaration({
30
+ moduleSpecifier: `${item[0]}/${item[2]}`,
31
+ namedExports: [`${item[1]} as ${item[1]}Client`]
32
+ });
33
+ allModules.push(item[1]);
34
+ });
35
+ file.addExportDeclaration({
36
+ namedExports: [...allModules]
37
+ });
38
+ }
39
+ }
40
+ exports.generateTopLevelIndexFile = generateTopLevelIndexFile;
41
+ //# sourceMappingURL=generateTopLevelIndexFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateTopLevelIndexFile.js","sourceRoot":"","sources":["../../../src/restLevelClient/generateTopLevelIndexFile.ts"],"names":[],"mappings":";;;AACA,6BAA6B;AAC7B,wDAAwD;AAExD,kDAA6D;AAE7D,MAAM,iBAAiB,GAA+B,EAAE,CAAC;AAEzD,SAAgB,yBAAyB,CAAC,KAAgB,EAAE,OAAgB;IACxE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,oCAAkB,EAAE,CAAC;IAChD,IAAI,OAAO,EAAE;QACT,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QAC/C,MAAM,UAAU,GAAG,yBAAa,CAAC,UAAU,EAAE,oBAAQ,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,iBAAiB,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;KAClE;IAED,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;QACxE,MAAM,EAAE,OAAO,EAAE,GAAG,oCAAkB,EAAE,CAAC;QACzC,MAAM,aAAa,GAAE,IAAI,CAAC,IAAI,CAAC,OAAiB,EAAE,QAAQ,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,EAAE;YAC9D,SAAS,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QACpC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC7B,IAAI,CAAC,oBAAoB,CAAC;gBACtB,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;gBACxB,eAAe,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE;aAChC,CAAC,CAAC;YACH,IAAI,CAAC,oBAAoB,CAAC;gBACtB,eAAe,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;gBACxC,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;aACnD,CAAC,CAAA;YACF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,CAAC;YACtB,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;SAChC,CAAC,CAAC;KACN;AACL,CAAC;AAhCD,8DAgCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"autorestOptions.d.ts","sourceRoot":"","sources":["../../../src/utils/autorestOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAuB,MAAM,oBAAoB,CAAC;AAK1E;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,eAAe,CAAC,CAsDvE;AAgLD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA8B/B"}
1
+ {"version":3,"file":"autorestOptions.d.ts","sourceRoot":"","sources":["../../../src/utils/autorestOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAuB,MAAM,oBAAoB,CAAC;AAK1E;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,eAAe,CAAC,CAwDvE;AAgLD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA8B/B"}
@@ -42,6 +42,7 @@ function extractAutorestOptions() {
42
42
  const headAsBoolean = yield getHeadAsBoolean(host);
43
43
  const isTestPackage = yield getIsTestPackage(host);
44
44
  const generateTest = yield getGenerateTest(host);
45
+ const batch = yield getBatch(host);
45
46
  const generateSample = yield getGenerateSample(host);
46
47
  return {
47
48
  azureArm,
@@ -67,6 +68,7 @@ function extractAutorestOptions() {
67
68
  headAsBoolean,
68
69
  isTestPackage,
69
70
  generateTest,
71
+ batch,
70
72
  generateSample
71
73
  };
72
74
  });
@@ -268,4 +270,10 @@ function getAzureOutputDirectoryPath(host) {
268
270
  : undefined;
269
271
  });
270
272
  }
273
+ function getBatch(host) {
274
+ return __awaiter(this, void 0, void 0, function* () {
275
+ const batch = yield host.getValue('batch');
276
+ return batch;
277
+ });
278
+ }
271
279
  //# sourceMappingURL=autorestOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"autorestOptions.js","sourceRoot":"","sources":["../../../src/utils/autorestOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autorestOptions.js","sourceRoot":"","sources":["../../../src/utils/autorestOptions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autorest/typescript",
3
- "version": "6.0.0-alpha.16.20220105.1",
3
+ "version": "6.0.0-alpha.16.20220119.1",
4
4
  "scripts": {
5
5
  "build": "tsc -p . && npm run copyFiles",
6
6
  "build:test:browser": "tsc -p tsconfig.browser-test.json && webpack --config webpack.config.test.js",
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@autorest/codemodel": "^4.17.0",
40
40
  "@autorest/extension-base": "^3.4.1",
41
- "@azure-rest/core-client": "1.0.0-alpha.20211206.10",
41
+ "@azure-rest/core-client": "1.0.0-alpha.20220112.1",
42
42
  "@autorest/testmodeler": "^1.0.4",
43
43
  "@azure-tools/codegen": "^2.5.294",
44
44
  "@azure/core-client": "^1.3.0",
@@ -32,6 +32,7 @@ export interface AutorestOptions {
32
32
  headAsBoolean?: boolean;
33
33
  isTestPackage?: boolean;
34
34
  generateTest?: boolean;
35
+ batch?: [string, any][];
35
36
  generateSample?: boolean;
36
37
  }
37
38
 
@@ -12,7 +12,7 @@ export function generateIndexFile(
12
12
  project: Project,
13
13
  clientDetails?: ClientDetails
14
14
  ) {
15
- const { restLevelClient, srcPath } = getAutorestOptions();
15
+ const { restLevelClient, srcPath, batch } = getAutorestOptions();
16
16
  const indexFile = project.createSourceFile(`${srcPath}/index.ts`, undefined, {
17
17
  overwrite: true
18
18
  });
@@ -24,11 +24,79 @@ export function generateIndexFile(
24
24
  );
25
25
  }
26
26
  generateHLCIndex(clientDetails, indexFile);
27
- } else {
27
+ } else if (!batch || batch?.length === 1) {
28
+ // if we are generate single client package for RLC
28
29
  generateRLCIndex(indexFile);
30
+ } else {
31
+ generateRLCIndexForMultiClient(indexFile);
29
32
  }
30
33
  }
31
34
 
35
+ // to generate a index.ts for each single module inside the multi client RLC package
36
+ function generateRLCIndexForMultiClient(file: SourceFile) {
37
+ const { model } = getSession();
38
+ const clientName = model.language.default.name;
39
+ const moduleName = normalizeName(clientName, NameType.File);
40
+
41
+ file.addImportDeclaration({
42
+ namespaceImport: "Parameters",
43
+ moduleSpecifier: "./parameters"
44
+ });
45
+
46
+ file.addImportDeclaration({
47
+ namespaceImport: "Responses",
48
+ moduleSpecifier: "./responses"
49
+ });
50
+
51
+ file.addImportDeclaration({
52
+ namespaceImport: "Client",
53
+ moduleSpecifier: "./clientDefinitions"
54
+ })
55
+
56
+ const exports = ['Parameters', 'Responses', 'Client'];
57
+ if (hasInputModels(model)) {
58
+ file.addImportDeclaration({
59
+ namespaceImport: "Models",
60
+ moduleSpecifier: "./models",
61
+ });
62
+ exports.push("Models");
63
+ }
64
+
65
+ if (hasOutputModels(model)) {
66
+ file.addImportDeclaration({
67
+ namespaceImport: "OutputModels",
68
+ moduleSpecifier: "./outputModels",
69
+ });
70
+ exports.push("OutputModels");
71
+ }
72
+
73
+ if (hasPagingOperations(model)) {
74
+ file.addImportDeclaration({
75
+ namespaceImport: "PaginateHelper",
76
+ moduleSpecifier: './paginateHelper',
77
+ });
78
+ exports.push("PaginateHelper");
79
+ }
80
+
81
+ if (hasPollingOperations(model)) {
82
+ file.addImportDeclaration({
83
+ namespaceImport: 'PollingHelper',
84
+ moduleSpecifier: './pollingHelper',
85
+ })
86
+ exports.push("PollingHelper");
87
+ }
88
+
89
+ file.addExportDeclarations([
90
+ {
91
+ moduleSpecifier: `./${moduleName}`,
92
+ namedExports: [`${clientName} as ${clientName}Client`],
93
+ },
94
+ {
95
+ namedExports: [...exports]
96
+ }
97
+ ]);
98
+ }
99
+
32
100
  function generateRLCIndex(file: SourceFile) {
33
101
  const { model } = getSession();
34
102
  const clientName = model.language.default.name;
@@ -41,13 +109,16 @@ function generateRLCIndex(file: SourceFile) {
41
109
 
42
110
  file.addExportDeclarations([
43
111
  {
44
- moduleSpecifier: `./${moduleName}`
112
+ moduleSpecifier: `./${moduleName}`,
45
113
  },
46
114
  {
47
115
  moduleSpecifier: "./parameters"
48
116
  },
49
117
  {
50
118
  moduleSpecifier: "./responses"
119
+ },
120
+ {
121
+ moduleSpecifier: "./clientDefinitions"
51
122
  }
52
123
  ]);
53
124
 
@@ -82,7 +153,7 @@ function generateRLCIndex(file: SourceFile) {
82
153
  }
83
154
  ]);
84
155
  }
85
-
156
+
86
157
  file.addExportAssignment({
87
158
  expression: clientName,
88
159
  isExportEquals: false
@@ -294,6 +294,12 @@ function regularAutorestPackage(
294
294
  docs: "echo skipped"
295
295
  },
296
296
  sideEffects: false,
297
+ "//metadata":{
298
+ constantPaths: [{
299
+ path: `src/${clientDetails.name}.ts`,
300
+ prefix: "packageDetails",
301
+ }],
302
+ },
297
303
  autoPublish: true
298
304
  };
299
305
  if (generateTest) {
@@ -5,118 +5,40 @@ import {
5
5
  ImplementationLocation
6
6
  } from "@autorest/codemodel";
7
7
 
8
- import { getResponseTypeName } from "./operationHelpers";
9
-
10
8
  import {
11
- CallSignatureDeclarationStructure,
12
9
  Project,
13
- SourceFile,
14
10
  StatementStructures,
15
11
  StructureKind,
16
12
  VariableDeclarationKind,
17
13
  VariableStatementStructure,
18
- WriterFunction,
19
- Writers
14
+ WriterFunction
20
15
  } from "ts-morph";
16
+ import * as path from 'path';
21
17
 
22
18
  import { getAutorestOptions, getSession } from "../autorestSession";
23
19
  import { transformBaseUrl } from "../transforms/urlTransforms";
24
20
  import { NameType, normalizeName } from "../utils/nameUtils";
25
- import { isConstantSchema, getElementType } from "./schemaHelpers";
21
+ import { isConstantSchema } from "./schemaHelpers";
26
22
  import { getLanguageMetadata } from "../utils/languageHelpers";
27
- import {
28
- buildMethodDefinitions,
29
- getOperationParameters,
30
- getPathParamDefinitions
31
- } from "./helpers/operationHelpers";
32
- import {
33
- generateMethodShortcutImplementation,
34
- generateMethodShortcuts
35
- } from "./generateMethodShortcuts";
36
- import { Methods, PathParameter, Paths } from "./interfaces";
23
+ import { generateMethodShortcutImplementation } from "./generateMethodShortcuts";
24
+ import { Paths } from "./interfaces";
25
+ import { pathDictionary } from './generateClientDefinition';
37
26
 
38
- export function generatePathFirstClient(model: CodeModel, project: Project) {
27
+ export function generateClient(model: CodeModel, project: Project) {
39
28
  const name = normalizeName(
40
29
  getLanguageMetadata(model.language).name,
41
30
  NameType.File
42
31
  );
43
- const clientFile = project.createSourceFile(`src/${name}.ts`, undefined, {
32
+ const { srcPath } = getAutorestOptions();
33
+ const clientFile = project.createSourceFile(path.join(srcPath, `${name}.ts`), undefined, {
44
34
  overwrite: true
45
35
  });
46
36
 
47
37
  // Get all paths
48
- const importedParameters = new Set<string>();
49
- const importedResponses = new Set<string>();
50
- const pathDictionary: Paths = {};
51
- for (const operationGroup of model.operationGroups) {
52
- for (const operation of operationGroup.operations) {
53
- const operationName = getLanguageMetadata(operation.language).name;
54
- const operationDescription = getLanguageMetadata(operation.language)
55
- .description;
56
- const pathParameters: PathParameter[] =
57
- operation.parameters
58
- ?.filter(p => p.protocol.http?.in === ParameterLocation.Path)
59
- .map(p => {
60
- const languageMetadata = getLanguageMetadata(p.language);
61
- return {
62
- name: languageMetadata.serializedName || languageMetadata.name,
63
- schema: p.schema,
64
- description: languageMetadata.description
65
- };
66
- }) || [];
67
- const path: string = operation.requests?.[0].protocol.http?.path;
68
- pathParameters.sort(function compare(a: PathParameter, b: PathParameter) {
69
- return path.indexOf(a.name) - path.indexOf(b.name);
70
- });
71
-
72
- for (const request of operation.requests || []) {
73
- const path: string = (request.protocol.http?.path as string) || "";
74
- const method = request.protocol.http?.method;
75
-
76
- if (path && method) {
77
- if (!pathDictionary[path]) {
78
- pathDictionary[path] = {
79
- pathParameters,
80
- methods: {},
81
- name: operationName
82
- };
83
- }
84
- const hasOptionalOptions = !hasRequiredOptions(operation);
85
-
86
- const newMethod = {
87
- description: operationDescription,
88
- optionsName: getOperationOptionsType(operation, importedParameters),
89
- hasOptionalOptions,
90
- returnType: `Promise<${getOperationReturnType(
91
- operation,
92
- importedResponses
93
- )}>`
94
- };
95
-
96
- if (pathDictionary[path].methods[`${method}`]) {
97
- pathDictionary[path].methods[`${method}`].push(newMethod);
98
- } else {
99
- pathDictionary[path].methods[`${method}`] = [newMethod];
100
- }
101
- }
102
- }
103
- }
104
- }
105
-
106
- writeShortcutInterface(model, pathDictionary, clientFile);
107
- clientFile.addInterface({
108
- name: "Routes",
109
- isExported: true,
110
- callSignatures: getPathFirstRoutesInterfaceDefinition(
111
- pathDictionary,
112
- clientFile
113
- )
114
- });
115
-
116
38
  const clientName = getLanguageMetadata(model.language).name;
117
39
  const uriParameter = getClientUriParameter();
118
40
 
119
- const { addCredentials, credentialKeyHeaderName } = getAutorestOptions();
41
+ const { addCredentials, credentialKeyHeaderName, batch } = getAutorestOptions();
120
42
  const credentialTypes = addCredentials ? ["TokenCredential"] : [];
121
43
 
122
44
  if (credentialKeyHeaderName) {
@@ -129,76 +51,28 @@ export function generatePathFirstClient(model: CodeModel, project: Project) {
129
51
  ? []
130
52
  : [{ name: "credentials", type: credentialTypes.join(" | ") }])
131
53
  ];
132
- const clientIterfaceName = `${clientName}RestClient`;
54
+ const clientInterfaceName = `${clientName}RestClient`;
133
55
 
134
- const { rlcShortcut } = getAutorestOptions();
135
-
136
- let shortcutElements = !rlcShortcut
137
- ? []
138
- : model.operationGroups.map(og => {
139
- const groupName = og.language.default.name;
140
- const name = normalizeName(groupName, NameType.Property);
141
- const interfaceName = normalizeName(
142
- `${name}Operations`,
143
- NameType.Interface
144
- );
145
- return { name, type: interfaceName };
146
- });
147
-
148
- // There may be operations without an operation group, those shortcut
149
- // methods need to be handled differently.
150
- const shortcutsInOperationGroup = shortcutElements.filter(s => s.name);
151
-
152
- clientFile.addTypeAlias({
153
- isExported: true,
154
- name: clientIterfaceName,
155
- type: Writers.intersectionType(
156
- "Client",
157
- Writers.objectType({
158
- properties: [
159
- { name: "path", type: "Routes" },
160
- ...shortcutsInOperationGroup
161
- ]
162
- }),
163
- // If the length of shortcutMethods in operation group and all shortcutMethods
164
- // is the same, then we don't have any operations at the client level
165
- // Otherwise we need to make the client interface name an union with the
166
- // definition of all client level shortcut methods
167
- ...(shortcutsInOperationGroup.length !== shortcutElements.length
168
- ? [`ClientOperations`]
169
- : [])
170
- )
171
- });
172
-
173
- clientFile.addFunction({
56
+ const functionStatement = {
174
57
  isExported: true,
175
- name: clientName,
58
+ name: `${clientName}`,
176
59
  parameters: [
177
60
  ...commonClientParams,
178
61
  { name: "options", type: "ClientOptions = {}" }
179
62
  ],
180
- returnType: clientIterfaceName,
181
- isDefaultExport: true,
182
- statements: getClientFactoryBody(clientIterfaceName, pathDictionary)
183
- });
184
-
185
- if (importedParameters.size) {
186
- clientFile.addImportDeclaration({
187
- namedImports: [...importedParameters],
188
- moduleSpecifier: "./parameters"
189
- });
63
+ returnType: clientInterfaceName,
64
+ isDefaultExport: false,
65
+ statements: getClientFactoryBody(clientInterfaceName, pathDictionary)
190
66
  }
191
67
 
192
- if (importedResponses.size) {
193
- clientFile.addImportDeclaration({
194
- namedImports: [...importedResponses],
195
- moduleSpecifier: "./responses"
196
- });
68
+ if (!batch || batch.length === 1) {
69
+ functionStatement.isDefaultExport = true;
197
70
  }
71
+ clientFile.addFunction(functionStatement);
198
72
 
199
73
  clientFile.addImportDeclarations([
200
74
  {
201
- namedImports: ["getClient", "ClientOptions", "Client"],
75
+ namedImports: ["getClient", "ClientOptions"],
202
76
  moduleSpecifier: "@azure-rest/core-client"
203
77
  }
204
78
  ]);
@@ -207,65 +81,14 @@ export function generatePathFirstClient(model: CodeModel, project: Project) {
207
81
  {
208
82
  namedImports: credentialTypes,
209
83
  moduleSpecifier: "@azure/core-auth"
84
+ },
85
+ {
86
+ namedImports: [`${clientName}RestClient`],
87
+ moduleSpecifier: './clientDefinitions'
210
88
  }
211
89
  ]);
212
90
  }
213
91
 
214
- function writeShortcutInterface(
215
- model: CodeModel,
216
- pathDictionary: Paths,
217
- clientFile: SourceFile
218
- ) {
219
- const { rlcShortcut } = getAutorestOptions();
220
- if (!rlcShortcut) {
221
- return;
222
- }
223
-
224
- // Create a map of Operation group descriptions
225
- const descriptions = model.operationGroups.reduce((map, current) => {
226
- const { name, description } = current.language.default;
227
- map.set(name, description);
228
-
229
- return map;
230
- }, new Map<string, string>());
231
-
232
- const shortcuts = generateMethodShortcuts(model, pathDictionary);
233
-
234
- for (const group of Object.keys(shortcuts)) {
235
- const groupName = normalizeName(group, NameType.Interface) || "Client";
236
- const groupOperations = shortcuts[group];
237
-
238
- clientFile.addInterface({
239
- docs: [
240
- descriptions.get(group) ||
241
- `Contains operations for ${groupName} operations`
242
- ],
243
- name: `${groupName}Operations`,
244
- isExported: true,
245
- methods: groupOperations
246
- });
247
- }
248
- }
249
-
250
- function hasRequiredOptions(operation: Operation) {
251
- return getOperationParameters(operation)
252
- .filter(p => p.implementation === ImplementationLocation.Method)
253
- .filter(p => ["query", "body", "headers"].includes(p.protocol.http?.in))
254
- .some(p => p.required);
255
- }
256
-
257
- function getOperationOptionsType(
258
- operation: Operation,
259
- importedParameters = new Set<string>()
260
- ) {
261
- const paramsName = `${
262
- getLanguageMetadata(operation.language).name
263
- }Parameters`;
264
- importedParameters.add(paramsName);
265
-
266
- return paramsName;
267
- }
268
-
269
92
  function getClientFactoryBody(
270
93
  clientTypeName: string,
271
94
  paths: Paths
@@ -375,82 +198,8 @@ function getApiVersion(): string | undefined {
375
198
  return undefined;
376
199
  }
377
200
 
378
- function getOperationReturnType(
379
- operation: Operation,
380
- importedResponses = new Set<string>()
381
- ) {
382
- let returnType: string = "HttpResponse";
383
- if (operation.responses && operation.responses.length) {
384
- const responses = [...operation.responses, ...(operation.exceptions || [])];
385
-
386
- const responseTypes = responses
387
- .filter(
388
- r => r.protocol.http?.statusCodes && r.protocol.http?.statusCodes.length
389
- )
390
- .map(r => {
391
- const responseName = getResponseTypeName(operation, r);
392
- importedResponses.add(responseName);
393
- return responseName;
394
- });
395
-
396
- if (responseTypes.length) {
397
- returnType = responseTypes.join(" | ");
398
- }
399
- }
400
-
401
- return returnType;
402
- }
403
-
404
- function getPathFirstRoutesInterfaceDefinition(
405
- paths: Paths,
406
- sourcefile: SourceFile
407
- ): CallSignatureDeclarationStructure[] {
408
- const signatures: CallSignatureDeclarationStructure[] = [];
409
- for (const key of Object.keys(paths)) {
410
- generatePathFirstRouteMethodsDefinition(
411
- paths[key].name,
412
- paths[key].methods,
413
- sourcefile
414
- );
415
- const pathParams = paths[key].pathParameters;
416
- signatures.push({
417
- docs: [
418
- `Resource for '${key
419
- .replace(/}/g, "\\}")
420
- .replace(
421
- /{/g,
422
- "\\{"
423
- )}' has methods for the following verbs: ${Object.keys(
424
- paths[key].methods
425
- ).join(", ")}`
426
- ],
427
- parameters: [
428
- { name: "path", type: `"${key}"` },
429
- ...getPathParamDefinitions(pathParams)
430
- ],
431
- returnType: paths[key].name,
432
- kind: StructureKind.CallSignature
433
- });
434
- }
435
- return signatures;
436
- }
437
-
438
201
  function getClientUriParameter() {
439
202
  const { model } = getSession();
440
203
  const { parameterName } = transformBaseUrl(model);
441
204
  return parameterName;
442
- }
443
-
444
- function generatePathFirstRouteMethodsDefinition(
445
- operationName: string,
446
- methods: Methods,
447
- file: SourceFile
448
- ): void {
449
- const methodDefinitions = buildMethodDefinitions(methods);
450
-
451
- file.addInterface({
452
- methods: methodDefinitions,
453
- name: operationName,
454
- isExported: true
455
- });
456
- }
205
+ }