Skip to content
Prev Previous commit
Next Next commit
get api.md in a better way
  • Loading branch information
albertxavier100 committed May 28, 2024
commit 32aa42538f17664e7938a653dfcc256fc11854ce
18 changes: 11 additions & 7 deletions tools/js-sdk-release-tools/src/common/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,22 @@ export function getSDKType(packageRoot: string): SDKType {
return type;
}

export function getNpmPackageName(packageRoot: string): string {
const packageJsonPath = path.join(packageRoot, 'package.json');
const packageJson = fs.readFileSync(packageJsonPath, { encoding: 'utf-8' });
const packageName = JSON.parse(packageJson).name;
return packageName;
}

export function getApiReviewPath(packageRoot: string): string {
const sdkType = getSDKType(packageRoot);
const reviewDir = path.join(packageRoot, 'review');
switch (sdkType) {
case SDKType.MLC:
const fileNames = fs.readdirSync(reviewDir).sort();
if (fileNames.length === 0) {
logger.logError(`Expects 1 API report, but find nothing.`);
process.exit(1);
}
// TODO: use a more concrete rule to find xxx.api.md
return path.join(packageRoot, 'review', fileNames[fileNames.length - 1]);
const npmPackageName = getNpmPackageName(packageRoot);
const packageName = npmPackageName.substring("@azure/".length);
const apiViewFileName = `${packageName}.api.md`;
return path.join(packageRoot, 'review', apiViewFileName);
case SDKType.HLC:
case SDKType.RLC:
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,14 @@ import {execSync} from "child_process";
import { getversionDate } from "../../utils/version";
import { ApiVersionType } from "../../common/types"
import { getApiVersionType } from '../../xlc/apiVersion/apiVersionTypeExtractor'
import { getApiReviewPath } from '../../common/utils';
import { getApiReviewPath, getNpmPackageName } from '../../common/utils';

export async function generateChangelogAndBumpVersion(packageFolderPath: string) {
const jsSdkRepoPath = String(shell.pwd());
packageFolderPath = path.join(jsSdkRepoPath, packageFolderPath);
const packageJsonPath = path.join(packageFolderPath, 'package.json');
const ApiType = getApiVersionType(packageFolderPath);
const isStableRelease = ApiType != ApiVersionType.Preview;
const packageJson = fs.readFileSync(packageJsonPath, { encoding: 'utf-8' });
const packageName = JSON.parse(packageJson).name;
const packageName = getNpmPackageName(packageFolderPath);
const npm = new NPMScope({ executionFolderPath: packageFolderPath });
const npmViewResult: NPMViewResult = await npm.view({ packageName });
const stableVersion = getVersion(npmViewResult,"latest");
Expand Down