microsoft/typespec
Publicmirrored from https://github.com/microsoft/typespecAvailable
eng/scripts/gen-sdk.js
64lines · modecode
| 1 | import { run, scanSwaggers, autorest } from "./helpers.js"; |
| 2 | |
| 3 | function 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 | |
| 43 | async 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 | |
| 64 | main(); |