@autorest/typescript 6.0.0-beta.15 → 6.0.0-beta.18
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 +14 -0
- package/README.md +37 -3
- package/dist/src/autorestSession.d.ts +12 -4
- 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 +21 -3
- package/dist/src/generators/modelsGenerator.js.map +1 -1
- package/dist/src/generators/operationGenerator.d.ts.map +1 -1
- package/dist/src/generators/operationGenerator.js +10 -8
- 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/apiExtractorConfig.js +2 -2
- package/dist/src/generators/static/apiExtractorConfig.js.map +1 -1
- package/dist/src/generators/static/esLintConfigGenerator.d.ts +3 -0
- package/dist/src/generators/static/esLintConfigGenerator.d.ts.map +1 -0
- package/dist/src/generators/static/esLintConfigGenerator.js +26 -0
- package/dist/src/generators/static/esLintConfigGenerator.js.map +1 -0
- package/dist/src/generators/static/{README.md.hbs → hlcREADME.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 +171 -46
- package/dist/src/generators/static/packageFileGenerator.js.map +1 -1
- package/dist/src/generators/static/readmeFileGenerator.d.ts +2 -2
- package/dist/src/generators/static/readmeFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/static/readmeFileGenerator.js +31 -17
- package/dist/src/generators/static/readmeFileGenerator.js.map +1 -1
- package/dist/src/generators/static/rlcREADME.md.hbs +71 -0
- package/dist/src/generators/static/rollupConfigFileGenerator.d.ts.map +1 -1
- package/dist/src/generators/static/rollupConfigFileGenerator.js +12 -71
- 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 +40 -18
- 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 +7 -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 +81 -168
- 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 +31 -4
- 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 +37 -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 +10 -2
- package/dist/src/restLevelClient/schemaHelpers.js.map +1 -1
- package/dist/src/transforms/mapperTransforms.js +1 -1
- package/dist/src/transforms/mapperTransforms.js.map +1 -1
- package/dist/src/transforms/objectTransforms.js +1 -1
- package/dist/src/transforms/objectTransforms.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/parameterTransforms.d.ts.map +1 -1
- package/dist/src/transforms/parameterTransforms.js +20 -4
- 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 +5 -4
- 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 +19 -8
- 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 +107 -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 +26 -10
- package/src/autorestSession.ts +20 -16
- package/src/conflictResolver.ts +0 -1
- package/src/generators/clientFileGenerator.ts +264 -33
- package/src/generators/indexGenerator.ts +78 -9
- package/src/generators/modelsGenerator.ts +22 -2
- package/src/generators/operationGenerator.ts +11 -9
- 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/apiExtractorConfig.ts +2 -2
- package/src/generators/static/esLintConfigGenerator.ts +24 -0
- package/src/generators/static/{README.md.hbs → hlcREADME.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 +183 -46
- package/src/generators/static/readmeFileGenerator.ts +57 -34
- package/src/generators/static/rlcREADME.md.hbs +71 -0
- package/src/generators/static/rollupConfigFileGenerator.ts +13 -71
- package/src/generators/static/samples.ts.hbs +49 -0
- package/src/generators/static/tsConfigFileGenerator.ts +47 -20
- 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 +8 -5
- package/src/models/clientDetails.ts +8 -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 +101 -260
- 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 +36 -8
- package/src/restLevelClient/generateSchemaTypes.ts +5 -3
- package/src/restLevelClient/generateTopLevelIndexFile.ts +37 -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 +10 -3
- package/src/transforms/mapperTransforms.ts +1 -1
- package/src/transforms/objectTransforms.ts +1 -1
- package/src/transforms/operationTransforms.ts +1 -0
- package/src/transforms/parameterTransforms.ts +20 -4
- package/src/transforms/samplesTransforms.ts +300 -0
- package/src/transforms/transforms.ts +6 -6
- package/src/typescriptGenerator.ts +20 -11
- package/src/utils/autorestOptions.ts +170 -59
- 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
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as hbs from 'handlebars';
|
|
4
|
+
import { Project } from 'ts-morph';
|
|
5
|
+
|
|
6
|
+
export function generateSampleEnv(project: Project) {
|
|
7
|
+
const file = fs.readFileSync(path.join(__dirname, "sampleEnv.hbs"), {
|
|
8
|
+
encoding: "utf-8"
|
|
9
|
+
});
|
|
10
|
+
const readmeFileContents = hbs.compile(file, { noEscape: true });
|
|
11
|
+
project.createSourceFile("sample.env", readmeFileContents({}), {
|
|
12
|
+
overwrite: true
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
Project,
|
|
6
|
+
SourceFile
|
|
7
|
+
} from "ts-morph";
|
|
8
|
+
import * as fs from 'fs';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import * as hbs from "handlebars";
|
|
11
|
+
import { getAutorestOptions, getSession } from "../../autorestSession";
|
|
12
|
+
import { ClientDetails } from "../../models/clientDetails";
|
|
13
|
+
import { SampleGroup } from "../../models/sampleDetails";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Function that writes the code for all the operations.
|
|
17
|
+
* It will generate one file per operation group and each file contains:
|
|
18
|
+
* - A class definition for the operation group
|
|
19
|
+
* - Methods and overrides for each operation
|
|
20
|
+
* - OperationSpecs for each operation
|
|
21
|
+
* @param clientDetails client details
|
|
22
|
+
* @param project project for code generation
|
|
23
|
+
*/
|
|
24
|
+
export function generateSamples(
|
|
25
|
+
clientDetails: ClientDetails,
|
|
26
|
+
project: Project
|
|
27
|
+
): void {
|
|
28
|
+
// Toplevel operations are inlined in the client
|
|
29
|
+
const sampleGroups = clientDetails.samples;
|
|
30
|
+
const session = getSession();
|
|
31
|
+
if (!sampleGroups) {
|
|
32
|
+
session.error("No samples are found! ", []);
|
|
33
|
+
}
|
|
34
|
+
for (const sampleGroup of sampleGroups as SampleGroup[]) {
|
|
35
|
+
try {
|
|
36
|
+
const file = fs.readFileSync(path.join(__dirname, "../static/samples.ts.hbs"), {
|
|
37
|
+
encoding: "utf-8"
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const sampleGroupFileContents = hbs.compile(file, { noEscape: true });
|
|
41
|
+
project.createSourceFile(`samples-dev/${sampleGroup.sampleFileName}.ts`, sampleGroupFileContents(sampleGroup), {
|
|
42
|
+
overwrite: true
|
|
43
|
+
});
|
|
44
|
+
} catch (error) {
|
|
45
|
+
session.error("An error was encountered while handling sample generation", [sampleGroup.sampleFileName]);
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
@@ -5,7 +5,7 @@ import { Project } from "ts-morph";
|
|
|
5
5
|
import { getAutorestOptions } from "../../autorestSession";
|
|
6
6
|
|
|
7
7
|
export function generateApiExtractorConfig(project: Project) {
|
|
8
|
-
const { generateMetadata, packageDetails, generateTest } = getAutorestOptions();
|
|
8
|
+
const { generateMetadata, packageDetails, generateTest, restLevelClient } = getAutorestOptions();
|
|
9
9
|
|
|
10
10
|
if (!generateMetadata) {
|
|
11
11
|
return;
|
|
@@ -14,7 +14,7 @@ export function generateApiExtractorConfig(project: Project) {
|
|
|
14
14
|
const config = {
|
|
15
15
|
$schema:
|
|
16
16
|
"https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
17
|
-
mainEntryPointFilePath:
|
|
17
|
+
mainEntryPointFilePath: `${restLevelClient ? "./types" : "./dist-esm"}${generateTest ? "/src" : ""}/index.d.ts`,
|
|
18
18
|
docModel: {
|
|
19
19
|
enabled: true
|
|
20
20
|
},
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Project } from "ts-morph";
|
|
2
|
+
import { getAutorestOptions } from "../../autorestSession";
|
|
3
|
+
|
|
4
|
+
const esLintConfig = {
|
|
5
|
+
plugins: ["@azure/azure-sdk"],
|
|
6
|
+
extends: ["plugin:@azure/azure-sdk/azure-sdk-base"],
|
|
7
|
+
rules: {
|
|
8
|
+
"@azure/azure-sdk/ts-modules-only-named": "warn",
|
|
9
|
+
"@azure/azure-sdk/ts-apiextractor-json-types": "warn",
|
|
10
|
+
"@azure/azure-sdk/ts-package-json-types": "warn",
|
|
11
|
+
"@azure/azure-sdk/ts-package-json-engine-is-present": "warn",
|
|
12
|
+
"tsdoc/syntax": "warn"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function generateEsLintConfig(project: Project) {
|
|
17
|
+
const { generateMetadata } = getAutorestOptions();
|
|
18
|
+
if (!generateMetadata) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
project.createSourceFile(".eslintrc.json", JSON.stringify(esLintConfig), {
|
|
22
|
+
overwrite: true
|
|
23
|
+
});
|
|
24
|
+
}
|
|
@@ -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,52 +49,87 @@ 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, azureOutputDirectory, azureSdkForJs } = 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"}`,
|
|
59
|
+
author: "Microsoft Corporation",
|
|
58
60
|
version: `${packageDetails.version}`,
|
|
59
61
|
description: `${packageDetails.description}`,
|
|
60
|
-
|
|
62
|
+
keywords: [
|
|
63
|
+
"node",
|
|
64
|
+
"azure",
|
|
65
|
+
"cloud",
|
|
66
|
+
"typescript",
|
|
67
|
+
"browser",
|
|
68
|
+
"isomorphic"
|
|
69
|
+
],
|
|
70
|
+
license: "MIT",
|
|
71
|
+
main: "dist/index.js",
|
|
72
|
+
module: generateTest? "./dist-esm/src/index.js" : "./dist-esm/index.js",
|
|
61
73
|
types: `./types/${packageDetails.nameWithoutScope}.d.ts`,
|
|
74
|
+
homepage: `https://github.com/Azure/azure-sdk-for-js/tree/main/${azureOutputDirectory}/README.md`,
|
|
75
|
+
repository: "github:Azure/azure-sdk-for-js",
|
|
76
|
+
bugs: {
|
|
77
|
+
url: "https://github.com/Azure/azure-sdk-for-js/issues"
|
|
78
|
+
},
|
|
79
|
+
"files": [
|
|
80
|
+
"dist/",
|
|
81
|
+
generateTest? "dist-esm/src/" : "dist-esm/",
|
|
82
|
+
`types/${packageDetails.nameWithoutScope}.d.ts`,
|
|
83
|
+
"README.md",
|
|
84
|
+
"LICENSE",
|
|
85
|
+
"review/*",
|
|
86
|
+
],
|
|
87
|
+
"//metadata": {
|
|
88
|
+
"constantPaths": [
|
|
89
|
+
{
|
|
90
|
+
"path": "swagger/README.md",
|
|
91
|
+
"prefix": "package-version"
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
engines: {
|
|
96
|
+
node: ">=12.0.0"
|
|
97
|
+
},
|
|
62
98
|
scripts: {
|
|
63
|
-
|
|
64
|
-
build: "
|
|
65
|
-
"
|
|
66
|
-
pack: "npm pack 2>&1",
|
|
67
|
-
lint: "echo skipped",
|
|
68
|
-
audit: "echo skipped",
|
|
69
|
-
clean: "echo skipped",
|
|
70
|
-
"build:node": "echo skipped",
|
|
71
|
-
"build:browser": "echo skipped",
|
|
72
|
-
"build:test": "echo skipped",
|
|
99
|
+
audit: "node ../../../common/scripts/rush-audit.js && rimraf node_modules package-lock.json && npm i --package-lock-only 2>&1 && npm audit",
|
|
100
|
+
"build:browser": "echo skipped.",
|
|
101
|
+
"build:node": "echo skipped.",
|
|
73
102
|
"build:samples": "echo skipped.",
|
|
74
|
-
"
|
|
103
|
+
"build:test": "echo skipped.",
|
|
104
|
+
"build:debug": "echo skipped.",
|
|
105
|
+
"check-format": "prettier --list-different --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"",
|
|
106
|
+
clean: "rimraf dist dist-browser dist-esm test-dist temp types *.tgz *.log",
|
|
75
107
|
"execute:samples": "echo skipped",
|
|
76
|
-
|
|
77
|
-
"
|
|
108
|
+
"extract-api": "rimraf review && mkdirp ./review && api-extractor run --local",
|
|
109
|
+
"format": "prettier --write --config ../../../.prettierrc.json --ignore-path ../../../.prettierignore \"src/**/*.ts\" \"test/**/*.ts\" \"samples-dev/**/*.ts\" \"*.{js,json}\"",
|
|
110
|
+
"generate:client": "autorest --typescript swagger/README.md && npm run format",
|
|
111
|
+
"integration-test:browser": "echo skipped",
|
|
112
|
+
"integration-test:node": "echo skipped",
|
|
113
|
+
"integration-test": "echo skipped",
|
|
114
|
+
"lint:fix": "eslint package.json api-extractor.json src test --ext .ts --fix --fix-type [problem,suggestion]",
|
|
115
|
+
lint: "eslint package.json api-extractor.json src test --ext .ts",
|
|
116
|
+
pack: "npm pack 2>&1",
|
|
78
117
|
"test:browser": "echo skipped",
|
|
118
|
+
"test:node": "echo skipped",
|
|
119
|
+
test: 'echo "Error: no test specified" && exit 1',
|
|
79
120
|
"unit-test": "echo skipped",
|
|
80
121
|
"unit-test:node": "echo skipped",
|
|
81
122
|
"unit-test:browser": "echo skipped",
|
|
82
|
-
|
|
83
|
-
"integration-test:node": "echo skipped",
|
|
84
|
-
"integration-test": "echo skipped",
|
|
85
|
-
docs: "echo skipped"
|
|
86
|
-
},
|
|
87
|
-
keywords: [],
|
|
88
|
-
author: "",
|
|
89
|
-
license: "ISC",
|
|
90
|
-
engines: {
|
|
91
|
-
node: ">=12.0.0"
|
|
123
|
+
docs: "typedoc --excludePrivate --excludeExternals --out ./dist/docs ./src"
|
|
92
124
|
},
|
|
125
|
+
"sideEffects": false,
|
|
126
|
+
"autoPublish": false,
|
|
93
127
|
dependencies: {
|
|
94
|
-
"@azure-rest/core-client": "1.0.0-beta.8",
|
|
95
128
|
"@azure/core-auth": "^1.3.0",
|
|
129
|
+
"@azure-rest/core-client": "1.0.0-beta.8",
|
|
96
130
|
"@azure/core-rest-pipeline": "^1.3.0",
|
|
131
|
+
"@azure/logger": "^1.0.0",
|
|
132
|
+
tslib: "^2.2.0",
|
|
97
133
|
...(hasPaging && {
|
|
98
134
|
"@azure/core-paging": "^1.2.0"
|
|
99
135
|
}),
|
|
@@ -102,19 +138,90 @@ function restLevelPackage(packageDetails: PackageDetails) {
|
|
|
102
138
|
})
|
|
103
139
|
},
|
|
104
140
|
devDependencies: {
|
|
105
|
-
autorest: "latest",
|
|
106
141
|
"@microsoft/api-extractor": "^7.18.11",
|
|
107
|
-
|
|
142
|
+
autorest: "latest",
|
|
143
|
+
"@types/node": "^12.0.0",
|
|
108
144
|
dotenv: "^8.2.0",
|
|
109
|
-
|
|
110
|
-
"ts-node": "^9.1.1",
|
|
111
|
-
typescript: "~4.2.4",
|
|
145
|
+
eslint: "^7.15.0",
|
|
112
146
|
mkdirp: "^1.0.4",
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
147
|
+
prettier: "2.2.1",
|
|
148
|
+
rimraf: "^3.0.0",
|
|
149
|
+
"source-map-support": "^0.5.9",
|
|
150
|
+
"typedoc": "0.15.2",
|
|
151
|
+
"typescript": "~4.2.0"
|
|
152
|
+
}
|
|
117
153
|
};
|
|
154
|
+
|
|
155
|
+
if (azureSdkForJs) {
|
|
156
|
+
packageInfo.scripts["build"] = "npm run clean && tsc -p . && dev-tool run bundle && mkdirp ./review && api-extractor run --local";
|
|
157
|
+
packageInfo.scripts["build:debug"] = "tsc -p . && dev-tool run bundle && api-extractor run --local";
|
|
158
|
+
packageInfo.scripts["build:browser"] = "tsc -p . && dev-tool run bundle";
|
|
159
|
+
packageInfo.scripts["build:node"] = "tsc -p . && dev-tool run bundle";
|
|
160
|
+
packageInfo.devDependencies["@azure/dev-tool"] = "^1.0.0"
|
|
161
|
+
packageInfo.devDependencies["@azure/eslint-plugin-azure-sdk"] = "^3.0.0"
|
|
162
|
+
} else {
|
|
163
|
+
packageInfo.scripts["build"] = "npm run clean && tsc && rollup -c 2>&1 && npm run minify && mkdirp ./review && npm run extract-api";
|
|
164
|
+
packageInfo.scripts["minify"] = `uglifyjs -c -m --comments --source-map "content='./dist/index.js.map'" -o ./dist/index.min.js ./dist/index.js`;
|
|
165
|
+
packageInfo.devDependencies["@rollup/plugin-commonjs"] = "^21.0.1";
|
|
166
|
+
packageInfo.devDependencies["@rollup/plugin-json"] = "^4.1.0";
|
|
167
|
+
packageInfo.devDependencies["@rollup/plugin-multi-entry"] = "^4.1.0";
|
|
168
|
+
packageInfo.devDependencies["@rollup/plugin-node-resolve"] = "^13.1.3";
|
|
169
|
+
packageInfo.devDependencies["rollup"] = "^2.66.1";
|
|
170
|
+
packageInfo.devDependencies["rollup-plugin-sourcemaps"] = "^0.6.3";
|
|
171
|
+
packageInfo.devDependencies["uglify-js"] = "^3.4.9";
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (generateTest) {
|
|
175
|
+
packageInfo.module = `./dist-esm/src/index.js`;
|
|
176
|
+
packageInfo.devDependencies["@azure/identity"] = "^2.0.1";
|
|
177
|
+
packageInfo.devDependencies["@azure-tools/test-recorder"] = "^1.0.0";
|
|
178
|
+
packageInfo.devDependencies["mocha"] = "^7.1.1";
|
|
179
|
+
packageInfo.devDependencies["mocha-junit-reporter"] = "^1.18.0";
|
|
180
|
+
packageInfo.devDependencies["cross-env"] = "^7.0.2";
|
|
181
|
+
packageInfo.devDependencies["chai"] = "^4.2.0";
|
|
182
|
+
packageInfo.devDependencies["cross-env"] = "^7.0.2";
|
|
183
|
+
packageInfo.devDependencies["karma-chrome-launcher"] = "^3.0.0";
|
|
184
|
+
packageInfo.devDependencies["karma-coverage"] = "^2.0.0";
|
|
185
|
+
packageInfo.devDependencies["karma-edge-launcher"] = "^0.4.2";
|
|
186
|
+
packageInfo.devDependencies["karma-env-preprocessor"] = "^0.1.1";
|
|
187
|
+
packageInfo.devDependencies["karma-firefox-launcher"] = "^1.1.0";
|
|
188
|
+
packageInfo.devDependencies["karma-ie-launcher"] = "^1.0.0";
|
|
189
|
+
packageInfo.devDependencies["karma-json-preprocessor"] = "^0.3.3";
|
|
190
|
+
packageInfo.devDependencies["karma-json-to-file-reporter"] = "^1.0.1";
|
|
191
|
+
packageInfo.devDependencies["karma-junit-reporter"] = "^2.0.1";
|
|
192
|
+
packageInfo.devDependencies["karma-mocha-reporter"] = "^2.2.5";
|
|
193
|
+
packageInfo.devDependencies["karma-mocha"] = "^2.0.1";
|
|
194
|
+
packageInfo.devDependencies["karma-source-map-support"] = "~1.4.0";
|
|
195
|
+
packageInfo.devDependencies["karma-sourcemap-loader"] = "^0.3.8";
|
|
196
|
+
packageInfo.devDependencies["karma"] = "^6.2.0";
|
|
197
|
+
packageInfo.devDependencies["nyc"] = "^14.0.0";
|
|
198
|
+
packageInfo.devDependencies["source-map-support"] = "^0.5.9";
|
|
199
|
+
|
|
200
|
+
packageInfo.scripts["test"] = "npm run clean && npm run build:test && npm run unit-test";
|
|
201
|
+
packageInfo.scripts["test:node"] = "npm run clean && npm run build:test && npm run unit-test:node";
|
|
202
|
+
packageInfo.scripts["test:browser"] = "tsc -p . && cross-env ONLY_BROWSER=true rollup -c 2>&1";
|
|
203
|
+
packageInfo.scripts["unit-test"] = "npm run unit-test:node && npm run unit-test:browser";
|
|
204
|
+
packageInfo.scripts["unit-test:node"] = "mocha -r esm --require ts-node/register --reporter ../../../common/tools/mocha-multi-reporter.js --timeout 1200000 --full-trace \"test/{,!(browser)/**/}*.spec.ts\"";
|
|
205
|
+
packageInfo.scripts["unit-test:browser"] = "karma start --single-run";
|
|
206
|
+
packageInfo.scripts["integration-test"] = "npm run integration-test:node && npm run integration-test:browser";
|
|
207
|
+
packageInfo.scripts["integration-test:node"] = "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\"";
|
|
208
|
+
|
|
209
|
+
if (azureSdkForJs) {
|
|
210
|
+
packageInfo.scripts["build:test"] = "tsc -p . && dev-tool run bundle";
|
|
211
|
+
packageInfo.scripts["integration-test:browser"] = "dev-tool run test:browser";
|
|
212
|
+
} else {
|
|
213
|
+
packageInfo.scripts["build:test"] = "tsc -p . && rollup -c 2>&1";
|
|
214
|
+
packageInfo.scripts["integration-test:browser"] = "karma start --single-run";
|
|
215
|
+
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
packageInfo["browser"] = {
|
|
219
|
+
"./dist-esm/test/public/utils/env.js":
|
|
220
|
+
"./dist-esm/test/public/utils/env.browser.js"
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return packageInfo;
|
|
118
225
|
}
|
|
119
226
|
|
|
120
227
|
/**
|
|
@@ -133,12 +240,20 @@ function regularAutorestPackage(
|
|
|
133
240
|
azureArm,
|
|
134
241
|
addCredentials,
|
|
135
242
|
azureOutputDirectory,
|
|
136
|
-
generateTest
|
|
243
|
+
generateTest,
|
|
244
|
+
generateSample,
|
|
245
|
+
coreHttpCompatMode
|
|
137
246
|
} = getAutorestOptions();
|
|
138
247
|
const { model } = getSession();
|
|
139
248
|
const hasLro = hasPollingOperations(model);
|
|
140
249
|
const hasAsyncIterators =
|
|
141
250
|
!disablePagingAsyncIterators && clientDetails.options.hasPaging;
|
|
251
|
+
const clientPackageName = packageDetails.name;
|
|
252
|
+
let apiRefUrlQueryParameter: string = "";
|
|
253
|
+
if (packageDetails.version.includes("beta")) {
|
|
254
|
+
apiRefUrlQueryParameter = "?view=azure-node-preview";
|
|
255
|
+
}
|
|
256
|
+
const description = packageDetails.description;
|
|
142
257
|
|
|
143
258
|
const packageInfo: Record<string, any> = {
|
|
144
259
|
name: packageDetails.name,
|
|
@@ -158,6 +273,8 @@ function regularAutorestPackage(
|
|
|
158
273
|
...(!useCoreV2 && { "@azure/core-http": "^2.0.0" }),
|
|
159
274
|
...(useCoreV2 && { "@azure/core-client": "^1.0.0" }),
|
|
160
275
|
...(useCoreV2 && addCredentials && { "@azure/core-auth": "^1.3.0" }),
|
|
276
|
+
...(useCoreV2 &&
|
|
277
|
+
coreHttpCompatMode && { "@azure/core-http-compat": "^1.0.0" }),
|
|
161
278
|
...(useCoreV2 && {
|
|
162
279
|
"@azure/core-rest-pipeline": "^1.1.0"
|
|
163
280
|
}),
|
|
@@ -165,7 +282,6 @@ function regularAutorestPackage(
|
|
|
165
282
|
"@azure/core-tracing": "1.0.0-preview.13",
|
|
166
283
|
"@opentelemetry/api": "^0.10.2"
|
|
167
284
|
}),
|
|
168
|
-
|
|
169
285
|
tslib: "^2.2.0"
|
|
170
286
|
},
|
|
171
287
|
keywords: ["node", "azure", "typescript", "browser", "isomorphic"],
|
|
@@ -175,15 +291,16 @@ function regularAutorestPackage(
|
|
|
175
291
|
types: `./types/${packageDetails.nameWithoutScope}.d.ts`,
|
|
176
292
|
devDependencies: {
|
|
177
293
|
"@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": "^
|
|
294
|
+
"@rollup/plugin-commonjs": "^21.0.1",
|
|
295
|
+
"@rollup/plugin-json": "^4.1.0",
|
|
296
|
+
"@rollup/plugin-multi-entry": "^4.1.0",
|
|
297
|
+
"@rollup/plugin-node-resolve": "^13.1.3",
|
|
182
298
|
mkdirp: "^1.0.4",
|
|
183
|
-
rollup: "^
|
|
184
|
-
"rollup-plugin-sourcemaps": "^0.
|
|
299
|
+
rollup: "^2.66.1",
|
|
300
|
+
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
185
301
|
typescript: "~4.2.0",
|
|
186
|
-
"uglify-js": "^3.4.9"
|
|
302
|
+
"uglify-js": "^3.4.9",
|
|
303
|
+
rimraf: "^3.0.0"
|
|
187
304
|
},
|
|
188
305
|
// TODO: Calculate the SDK path for the package
|
|
189
306
|
homepage: `https://github.com/Azure/azure-sdk-for-js/tree/main/${azureOutputDirectory}`,
|
|
@@ -242,6 +359,14 @@ function regularAutorestPackage(
|
|
|
242
359
|
docs: "echo skipped"
|
|
243
360
|
},
|
|
244
361
|
sideEffects: false,
|
|
362
|
+
"//metadata": {
|
|
363
|
+
constantPaths: [
|
|
364
|
+
{
|
|
365
|
+
path: `src/${normalizeName(clientDetails.name, NameType.File)}.ts`,
|
|
366
|
+
prefix: "packageDetails"
|
|
367
|
+
}
|
|
368
|
+
]
|
|
369
|
+
},
|
|
245
370
|
autoPublish: true
|
|
246
371
|
};
|
|
247
372
|
if (generateTest) {
|
|
@@ -258,7 +383,19 @@ function regularAutorestPackage(
|
|
|
258
383
|
packageInfo.scripts["integration-test"] =
|
|
259
384
|
"npm run integration-test:node && npm run integration-test:browser";
|
|
260
385
|
packageInfo.scripts["integration-test:node"] =
|
|
261
|
-
"mocha -r esm --require ts-node/register --timeout 1200000 --full-trace test/*.ts";
|
|
386
|
+
"mocha -r esm --require ts-node/register --timeout 1200000 --full-trace test/*.ts --reporter ../../../common/tools/mocha-multi-reporter.js";
|
|
387
|
+
}
|
|
388
|
+
if (
|
|
389
|
+
generateSample &&
|
|
390
|
+
clientDetails.samples &&
|
|
391
|
+
clientDetails.samples.length > 0
|
|
392
|
+
) {
|
|
393
|
+
packageInfo["//sampleConfiguration"] = {
|
|
394
|
+
productName: description,
|
|
395
|
+
productSlugs: ["azure"],
|
|
396
|
+
disableDocsMs: true,
|
|
397
|
+
apiRefLink: `https://docs.microsoft.com/javascript/api/${clientPackageName}${apiRefUrlQueryParameter}`
|
|
398
|
+
};
|
|
262
399
|
}
|
|
263
400
|
return packageInfo;
|
|
264
401
|
}
|