feat: webui config

This commit is contained in:
手瓜一十雪
2024-05-06 21:34:17 +08:00
parent 788ef5d81c
commit c0f2df172a
3 changed files with 61 additions and 1 deletions

10
src/webui/src/api/Auth.ts Normal file
View File

@@ -0,0 +1,10 @@
//实现一个登录 仅需判断密码 没有用户名字段
export class Auth {
public static async checkAuth(token: string) {
if (token == "123456") {
return true;
}
return false;
}
}

View File

@@ -1 +0,0 @@
//待实现

View File

@@ -0,0 +1,51 @@
import { existsSync, readFileSync, writeFileSync } from "node:fs";
import { resolve } from "node:path";
const net = require('net');
async function tryUsePort(port: number) {
function portUsed(port: number) {
return new Promise((resolve, reject) => {
let server = net.createServer().listen(port);
server.on('listening', function () {
server.close();
resolve(port);
});
server.on('error', function (err: any) {
if (err.code == 'EADDRINUSE') {
resolve(err);
}
});
});
}
let res = await portUsed(port);
if (res instanceof Error) {
port++;
return await tryUsePort(port);
}
return port;
}
//读取当前目录下名为 webui.json 的配置文件 如果不存在则创建初始化配置文件
export interface WebUiConfig {
port: number;
}
export async function config(): Promise<WebUiConfig> {
try {
let config: WebUiConfig = {
port: 6099,
};
if (!existsSync(resolve(__dirname, "./webui.json"))) {
writeFileSync(resolve(__dirname, "./webui.json"), JSON.stringify(config, null, 4));
}
config = JSON.parse(readFileSync(resolve(__dirname, "./webui.json"), "utf-8")) as WebUiConfig;
//修正端口占用情况
config.port = await tryUsePort(config.port);
return config;
} catch (e) {
//console.error("读取配置文件失败", e);
}
return {} as WebUiConfig;
}