From 2d98a1c7649ca088091bfdda1547e866af99cc71 Mon Sep 17 00:00:00 2001 From: yizhi <946185759@qq.com> Date: Fri, 21 Mar 2025 12:40:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A2=84=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E8=87=AA=E5=8A=A8=E4=B8=8B=E8=BD=BD=E5=B7=A5?= =?UTF-8?q?=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/backend/download.ts | 46 +++++++++++++++++------------------------ 2 files changed, 20 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 34072bd..2679a6a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@yizhi/ai", - "version": "1.0.7", + "version": "1.0.8", "releaseVersion": "1.0.6", "main": "dist/index.js", "types": "typing/index.d.ts", diff --git a/src/backend/download.ts b/src/backend/download.ts index 43a3b69..2086c97 100644 --- a/src/backend/download.ts +++ b/src/backend/download.ts @@ -5,41 +5,33 @@ import { getConfig } from "./config"; const URLS = { - GITHUB: "https://github.com/kangkang520/node-addons/releases/download/ai{{version}}/{{backend}}_{{platform}}_{{arch}}.node", - XXXXX: `http://git.urnas.cn:5200/yizhi-js-lib/ai-box/releases/download/{{version}}/{{backend}}_{{platform}}_{{arch}}.node`, + GITHUB: "https://github.com/kangkang520/node-addons/releases/download/ai{{version}}/{{filename}}", + XXXXX: "http://git.urnas.cn:5200/yizhi-js-lib/ai-box/releases/download/{{version}}/{{filename}}", } function releaseVersion() { return require("../../package.json").releaseVersion } function getURL(backend: "ort" | "mnn", template: string) { - let platform = ""; - let arch = ""; - switch (os.platform()) { - case "win32": - platform = "windows"; - break; - case "linux": - platform = "linux"; - break; - case "darwin": - platform = "macos"; - break - default: - throw new Error(`Unsupported platform: ${os.platform()}, Please compile the addon yourself.`); - } - switch (os.arch()) { - case "x64": - arch = "x64"; - break; - case "arm64": - arch = "arm64"; - break; - default: - throw new Error(`Unsupported architecture: ${os.arch()}, Please compile the addon yourself.`); + const URL_DICT: Record> = { + "win32": { + "x64": `${backend}_windows_x64.node` + }, + "linux": { + "x64": `${backend}_linux_x64.node`, + "arm64": `${backend}_linux_arm64.node`, + }, + "darwin": { + "arm64": `${backend}_macos_arm64.node`, + } } - return template.replaceAll("{{backend}}", backend).replaceAll("{{version}}", releaseVersion()).replaceAll("{{platform}}", platform).replaceAll("{{arch}}", arch); + const archConfig = URL_DICT[os.platform()]; + if (!archConfig) throw new Error(`Unsupported platform: ${os.platform()}`); + const downloadName = archConfig[os.arch()]; + if (!downloadName) throw new Error(`Unsupported arch: ${os.arch()}`); + + return template.replaceAll("{{version}}", releaseVersion()).replaceAll("{{filename}}", downloadName); } async function getStream(backend: "mnn" | "ort") {