diff --git a/packages/autorest.typescript/src/generators/static/tsConfigFileGenerator.ts b/packages/autorest.typescript/src/generators/static/tsConfigFileGenerator.ts index 041a67b5db..a32c5aec9d 100644 --- a/packages/autorest.typescript/src/generators/static/tsConfigFileGenerator.ts +++ b/packages/autorest.typescript/src/generators/static/tsConfigFileGenerator.ts @@ -46,6 +46,10 @@ const highLevelTsTestConfig: Record = { extends: ["./tsconfig.src.json", "../../../tsconfig.test.base.json"] } +const highLevelTsSnippetsConfig: Record = { + extends: ["../../../tsconfig.snippets.base.json"] +} + export function generateTsConfig(project: Project) { const { generateMetadata, @@ -71,6 +75,9 @@ export function generateTsConfig(project: Project) { highLevelTsConfigInAzureSdkForJs.references.push({ path: "./tsconfig.test.json" }); + highLevelTsConfigInAzureSdkForJs.references.push({ + path: "./tsconfig.snippets.json" + }); } } else { @@ -114,3 +121,10 @@ export function generateTsTestConfig(project: Project) { overwrite: true }); } + +export function generateTsSnippetsConfig(project: Project) { + project.createSourceFile("tsconfig.snippets.json", JSON.stringify(highLevelTsSnippetsConfig, null, 2), { + overwrite: true + }); +} + diff --git a/packages/autorest.typescript/src/typescriptGenerator.ts b/packages/autorest.typescript/src/typescriptGenerator.ts index c99139c01e..3b4a4dde54 100644 --- a/packages/autorest.typescript/src/typescriptGenerator.ts +++ b/packages/autorest.typescript/src/typescriptGenerator.ts @@ -18,7 +18,7 @@ import { generateApiExtractorConfig } from "./generators/static/apiExtractorConf import { generateLicenseFile } from "./generators/static/licenseFileGenerator"; import { generateReadmeFile } from "./generators/static/readmeFileGenerator"; import { generateSampleTestFile } from "./generators/test/sampleTestGenerator"; -import { generateTsConfig, generateTsSampleConfig, generateTsSrcConfig, generateTsTestConfig } from "./generators/static/tsConfigFileGenerator"; +import { generateTsConfig, generateTsSampleConfig, generateTsSrcConfig, generateTsTestConfig, generateTsSnippetsConfig } from "./generators/static/tsConfigFileGenerator"; import { generateRollupConfig } from "./generators/static/rollupConfigFileGenerator"; import { generateOperations } from "./generators/operationGenerator"; import { generateOperationsInterfaces } from "./generators/operationInterfaceGenerator"; @@ -100,6 +100,7 @@ export async function generateTypeScriptLibrary( generateTsSampleConfig(project); } if (generateTest) { + generateTsSnippetsConfig(project); generateTsTestConfig(project); generateTsBrowserConfig(project); } diff --git a/packages/rlc-common/src/metadata/buildTsConfig.ts b/packages/rlc-common/src/metadata/buildTsConfig.ts index 2e5135bf7b..c9badef52d 100644 --- a/packages/rlc-common/src/metadata/buildTsConfig.ts +++ b/packages/rlc-common/src/metadata/buildTsConfig.ts @@ -97,6 +97,9 @@ export function buildTsConfig(model: RLCModel) { restLevelTsConfig.references.push({ path: "./tsconfig.test.json" }); + restLevelTsConfig.references.push({ + path: "./tsconfig.snippets.json" + }); } } @@ -135,3 +138,16 @@ export function buildTsTestConfig() { content: tsTestConfigInAzureSdkForJs }; } + +export function buildTsSnippetsConfig() { + return { + path: "tsconfig.snippets.json", + content: JSON.stringify( + { + extends: ["../../../tsconfig.snippets.base.json"] + }, + null, + 2 + ) + }; +} diff --git a/packages/typespec-ts/src/index.ts b/packages/typespec-ts/src/index.ts index 91e47d20c4..c465bca420 100644 --- a/packages/typespec-ts/src/index.ts +++ b/packages/typespec-ts/src/index.ts @@ -42,6 +42,7 @@ import { buildSerializeHelper, buildTopLevelIndex, buildTsConfig, + buildTsSnippetsConfig, buildTsTestBrowserConfig, buildVitestConfig, getClientName, @@ -482,6 +483,7 @@ export async function $onEmit(context: EmitContext) { buildSnippets(model, subClient.name, option.azureSdkForJs) ); } + commonBuilders.push(buildTsSnippetsConfig); } // build metadata relevant files