From f573a248555a498ade70b62dad4ffb42375c4efd Mon Sep 17 00:00:00 2001 From: Maor Leger Date: Fri, 15 May 2026 01:32:14 +0000 Subject: [PATCH] fix: generate config/ tsconfig files in the update path alongside warp.config.yml The update path (existing package with package.json) was generating warp.config.yml with ./config/tsconfig.src.*.json references but not generating the config/ directory or tsconfig.json with the matching references. This caused warp build failures for all TypeSpec-based SDK validation runs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../test/integration/warpConfig.spec.ts | 30 +++++++++++++++++++ packages/typespec-ts/src/index.ts | 7 ++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/packages/rlc-common/test/integration/warpConfig.spec.ts b/packages/rlc-common/test/integration/warpConfig.spec.ts index 5384b9e5a2..1122d55fd0 100644 --- a/packages/rlc-common/test/integration/warpConfig.spec.ts +++ b/packages/rlc-common/test/integration/warpConfig.spec.ts @@ -4,6 +4,12 @@ import { describe, it, expect } from "vitest"; import { buildWarpConfig } from "../../src/metadata/buildWarpConfig.js"; +import { + buildTsSrcEsmConfig, + buildTsSrcBrowserConfig, + buildTsSrcReactNativeConfig, + buildTsSrcCjsConfig +} from "../../src/metadata/buildTsConfig.js"; import { createMockModel } from "./mockHelper.js"; describe("warp.config.yml generation", () => { @@ -127,4 +133,28 @@ describe("warp.config.yml generation", () => { expect(result!.content).toContain("name: commonjs"); }); }); + + describe("tsconfig path consistency", () => { + it("warp config references every config/ tsconfig that the builders produce", () => { + const model = createMockModel({ + moduleKind: "esm", + isMonorepo: true, + flavor: "azure" + }); + + const warpContent = buildWarpConfig(model)!.content; + + const configBuilders = [ + buildTsSrcEsmConfig, + buildTsSrcBrowserConfig, + buildTsSrcReactNativeConfig, + buildTsSrcCjsConfig + ]; + + for (const builder of configBuilders) { + const tsconfigPath = `./${builder().path}`; + expect(warpContent).toContain(tsconfigPath); + } + }); + }); }); diff --git a/packages/typespec-ts/src/index.ts b/packages/typespec-ts/src/index.ts index 35ed204f33..7ebbd9ba4c 100644 --- a/packages/typespec-ts/src/index.ts +++ b/packages/typespec-ts/src/index.ts @@ -640,11 +640,16 @@ export async function $onEmit(context: EmitContext) { ); } - // Update warp.config.yml for Azure monorepo packages + // Update warp.config.yml and config/ tsconfig files for Azure monorepo packages if (option.azureSdkForJs) { updateBuilders.push((model: RLCModel) => buildWarpConfig(model, modularPackageInfo) ); + updateBuilders.push(buildTsConfig); + updateBuilders.push(buildTsSrcEsmConfig); + updateBuilders.push(buildTsSrcBrowserConfig); + updateBuilders.push(buildTsSrcReactNativeConfig); + updateBuilders.push(buildTsSrcCjsConfig); } // If the client name changed, regenerate the README and snippets completely;