@autorest/typescript 6.0.0-beta.15 → 6.0.0-beta.16
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/CHANGELOG.md +5 -0
- package/README.md +37 -3
- package/dist/src/autorestSession.d.ts +8 -3
- package/dist/src/autorestSession.d.ts.map +1 -1
- package/dist/src/autorestSession.js +3 -9
- package/dist/src/autorestSession.js.map +1 -1
- package/dist/src/conflictResolver.d.ts.map +1 -1
- package/dist/src/conflictResolver.js.map +1 -1
- package/dist/src/generators/clientFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/clientFileGenerator.js +181 -31
- package/dist/src/generators/clientFileGenerator.js.map +1 -1
- package/dist/src/generators/indexGenerator.d.ts.map +1 -1
- package/dist/src/generators/indexGenerator.js +70 -9
- package/dist/src/generators/indexGenerator.js.map +1 -1
- package/dist/src/generators/modelsGenerator.d.ts.map +1 -1
- package/dist/src/generators/modelsGenerator.js +20 -2
- package/dist/src/generators/modelsGenerator.js.map +1 -1
- package/dist/src/generators/operationGenerator.js +6 -6
- package/dist/src/generators/operationGenerator.js.map +1 -1
- package/dist/src/generators/samples/sampleEnv.hbs +4 -0
- package/dist/src/generators/samples/sampleEnvGenerator.d.ts +3 -0
- package/dist/src/generators/samples/sampleEnvGenerator.d.ts.map +1 -0
- package/dist/src/generators/samples/sampleEnvGenerator.js +17 -0
- package/dist/src/generators/samples/sampleEnvGenerator.js.map +1 -0
- package/dist/src/generators/samples/sampleGenerator.d.ts +13 -0
- package/dist/src/generators/samples/sampleGenerator.d.ts.map +1 -0
- package/dist/src/generators/samples/sampleGenerator.js +43 -0
- package/dist/src/generators/samples/sampleGenerator.js.map +1 -0
- package/dist/src/generators/static/README.md.hbs +19 -0
- package/dist/src/generators/static/karma.conf.js.hbs +141 -0
- package/dist/src/generators/static/karmaConfigFileGenerator.d.ts +3 -0
- package/dist/src/generators/static/karmaConfigFileGenerator.d.ts.map +1 -0
- package/dist/src/generators/static/karmaConfigFileGenerator.js +23 -0
- package/dist/src/generators/static/karmaConfigFileGenerator.js.map +1 -0
- package/dist/src/generators/static/packageFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/static/packageFileGenerator.js +90 -14
- package/dist/src/generators/static/packageFileGenerator.js.map +1 -1
- package/dist/src/generators/static/rollupConfigFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/static/rollupConfigFileGenerator.js +7 -70
- package/dist/src/generators/static/rollupConfigFileGenerator.js.map +1 -1
- package/dist/src/generators/static/samples.ts.hbs +49 -0
- package/dist/src/generators/static/tsConfigFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/static/tsConfigFileGenerator.js +9 -10
- package/dist/src/generators/static/tsConfigFileGenerator.js.map +1 -1
- package/dist/src/generators/test/envBrowserFileGenerator.d.ts +3 -0
- package/dist/src/generators/test/envBrowserFileGenerator.d.ts.map +1 -0
- package/dist/src/generators/test/envBrowserFileGenerator.js +15 -0
- package/dist/src/generators/test/envBrowserFileGenerator.js.map +1 -0
- package/dist/src/generators/test/envFileGenerator.d.ts +3 -0
- package/dist/src/generators/test/envFileGenerator.d.ts.map +1 -0
- package/dist/src/generators/test/envFileGenerator.js +23 -0
- package/dist/src/generators/test/envFileGenerator.js.map +1 -0
- package/dist/src/generators/test/recordedClientFileGenerator.d.ts +3 -0
- package/dist/src/generators/test/recordedClientFileGenerator.d.ts.map +1 -0
- package/dist/src/generators/test/recordedClientFileGenerator.js +23 -0
- package/dist/src/generators/test/recordedClientFileGenerator.js.map +1 -0
- package/dist/src/generators/test/rlcEnv.ts.hbs +3 -0
- package/dist/src/generators/test/rlcRecordedClient.ts.hbs +35 -0
- package/dist/src/generators/test/rlcSampleTest.spec.ts.hbs +19 -0
- package/dist/src/generators/{static → test}/sampleTest.ts.hbs +0 -0
- package/dist/src/generators/test/sampleTestGenerator.d.ts.map +1 -1
- package/dist/src/generators/test/sampleTestGenerator.js +23 -7
- package/dist/src/generators/test/sampleTestGenerator.js.map +1 -1
- package/dist/src/generators/utils/pagingOperations.d.ts +5 -0
- package/dist/src/generators/utils/pagingOperations.d.ts.map +1 -1
- package/dist/src/generators/utils/pagingOperations.js +2 -1
- package/dist/src/generators/utils/pagingOperations.js.map +1 -1
- package/dist/src/main.d.ts +2 -2
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +3 -3
- package/dist/src/main.js.map +1 -1
- package/dist/src/models/clientDetails.d.ts +3 -0
- package/dist/src/models/clientDetails.d.ts.map +1 -1
- package/dist/src/models/modelDetails.d.ts +2 -2
- package/dist/src/models/modelDetails.d.ts.map +1 -1
- package/dist/src/models/operationDetails.d.ts +1 -0
- package/dist/src/models/operationDetails.d.ts.map +1 -1
- package/dist/src/models/sampleDetails.d.ts +22 -0
- package/dist/src/models/sampleDetails.d.ts.map +1 -0
- package/dist/src/models/sampleDetails.js +3 -0
- package/dist/src/models/sampleDetails.js.map +1 -0
- package/dist/src/restLevelClient/generateClient.d.ts +1 -1
- package/dist/src/restLevelClient/generateClient.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateClient.js +48 -164
- package/dist/src/restLevelClient/generateClient.js.map +1 -1
- package/dist/src/restLevelClient/generateClientDefinition.d.ts +6 -0
- package/dist/src/restLevelClient/generateClientDefinition.d.ts.map +1 -0
- package/dist/src/restLevelClient/generateClientDefinition.js +231 -0
- package/dist/src/restLevelClient/generateClientDefinition.js.map +1 -0
- package/dist/src/restLevelClient/generateMethodShortcuts.d.ts +8 -0
- package/dist/src/restLevelClient/generateMethodShortcuts.d.ts.map +1 -0
- package/dist/src/restLevelClient/generateMethodShortcuts.js +70 -0
- package/dist/src/restLevelClient/generateMethodShortcuts.js.map +1 -0
- package/dist/src/restLevelClient/generateObjectTypes.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateObjectTypes.js.map +1 -1
- package/dist/src/restLevelClient/generatePagingHelper.d.ts.map +1 -1
- package/dist/src/restLevelClient/generatePagingHelper.js +2 -1
- package/dist/src/restLevelClient/generatePagingHelper.js.map +1 -1
- package/dist/src/restLevelClient/generateParameterTypes.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateParameterTypes.js +104 -18
- package/dist/src/restLevelClient/generateParameterTypes.js.map +1 -1
- package/dist/src/restLevelClient/generatePollingHelper.d.ts.map +1 -1
- package/dist/src/restLevelClient/generatePollingHelper.js +3 -1
- package/dist/src/restLevelClient/generatePollingHelper.js.map +1 -1
- package/dist/src/restLevelClient/generateResponseTypes.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateResponseTypes.js +4 -1
- package/dist/src/restLevelClient/generateResponseTypes.js.map +1 -1
- package/dist/src/restLevelClient/generateRestLevel.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateRestLevel.js +19 -3
- package/dist/src/restLevelClient/generateRestLevel.js.map +1 -1
- package/dist/src/restLevelClient/generateSchemaTypes.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateSchemaTypes.js +5 -2
- package/dist/src/restLevelClient/generateSchemaTypes.js.map +1 -1
- package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts +4 -0
- package/dist/src/restLevelClient/generateTopLevelIndexFile.d.ts.map +1 -0
- package/dist/src/restLevelClient/generateTopLevelIndexFile.js +41 -0
- package/dist/src/restLevelClient/generateTopLevelIndexFile.js.map +1 -0
- package/dist/src/restLevelClient/helpers/operationHelpers.d.ts +10 -0
- package/dist/src/restLevelClient/helpers/operationHelpers.d.ts.map +1 -0
- package/dist/src/restLevelClient/helpers/operationHelpers.js +64 -0
- package/dist/src/restLevelClient/helpers/operationHelpers.js.map +1 -0
- package/dist/src/restLevelClient/interfaces.d.ts +24 -0
- package/dist/src/restLevelClient/interfaces.d.ts.map +1 -0
- package/dist/src/restLevelClient/interfaces.js +3 -0
- package/dist/src/restLevelClient/interfaces.js.map +1 -0
- package/dist/src/restLevelClient/operationHelpers.d.ts.map +1 -1
- package/dist/src/restLevelClient/operationHelpers.js +4 -1
- package/dist/src/restLevelClient/operationHelpers.js.map +1 -1
- package/dist/src/restLevelClient/schemaHelpers.d.ts.map +1 -1
- package/dist/src/restLevelClient/schemaHelpers.js +4 -1
- package/dist/src/restLevelClient/schemaHelpers.js.map +1 -1
- package/dist/src/transforms/operationTransforms.d.ts.map +1 -1
- package/dist/src/transforms/operationTransforms.js +1 -0
- package/dist/src/transforms/operationTransforms.js.map +1 -1
- package/dist/src/transforms/samplesTransforms.d.ts +7 -0
- package/dist/src/transforms/samplesTransforms.d.ts.map +1 -0
- package/dist/src/transforms/samplesTransforms.js +283 -0
- package/dist/src/transforms/samplesTransforms.js.map +1 -0
- package/dist/src/transforms/transforms.d.ts +1 -2
- package/dist/src/transforms/transforms.d.ts.map +1 -1
- package/dist/src/transforms/transforms.js +4 -3
- package/dist/src/transforms/transforms.js.map +1 -1
- package/dist/src/typescriptGenerator.d.ts +2 -2
- package/dist/src/typescriptGenerator.d.ts.map +1 -1
- package/dist/src/typescriptGenerator.js +18 -7
- package/dist/src/typescriptGenerator.js.map +1 -1
- package/dist/src/utils/autorestOptions.d.ts +2 -2
- package/dist/src/utils/autorestOptions.d.ts.map +1 -1
- package/dist/src/utils/autorestOptions.js +70 -30
- package/dist/src/utils/autorestOptions.js.map +1 -1
- package/dist/src/utils/nameUtils.d.ts +6 -2
- package/dist/src/utils/nameUtils.d.ts.map +1 -1
- package/dist/src/utils/nameUtils.js +9 -5
- package/dist/src/utils/nameUtils.js.map +1 -1
- package/dist/src/utils/schemaHelpers.js +8 -3
- package/dist/src/utils/schemaHelpers.js.map +1 -1
- package/package.json +11 -5
- package/src/autorestSession.ts +16 -15
- package/src/conflictResolver.ts +0 -1
- package/src/generators/clientFileGenerator.ts +262 -33
- package/src/generators/indexGenerator.ts +78 -9
- package/src/generators/modelsGenerator.ts +21 -1
- package/src/generators/operationGenerator.ts +7 -7
- package/src/generators/samples/sampleEnv.hbs +4 -0
- package/src/generators/samples/sampleEnvGenerator.ts +14 -0
- package/src/generators/samples/sampleGenerator.ts +50 -0
- package/src/generators/static/README.md.hbs +19 -0
- package/src/generators/static/karma.conf.js.hbs +141 -0
- package/src/generators/static/karmaConfigFileGenerator.ts +20 -0
- package/src/generators/static/packageFileGenerator.ts +99 -14
- package/src/generators/static/rollupConfigFileGenerator.ts +7 -70
- package/src/generators/static/samples.ts.hbs +49 -0
- package/src/generators/static/tsConfigFileGenerator.ts +12 -12
- package/src/generators/test/envBrowserFileGenerator.ts +14 -0
- package/src/generators/test/envFileGenerator.ts +22 -0
- package/src/generators/test/recordedClientFileGenerator.ts +22 -0
- package/src/generators/test/rlcEnv.ts.hbs +3 -0
- package/src/generators/test/rlcRecordedClient.ts.hbs +35 -0
- package/src/generators/test/rlcSampleTest.spec.ts.hbs +19 -0
- package/src/generators/{static → test}/sampleTest.ts.hbs +0 -0
- package/src/generators/test/sampleTestGenerator.ts +23 -8
- package/src/generators/utils/pagingOperations.ts +1 -1
- package/src/main.ts +9 -5
- package/src/models/clientDetails.ts +3 -0
- package/src/models/modelDetails.ts +2 -2
- package/src/models/operationDetails.ts +1 -0
- package/src/models/sampleDetails.ts +22 -0
- package/src/restLevelClient/generateClient.ts +57 -253
- package/src/restLevelClient/generateClientDefinition.ts +343 -0
- package/src/restLevelClient/generateMethodShortcuts.ts +121 -0
- package/src/restLevelClient/generateObjectTypes.ts +1 -3
- package/src/restLevelClient/generatePagingHelper.ts +3 -2
- package/src/restLevelClient/generateParameterTypes.ts +155 -25
- package/src/restLevelClient/generatePollingHelper.ts +3 -3
- package/src/restLevelClient/generateResponseTypes.ts +4 -1
- package/src/restLevelClient/generateRestLevel.ts +24 -6
- package/src/restLevelClient/generateSchemaTypes.ts +5 -3
- package/src/restLevelClient/generateTopLevelIndexFile.ts +41 -0
- package/src/restLevelClient/helpers/operationHelpers.ts +93 -0
- package/src/restLevelClient/interfaces.ts +26 -0
- package/src/restLevelClient/operationHelpers.ts +8 -2
- package/src/restLevelClient/schemaHelpers.ts +4 -2
- package/src/transforms/operationTransforms.ts +1 -0
- package/src/transforms/samplesTransforms.ts +300 -0
- package/src/transforms/transforms.ts +6 -6
- package/src/typescriptGenerator.ts +19 -10
- package/src/utils/autorestOptions.ts +121 -58
- package/src/utils/nameUtils.ts +16 -8
- package/src/utils/schemaHelpers.ts +2 -2
- package/dist/src/generators/clientContextFileGenerator.d.ts +0 -5
- package/dist/src/generators/clientContextFileGenerator.d.ts.map +0 -1
- package/dist/src/generators/clientContextFileGenerator.js +0 -263
- package/dist/src/generators/clientContextFileGenerator.js.map +0 -1
- package/dist/src/restLevelClient/helpers/getOperationParameters.d.ts +0 -6
- package/dist/src/restLevelClient/helpers/getOperationParameters.d.ts.map +0 -1
- package/dist/src/restLevelClient/helpers/getOperationParameters.js +0 -29
- package/dist/src/restLevelClient/helpers/getOperationParameters.js.map +0 -1
- package/src/generators/clientContextFileGenerator.ts +0 -405
- package/src/restLevelClient/helpers/getOperationParameters.ts +0 -37
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Channel,
|
|
1
|
+
import { Channel, AutorestExtensionHost } from "@autorest/extension-base";
|
|
2
2
|
import { AutorestOptions, getHost, getSession } from "../autorestSession";
|
|
3
3
|
import { TracingInfo } from "../models/clientDetails";
|
|
4
4
|
import { PackageDetails } from "../models/packageDetails";
|
|
@@ -11,6 +11,7 @@ export async function extractAutorestOptions(): Promise<AutorestOptions> {
|
|
|
11
11
|
const host = getHost();
|
|
12
12
|
const useCoreV2 = await getUseCoreV2(host);
|
|
13
13
|
const restLevelClient = await getRestLevelClient(host);
|
|
14
|
+
const rlcShortcut = await getHasShortcutMethods(host);
|
|
14
15
|
const azureArm = await getIsAzureArm(host);
|
|
15
16
|
const addCredentials = await getAddCredentials(host);
|
|
16
17
|
const credentialKeyHeaderName = await getKeyCredentialHeaderName(host);
|
|
@@ -31,7 +32,11 @@ export async function extractAutorestOptions(): Promise<AutorestOptions> {
|
|
|
31
32
|
const azureOutputDirectory = await getAzureOutputDirectoryPath(host);
|
|
32
33
|
const headAsBoolean = await getHeadAsBoolean(host);
|
|
33
34
|
const isTestPackage = await getIsTestPackage(host);
|
|
34
|
-
const generateTest = await getGenerateTest(host)
|
|
35
|
+
const generateTest = await getGenerateTest(host);
|
|
36
|
+
const batch = await getBatch(host);
|
|
37
|
+
const multiClient = await getMultiClient(host);
|
|
38
|
+
const generateSample = await getGenerateSample(host);
|
|
39
|
+
const coreHttpCompatMode = await getCoreHttpCompatMode(host);
|
|
35
40
|
|
|
36
41
|
return {
|
|
37
42
|
azureArm,
|
|
@@ -39,6 +44,7 @@ export async function extractAutorestOptions(): Promise<AutorestOptions> {
|
|
|
39
44
|
credentialKeyHeaderName,
|
|
40
45
|
credentialScopes,
|
|
41
46
|
restLevelClient,
|
|
47
|
+
rlcShortcut,
|
|
42
48
|
srcPath,
|
|
43
49
|
outputPath,
|
|
44
50
|
packageDetails,
|
|
@@ -56,77 +62,110 @@ export async function extractAutorestOptions(): Promise<AutorestOptions> {
|
|
|
56
62
|
headAsBoolean,
|
|
57
63
|
isTestPackage,
|
|
58
64
|
generateTest,
|
|
65
|
+
batch,
|
|
66
|
+
multiClient,
|
|
67
|
+
generateSample,
|
|
68
|
+
coreHttpCompatMode
|
|
59
69
|
};
|
|
60
70
|
}
|
|
61
71
|
|
|
62
|
-
async function
|
|
63
|
-
|
|
72
|
+
async function getHasShortcutMethods(
|
|
73
|
+
host: AutorestExtensionHost
|
|
74
|
+
): Promise<boolean> {
|
|
75
|
+
const headAsBoolean = await host.getValue("rlc-shortcut");
|
|
64
76
|
|
|
65
77
|
return Boolean(headAsBoolean);
|
|
66
78
|
}
|
|
67
79
|
|
|
68
|
-
async function
|
|
69
|
-
const
|
|
80
|
+
async function getHeadAsBoolean(host: AutorestExtensionHost): Promise<boolean> {
|
|
81
|
+
const headAsBoolean = await host.getValue("head-as-boolean");
|
|
82
|
+
|
|
83
|
+
return Boolean(headAsBoolean);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
async function getIsTestPackage(host: AutorestExtensionHost): Promise<boolean> {
|
|
87
|
+
const isTestPackage = await host.getValue("is-test-package");
|
|
70
88
|
return isTestPackage === null ? false : Boolean(isTestPackage);
|
|
71
89
|
}
|
|
72
90
|
|
|
73
|
-
async function getGenerateTest(host:
|
|
74
|
-
const generateTest
|
|
91
|
+
async function getGenerateTest(host: AutorestExtensionHost): Promise<boolean> {
|
|
92
|
+
const generateTest = await host.getValue("generate-test");
|
|
75
93
|
return generateTest === null ? false : Boolean(generateTest);
|
|
76
94
|
}
|
|
77
95
|
|
|
78
|
-
async function
|
|
79
|
-
|
|
96
|
+
async function getGenerateSample(
|
|
97
|
+
host: AutorestExtensionHost
|
|
98
|
+
): Promise<boolean> {
|
|
99
|
+
const generateSample = await host.getValue("generate-sample");
|
|
100
|
+
return generateSample === null ? false : Boolean(generateSample);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async function getSkipEnumValidation(
|
|
104
|
+
host: AutorestExtensionHost
|
|
105
|
+
): Promise<boolean> {
|
|
106
|
+
const skipEnumValidation = await host.getValue("skip-enum-validation");
|
|
80
107
|
|
|
81
108
|
return skipEnumValidation === true;
|
|
82
109
|
}
|
|
83
110
|
|
|
84
|
-
async function getAllowInsecureConnection(
|
|
85
|
-
|
|
111
|
+
async function getAllowInsecureConnection(
|
|
112
|
+
host: AutorestExtensionHost
|
|
113
|
+
): Promise<boolean> {
|
|
114
|
+
return (await host.getValue("allow-insecure-connection")) || false;
|
|
86
115
|
}
|
|
87
116
|
|
|
88
|
-
async function getIgnoreNullableOnOptional(
|
|
117
|
+
async function getIgnoreNullableOnOptional(
|
|
118
|
+
host: AutorestExtensionHost
|
|
119
|
+
): Promise<boolean> {
|
|
89
120
|
const isAzureArm = await getIsAzureArm(host);
|
|
90
|
-
return (await host.
|
|
121
|
+
return (await host.getValue("ignore-nullable-on-optional"))
|
|
91
122
|
? true
|
|
92
123
|
: isAzureArm;
|
|
93
124
|
}
|
|
94
125
|
|
|
95
|
-
async function getDisableAsyncOperators(
|
|
96
|
-
|
|
126
|
+
async function getDisableAsyncOperators(
|
|
127
|
+
host: AutorestExtensionHost
|
|
128
|
+
): Promise<boolean> {
|
|
129
|
+
return (await host.getValue("disable-async-iterators")) === true;
|
|
97
130
|
}
|
|
98
131
|
|
|
99
|
-
async function getHideClients(host:
|
|
100
|
-
return (await host.
|
|
132
|
+
async function getHideClients(host: AutorestExtensionHost): Promise<boolean> {
|
|
133
|
+
return (await host.getValue("hide-clients")) || false;
|
|
101
134
|
}
|
|
102
|
-
async function getGenerateMetadata(host:
|
|
103
|
-
return (await host.
|
|
135
|
+
async function getGenerateMetadata(host: AutorestExtensionHost) {
|
|
136
|
+
return (await host.getValue("generate-metadata")) !== false;
|
|
104
137
|
}
|
|
105
138
|
|
|
106
|
-
async function getLicenseHeader(host:
|
|
107
|
-
return (await host.
|
|
139
|
+
async function getLicenseHeader(host: AutorestExtensionHost): Promise<boolean> {
|
|
140
|
+
return (await host.getValue("license-header")) || false;
|
|
108
141
|
}
|
|
109
142
|
|
|
110
|
-
async function getTitle(
|
|
111
|
-
|
|
143
|
+
async function getTitle(
|
|
144
|
+
host: AutorestExtensionHost
|
|
145
|
+
): Promise<string | undefined> {
|
|
146
|
+
return (await host.getValue("title")) || undefined;
|
|
112
147
|
}
|
|
113
148
|
|
|
114
|
-
async function getSrcPath(host:
|
|
115
|
-
return ((await host.
|
|
149
|
+
async function getSrcPath(host: AutorestExtensionHost): Promise<string> {
|
|
150
|
+
return ((await host.getValue("source-code-folder-path")) as string) || "src";
|
|
116
151
|
}
|
|
117
152
|
|
|
118
|
-
async function getOutputPath(
|
|
119
|
-
|
|
153
|
+
async function getOutputPath(
|
|
154
|
+
host: AutorestExtensionHost
|
|
155
|
+
): Promise<string | undefined> {
|
|
156
|
+
return (await host.getValue("output-folder")) || undefined;
|
|
120
157
|
}
|
|
121
158
|
|
|
122
159
|
async function getKeyCredentialHeaderName(
|
|
123
|
-
host:
|
|
160
|
+
host: AutorestExtensionHost
|
|
124
161
|
): Promise<string | undefined> {
|
|
125
|
-
return (await host.
|
|
162
|
+
return (await host.getValue("credential-key-header-name")) || undefined;
|
|
126
163
|
}
|
|
127
164
|
|
|
128
|
-
async function getAddCredentials(
|
|
129
|
-
|
|
165
|
+
async function getAddCredentials(
|
|
166
|
+
host: AutorestExtensionHost
|
|
167
|
+
): Promise<boolean> {
|
|
168
|
+
const addCredentials = await host.getValue("add-credentials");
|
|
130
169
|
|
|
131
170
|
// Only set addCredentials to false if explicitly set to false
|
|
132
171
|
// otherwise default to true
|
|
@@ -136,34 +175,38 @@ async function getAddCredentials(host: Host): Promise<boolean> {
|
|
|
136
175
|
return true;
|
|
137
176
|
}
|
|
138
177
|
}
|
|
139
|
-
async function getIsAzureArm(host:
|
|
140
|
-
const flag = (await host.
|
|
141
|
-
const openapi = (await host.
|
|
178
|
+
async function getIsAzureArm(host: AutorestExtensionHost): Promise<boolean> {
|
|
179
|
+
const flag = (await host.getValue("azure-arm")) === true;
|
|
180
|
+
const openapi = (await host.getValue("openapi-type")) === "arm";
|
|
142
181
|
|
|
143
182
|
return flag || openapi;
|
|
144
183
|
}
|
|
145
184
|
|
|
146
|
-
async function getRestLevelClient(
|
|
147
|
-
|
|
185
|
+
async function getRestLevelClient(
|
|
186
|
+
host: AutorestExtensionHost
|
|
187
|
+
): Promise<boolean> {
|
|
188
|
+
return (await host.getValue("rest-level-client")) === true;
|
|
148
189
|
}
|
|
149
190
|
|
|
150
|
-
async function getUseCoreV2(host:
|
|
151
|
-
const useCoreV2Option
|
|
191
|
+
async function getUseCoreV2(host: AutorestExtensionHost): Promise<boolean> {
|
|
192
|
+
const useCoreV2Option = await host.getValue("use-core-v2");
|
|
152
193
|
return useCoreV2Option === null ? true : Boolean(useCoreV2Option);
|
|
153
194
|
}
|
|
154
195
|
|
|
155
|
-
async function getTracingInfo(
|
|
196
|
+
async function getTracingInfo(
|
|
197
|
+
host: AutorestExtensionHost
|
|
198
|
+
): Promise<TracingInfo | undefined> {
|
|
156
199
|
const tracing: TracingInfo | undefined =
|
|
157
|
-
(await host.
|
|
200
|
+
(await host.getValue("tracing-info")) || undefined;
|
|
158
201
|
|
|
159
202
|
if (tracing && tracing.namespace && tracing.packagePrefix) {
|
|
160
203
|
return tracing;
|
|
161
204
|
}
|
|
162
205
|
|
|
163
|
-
const namespace =
|
|
164
|
-
(await host.
|
|
165
|
-
const packagePrefix =
|
|
166
|
-
(await host.
|
|
206
|
+
const namespace: string | undefined =
|
|
207
|
+
(await host.getValue<string>("tracing-info.namespace")) || undefined;
|
|
208
|
+
const packagePrefix: string | undefined =
|
|
209
|
+
(await host.getValue("tracing-info.packagePrefix")) || undefined;
|
|
167
210
|
|
|
168
211
|
if (packagePrefix && namespace) {
|
|
169
212
|
return {
|
|
@@ -181,13 +224,17 @@ async function getTracingInfo(host: Host): Promise<TracingInfo | undefined> {
|
|
|
181
224
|
);
|
|
182
225
|
}
|
|
183
226
|
|
|
184
|
-
async function getPackageDetails(
|
|
227
|
+
async function getPackageDetails(
|
|
228
|
+
host: AutorestExtensionHost
|
|
229
|
+
): Promise<PackageDetails> {
|
|
185
230
|
const { model } = getSession();
|
|
186
231
|
const name = normalizeName(model.language.default.name, NameType.File);
|
|
187
232
|
// TODO: Look for an existing package.json and
|
|
188
|
-
const packageName = (await host.
|
|
189
|
-
const packageNameParts =
|
|
190
|
-
|
|
233
|
+
const packageName: string = (await host.getValue("package-name")) || name;
|
|
234
|
+
const packageNameParts: RegExpMatchArray =
|
|
235
|
+
packageName.match(/(^@(.*)\/)?(.*)/) ?? [];
|
|
236
|
+
const version: string =
|
|
237
|
+
(await host.getValue("package-version")) || "1.0.0-beta.1";
|
|
191
238
|
|
|
192
239
|
return {
|
|
193
240
|
name: packageName,
|
|
@@ -199,11 +246,11 @@ async function getPackageDetails(host: Host): Promise<PackageDetails> {
|
|
|
199
246
|
}
|
|
200
247
|
|
|
201
248
|
export async function getCredentialScopes(
|
|
202
|
-
host:
|
|
249
|
+
host: AutorestExtensionHost
|
|
203
250
|
): Promise<string[] | undefined> {
|
|
204
|
-
const addCredentials = await host.
|
|
205
|
-
const credentialScopes = await host.
|
|
206
|
-
const azureArm = await host.
|
|
251
|
+
const addCredentials = await host.getValue("add-credentials");
|
|
252
|
+
const credentialScopes = await host.getValue("credential-scopes");
|
|
253
|
+
const azureArm = await host.getValue("azure-arm");
|
|
207
254
|
|
|
208
255
|
if (credentialScopes && !addCredentials) {
|
|
209
256
|
throw new Error(
|
|
@@ -215,7 +262,7 @@ export async function getCredentialScopes(
|
|
|
215
262
|
if (azureArm) {
|
|
216
263
|
return ["https://management.azure.com/.default"];
|
|
217
264
|
} else if (addCredentials) {
|
|
218
|
-
host.
|
|
265
|
+
host.message({
|
|
219
266
|
Channel: Channel.Warning,
|
|
220
267
|
Text: `You have default credential policy BearerTokenCredentialPolicy
|
|
221
268
|
but not the --credential-scopes flag set while generating non-management plane code.
|
|
@@ -233,11 +280,9 @@ export async function getCredentialScopes(
|
|
|
233
280
|
}
|
|
234
281
|
|
|
235
282
|
async function getAzureOutputDirectoryPath(
|
|
236
|
-
host:
|
|
283
|
+
host: AutorestExtensionHost
|
|
237
284
|
): Promise<string | undefined> {
|
|
238
|
-
const outputDirectoryPath
|
|
239
|
-
"outputFolderUri"
|
|
240
|
-
);
|
|
285
|
+
const outputDirectoryPath = await host.getValue<string>("outputFolderUri");
|
|
241
286
|
const outputDirectoryRelativePath: string | undefined = outputDirectoryPath
|
|
242
287
|
?.replace(/\/$/, "")
|
|
243
288
|
.split("/")
|
|
@@ -247,3 +292,21 @@ async function getAzureOutputDirectoryPath(
|
|
|
247
292
|
? outputDirectoryRelativePath
|
|
248
293
|
: undefined;
|
|
249
294
|
}
|
|
295
|
+
|
|
296
|
+
async function getBatch(
|
|
297
|
+
host: AutorestExtensionHost
|
|
298
|
+
): Promise<[string, any][] | undefined> {
|
|
299
|
+
const batch = await host.getValue<[string, any][]>("batch");
|
|
300
|
+
return batch;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
async function getMultiClient(host: AutorestExtensionHost): Promise<boolean> {
|
|
304
|
+
const multiClient = (await host.getValue("multi-client")) || undefined;
|
|
305
|
+
return !!multiClient;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
async function getCoreHttpCompatMode(
|
|
309
|
+
host: AutorestExtensionHost
|
|
310
|
+
): Promise<boolean> {
|
|
311
|
+
return (await host.getValue("core-http-compat-mode")) || false;
|
|
312
|
+
}
|
package/src/utils/nameUtils.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { Operation, OperationGroup } from "@autorest/codemodel";
|
|
|
4
4
|
import { getLanguageMetadata } from "./languageHelpers";
|
|
5
5
|
import { TypeDetails, PropertyKind } from "../models/modelDetails";
|
|
6
6
|
|
|
7
|
-
interface ReservedName {
|
|
7
|
+
export interface ReservedName {
|
|
8
8
|
name: string;
|
|
9
9
|
reservedFor: NameType[];
|
|
10
10
|
}
|
|
@@ -93,11 +93,15 @@ export enum CasingConvention {
|
|
|
93
93
|
Camel
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
export function guardReservedNames(
|
|
96
|
+
export function guardReservedNames(
|
|
97
|
+
name: string,
|
|
98
|
+
nameType: NameType,
|
|
99
|
+
customReservedNames: ReservedName[] = []
|
|
100
|
+
): string {
|
|
97
101
|
const suffix = getSuffix(nameType);
|
|
98
|
-
return ReservedModelNames
|
|
99
|
-
r => r.
|
|
100
|
-
|
|
102
|
+
return [...ReservedModelNames, ...customReservedNames]
|
|
103
|
+
.filter(r => r.reservedFor.includes(nameType))
|
|
104
|
+
.find(r => r.name === name.toLowerCase())
|
|
101
105
|
? `${name}${suffix}`
|
|
102
106
|
: name;
|
|
103
107
|
}
|
|
@@ -136,12 +140,14 @@ export function normalizeTypeName({ kind, typeName }: TypeDetails) {
|
|
|
136
140
|
export function normalizeName(
|
|
137
141
|
name: string,
|
|
138
142
|
nameType: NameType,
|
|
139
|
-
shouldGuard?: boolean
|
|
143
|
+
shouldGuard?: boolean,
|
|
144
|
+
customReservedNames: ReservedName[] = [],
|
|
145
|
+
casingOverride?: CasingConvention
|
|
140
146
|
): string {
|
|
141
147
|
if (name.startsWith("$DO_NOT_NORMALIZE$")) {
|
|
142
148
|
return name.replace("$DO_NOT_NORMALIZE$", "");
|
|
143
149
|
}
|
|
144
|
-
const casingConvention = getCasingConvention(nameType);
|
|
150
|
+
const casingConvention = casingOverride ?? getCasingConvention(nameType);
|
|
145
151
|
const sanitizedName = sanitizeName(name);
|
|
146
152
|
const parts = getNameParts(sanitizedName);
|
|
147
153
|
const [firstPart, ...otherParts] = parts;
|
|
@@ -153,7 +159,9 @@ export function normalizeName(
|
|
|
153
159
|
.join("");
|
|
154
160
|
|
|
155
161
|
const normalized = checkBeginning(`${normalizedFirstPart}${normalizedParts}`);
|
|
156
|
-
return shouldGuard
|
|
162
|
+
return shouldGuard
|
|
163
|
+
? guardReservedNames(normalized, nameType, customReservedNames)
|
|
164
|
+
: normalized;
|
|
157
165
|
}
|
|
158
166
|
|
|
159
167
|
function checkBeginning(name: string): string {
|
|
@@ -68,7 +68,7 @@ export function getTypeForSchema(
|
|
|
68
68
|
): TypeDetails {
|
|
69
69
|
let typeName: string = "";
|
|
70
70
|
let usedModels: string[] = [];
|
|
71
|
-
let defaultValue
|
|
71
|
+
let defaultValue = undefined;
|
|
72
72
|
let kind: PropertyKind = PropertyKind.Primitive;
|
|
73
73
|
switch (schema.type) {
|
|
74
74
|
case SchemaType.Any:
|
|
@@ -194,7 +194,7 @@ export function getTypeForSchema(
|
|
|
194
194
|
usedModels,
|
|
195
195
|
isConstant: schema.type === SchemaType.Constant,
|
|
196
196
|
nullable: isNullable,
|
|
197
|
-
|
|
197
|
+
defaultValue
|
|
198
198
|
};
|
|
199
199
|
}
|
|
200
200
|
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { Project } from "ts-morph";
|
|
2
|
-
import { ClientDetails } from "../models/clientDetails";
|
|
3
|
-
import { PackageDetails } from "../models/packageDetails";
|
|
4
|
-
export declare function generateClientContext(clientDetails: ClientDetails, packageDetails: PackageDetails, project: Project): void;
|
|
5
|
-
//# sourceMappingURL=clientContextFileGenerator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clientContextFileGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/clientContextFileGenerator.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,OAAO,EAMR,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAO1D,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,QAmEjB"}
|
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Copyright (c) Microsoft Corporation.
|
|
3
|
-
// Licensed under the MIT License.
|
|
4
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.generateClientContext = void 0;
|
|
6
|
-
const nameUtils_1 = require("../utils/nameUtils");
|
|
7
|
-
const codemodel_1 = require("@autorest/codemodel");
|
|
8
|
-
const parameterUtils_1 = require("./utils/parameterUtils");
|
|
9
|
-
const autorestSession_1 = require("../autorestSession");
|
|
10
|
-
function generateClientContext(clientDetails, packageDetails, project) {
|
|
11
|
-
const { useCoreV2, hideClients, addCredentials, srcPath } = autorestSession_1.getAutorestOptions();
|
|
12
|
-
const importedModels = new Set();
|
|
13
|
-
const clientParams = clientDetails.parameters.filter(param => param.implementationLocation === codemodel_1.ImplementationLocation.Client);
|
|
14
|
-
const hasLro = clientDetails.operationGroups.some(og => og.operations.some(o => o.isLro));
|
|
15
|
-
const clientContextClassName = `${clientDetails.className}Context`;
|
|
16
|
-
const clientContextFileName = nameUtils_1.normalizeName(clientContextClassName, nameUtils_1.NameType.File);
|
|
17
|
-
const sourceFile = project.createSourceFile(`${srcPath}/${clientContextFileName}.ts`, undefined, {
|
|
18
|
-
overwrite: true
|
|
19
|
-
});
|
|
20
|
-
!useCoreV2 && writePackageInfo(sourceFile, packageDetails);
|
|
21
|
-
const contextClass = buildClass(sourceFile, clientContextClassName);
|
|
22
|
-
if (hideClients) {
|
|
23
|
-
contextClass.addJsDoc({
|
|
24
|
-
tags: [
|
|
25
|
-
{
|
|
26
|
-
tagName: "internal"
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
writeClassProperties(contextClass, clientParams, importedModels);
|
|
32
|
-
const classConstructor = buildConstructor(contextClass, {
|
|
33
|
-
clientContextClassName,
|
|
34
|
-
clientClassName: clientDetails.className,
|
|
35
|
-
clientParams,
|
|
36
|
-
importedModels
|
|
37
|
-
});
|
|
38
|
-
writeConstructorBody(classConstructor, {
|
|
39
|
-
clientParams,
|
|
40
|
-
clientDetails
|
|
41
|
-
}, hasLro);
|
|
42
|
-
const hasCredentials = !!addCredentials;
|
|
43
|
-
writeImports(sourceFile, hasLro, importedModels, hasCredentials);
|
|
44
|
-
sourceFile.fixUnusedIdentifiers();
|
|
45
|
-
}
|
|
46
|
-
exports.generateClientContext = generateClientContext;
|
|
47
|
-
function writeImports(sourceFile, hasLro, importedModels, hasCredentials) {
|
|
48
|
-
const { useCoreV2 } = autorestSession_1.getAutorestOptions();
|
|
49
|
-
if (!useCoreV2) {
|
|
50
|
-
sourceFile.addImportDeclaration({
|
|
51
|
-
namespaceImport: "coreHttp",
|
|
52
|
-
moduleSpecifier: "@azure/core-http"
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
sourceFile.addImportDeclaration({
|
|
57
|
-
namespaceImport: "coreClient",
|
|
58
|
-
moduleSpecifier: "@azure/core-client"
|
|
59
|
-
});
|
|
60
|
-
if (hasCredentials) {
|
|
61
|
-
sourceFile.addImportDeclaration({
|
|
62
|
-
namespaceImport: "coreAuth",
|
|
63
|
-
moduleSpecifier: "@azure/core-auth"
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (importedModels.size) {
|
|
68
|
-
sourceFile.addImportDeclaration({
|
|
69
|
-
namedImports: [...importedModels],
|
|
70
|
-
moduleSpecifier: "./models"
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
function writePackageInfo(sourceFile, packageDetails) {
|
|
75
|
-
sourceFile.addStatements([
|
|
76
|
-
`\n\n`,
|
|
77
|
-
`const packageName = "${packageDetails.name || ""}";`,
|
|
78
|
-
`const packageVersion = "${packageDetails.version || ""}";`
|
|
79
|
-
]);
|
|
80
|
-
}
|
|
81
|
-
function writeClassProperties(contextClass, clientParams, importedModels) {
|
|
82
|
-
const params = clientParams.filter(p => !p.isSynthetic);
|
|
83
|
-
params.forEach(({ typeDetails }) => typeDetails.usedModels.forEach(model => importedModels.add(model)));
|
|
84
|
-
contextClass.addProperties(params.map(param => {
|
|
85
|
-
return {
|
|
86
|
-
name: param.name,
|
|
87
|
-
type: param.typeDetails.typeName,
|
|
88
|
-
hasQuestionToken: !param.required
|
|
89
|
-
};
|
|
90
|
-
}));
|
|
91
|
-
}
|
|
92
|
-
function writeConstructorBody(classConstructor, { clientParams, clientDetails }, hasLro) {
|
|
93
|
-
const { useCoreV2 } = autorestSession_1.getAutorestOptions();
|
|
94
|
-
const requiredParams = getRequiredParameters(clientParams);
|
|
95
|
-
const addBlankLine = true;
|
|
96
|
-
const requiredParameters = getRequiredParamAssignments(requiredParams);
|
|
97
|
-
const constantParameters = getConstantClientParamAssignments(clientParams);
|
|
98
|
-
classConstructor.addStatements([
|
|
99
|
-
writeStatements(getRequiredParamChecks(requiredParams), addBlankLine),
|
|
100
|
-
writeStatement(writeDefaultOptions(clientParams.some(p => p.name === "credentials"), hasLro, clientDetails))
|
|
101
|
-
]);
|
|
102
|
-
!useCoreV2 &&
|
|
103
|
-
classConstructor.addStatements([
|
|
104
|
-
writeStatement(getEndpointStatement(clientDetails.endpoint), addBlankLine)
|
|
105
|
-
]);
|
|
106
|
-
classConstructor.addStatements([
|
|
107
|
-
requiredParameters.length ? "// Parameter assignments" : "",
|
|
108
|
-
writeStatements(getRequiredParamAssignments(requiredParams), addBlankLine),
|
|
109
|
-
constantParameters.length
|
|
110
|
-
? "// Assigning values to Constant parameters"
|
|
111
|
-
: "",
|
|
112
|
-
writeStatements(constantParameters, addBlankLine)
|
|
113
|
-
]);
|
|
114
|
-
}
|
|
115
|
-
const writeStatement = (content, shouldAddBlankLine = false) => (writer) => {
|
|
116
|
-
if (content) {
|
|
117
|
-
writer.writeLine(content);
|
|
118
|
-
shouldAddBlankLine && writer.blankLine();
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
const writeStatements = (lines, shouldAddBlankLine = false) => (writer) => {
|
|
122
|
-
lines.forEach(line => writer.writeLine(line));
|
|
123
|
-
shouldAddBlankLine && writer.blankLine();
|
|
124
|
-
};
|
|
125
|
-
function getCredentialScopesValue(credentialScopes) {
|
|
126
|
-
if (Array.isArray(credentialScopes)) {
|
|
127
|
-
return `[${credentialScopes.map(scope => `"${scope}"`).join()}]`;
|
|
128
|
-
}
|
|
129
|
-
else if (typeof credentialScopes === "string") {
|
|
130
|
-
return `"${credentialScopes}"`;
|
|
131
|
-
}
|
|
132
|
-
return credentialScopes;
|
|
133
|
-
}
|
|
134
|
-
function writeDefaultOptions(hasCredentials, hasLro, clientDetails) {
|
|
135
|
-
const { useCoreV2, credentialScopes, packageDetails } = autorestSession_1.getAutorestOptions();
|
|
136
|
-
const credentialScopesValues = getCredentialScopesValue(credentialScopes);
|
|
137
|
-
const addScopes = credentialScopes
|
|
138
|
-
? `if(!options.credentialScopes) {
|
|
139
|
-
options.credentialScopes = ${credentialScopesValues}
|
|
140
|
-
}`
|
|
141
|
-
: "";
|
|
142
|
-
const defaults = !hasCredentials
|
|
143
|
-
? `const defaults: ${clientDetails.className}OptionalParams = {
|
|
144
|
-
requestContentType: "application/json; charset=utf-8"
|
|
145
|
-
};`
|
|
146
|
-
: `const defaults: ${clientDetails.className}OptionalParams = {
|
|
147
|
-
requestContentType: "application/json; charset=utf-8",
|
|
148
|
-
credential: credentials
|
|
149
|
-
};`;
|
|
150
|
-
return !useCoreV2
|
|
151
|
-
? `// Initializing default values for options
|
|
152
|
-
if (!options) {
|
|
153
|
-
options = {};
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
const defaultUserAgent = \`azsdk-js-\${packageName.replace(/@.*\\//,"")}/\${packageVersion} \${coreHttp.getDefaultUserAgentValue()}\`;
|
|
157
|
-
|
|
158
|
-
${addScopes}
|
|
159
|
-
|
|
160
|
-
super(${hasCredentials ? "credentials" : `undefined`}, {
|
|
161
|
-
...options,
|
|
162
|
-
userAgent: options.userAgent
|
|
163
|
-
? \`\${options.userAgent} \${defaultUserAgent}\`
|
|
164
|
-
: \`\${defaultUserAgent}\`
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
this.requestContentType = "application/json; charset=utf-8";
|
|
168
|
-
|
|
169
|
-
`
|
|
170
|
-
: `// Initializing default values for options
|
|
171
|
-
if (!options) {
|
|
172
|
-
options = {};
|
|
173
|
-
}
|
|
174
|
-
${defaults}
|
|
175
|
-
|
|
176
|
-
const packageDetails = \`azsdk-js-${packageDetails.name.replace(/@.*\//, "")}/${packageDetails.version}\`;
|
|
177
|
-
const userAgentPrefix =
|
|
178
|
-
options.userAgentOptions && options.userAgentOptions.userAgentPrefix
|
|
179
|
-
? \`\${options.userAgentOptions.userAgentPrefix} \${packageDetails}\`
|
|
180
|
-
: \`\${packageDetails}\`;
|
|
181
|
-
|
|
182
|
-
${addScopes}
|
|
183
|
-
const optionsWithDefaults = {
|
|
184
|
-
...defaults,
|
|
185
|
-
...options,
|
|
186
|
-
userAgentOptions: {
|
|
187
|
-
userAgentPrefix
|
|
188
|
-
},
|
|
189
|
-
baseUri: ${getEndpoint(clientDetails.endpoint)}
|
|
190
|
-
};
|
|
191
|
-
super(optionsWithDefaults);
|
|
192
|
-
`;
|
|
193
|
-
}
|
|
194
|
-
function buildClass(sourceFile, clientContextClassName) {
|
|
195
|
-
const { useCoreV2 } = autorestSession_1.getAutorestOptions();
|
|
196
|
-
return sourceFile.addClass({
|
|
197
|
-
name: clientContextClassName,
|
|
198
|
-
extends: !useCoreV2 ? "coreHttp.ServiceClient" : "coreClient.ServiceClient",
|
|
199
|
-
isExported: true
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
function buildConstructor(contextClass, { clientContextClassName, clientParams, clientClassName, importedModels }) {
|
|
203
|
-
const requiredParams = getRequiredParameters(clientParams);
|
|
204
|
-
const hasClientOptionalParams = clientParams.some(p => !p.required);
|
|
205
|
-
const docs = [
|
|
206
|
-
`Initializes a new instance of the ${clientContextClassName} class.`,
|
|
207
|
-
...parameterUtils_1.formatJsDocParam(requiredParams),
|
|
208
|
-
`@param options The parameter options`
|
|
209
|
-
]
|
|
210
|
-
.filter(d => !!d)
|
|
211
|
-
.join("\n");
|
|
212
|
-
let clientOptionsParameterType = "coreHttp.ServiceClientOptions";
|
|
213
|
-
if (hasClientOptionalParams) {
|
|
214
|
-
const typeName = `${clientClassName}OptionalParams`;
|
|
215
|
-
importedModels.add(typeName);
|
|
216
|
-
clientOptionsParameterType = typeName;
|
|
217
|
-
}
|
|
218
|
-
requiredParams.forEach(({ typeDetails }) => typeDetails.usedModels.forEach(model => importedModels.add(model)));
|
|
219
|
-
return contextClass.addConstructor({
|
|
220
|
-
docs: [docs],
|
|
221
|
-
parameters: [
|
|
222
|
-
...requiredParams.map(p => ({
|
|
223
|
-
name: p.name,
|
|
224
|
-
type: p.typeDetails.typeName
|
|
225
|
-
})),
|
|
226
|
-
{
|
|
227
|
-
name: "options",
|
|
228
|
-
hasQuestionToken: true,
|
|
229
|
-
type: clientOptionsParameterType
|
|
230
|
-
}
|
|
231
|
-
]
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
function getRequiredParameters(parameters) {
|
|
235
|
-
/**
|
|
236
|
-
* Getting parameters that are marked as required, and also don't have a defaultValue.
|
|
237
|
-
* Constants are also exluded since they have defined value
|
|
238
|
-
*/
|
|
239
|
-
return parameters.filter(p => p.required && p.schemaType !== codemodel_1.SchemaType.Constant && !p.defaultValue);
|
|
240
|
-
}
|
|
241
|
-
function getEndpointStatement({ endpoint }) {
|
|
242
|
-
return `this.baseUri = options.endpoint ${endpoint ? ` || "${endpoint}"` : ""};`;
|
|
243
|
-
}
|
|
244
|
-
function getConstantClientParamAssignments(clientParameters) {
|
|
245
|
-
return clientParameters
|
|
246
|
-
.filter(p => !!p.defaultValue || p.schemaType === codemodel_1.SchemaType.Constant)
|
|
247
|
-
.map(({ name, defaultValue }) => `this.${name} = options.${name} || ${defaultValue}`);
|
|
248
|
-
}
|
|
249
|
-
function getRequiredParamChecks(requiredParameters) {
|
|
250
|
-
return requiredParameters.map(({ name }) => `if(${name} === undefined) {
|
|
251
|
-
throw new Error("'${name}' cannot be null");
|
|
252
|
-
}`);
|
|
253
|
-
}
|
|
254
|
-
function getRequiredParamAssignments(requiredParameters) {
|
|
255
|
-
const disallowedClientParameters = ["credentials"];
|
|
256
|
-
return requiredParameters
|
|
257
|
-
.filter(({ name }) => !disallowedClientParameters.includes(name))
|
|
258
|
-
.map(({ name }) => `this.${name} = ${name};`);
|
|
259
|
-
}
|
|
260
|
-
function getEndpoint({ endpoint }) {
|
|
261
|
-
return `options.endpoint ${endpoint ? ` || "${endpoint}"` : ""}`;
|
|
262
|
-
}
|
|
263
|
-
//# sourceMappingURL=clientContextFileGenerator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clientContextFileGenerator.js","sourceRoot":"","sources":["../../../src/generators/clientContextFileGenerator.ts"],"names":[],"mappings":"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"}
|