microsoft/typespec

Public

mirrored from https://github.com/microsoft/typespecAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
copilot/add-vanity-link-sdk-folder

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

packages/compiler/scripts/generate-manifest.js

41lines · modecode

1// @ts-check
2import { execSync } from "child_process";
3import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
4import { join } from "path";
5import { fileURLToPath } from "url";
6
7const root = fileURLToPath(new URL("..", import.meta.url).href);
8const distDir = join(root, "dist");
9const manifestTarget = join(distDir, "manifest.js");
10
11function loadPackageJson() {
12 const packageJsonPath = join(root, "package.json");
13 return JSON.parse(readFileSync(packageJsonPath, "utf-8"));
14}
15
16function getCommit() {
17 return execSync("git rev-parse HEAD").toString().trim();
18}
19
20function getPrNumber() {
21 // Set by Azure DevOps.
22 return process.env["SYSTEM_PULLREQUEST_PULLREQUESTNUMBER"];
23}
24
25function main() {
26 const pkg = loadPackageJson();
27
28 const manifest = {
29 version: pkg.version,
30 commit: getCommit(),
31 pr: getPrNumber(),
32 };
33
34 if (!existsSync(distDir)) {
35 mkdirSync(distDir, { recursive: true });
36 }
37 const manifestJs = `export default ${JSON.stringify(manifest, null, 2)};`;
38 writeFileSync(manifestTarget, manifestJs);
39}
40
41main();
42