Skip to content

Commit 12a5bc1

Browse files
kazrael2119MaryGao
andauthored
Support tsconfig changes, vitest config changes and api-extractor changes from migration tool for codegen (#3081)
* update tsconfig and vitest templates for modular rlc and modular * Update index.ts * smoke * support swagger rlc * rlc integration * update tsconfig for hlc * fix bug * hlc integration and smoke * update * fix ci * Update vitestConfig.spec.ts * Update transfromRLCOptions.ts * update * format * resolve comments * format * smoke * linter * fix ci * fix ut * Update operations.ts * Remove duplicated codes * Remove useless conditions * Refactor code with less duplications * Update buildTsConfig.ts --------- Co-authored-by: Mary Gao <yanmeigao1210@gmail.com>
1 parent b3da08a commit 12a5bc1

326 files changed

Lines changed: 1035 additions & 4534 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/autorest.typescript/src/generators/static/tsConfigFileGenerator.ts

Lines changed: 71 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,92 @@ const highLevelTsConfig: Record<string, any> = {
2424
exclude: ["node_modules"]
2525
};
2626

27+
const highLevelTsConfigInAzureSdkForJs: Record<string, any> = {
28+
references: [
29+
{
30+
path: "./tsconfig.src.json"
31+
}
32+
]
33+
}
34+
35+
const highLevelTsSrcConfig: Record<string, any> = {
36+
extends: "../../../tsconfig.lib.json"
37+
}
38+
39+
const highLevelTsSampleConfig: Record<string, any> = {
40+
extends: "../../../tsconfig.samples.base.json",
41+
compilerOptions: {}
42+
}
43+
44+
const highLevelTsTestConfig: Record<string, any> = {
45+
extends: ["./tsconfig.src.json", "../../../tsconfig.test.base.json"]
46+
}
47+
2748
export function generateTsConfig(project: Project) {
2849
const {
2950
generateMetadata,
3051
generateTest,
3152
packageDetails,
32-
generateSample
53+
generateSample,
54+
azureSdkForJs,
3355
} = getAutorestOptions();
3456

3557
if (!generateMetadata) {
3658
return;
3759
}
3860

3961
const clientPackageName = packageDetails.name;
40-
if (generateTest) {
41-
highLevelTsConfig.include.push("test/**/*.ts");
62+
if (azureSdkForJs) {
63+
if (generateSample) {
64+
highLevelTsConfigInAzureSdkForJs.references.push({
65+
path: "./tsconfig.samples.json"
66+
});
67+
}
68+
69+
if (generateTest) {
70+
highLevelTsConfigInAzureSdkForJs.references.push({
71+
path: "./tsconfig.test.json"
72+
});
73+
}
4274
}
75+
else {
76+
if (generateTest) {
77+
highLevelTsConfig.include.push("test/**/*.ts");
78+
}
4379

44-
if (generateSample) {
45-
highLevelTsConfig.include.push("samples-dev/**/*.ts");
46-
highLevelTsConfig.compilerOptions["paths"] = {};
47-
highLevelTsConfig.compilerOptions["paths"][clientPackageName] = [
48-
"./src/index"
49-
];
80+
if (generateSample) {
81+
highLevelTsConfig.include.push("samples-dev/**/*.ts");
82+
highLevelTsConfig.compilerOptions["paths"] = {};
83+
highLevelTsConfig.compilerOptions["paths"][clientPackageName] = [
84+
"./src/index"
85+
];
86+
}
5087
}
51-
project.createSourceFile("tsconfig.json", JSON.stringify(highLevelTsConfig), {
88+
project.createSourceFile("tsconfig.json", JSON.stringify(azureSdkForJs ? highLevelTsConfigInAzureSdkForJs : highLevelTsConfig, null, 2), {
89+
overwrite: true
90+
});
91+
}
92+
93+
export function generateTsSrcConfig(project: Project) {
94+
project.createSourceFile("tsconfig.src.json", JSON.stringify(highLevelTsSrcConfig, null, 2), {
95+
overwrite: true
96+
});
97+
}
98+
export function generateTsSampleConfig(project: Project) {
99+
const {
100+
packageDetails,
101+
} = getAutorestOptions();
102+
const clientPackageName = packageDetails.name;
103+
highLevelTsSampleConfig.compilerOptions["paths"] = {};
104+
highLevelTsSampleConfig.compilerOptions["paths"][clientPackageName] = [
105+
"./dist/esm"
106+
];
107+
project.createSourceFile("tsconfig.samples.json", JSON.stringify(highLevelTsSampleConfig, null, 2), {
108+
overwrite: true
109+
});
110+
}
111+
export function generateTsTestConfig(project: Project) {
112+
project.createSourceFile("tsconfig.test.json", JSON.stringify(highLevelTsTestConfig, null, 2), {
52113
overwrite: true
53114
});
54115
}

packages/autorest.typescript/src/restLevelClient/generateRestLevel.ts

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@ import {
3333
buildLogger,
3434
buildSamples,
3535
updatePackageFile,
36-
buildSnippets
36+
buildSnippets,
37+
buildTsTestBrowserConfig,
38+
buildTsSrcConfig,
39+
buildTsSampleConfig,
40+
buildTsTestConfig
3741
} from "@azure-tools/rlc-common";
3842
import {
3943
generateFileByBuilder,
@@ -52,7 +56,9 @@ export async function generateRestLevelClient() {
5256
srcPath,
5357
generateTest,
5458
generateMetadata,
55-
azureOutputDirectory
59+
azureOutputDirectory,
60+
azureSdkForJs,
61+
generateSample
5662
} = getAutorestOptions();
5763

5864
const project = new Project({
@@ -126,6 +132,20 @@ export async function generateRestLevelClient() {
126132
generateFileByBuilder(project, buildPackageFile, rlcModels);
127133
// buildTsConfig
128134
generateFileByBuilder(project, buildTsConfig, rlcModels);
135+
if (azureSdkForJs) {
136+
// buildTsSrcConfig
137+
generateFileByBuilder(project, buildTsSrcConfig, rlcModels);
138+
if (generateSample) {
139+
// buildTsSampleConfig
140+
generateFileByBuilder(project, buildTsSampleConfig, rlcModels);
141+
}
142+
if (generateTest) {
143+
// buildTsTestBrowserConfig
144+
generateFileByBuilder(project, buildTsTestBrowserConfig, rlcModels);
145+
// buildTstestConfig
146+
generateFileByBuilder(project, buildTsTestConfig, rlcModels);
147+
}
148+
}
129149
} else {
130150
// update package.json if existing
131151
const packageJsonContent = JSON.parse(await host.readFile("package.json"));

packages/autorest.typescript/src/typescriptGenerator.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { generateApiExtractorConfig } from "./generators/static/apiExtractorConf
1818
import { generateLicenseFile } from "./generators/static/licenseFileGenerator";
1919
import { generateReadmeFile } from "./generators/static/readmeFileGenerator";
2020
import { generateSampleTestFile } from "./generators/test/sampleTestGenerator";
21-
import { generateTsConfig } from "./generators/static/tsConfigFileGenerator";
21+
import { generateTsConfig, generateTsSampleConfig, generateTsSrcConfig, generateTsTestConfig } from "./generators/static/tsConfigFileGenerator";
2222
import { generateRollupConfig } from "./generators/static/rollupConfigFileGenerator";
2323
import { generateOperations } from "./generators/operationGenerator";
2424
import { generateOperationsInterfaces } from "./generators/operationInterfaceGenerator";
@@ -87,6 +87,15 @@ export async function generateTypeScriptLibrary(
8787
generateSampleTestFile(project);
8888
}
8989
generateTsConfig(project);
90+
if (azureSdkForJs && generateMetadata) {
91+
generateTsSrcConfig(project);
92+
if (generateSample) {
93+
generateTsSampleConfig(project);
94+
}
95+
if (generateTest) {
96+
generateTsTestConfig(project);
97+
}
98+
}
9099

91100
if (!azureSdkForJs) {
92101
// azure-sdk-for-js repo uses dev-tool run bundle
Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,7 @@
11
{
2-
"compilerOptions": {
3-
"module": "es6",
4-
"moduleResolution": "node",
5-
"strict": true,
6-
"target": "es6",
7-
"sourceMap": true,
8-
"declarationMap": true,
9-
"esModuleInterop": true,
10-
"allowSyntheticDefaultImports": true,
11-
"forceConsistentCasingInFileNames": true,
12-
"lib": ["es6", "dom"],
13-
"declaration": true,
14-
"outDir": "./dist-esm",
15-
"importHelpers": true
16-
},
17-
"include": ["src/**/*.ts"],
18-
"exclude": ["node_modules"]
2+
"references": [
3+
{
4+
"path": "./tsconfig.src.json"
5+
}
6+
]
197
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"extends": "../../../tsconfig.lib.json"
3+
}
Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,7 @@
11
{
2-
"compilerOptions": {
3-
"module": "es6",
4-
"moduleResolution": "node",
5-
"strict": true,
6-
"target": "es6",
7-
"sourceMap": true,
8-
"declarationMap": true,
9-
"esModuleInterop": true,
10-
"allowSyntheticDefaultImports": true,
11-
"forceConsistentCasingInFileNames": true,
12-
"lib": ["es6", "dom"],
13-
"declaration": true,
14-
"outDir": "./dist-esm",
15-
"importHelpers": true
16-
},
17-
"include": ["src/**/*.ts"],
18-
"exclude": ["node_modules"]
2+
"references": [
3+
{
4+
"path": "./tsconfig.src.json"
5+
}
6+
]
197
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"extends": "../../../tsconfig.lib.json"
3+
}
Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,7 @@
11
{
2-
"compilerOptions": {
3-
"module": "es6",
4-
"moduleResolution": "node",
5-
"strict": true,
6-
"target": "es6",
7-
"sourceMap": true,
8-
"declarationMap": true,
9-
"esModuleInterop": true,
10-
"allowSyntheticDefaultImports": true,
11-
"forceConsistentCasingInFileNames": true,
12-
"lib": ["es6", "dom"],
13-
"declaration": true,
14-
"outDir": "./dist-esm",
15-
"importHelpers": true
16-
},
17-
"include": ["src/**/*.ts"],
18-
"exclude": ["node_modules"]
2+
"references": [
3+
{
4+
"path": "./tsconfig.src.json"
5+
}
6+
]
197
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"extends": "../../../tsconfig.lib.json"
3+
}
Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,7 @@
11
{
2-
"compilerOptions": {
3-
"module": "es6",
4-
"moduleResolution": "node",
5-
"strict": true,
6-
"target": "es6",
7-
"sourceMap": true,
8-
"declarationMap": true,
9-
"esModuleInterop": true,
10-
"allowSyntheticDefaultImports": true,
11-
"forceConsistentCasingInFileNames": true,
12-
"lib": ["es6", "dom"],
13-
"declaration": true,
14-
"outDir": "./dist-esm",
15-
"importHelpers": true
16-
},
17-
"include": ["src/**/*.ts"],
18-
"exclude": ["node_modules"]
2+
"references": [
3+
{
4+
"path": "./tsconfig.src.json"
5+
}
6+
]
197
}

0 commit comments

Comments
 (0)