microsoft/typespec

Public

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

CodeCommitsIssuesPull requestsActionsInsightsSecurity
f5be43b02a71f3cdbe563af80c287f6b4567c119

Branches

Tags

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

Clone

HTTPS

Download ZIP

eng/scripts/gen-sdk.js

64lines · modecode

1import { run, scanSwaggers, autorest } from "./helpers.js";
2
3function generateSDK(lang, swagger) {
4 try {
5 switch (lang) {
6 case "python":
7 run(autorest, [
8 "--debug",
9 "--verbose",
10 "--version=3.4.5",
11 "--python",
12 "--track2",
13 "--use=@autorest/python@5.8.1",
14 "--python-sdks-folder=sdk/python",
15 "--python-mode=update",
16 "--input-file=" + swagger,
17 ]);
18
19 break;
20 case "javascript":
21 run(autorest, [
22 "--typescript",
23 "--use=@autorest/typescript@6.0.0-beta.10",
24 "--azure-arm",
25 "--generate-metadata",
26 "--output-folder=sdk/javascript",
27 "--modelerfour.lenient-model-deduplication",
28 "--head-as-boolean=true",
29 "--license-header=MICROSOFT_MIT_NO_VERSION",
30 "--input-file=" + swagger,
31 ]);
32 break;
33 default:
34 throw new Error("Not supported SDK language: " + lang);
35 }
36 return true;
37 } catch (error) {
38 console.error(error);
39 return false;
40 }
41}
42
43async function main() {
44 const lang = process.argv[2]; // python/javascript
45 const roots = process.argv[3].split(";");
46 const paths = roots.flatMap((root) => scanSwaggers(root));
47 console.log("Scanned following swaggers:", paths);
48 const errorPaths = [];
49 for (const p of paths) {
50 console.log("Generate SDK for", p);
51 const success = await generateSDK(lang, p);
52 if (!success) {
53 errorPaths.push(p);
54 }
55 console.log("\n\n\n");
56 }
57 if (errorPaths.length > 0) {
58 console.error("SDK generation errors for following swagger files:");
59 console.error(errorPaths);
60 process.exit(1);
61 }
62}
63
64main();