@autorest/typescript 6.0.0-beta.13 → 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 +13 -0
- package/README.md +41 -5
- 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 +3 -0
- package/dist/src/conflictResolver.d.ts.map +1 -0
- package/dist/src/conflictResolver.js +43 -0
- package/dist/src/conflictResolver.js.map +1 -0
- 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 +85 -12
- package/dist/src/generators/indexGenerator.js.map +1 -1
- package/dist/src/generators/mappersGenerator.d.ts.map +1 -1
- package/dist/src/generators/mappersGenerator.js +81 -7
- package/dist/src/generators/mappersGenerator.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 +23 -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 +100 -25
- package/dist/src/generators/static/packageFileGenerator.js.map +1 -1
- package/dist/src/generators/static/readmeFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/static/readmeFileGenerator.js +5 -1
- package/dist/src/generators/static/readmeFileGenerator.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 -159
- 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 +3 -3
- package/dist/src/restLevelClient/generateObjectTypes.d.ts.map +1 -1
- package/dist/src/restLevelClient/generateObjectTypes.js +28 -20
- 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 +246 -36
- 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 +23 -14
- 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 +29 -7
- 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/getPropertySignature.d.ts +2 -2
- package/dist/src/restLevelClient/getPropertySignature.d.ts.map +1 -1
- package/dist/src/restLevelClient/getPropertySignature.js +2 -2
- package/dist/src/restLevelClient/getPropertySignature.js.map +1 -1
- package/dist/src/restLevelClient/helpers/modelHelpers.d.ts +4 -0
- package/dist/src/restLevelClient/helpers/modelHelpers.d.ts.map +1 -0
- package/dist/src/restLevelClient/helpers/modelHelpers.js +19 -0
- package/dist/src/restLevelClient/helpers/modelHelpers.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 +8 -2
- package/dist/src/restLevelClient/schemaHelpers.d.ts.map +1 -1
- package/dist/src/restLevelClient/schemaHelpers.js +19 -9
- 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 +4 -1
- package/dist/src/transforms/operationTransforms.js.map +1 -1
- package/dist/src/transforms/parameterTransforms.d.ts.map +1 -1
- package/dist/src/transforms/parameterTransforms.js +1 -1
- package/dist/src/transforms/parameterTransforms.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 +20 -29
- 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 +11 -6
- 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 +18 -12
- package/src/autorestSession.ts +16 -15
- package/src/conflictResolver.ts +61 -0
- package/src/generators/clientFileGenerator.ts +262 -33
- package/src/generators/indexGenerator.ts +98 -13
- package/src/generators/mappersGenerator.ts +108 -8
- 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 +23 -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 +113 -28
- package/src/generators/static/readmeFileGenerator.ts +8 -2
- 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 +55 -243
- package/src/restLevelClient/generateClientDefinition.ts +343 -0
- package/src/restLevelClient/generateMethodShortcuts.ts +121 -0
- package/src/restLevelClient/generateObjectTypes.ts +57 -20
- package/src/restLevelClient/generatePagingHelper.ts +3 -2
- package/src/restLevelClient/generateParameterTypes.ts +377 -48
- package/src/restLevelClient/generatePollingHelper.ts +3 -3
- package/src/restLevelClient/generateResponseTypes.ts +30 -16
- package/src/restLevelClient/generateRestLevel.ts +24 -6
- package/src/restLevelClient/generateSchemaTypes.ts +43 -8
- package/src/restLevelClient/generateTopLevelIndexFile.ts +41 -0
- package/src/restLevelClient/getPropertySignature.ts +3 -2
- package/src/restLevelClient/helpers/modelHelpers.ts +15 -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 +25 -7
- package/src/transforms/operationTransforms.ts +6 -1
- package/src/transforms/parameterTransforms.ts +3 -1
- package/src/transforms/samplesTransforms.ts +300 -0
- package/src/transforms/transforms.ts +6 -6
- package/src/typescriptGenerator.ts +22 -46
- package/src/utils/autorestOptions.ts +121 -58
- package/src/utils/nameUtils.ts +18 -9
- 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 -34
|
@@ -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}`,
|
|
@@ -61,7 +62,7 @@ function restLevelPackage(packageDetails: PackageDetails) {
|
|
|
61
62
|
types: `./types/${packageDetails.nameWithoutScope}.d.ts`,
|
|
62
63
|
scripts: {
|
|
63
64
|
test: 'echo "Error: no test specified" && exit 1',
|
|
64
|
-
build: "tsc --build && npm run extract-api",
|
|
65
|
+
build: "npm run clean && tsc --build && npm run extract-api",
|
|
65
66
|
"extract-api": "mkdirp ./review && api-extractor run --local",
|
|
66
67
|
pack: "npm pack 2>&1",
|
|
67
68
|
lint: "echo skipped",
|
|
@@ -74,7 +75,6 @@ function restLevelPackage(packageDetails: PackageDetails) {
|
|
|
74
75
|
"check-format": "echo skipped",
|
|
75
76
|
"execute:samples": "echo skipped",
|
|
76
77
|
format: "echo skipped",
|
|
77
|
-
prebuild: "echo skipped",
|
|
78
78
|
"test:node": "echo skipped",
|
|
79
79
|
"test:browser": "echo skipped",
|
|
80
80
|
"unit-test": "echo skipped",
|
|
@@ -87,14 +87,14 @@ function restLevelPackage(packageDetails: PackageDetails) {
|
|
|
87
87
|
},
|
|
88
88
|
keywords: [],
|
|
89
89
|
author: "",
|
|
90
|
-
license: "
|
|
90
|
+
license: "MIT",
|
|
91
91
|
engines: {
|
|
92
92
|
node: ">=12.0.0"
|
|
93
93
|
},
|
|
94
94
|
dependencies: {
|
|
95
|
-
"@azure-rest/core-client": "1.0.0-beta.
|
|
95
|
+
"@azure-rest/core-client": "1.0.0-beta.8",
|
|
96
96
|
"@azure/core-auth": "^1.3.0",
|
|
97
|
-
"@azure/core-rest-pipeline": "^1.0
|
|
97
|
+
"@azure/core-rest-pipeline": "^1.3.0",
|
|
98
98
|
...(hasPaging && {
|
|
99
99
|
"@azure/core-paging": "^1.2.0"
|
|
100
100
|
}),
|
|
@@ -104,17 +104,72 @@ function restLevelPackage(packageDetails: PackageDetails) {
|
|
|
104
104
|
},
|
|
105
105
|
devDependencies: {
|
|
106
106
|
autorest: "latest",
|
|
107
|
-
"@microsoft/api-extractor": "^7.
|
|
107
|
+
"@microsoft/api-extractor": "^7.18.11",
|
|
108
108
|
"@types/node": "^14.14.22",
|
|
109
109
|
dotenv: "^8.2.0",
|
|
110
|
-
prettier: "^2.
|
|
110
|
+
prettier: "^2.5.1",
|
|
111
111
|
"ts-node": "^9.1.1",
|
|
112
112
|
typescript: "~4.2.4",
|
|
113
|
-
mkdirp: "^1.0.4"
|
|
113
|
+
mkdirp: "^1.0.4",
|
|
114
|
+
rimraf: "^3.0.0"
|
|
114
115
|
},
|
|
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,
|
|
@@ -154,18 +217,19 @@ function regularAutorestPackage(
|
|
|
154
217
|
dependencies: {
|
|
155
218
|
...(hasLro && { "@azure/core-lro": "^2.2.0" }),
|
|
156
219
|
...(hasLro && { "@azure/abort-controller": "^1.0.0" }),
|
|
157
|
-
...(hasAsyncIterators && { "@azure/core-paging": "^1.
|
|
158
|
-
...(!useCoreV2 && { "@azure/core-http": "^
|
|
220
|
+
...(hasAsyncIterators && { "@azure/core-paging": "^1.2.0" }),
|
|
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
|
}),
|
|
164
229
|
...(tracingInfo && {
|
|
165
|
-
"@azure/core-tracing": "1.0.0-preview.
|
|
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"],
|
|
@@ -174,16 +238,17 @@ function regularAutorestPackage(
|
|
|
174
238
|
module: `./dist-esm/index.js`,
|
|
175
239
|
types: `./types/${packageDetails.nameWithoutScope}.d.ts`,
|
|
176
240
|
devDependencies: {
|
|
177
|
-
"@microsoft/api-extractor": "7.
|
|
178
|
-
"@rollup/plugin-commonjs": "
|
|
179
|
-
"@rollup/plugin-json": "^4.
|
|
180
|
-
"@rollup/plugin-multi-entry": "^
|
|
181
|
-
"@rollup/plugin-node-resolve": "^
|
|
241
|
+
"@microsoft/api-extractor": "^7.18.11",
|
|
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}`,
|
|
@@ -214,14 +279,15 @@ function regularAutorestPackage(
|
|
|
214
279
|
],
|
|
215
280
|
scripts: {
|
|
216
281
|
build:
|
|
217
|
-
"tsc && rollup -c 2>&1 && npm run minify && mkdirp ./review && npm run extract-api",
|
|
282
|
+
"npm run clean && tsc && rollup -c 2>&1 && npm run minify && mkdirp ./review && npm run extract-api",
|
|
218
283
|
minify: `uglifyjs -c -m --comments --source-map "content='./dist/index.js.map'" -o ./dist/index.min.js ./dist/index.js`,
|
|
219
284
|
prepack: "npm run build",
|
|
220
285
|
pack: "npm pack 2>&1",
|
|
221
286
|
"extract-api": "api-extractor run --local",
|
|
222
287
|
lint: "echo skipped",
|
|
223
288
|
audit: "echo skipped",
|
|
224
|
-
clean:
|
|
289
|
+
clean:
|
|
290
|
+
"rimraf dist dist-browser dist-esm test-dist temp types *.tgz *.log",
|
|
225
291
|
"build:node": "echo skipped",
|
|
226
292
|
"build:browser": "echo skipped",
|
|
227
293
|
"build:test": "echo skipped",
|
|
@@ -230,7 +296,6 @@ function regularAutorestPackage(
|
|
|
230
296
|
"execute:samples": "echo skipped",
|
|
231
297
|
format: "echo skipped",
|
|
232
298
|
test: "echo skipped",
|
|
233
|
-
prebuild: "echo skipped",
|
|
234
299
|
"test:node": "echo skipped",
|
|
235
300
|
"test:browser": "echo skipped",
|
|
236
301
|
"unit-test": "echo skipped",
|
|
@@ -242,11 +307,19 @@ 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) {
|
|
248
321
|
packageInfo.module = `./dist-esm/src/index.js`;
|
|
249
|
-
packageInfo.devDependencies["@azure/identity"] = "2.0.
|
|
322
|
+
packageInfo.devDependencies["@azure/identity"] = "^2.0.1";
|
|
250
323
|
packageInfo.devDependencies["@azure-tools/test-recorder"] = "^1.0.0";
|
|
251
324
|
packageInfo.devDependencies["mocha"] = "^7.1.1";
|
|
252
325
|
packageInfo.devDependencies["cross-env"] = "^7.0.2";
|
|
@@ -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
|
}
|
|
@@ -50,7 +50,7 @@ interface Metadata {
|
|
|
50
50
|
/** Indicates if the package is a test/releasable package. */
|
|
51
51
|
isReleasablePackage?: boolean;
|
|
52
52
|
/** indicate if the package is management plane SDK */
|
|
53
|
-
azureArm?: boolean
|
|
53
|
+
azureArm?: boolean;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
/**
|
|
@@ -100,6 +100,12 @@ function createMetadata(
|
|
|
100
100
|
: simpleServiceName;
|
|
101
101
|
const identityPackageURL =
|
|
102
102
|
repoURL && `${repoURL}/tree/main/sdk/identity/identity`;
|
|
103
|
+
|
|
104
|
+
var apiRefUrlQueryParameter: string = "";
|
|
105
|
+
if (packageDetails.version.includes("beta")) {
|
|
106
|
+
apiRefUrlQueryParameter = "?view=azure-node-preview";
|
|
107
|
+
}
|
|
108
|
+
|
|
103
109
|
return {
|
|
104
110
|
serviceName: serviceName,
|
|
105
111
|
clientPackageName: clientPackageName,
|
|
@@ -119,7 +125,7 @@ function createMetadata(
|
|
|
119
125
|
clientDescriptiveName: `${serviceName} client`,
|
|
120
126
|
description: clientDetails.info?.description,
|
|
121
127
|
apiRefURL: azureHuh
|
|
122
|
-
? `https://docs.microsoft.com/javascript/api/${clientPackageName}`
|
|
128
|
+
? `https://docs.microsoft.com/javascript/api/${clientPackageName}${apiRefUrlQueryParameter}`
|
|
123
129
|
: undefined,
|
|
124
130
|
packageNPMURL: `https://www.npmjs.com/package/${clientPackageName}`,
|
|
125
131
|
contributingGuideURL: repoURL && `${repoURL}/blob/main/CONTRIBUTING.md`,
|
|
@@ -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;
|