diff --git a/desktop/package.json b/desktop/package.json index 3dafdce33..407e505b9 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -33,7 +33,6 @@ "html-entities": "^2.4.0", "jpeg-js": "^0.4.4", "next-electron-server": "^1", - "node-fetch": "^2.6.7", "node-stream-zip": "^1.15.0", "onnxruntime-node": "^1.16.3", "promise-fs": "^2.1.1" diff --git a/desktop/src/services/clipService.ts b/desktop/src/services/clipService.ts index 4a808d7a4..145f00a4d 100644 --- a/desktop/src/services/clipService.ts +++ b/desktop/src/services/clipService.ts @@ -1,8 +1,7 @@ -import { app } from "electron"; import * as log from "electron-log"; +import { app, net } from "electron/main"; import { existsSync } from "fs"; import fs from "fs/promises"; -import fetch from "node-fetch"; import path from "path"; import { readFile } from "promise-fs"; import util from "util"; @@ -11,7 +10,7 @@ import { Model } from "../types"; import Tokenizer from "../utils/clip-bpe-ts/mod"; import { isDev } from "../utils/common"; import { getPlatform } from "../utils/common/platform"; -import { writeNodeStream } from "./fs"; +import { writeStream } from "./fs"; import { logErrorSentry } from "./sentry"; const shellescape = require("any-shell-escape"); const execAsync = util.promisify(require("child_process").exec); @@ -85,8 +84,9 @@ async function downloadModel(saveLocation: string, url: string) { await fs.mkdir(saveDir, { recursive: true }); } log.info("downloading clip model"); - const resp = await fetch(url); - await writeNodeStream(saveLocation, resp.body); + const res = await net.fetch(url); + if (!res.ok) throw new Error(`Failed to fetch ${url}: HTTP ${res.status}`); + await writeStream(saveLocation, res.body); log.info("clip model downloaded"); } diff --git a/desktop/yarn.lock b/desktop/yarn.lock index f23ac47cc..8d4c9649e 100644 --- a/desktop/yarn.lock +++ b/desktop/yarn.lock @@ -2246,13 +2246,6 @@ node-addon-api@^1.6.3: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== -node-fetch@^2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - node-stream-zip@^1.15.0: version "1.15.0" resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea" @@ -2964,11 +2957,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - tree-kill@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" @@ -3092,19 +3080,6 @@ verror@^1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"