Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions packages/rlc-common/test/integration/warpConfig.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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", () => {
Expand Down Expand Up @@ -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);
}
});
});
});
7 changes: 6 additions & 1 deletion packages/typespec-ts/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Loading