Refactor: replace "node-disk-info" module

This commit is contained in:
Unitwk 2024-08-19 11:42:55 +08:00
parent 4d74b06b5a
commit d9a62e13d0
4 changed files with 19 additions and 31 deletions

View File

@ -25,7 +25,6 @@
"koa-send": "^5.0.1",
"log4js": "^6.4.0",
"module-alias": "^2.2.3",
"node-disk-info": "^1.3.0",
"node-schedule": "^2.0.0",
"node-stream-zip": "^1.15.0",
"os-utils": "0.0.14",
@ -3282,17 +3281,6 @@
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true
},
"node_modules/node-disk-info": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/node-disk-info/-/node-disk-info-1.3.0.tgz",
"integrity": "sha512-NEx858vJZ0AoBtmD/ChBIHLjFTF28xCsDIgmFl4jtGKsvlUx9DU/OrMDjvj3qp/E4hzLN0HvTg7eJx5XFQvbeg==",
"dependencies": {
"iconv-lite": "^0.6.2"
},
"engines": {
"node": ">= 12"
}
},
"node_modules/node-releases": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
@ -7534,14 +7522,6 @@
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true
},
"node-disk-info": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/node-disk-info/-/node-disk-info-1.3.0.tgz",
"integrity": "sha512-NEx858vJZ0AoBtmD/ChBIHLjFTF28xCsDIgmFl4jtGKsvlUx9DU/OrMDjvj3qp/E4hzLN0HvTg7eJx5XFQvbeg==",
"requires": {
"iconv-lite": "^0.6.2"
}
},
"node-releases": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",

View File

@ -33,7 +33,6 @@
"koa-send": "^5.0.1",
"log4js": "^6.4.0",
"module-alias": "^2.2.3",
"node-disk-info": "^1.3.0",
"node-schedule": "^2.0.0",
"node-stream-zip": "^1.15.0",
"os-utils": "0.0.14",

View File

@ -2,15 +2,9 @@ import { $t } from "../i18n";
import * as protocol from "../service/protocol";
import { routerApp } from "../service/router";
import InstanceSubsystem from "../service/system_instance";
import { getFileManager } from "../service/file_router_service";
import { getFileManager, getWindowsDisks } from "../service/file_router_service";
import { globalConfiguration, globalEnv } from "../entity/config";
import os from "os";
import * as nodeDiskInfo from "node-disk-info";
let diskInfos: any[] = [];
if (os.platform() === "win32") {
diskInfos = nodeDiskInfo.getDiskInfoSync();
}
// Some routers operate router authentication middleware
routerApp.use((event, ctx, data, next) => {
@ -61,9 +55,7 @@ routerApp.on("file/status", async (ctx, data) => {
globalFileTask: globalEnv.fileTaskCount ?? 0,
platform: os.platform(),
isGlobalInstance: data.instanceUuid === InstanceSubsystem.GLOBAL_INSTANCE_UUID,
disks: diskInfos.map((v) => {
return String(v._mounted).replace(":", "");
})
disks: getWindowsDisks()
});
} catch (error: any) {
protocol.responseError(ctx, error);

View File

@ -1,6 +1,8 @@
import fs from "fs-extra";
import { $t } from "../i18n";
import InstanceSubsystem from "../service/system_instance";
import FileManager from "./system_file";
import os from "os";
export function getFileManager(instanceUuid: string) {
// Initialize a file manager for the instance, and assign codes, restrictions, etc.
@ -11,3 +13,18 @@ export function getFileManager(instanceUuid: string) {
const cwd = instance.config.cwd;
return new FileManager(cwd, fileCode);
}
let cacheDisks: string[] = [];
export function getWindowsDisks() {
if (os.platform() !== "win32") return [];
if (cacheDisks.length > 0) return cacheDisks;
const res: string[] = [];
// A - Z
for (let i = 65; i <= 90; i++) {
const letter = String.fromCharCode(i);
if (fs.existsSync(`${letter}:\\`)) res.push(letter);
}
cacheDisks = res;
return res;
}