update download app show me

This commit is contained in:
2025-03-30 20:23:45 +08:00
parent be6d7091c3
commit aadd8266b1
8 changed files with 132 additions and 30 deletions

View File

@@ -25,10 +25,14 @@ type InstallAppOpts = {
* 是否是客户端, 下载到 assistant-config的下面
*/
isClient?: boolean;
/**
* 是否是web, 下载到 web-config的下面
*/
appType?: 'app' | 'web';
};
export const installApp = async (app: Package, opts: InstallAppOpts = {}) => {
// const _app = demoData;
const { appDir = '', kevisualUrl = 'https://kevisual.cn' } = opts;
const { appDir = '', kevisualUrl = 'https://kevisual.cn', isClient = false, appType = 'web' } = opts;
const _app = app;
try {
let files = _app.data.files || [];
@@ -38,13 +42,19 @@ export const installApp = async (app: Package, opts: InstallAppOpts = {}) => {
const downFiles = files.map((file: any) => {
const noVersionPath = file.path.replace(`/${version}`, '');
let downloadPath = noVersionPath;
if (appType === 'app') {
downloadPath = noVersionPath.replace(`${user}/${key}/`, '');
}
return {
...file,
downloadPath: path.join(appDir, noVersionPath),
downloadPath: path.join(appDir, downloadPath),
downloadUrl: `${kevisualUrl}/${noVersionPath}`,
};
});
const downloadTasks: DownloadTask[] = downFiles as any;
console.log('downloadTasks', downloadTasks);
// return;
for (const file of downloadTasks) {
const downloadPath = file.downloadPath;
const downloadUrl = file.downloadUrl;
@@ -52,18 +62,19 @@ export const installApp = async (app: Package, opts: InstallAppOpts = {}) => {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
}
console.log('downloadUrl', downloadUrl);
const res = await fetch(downloadUrl);
const blob = await res.blob();
fs.writeFileSync(downloadPath, Buffer.from(await blob.arrayBuffer()));
}
let indexHtml = files.find((file: any) => file.name === 'index.html');
if (!indexHtml) {
files.push({
name: 'index.html',
path: `${user}/${key}/index.html`,
});
fs.writeFileSync(path.join(appDir, `${user}/${key}/index.html`), JSON.stringify(app, null, 2));
}
// if (!indexHtml) {
// files.push({
// name: 'index.html',
// path: `${user}/${key}/index.html`,
// });
// fs.writeFileSync(path.join(appDir, `${user}/${key}/index.html`), JSON.stringify(app, null, 2));
// }
_app.data.files = files;
return {
code: 200,