(logger: Logger, sdks: Sdks)
| 8 | import { runToolProcess } from "../utils/processes"; |
| 9 | |
| 10 | export async function getFlutterSnippets(logger: Logger, sdks: Sdks): Promise<FlutterSampleSnippet[]> { |
| 11 | if (!sdks.flutter) |
| 12 | throw new Error("Flutter SDK not available"); |
| 13 | |
| 14 | const binPath = path.join(sdks.flutter, flutterPath); |
| 15 | |
| 16 | const fileName = `flutter-samples-${getRandomInt(0x1000, 0x10000).toString(16)}.txt`; |
| 17 | const tempPath = path.join(os.tmpdir(), fileName); |
| 18 | |
| 19 | try { |
| 20 | const res = await runToolProcess(logger, undefined, binPath, ["create", "--list-samples", tempPath]); |
| 21 | if (res.exitCode !== 0) |
| 22 | throw new Error(`Failed to get Flutter samples from SDK (${res.exitCode})\n\n${res.stderr}\n\n${res.stdout}`); |
| 23 | |
| 24 | const json = fs.readFileSync(tempPath, { encoding: "utf8" }); |
| 25 | |
| 26 | return JSON.parse(json) as FlutterSampleSnippet[]; |
| 27 | } finally { |
| 28 | tryDeleteFile(tempPath); |
| 29 | } |
| 30 | } |
no test coverage detected