Skip to content
Prev Previous commit
Next Next commit
update command
  • Loading branch information
cperaltah committed Jan 9, 2025
commit c90655a3b44c9a7d030bea39350e359cb306ee98
22 changes: 16 additions & 6 deletions tools/tsp-client/src/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,7 @@ export async function generateConfigFilesCommand(argv: any) {
const outputDir = argv["output-dir"];
const repoRoot = await getRepoRoot(outputDir);
const packageJsonPath = normalizePath(resolve(argv["package-json"]));
const overridePath = argv["overrides"] ?? undefined;

if (packageJsonPath === undefined || !(await doesFileExist(packageJsonPath))) {
throw new Error(`package.json not found in: ${packageJsonPath ?? "[Not Specified]"}`);
Expand All @@ -421,26 +422,35 @@ export async function generateConfigFilesCommand(argv: any) {
dependencies: {},
};

let overrideJson: Record<string, any> = {};
if (overridePath) {
overrideJson = JSON.parse((await readFile(overridePath)).toString()) ?? {};
}

// Add emitter as dependency
emitterPackageJson["dependencies"][packageJson["name"]] = packageJson["version"];
emitterPackageJson["dependencies"][packageJson["name"]] =
overrideJson[packageJson["name"]] ?? packageJson["version"];

delete overrideJson[packageJson["name"]];
const devDependencies: Record<string, any> = {};

const possiblyPinnedPackages =
packageJson["azure-sdk/emitter-package-json-pinning"] ?? packageJson["peerDependencies"];

for (const pinnedPackage in possiblyPinnedPackages) {
const pinnedVersion = packageJson["devDependencies"][pinnedPackage];
if (pinnedVersion) {
if (pinnedVersion && !overrideJson[pinnedPackage]) {
Logger.info(`Pinning ${pinnedPackage} to ${pinnedVersion}`);
devDependencies[pinnedPackage] = pinnedVersion;
} else {
devDependencies[pinnedPackage] = possiblyPinnedPackages[pinnedPackage];
}
}

emitterPackageJson["devDependencies"] = devDependencies;

if (Object.keys(devDependencies).length > 0) {
emitterPackageJson["devDependencies"] = devDependencies;
}
if (Object.keys(overrideJson).length > 0) {
emitterPackageJson["overrides"] = overrideJson;
}
await writeFile(
joinPaths(repoRoot, "eng", "emitter-package.json"),
JSON.stringify(emitterPackageJson, null, 2),
Expand Down
2 changes: 1 addition & 1 deletion tools/tsp-client/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ const parser = yargs(hideBin(process.argv))
description: "Path to the emitter's package.json file",
demandOption: true,
})
.option("override-config", {
.option("overrides", {
type: "string",
description: "Path to an override config file for pinning specific dependencies",
});
Expand Down
Loading