|
@@ -1,8 +1,7 @@
|
|
-import { app } from "electron";
|
|
|
|
import * as log from "electron-log";
|
|
import * as log from "electron-log";
|
|
|
|
+import { app, net } from "electron/main";
|
|
import { existsSync } from "fs";
|
|
import { existsSync } from "fs";
|
|
import fs from "fs/promises";
|
|
import fs from "fs/promises";
|
|
-import fetch from "node-fetch";
|
|
|
|
import path from "path";
|
|
import path from "path";
|
|
import { readFile } from "promise-fs";
|
|
import { readFile } from "promise-fs";
|
|
import util from "util";
|
|
import util from "util";
|
|
@@ -11,7 +10,7 @@ import { Model } from "../types";
|
|
import Tokenizer from "../utils/clip-bpe-ts/mod";
|
|
import Tokenizer from "../utils/clip-bpe-ts/mod";
|
|
import { isDev } from "../utils/common";
|
|
import { isDev } from "../utils/common";
|
|
import { getPlatform } from "../utils/common/platform";
|
|
import { getPlatform } from "../utils/common/platform";
|
|
-import { writeNodeStream } from "./fs";
|
|
|
|
|
|
+import { writeStream } from "./fs";
|
|
import { logErrorSentry } from "./sentry";
|
|
import { logErrorSentry } from "./sentry";
|
|
const shellescape = require("any-shell-escape");
|
|
const shellescape = require("any-shell-escape");
|
|
const execAsync = util.promisify(require("child_process").exec);
|
|
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 });
|
|
await fs.mkdir(saveDir, { recursive: true });
|
|
}
|
|
}
|
|
log.info("downloading clip model");
|
|
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");
|
|
log.info("clip model downloaded");
|
|
}
|
|
}
|
|
|
|
|