@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
|
@@ -24,6 +24,8 @@ This package contains an isomorphic SDK (runs both in Node.js and in browsers) f
|
|
|
24
24
|
- [LTS versions of Node.js](https://nodejs.org/about/releases/)
|
|
25
25
|
- Latest versions of Safari, Chrome, Edge and Firefox.
|
|
26
26
|
|
|
27
|
+
See our [support policy](https://github.com/Azure/azure-sdk-for-js/blob/main/SUPPORT.md) for more details.
|
|
28
|
+
|
|
27
29
|
{{#if azure}}
|
|
28
30
|
### Prerequisites
|
|
29
31
|
|
|
@@ -64,14 +66,31 @@ For more information about how to create an Azure AD Application check out [this
|
|
|
64
66
|
```javascript
|
|
65
67
|
const { {{ clientClassName }} } = require("{{ clientPackageName }}");
|
|
66
68
|
const { DefaultAzureCredential } = require("@azure/identity");
|
|
69
|
+
// For client-side applications running in the browser, use InteractiveBrowserCredential instead of DefaultAzureCredential. See https://aka.ms/azsdk/js/identity/examples for more details.
|
|
70
|
+
|
|
67
71
|
const subscriptionId = "00000000-0000-0000-0000-000000000000";
|
|
68
72
|
const client = new {{ clientClassName }}(new DefaultAzureCredential(), subscriptionId);
|
|
73
|
+
|
|
74
|
+
// For client-side applications running in the browser, use this code instead:
|
|
75
|
+
// const credential = new InteractiveBrowserCredential({
|
|
76
|
+
// tenantId: "<YOUR_TENANT_ID>",
|
|
77
|
+
// clientId: "<YOUR_CLIENT_ID>"
|
|
78
|
+
// });
|
|
79
|
+
// const client = new {{ clientClassName }}(credential, subscriptionId);
|
|
69
80
|
```
|
|
70
81
|
{{else}}
|
|
71
82
|
```javascript
|
|
72
83
|
const { {{ clientClassName }} } = require("{{ clientPackageName }}");
|
|
73
84
|
const { DefaultAzureCredential } = require("@azure/identity");
|
|
85
|
+
// For client-side applications running in the browser, use InteractiveBrowserCredential instead of DefaultAzureCredential. See https://aka.ms/azsdk/js/identity/examples for more details.
|
|
86
|
+
|
|
74
87
|
const client = new {{ clientClassName }}("<endpoint>", new DefaultAzureCredential());
|
|
88
|
+
// For client-side applications running in the browser, use this code instead:
|
|
89
|
+
// const credential = new InteractiveBrowserCredential({
|
|
90
|
+
// tenantId: "<YOUR_TENANT_ID>",
|
|
91
|
+
// clientId: "<YOUR_CLIENT_ID>"
|
|
92
|
+
// });
|
|
93
|
+
// const client = new {{ clientClassName }}("<endpoint>", credential);
|
|
75
94
|
```
|
|
76
95
|
{{/if}}
|
|
77
96
|
{{/if}}{{/if}}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// https://github.com/karma-runner/karma-chrome-launcher
|
|
2
|
+
process.env.CHROME_BIN = require("puppeteer").executablePath();
|
|
3
|
+
require("dotenv").config();
|
|
4
|
+
const {
|
|
5
|
+
jsonRecordingFilterFunction,
|
|
6
|
+
isPlaybackMode,
|
|
7
|
+
isSoftRecordMode,
|
|
8
|
+
isRecordMode,
|
|
9
|
+
} = require("@azure-tools/test-recorder");
|
|
10
|
+
|
|
11
|
+
module.exports = function (config) {
|
|
12
|
+
config.set({
|
|
13
|
+
// base path that will be used to resolve all patterns (eg. files, exclude)
|
|
14
|
+
basePath: "./",
|
|
15
|
+
|
|
16
|
+
// frameworks to use
|
|
17
|
+
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
|
18
|
+
frameworks: ["source-map-support", "mocha"],
|
|
19
|
+
|
|
20
|
+
plugins: [
|
|
21
|
+
"karma-mocha",
|
|
22
|
+
"karma-mocha-reporter",
|
|
23
|
+
"karma-chrome-launcher",
|
|
24
|
+
"karma-edge-launcher",
|
|
25
|
+
"karma-firefox-launcher",
|
|
26
|
+
"karma-ie-launcher",
|
|
27
|
+
"karma-env-preprocessor",
|
|
28
|
+
"karma-coverage",
|
|
29
|
+
"karma-sourcemap-loader",
|
|
30
|
+
"karma-junit-reporter",
|
|
31
|
+
"karma-json-to-file-reporter",
|
|
32
|
+
"karma-source-map-support",
|
|
33
|
+
"karma-json-preprocessor",
|
|
34
|
+
],
|
|
35
|
+
|
|
36
|
+
// list of files / patterns to load in the browser
|
|
37
|
+
files: [
|
|
38
|
+
"dist-test/index.browser.js",
|
|
39
|
+
{ pattern: "dist-test/index.browser.js.map", type: "html", included: false, served: true },
|
|
40
|
+
].concat(isPlaybackMode() || isSoftRecordMode() ? ["recordings/browsers/**/*.json"] : []),
|
|
41
|
+
|
|
42
|
+
// list of files / patterns to exclude
|
|
43
|
+
exclude: [],
|
|
44
|
+
|
|
45
|
+
// preprocess matching files before serving them to the browser
|
|
46
|
+
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
|
47
|
+
preprocessors: {
|
|
48
|
+
"**/*.js": ["sourcemap", "env"],
|
|
49
|
+
"recordings/browsers/**/*.json": ["json"],
|
|
50
|
+
// IMPORTANT: COMMENT following line if you want to debug in your browsers!!
|
|
51
|
+
// Preprocess source file to calculate code coverage, however this will make source file unreadable
|
|
52
|
+
// "dist-test/index.js": ["coverage"]
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
envPreprocessor: [
|
|
56
|
+
"TEST_MODE",
|
|
57
|
+
"ENDPOINT",
|
|
58
|
+
"AZURE_CLIENT_SECRET",
|
|
59
|
+
"AZURE_CLIENT_ID",
|
|
60
|
+
"AZURE_TENANT_ID",
|
|
61
|
+
"SUBSCRIPTION_ID",
|
|
62
|
+
],
|
|
63
|
+
|
|
64
|
+
// test results reporter to use
|
|
65
|
+
// possible values: 'dots', 'progress'
|
|
66
|
+
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
|
67
|
+
reporters: ["mocha", "coverage", "junit", "json-to-file"],
|
|
68
|
+
|
|
69
|
+
coverageReporter: {
|
|
70
|
+
// specify a common output directory
|
|
71
|
+
dir: "coverage-browser/",
|
|
72
|
+
reporters: [
|
|
73
|
+
{ type: "json", subdir: ".", file: "coverage.json" },
|
|
74
|
+
{ type: "lcovonly", subdir: ".", file: "lcov.info" },
|
|
75
|
+
{ type: "html", subdir: "html" },
|
|
76
|
+
{ type: "cobertura", subdir: ".", file: "cobertura-coverage.xml" },
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
junitReporter: {
|
|
81
|
+
outputDir: "", // results will be saved as $outputDir/$browserName.xml
|
|
82
|
+
outputFile: "test-results.browser.xml", // if included, results will be saved as $outputDir/$browserName/$outputFile
|
|
83
|
+
suite: "", // suite will become the package name attribute in xml testsuite element
|
|
84
|
+
useBrowserName: false, // add browser name to report and classes names
|
|
85
|
+
nameFormatter: undefined, // function (browser, result) to customize the name attribute in xml testcase element
|
|
86
|
+
classNameFormatter: undefined, // function (browser, result) to customize the classname attribute in xml testcase element
|
|
87
|
+
properties: {}, // key value pair of properties to add to the <properties> section of the report
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
jsonToFileReporter: {
|
|
91
|
+
filter: jsonRecordingFilterFunction,
|
|
92
|
+
outputPath: ".",
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
// web server port
|
|
96
|
+
port: 9876,
|
|
97
|
+
|
|
98
|
+
// enable / disable colors in the output (reporters and logs)
|
|
99
|
+
colors: true,
|
|
100
|
+
|
|
101
|
+
// level of logging
|
|
102
|
+
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
|
103
|
+
logLevel: config.LOG_INFO,
|
|
104
|
+
|
|
105
|
+
// enable / disable watching file and executing tests whenever any file changes
|
|
106
|
+
autoWatch: false,
|
|
107
|
+
|
|
108
|
+
// --no-sandbox allows our tests to run in Linux without having to change the system.
|
|
109
|
+
// --disable-web-security allows us to authenticate from the browser without having to write tests using interactive auth, which would be far more complex.
|
|
110
|
+
browsers: ["ChromeHeadlessNoSandbox"],
|
|
111
|
+
customLaunchers: {
|
|
112
|
+
ChromeHeadlessNoSandbox: {
|
|
113
|
+
base: "ChromeHeadless",
|
|
114
|
+
flags: ["--no-sandbox", "--disable-web-security"],
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
|
|
118
|
+
// Continuous Integration mode
|
|
119
|
+
// if true, Karma captures browsers, runs the tests and exits
|
|
120
|
+
singleRun: false,
|
|
121
|
+
|
|
122
|
+
// Concurrency level
|
|
123
|
+
// how many browser should be started simultaneous
|
|
124
|
+
concurrency: 1,
|
|
125
|
+
|
|
126
|
+
browserNoActivityTimeout: 60000000,
|
|
127
|
+
browserDisconnectTimeout: 10000,
|
|
128
|
+
browserDisconnectTolerance: 3,
|
|
129
|
+
browserConsoleLogOptions: {
|
|
130
|
+
terminal: !isRecordMode(),
|
|
131
|
+
},
|
|
132
|
+
|
|
133
|
+
client: {
|
|
134
|
+
mocha: {
|
|
135
|
+
// change Karma's debug.html to the mocha web reporter
|
|
136
|
+
reporter: "html",
|
|
137
|
+
timeout: "600000",
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Project } from "ts-morph";
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as hbs from "handlebars";
|
|
5
|
+
import { getAutorestOptions } from "../../autorestSession";
|
|
6
|
+
|
|
7
|
+
export function generateKarmaConfigFile(project: Project) {
|
|
8
|
+
const { generateTest, restLevelClient } = getAutorestOptions();
|
|
9
|
+
if (!generateTest || !restLevelClient) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const metadata = {}
|
|
13
|
+
const file = fs.readFileSync(path.join(__dirname, "karma.conf.js.hbs"), {
|
|
14
|
+
encoding: "utf-8"
|
|
15
|
+
});
|
|
16
|
+
const karmaConfigFileContents = hbs.compile(file, { noEscape: true });
|
|
17
|
+
project.createSourceFile("karma.conf.js", karmaConfigFileContents(metadata), {
|
|
18
|
+
overwrite: true
|
|
19
|
+
});
|
|
20
|
+
}
|
|
@@ -7,6 +7,7 @@ import { PackageDetails } from "../../models/packageDetails";
|
|
|
7
7
|
import { getAutorestOptions, getSession } from "../../autorestSession";
|
|
8
8
|
import { hasPagingOperations } from "../../utils/extractPaginationDetails";
|
|
9
9
|
import { hasPollingOperations } from "../../restLevelClient/helpers/hasPollingOperations";
|
|
10
|
+
import { NameType, normalizeName } from "../../utils/nameUtils";
|
|
10
11
|
|
|
11
12
|
export function generatePackageJson(
|
|
12
13
|
project: Project,
|
|
@@ -48,11 +49,11 @@ export function generatePackageJson(
|
|
|
48
49
|
* or High Level Client
|
|
49
50
|
*/
|
|
50
51
|
function restLevelPackage(packageDetails: PackageDetails) {
|
|
51
|
-
const { azureArm } = getAutorestOptions();
|
|
52
|
+
const { azureArm, generateTest } = getAutorestOptions();
|
|
52
53
|
const { model } = getSession();
|
|
53
54
|
const hasPaging = hasPagingOperations(model);
|
|
54
55
|
const hasLRO = hasPollingOperations(model);
|
|
55
|
-
|
|
56
|
+
const packageInfo: Record<string, any> = {
|
|
56
57
|
name: `${packageDetails.name}`,
|
|
57
58
|
"sdk-type": `${azureArm ? "mgmt" : "client"}`,
|
|
58
59
|
version: `${packageDetails.version}`,
|
|
@@ -86,7 +87,7 @@ function restLevelPackage(packageDetails: PackageDetails) {
|
|
|
86
87
|
},
|
|
87
88
|
keywords: [],
|
|
88
89
|
author: "",
|
|
89
|
-
license: "
|
|
90
|
+
license: "MIT",
|
|
90
91
|
engines: {
|
|
91
92
|
node: ">=12.0.0"
|
|
92
93
|
},
|
|
@@ -106,7 +107,7 @@ function restLevelPackage(packageDetails: PackageDetails) {
|
|
|
106
107
|
"@microsoft/api-extractor": "^7.18.11",
|
|
107
108
|
"@types/node": "^14.14.22",
|
|
108
109
|
dotenv: "^8.2.0",
|
|
109
|
-
prettier: "^2.
|
|
110
|
+
prettier: "^2.5.1",
|
|
110
111
|
"ts-node": "^9.1.1",
|
|
111
112
|
typescript: "~4.2.4",
|
|
112
113
|
mkdirp: "^1.0.4",
|
|
@@ -115,6 +116,60 @@ function restLevelPackage(packageDetails: PackageDetails) {
|
|
|
115
116
|
sideEffects: false,
|
|
116
117
|
autoPublish: true
|
|
117
118
|
};
|
|
119
|
+
|
|
120
|
+
if (generateTest) {
|
|
121
|
+
packageInfo.module = `./dist-esm/src/index.js`;
|
|
122
|
+
packageInfo.devDependencies["@azure/identity"] = "^2.0.1";
|
|
123
|
+
packageInfo.devDependencies["@azure-tools/test-recorder"] = "^1.0.0";
|
|
124
|
+
packageInfo.devDependencies["mocha"] = "^7.1.1";
|
|
125
|
+
packageInfo.devDependencies["mocha-junit-reporter"] = "^1.18.0";
|
|
126
|
+
packageInfo.devDependencies["cross-env"] = "^7.0.2";
|
|
127
|
+
packageInfo.devDependencies["chai"] = "^4.2.0";
|
|
128
|
+
packageInfo.devDependencies["cross-env"] = "^7.0.2";
|
|
129
|
+
packageInfo.devDependencies["cross-env"] = "^7.0.2";
|
|
130
|
+
packageInfo.devDependencies["karma-chrome-launcher"] = "^3.0.0";
|
|
131
|
+
packageInfo.devDependencies["karma-coverage"] = "^2.0.0";
|
|
132
|
+
packageInfo.devDependencies["karma-edge-launcher"] = "^0.4.2";
|
|
133
|
+
packageInfo.devDependencies["karma-env-preprocessor"] = "^0.1.1";
|
|
134
|
+
packageInfo.devDependencies["karma-firefox-launcher"] = "^1.1.0";
|
|
135
|
+
packageInfo.devDependencies["karma-ie-launcher"] = "^1.0.0";
|
|
136
|
+
packageInfo.devDependencies["karma-json-preprocessor"] = "^0.3.3";
|
|
137
|
+
packageInfo.devDependencies["karma-json-to-file-reporter"] = "^1.0.1";
|
|
138
|
+
packageInfo.devDependencies["karma-junit-reporter"] = "^2.0.1";
|
|
139
|
+
packageInfo.devDependencies["karma-mocha-reporter"] = "^2.2.5";
|
|
140
|
+
packageInfo.devDependencies["karma-mocha"] = "^2.0.1";
|
|
141
|
+
packageInfo.devDependencies["karma-source-map-support"] = "~1.4.0";
|
|
142
|
+
packageInfo.devDependencies["karma-sourcemap-loader"] = "^0.3.8";
|
|
143
|
+
packageInfo.devDependencies["karma"] = "^6.2.0";
|
|
144
|
+
packageInfo.devDependencies["nyc"] = "^14.0.0";
|
|
145
|
+
packageInfo.devDependencies["source-map-support"] = "^0.5.9";
|
|
146
|
+
|
|
147
|
+
packageInfo.scripts["test"] =
|
|
148
|
+
"npm run clean && npm run build:test && npm run unit-test";
|
|
149
|
+
packageInfo.scripts["test:node"] =
|
|
150
|
+
"npm run clean && npm run build:test && npm run unit-test:node";
|
|
151
|
+
packageInfo.scripts["test:browser"] =
|
|
152
|
+
"tsc -p . && cross-env ONLY_BROWSER=true rollup -c 2>&1";
|
|
153
|
+
packageInfo.scripts["build:test"] = "tsc -p . && rollup -c 2>&1";
|
|
154
|
+
packageInfo.scripts["unit-test"] =
|
|
155
|
+
"npm run unit-test:node && npm run unit-test:browser";
|
|
156
|
+
packageInfo.scripts["unit-test:node"] =
|
|
157
|
+
'mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 1200000 --full-trace "test/{,!(browser)/**/}*.spec.ts"';
|
|
158
|
+
packageInfo.scripts["unit-test:browser"] = "karma start --single-run";
|
|
159
|
+
packageInfo.scripts["integration-test"] =
|
|
160
|
+
"npm run integration-test:node && npm run integration-test:browser";
|
|
161
|
+
packageInfo.scripts["integration-test:browser"] =
|
|
162
|
+
"karma start --single-run";
|
|
163
|
+
packageInfo.scripts["integration-test:node"] =
|
|
164
|
+
'nyc mocha -r esm --require source-map-support/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 5000000 --full-trace "dist-esm/test/{,!(browser)/**/}*.spec.js"';
|
|
165
|
+
|
|
166
|
+
packageInfo["browser"] = {
|
|
167
|
+
"./dist-esm/test/public/utils/env.js":
|
|
168
|
+
"./dist-esm/test/public/utils/env.browser.js"
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
return packageInfo;
|
|
118
173
|
}
|
|
119
174
|
|
|
120
175
|
/**
|
|
@@ -133,12 +188,20 @@ function regularAutorestPackage(
|
|
|
133
188
|
azureArm,
|
|
134
189
|
addCredentials,
|
|
135
190
|
azureOutputDirectory,
|
|
136
|
-
generateTest
|
|
191
|
+
generateTest,
|
|
192
|
+
generateSample,
|
|
193
|
+
coreHttpCompatMode
|
|
137
194
|
} = getAutorestOptions();
|
|
138
195
|
const { model } = getSession();
|
|
139
196
|
const hasLro = hasPollingOperations(model);
|
|
140
197
|
const hasAsyncIterators =
|
|
141
198
|
!disablePagingAsyncIterators && clientDetails.options.hasPaging;
|
|
199
|
+
const clientPackageName = packageDetails.name;
|
|
200
|
+
let apiRefUrlQueryParameter: string = "";
|
|
201
|
+
if (packageDetails.version.includes("beta")) {
|
|
202
|
+
apiRefUrlQueryParameter = "?view=azure-node-preview";
|
|
203
|
+
}
|
|
204
|
+
const description = packageDetails.description;
|
|
142
205
|
|
|
143
206
|
const packageInfo: Record<string, any> = {
|
|
144
207
|
name: packageDetails.name,
|
|
@@ -158,6 +221,8 @@ function regularAutorestPackage(
|
|
|
158
221
|
...(!useCoreV2 && { "@azure/core-http": "^2.0.0" }),
|
|
159
222
|
...(useCoreV2 && { "@azure/core-client": "^1.0.0" }),
|
|
160
223
|
...(useCoreV2 && addCredentials && { "@azure/core-auth": "^1.3.0" }),
|
|
224
|
+
...(useCoreV2 &&
|
|
225
|
+
coreHttpCompatMode && { "@azure/core-http-compat": "^1.0.0" }),
|
|
161
226
|
...(useCoreV2 && {
|
|
162
227
|
"@azure/core-rest-pipeline": "^1.1.0"
|
|
163
228
|
}),
|
|
@@ -165,7 +230,6 @@ function regularAutorestPackage(
|
|
|
165
230
|
"@azure/core-tracing": "1.0.0-preview.13",
|
|
166
231
|
"@opentelemetry/api": "^0.10.2"
|
|
167
232
|
}),
|
|
168
|
-
|
|
169
233
|
tslib: "^2.2.0"
|
|
170
234
|
},
|
|
171
235
|
keywords: ["node", "azure", "typescript", "browser", "isomorphic"],
|
|
@@ -175,15 +239,16 @@ function regularAutorestPackage(
|
|
|
175
239
|
types: `./types/${packageDetails.nameWithoutScope}.d.ts`,
|
|
176
240
|
devDependencies: {
|
|
177
241
|
"@microsoft/api-extractor": "^7.18.11",
|
|
178
|
-
"@rollup/plugin-commonjs": "
|
|
179
|
-
"@rollup/plugin-json": "^4.
|
|
180
|
-
"@rollup/plugin-multi-entry": "^
|
|
181
|
-
"@rollup/plugin-node-resolve": "^
|
|
242
|
+
"@rollup/plugin-commonjs": "^21.0.1",
|
|
243
|
+
"@rollup/plugin-json": "^4.1.0",
|
|
244
|
+
"@rollup/plugin-multi-entry": "^4.1.0",
|
|
245
|
+
"@rollup/plugin-node-resolve": "^13.1.3",
|
|
182
246
|
mkdirp: "^1.0.4",
|
|
183
|
-
rollup: "^
|
|
184
|
-
"rollup-plugin-sourcemaps": "^0.
|
|
247
|
+
rollup: "^2.66.1",
|
|
248
|
+
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
185
249
|
typescript: "~4.2.0",
|
|
186
|
-
"uglify-js": "^3.4.9"
|
|
250
|
+
"uglify-js": "^3.4.9",
|
|
251
|
+
rimraf: "^3.0.0"
|
|
187
252
|
},
|
|
188
253
|
// TODO: Calculate the SDK path for the package
|
|
189
254
|
homepage: `https://github.com/Azure/azure-sdk-for-js/tree/main/${azureOutputDirectory}`,
|
|
@@ -242,6 +307,14 @@ function regularAutorestPackage(
|
|
|
242
307
|
docs: "echo skipped"
|
|
243
308
|
},
|
|
244
309
|
sideEffects: false,
|
|
310
|
+
"//metadata": {
|
|
311
|
+
constantPaths: [
|
|
312
|
+
{
|
|
313
|
+
path: `src/${normalizeName(clientDetails.name, NameType.File)}.ts`,
|
|
314
|
+
prefix: "packageDetails"
|
|
315
|
+
}
|
|
316
|
+
]
|
|
317
|
+
},
|
|
245
318
|
autoPublish: true
|
|
246
319
|
};
|
|
247
320
|
if (generateTest) {
|
|
@@ -258,7 +331,19 @@ function regularAutorestPackage(
|
|
|
258
331
|
packageInfo.scripts["integration-test"] =
|
|
259
332
|
"npm run integration-test:node && npm run integration-test:browser";
|
|
260
333
|
packageInfo.scripts["integration-test:node"] =
|
|
261
|
-
"mocha -r esm --require ts-node/register --timeout 1200000 --full-trace test/*.ts";
|
|
334
|
+
"mocha -r esm --require ts-node/register --timeout 1200000 --full-trace test/*.ts --reporter ../../../common/tools/mocha-multi-reporter.js";
|
|
335
|
+
}
|
|
336
|
+
if (
|
|
337
|
+
generateSample &&
|
|
338
|
+
clientDetails.samples &&
|
|
339
|
+
clientDetails.samples.length > 0
|
|
340
|
+
) {
|
|
341
|
+
packageInfo["//sampleConfiguration"] = {
|
|
342
|
+
productName: description,
|
|
343
|
+
productSlugs: ["azure"],
|
|
344
|
+
disableDocsMs: true,
|
|
345
|
+
apiRefLink: `https://docs.microsoft.com/javascript/api/${clientPackageName}${apiRefUrlQueryParameter}`
|
|
346
|
+
};
|
|
262
347
|
}
|
|
263
348
|
return packageInfo;
|
|
264
349
|
}
|
|
@@ -24,62 +24,14 @@ export function generateRollupConfig(project: Project) {
|
|
|
24
24
|
|
|
25
25
|
import nodeBuiltins from "builtin-modules";
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* Gets the proper configuration needed for rollup's commonJS plugin for @opentelemetry/api.
|
|
29
|
-
*
|
|
30
|
-
* NOTE: this manual configuration is only needed because OpenTelemetry uses an
|
|
31
|
-
* __exportStar downleveled helper function to declare its exports which confuses
|
|
32
|
-
* rollup's automatic discovery mechanism.
|
|
33
|
-
*
|
|
34
|
-
* @returns an object reference that can be \`...\`'d into your cjs() configuration.
|
|
35
|
-
*/
|
|
36
|
-
export function openTelemetryCommonJs() {
|
|
37
|
-
const namedExports = {};
|
|
38
|
-
|
|
39
|
-
for (const key of [
|
|
40
|
-
"@opentelemetry/api",
|
|
41
|
-
"@azure/core-tracing/node_modules/@opentelemetry/api"
|
|
42
|
-
]) {
|
|
43
|
-
namedExports[key] = [
|
|
44
|
-
"SpanKind",
|
|
45
|
-
"TraceFlags",
|
|
46
|
-
"getSpan",
|
|
47
|
-
"setSpan",
|
|
48
|
-
"SpanStatusCode",
|
|
49
|
-
"getSpanContext",
|
|
50
|
-
"setSpanContext"
|
|
51
|
-
];
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const releasedOpenTelemetryVersions = ["0.10.2", "1.0.0-rc.0"];
|
|
55
|
-
|
|
56
|
-
for (const version of releasedOpenTelemetryVersions) {
|
|
57
|
-
namedExports[
|
|
58
|
-
// working around a limitation in the rollup common.js plugin - it's not able to resolve these modules so the named exports listed above will not get applied. We have to drill down to the actual path.
|
|
59
|
-
\`../../../common/temp/node_modules/.pnpm/@opentelemetry/api@\${version}/node_modules/@opentelemetry/api/build/src/index.js\`
|
|
60
|
-
] = [
|
|
61
|
-
"SpanKind",
|
|
62
|
-
"TraceFlags",
|
|
63
|
-
"getSpan",
|
|
64
|
-
"setSpan",
|
|
65
|
-
"StatusCode",
|
|
66
|
-
"CanonicalCode",
|
|
67
|
-
"getSpanContext",
|
|
68
|
-
"setSpanContext"
|
|
69
|
-
];
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return namedExports;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
27
|
// #region Warning Handler
|
|
76
28
|
|
|
77
29
|
/**
|
|
78
|
-
* A function that can determine whether a
|
|
30
|
+
* A function that can determine whether a rollup warning should be ignored. If
|
|
79
31
|
* the function returns \`true\`, then the warning will not be displayed.
|
|
80
32
|
*/
|
|
81
33
|
|
|
82
|
-
function
|
|
34
|
+
function ignoreNiseSinonEval(warning) {
|
|
83
35
|
return (
|
|
84
36
|
warning.code === "EVAL" &&
|
|
85
37
|
(warning.id && ((warning.id.includes("node_modules/nise")) ||
|
|
@@ -87,7 +39,7 @@ export function generateRollupConfig(project: Project) {
|
|
|
87
39
|
);
|
|
88
40
|
}
|
|
89
41
|
|
|
90
|
-
function
|
|
42
|
+
function ignoreChaiCircularDependency(warning) {
|
|
91
43
|
return (
|
|
92
44
|
warning.code === "CIRCULAR_DEPENDENCY" &&
|
|
93
45
|
(warning.importer && warning.importer.includes("node_modules/chai") === true)
|
|
@@ -95,8 +47,8 @@ export function generateRollupConfig(project: Project) {
|
|
|
95
47
|
}
|
|
96
48
|
|
|
97
49
|
const warningInhibitors = [
|
|
98
|
-
|
|
99
|
-
|
|
50
|
+
ignoreChaiCircularDependency,
|
|
51
|
+
ignoreNiseSinonEval
|
|
100
52
|
];
|
|
101
53
|
|
|
102
54
|
/**
|
|
@@ -131,22 +83,7 @@ export function generateRollupConfig(project: Project) {
|
|
|
131
83
|
nodeResolve({
|
|
132
84
|
mainFields: ["module", "browser"]
|
|
133
85
|
}),
|
|
134
|
-
cjs(
|
|
135
|
-
namedExports: {
|
|
136
|
-
// Chai's strange internal architecture makes it impossible to statically
|
|
137
|
-
// analyze its exports.
|
|
138
|
-
chai: [
|
|
139
|
-
"version",
|
|
140
|
-
"use",
|
|
141
|
-
"util",
|
|
142
|
-
"config",
|
|
143
|
-
"expect",
|
|
144
|
-
"should",
|
|
145
|
-
"assert"
|
|
146
|
-
],
|
|
147
|
-
...openTelemetryCommonJs()
|
|
148
|
-
}
|
|
149
|
-
}),
|
|
86
|
+
cjs(),
|
|
150
87
|
json(),
|
|
151
88
|
sourcemaps()
|
|
152
89
|
//viz({ filename: "dist-test/browser-stats.html", sourcemap: true })
|
|
@@ -185,7 +122,7 @@ export function generateRollupConfig(project: Project) {
|
|
|
185
122
|
],
|
|
186
123
|
output: { file: "dist/index.js", format: "cjs", sourcemap: true },
|
|
187
124
|
preserveSymlinks: false,
|
|
188
|
-
plugins: [sourcemaps(), nodeResolve()
|
|
125
|
+
plugins: [sourcemaps(), nodeResolve()]
|
|
189
126
|
};
|
|
190
127
|
|
|
191
128
|
const config = [baseConfig];
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
import {
|
|
5
|
+
{{#if importedTypes.length }}
|
|
6
|
+
{{#each importedTypes}}
|
|
7
|
+
{{this}},
|
|
8
|
+
{{/each}}
|
|
9
|
+
{{/if}}
|
|
10
|
+
{{clientClassName}},
|
|
11
|
+
} from "{{clientPackageName}}";
|
|
12
|
+
import { DefaultAzureCredential } from "@azure/identity";
|
|
13
|
+
|
|
14
|
+
{{#each samples}}
|
|
15
|
+
/**
|
|
16
|
+
* This sample demonstrates how to {{this.operationDescription}}
|
|
17
|
+
*
|
|
18
|
+
* @summary {{this.operationDescription}}
|
|
19
|
+
* x-ms-original-file: {{this.originalFileLocation}}
|
|
20
|
+
*/
|
|
21
|
+
async function {{this.sampleFunctionName}}() {
|
|
22
|
+
{{#each this.clientParamAssignments}}
|
|
23
|
+
{{this}}
|
|
24
|
+
{{/each}}
|
|
25
|
+
{{#each this.methodParamAssignments}}
|
|
26
|
+
{{this}}
|
|
27
|
+
{{/each}}
|
|
28
|
+
const credential = new DefaultAzureCredential();
|
|
29
|
+
const client = new {{this.clientClassName}}({{this.clientParameterNames}});
|
|
30
|
+
{{#if this.isPaging}}
|
|
31
|
+
const resArray = new Array();
|
|
32
|
+
for await (let item of client{{#unless this.isTopLevel}}.{{this.operationGroupName}}{{/unless}}.{{this.operationName}}({{this.methodParameterNames}})){
|
|
33
|
+
resArray.push(item);
|
|
34
|
+
}
|
|
35
|
+
console.log(resArray);
|
|
36
|
+
{{else}}
|
|
37
|
+
const result = await client
|
|
38
|
+
{{#unless this.isTopLevel}}
|
|
39
|
+
.{{this.operationGroupName}}
|
|
40
|
+
{{/unless}}
|
|
41
|
+
.{{this.operationName}}({{this.methodParameterNames}});
|
|
42
|
+
console.log(result);
|
|
43
|
+
|
|
44
|
+
{{/if}}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
{{this.sampleFunctionName}}().catch(console.error);
|
|
48
|
+
|
|
49
|
+
{{/each}}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { Project } from "ts-morph";
|
|
5
5
|
import { getAutorestOptions } from "../../autorestSession";
|
|
6
6
|
|
|
7
|
-
const highLevelTsConfig = {
|
|
7
|
+
const highLevelTsConfig: Record<string, any> = {
|
|
8
8
|
compilerOptions: {
|
|
9
9
|
module: "es6",
|
|
10
10
|
moduleResolution: "node",
|
|
@@ -34,28 +34,28 @@ const restLevelTsConfig = {
|
|
|
34
34
|
declarationMap: true,
|
|
35
35
|
outDir: "./dist-esm"
|
|
36
36
|
},
|
|
37
|
-
|
|
38
|
-
"node_modules",
|
|
39
|
-
"types",
|
|
40
|
-
"temp",
|
|
41
|
-
"browser",
|
|
42
|
-
"dist",
|
|
43
|
-
"dist-esm",
|
|
44
|
-
"./samples/**/*.ts"
|
|
45
|
-
]
|
|
37
|
+
include: ["src/**/*.ts"]
|
|
46
38
|
};
|
|
47
39
|
|
|
48
40
|
export function generateTsConfig(project: Project) {
|
|
49
|
-
const { generateMetadata, restLevelClient, generateTest } = getAutorestOptions();
|
|
41
|
+
const { generateMetadata, restLevelClient, generateTest, packageDetails, generateSample } = getAutorestOptions();
|
|
50
42
|
|
|
51
43
|
if (!generateMetadata) {
|
|
52
44
|
return;
|
|
53
45
|
}
|
|
54
46
|
|
|
47
|
+
const clientPackageName = packageDetails.name;
|
|
55
48
|
if (generateTest) {
|
|
56
49
|
highLevelTsConfig.include.push("./test/**/*.ts");
|
|
50
|
+
restLevelTsConfig.include.push("./test/**/*.ts");
|
|
57
51
|
}
|
|
58
|
-
|
|
52
|
+
|
|
53
|
+
if (generateSample) {
|
|
54
|
+
highLevelTsConfig.include.push("samples-dev/**/*.ts");
|
|
55
|
+
highLevelTsConfig.compilerOptions["paths"] = {};
|
|
56
|
+
highLevelTsConfig.compilerOptions["paths"][clientPackageName] = ["./src/index"];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
59
|
const tsConfigContents = restLevelClient
|
|
60
60
|
? restLevelTsConfig
|
|
61
61
|
: highLevelTsConfig;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Project } from "ts-morph";
|
|
2
|
+
import { getAutorestOptions } from "../../autorestSession";
|
|
3
|
+
|
|
4
|
+
export function generateEnvBrowserFile(
|
|
5
|
+
project: Project
|
|
6
|
+
) {
|
|
7
|
+
const { generateTest, restLevelClient } = getAutorestOptions();
|
|
8
|
+
if (!generateTest || !restLevelClient) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
project.createSourceFile("test/public/utils/env.browser.ts", "", {
|
|
12
|
+
overwrite: true
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Project } from "ts-morph";
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as hbs from "handlebars";
|
|
5
|
+
import { getAutorestOptions } from "../../autorestSession";
|
|
6
|
+
|
|
7
|
+
export function generateEnvFile(
|
|
8
|
+
project: Project
|
|
9
|
+
) {
|
|
10
|
+
const { generateTest, restLevelClient } = getAutorestOptions();
|
|
11
|
+
if (!generateTest || !restLevelClient) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const metadata = {}
|
|
15
|
+
const file = fs.readFileSync(path.join(__dirname, "rlcEnv.ts.hbs"), {
|
|
16
|
+
encoding: "utf-8"
|
|
17
|
+
});
|
|
18
|
+
const envFileContents = hbs.compile(file, { noEscape: true });
|
|
19
|
+
project.createSourceFile("test/public/utils/env.ts", envFileContents(metadata), {
|
|
20
|
+
overwrite: true
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Project } from "ts-morph";
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as fs from 'fs';
|
|
4
|
+
import * as hbs from "handlebars";
|
|
5
|
+
import { getAutorestOptions } from "../../autorestSession";
|
|
6
|
+
|
|
7
|
+
export function generateRecordedClientFile(
|
|
8
|
+
project: Project
|
|
9
|
+
) {
|
|
10
|
+
const { generateTest, restLevelClient } = getAutorestOptions();
|
|
11
|
+
if (!generateTest || !restLevelClient) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const metadata = {}
|
|
15
|
+
const file = fs.readFileSync(path.join(__dirname, "rlcRecordedClient.ts.hbs"), {
|
|
16
|
+
encoding: "utf-8"
|
|
17
|
+
});
|
|
18
|
+
const recordedClientFileContents = hbs.compile(file, { noEscape: true });
|
|
19
|
+
project.createSourceFile("test/public/utils/recordedClient.ts", recordedClientFileContents(metadata), {
|
|
20
|
+
overwrite: true
|
|
21
|
+
});
|
|
22
|
+
}
|