From 6031d691ea8ac709e49cc70a9b24c5d1a54d7c6a Mon Sep 17 00:00:00 2001 From: zuiidea Date: Tue, 14 Apr 2026 22:32:16 +0800 Subject: [PATCH] feat(create): download templates with giget Made-with: Cursor --- packages/create/src/download.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 packages/create/src/download.ts diff --git a/packages/create/src/download.ts b/packages/create/src/download.ts new file mode 100644 index 0000000..613bf95 --- /dev/null +++ b/packages/create/src/download.ts @@ -0,0 +1,24 @@ +import os from "node:os"; +import path from "node:path"; +import { randomUUID } from "node:crypto"; +import { downloadTemplate } from "giget"; +import { CliError } from "./errors.js"; + +export async function downloadExampleToTemp( + gigetSource: string +): Promise { + const dir = path.join(os.tmpdir(), `create-antd-admin-${randomUUID()}`); + try { + const { dir: outDir } = await downloadTemplate(gigetSource, { + dir, + forceClean: true, + }); + return outDir; + } catch (e) { + const msg = e instanceof Error ? e.message : String(e); + throw new CliError( + `Failed to download template.\nSource: ${gigetSource}\n${msg}`, + "DOWNLOAD_FAILED" + ); + } +}