feat: clash field viewer wip

This commit is contained in:
GyDi
2022-08-08 01:51:30 +08:00
parent 35de2334fb
commit 066b08040a
5 changed files with 212 additions and 12 deletions

View File

@@ -12,6 +12,7 @@ export const HANDLE_FIELDS = [
"mode",
"log-level",
"ipv6",
"secret",
"external-controller",
];
@@ -131,6 +132,12 @@ class Enhance {
private listenMap: Map<string, EListener>;
private resultMap: Map<string, EStatus>;
// record current config fields
private fieldsState = {
config: [] as string[],
use: [] as string[],
};
constructor() {
this.listenMap = new Map();
this.resultMap = new Map();
@@ -148,6 +155,11 @@ class Enhance {
return this.resultMap.get(uid);
}
// get the running field state
getFieldsState() {
return this.fieldsState;
}
async enhanceHandler(event: Event<unknown>) {
const payload = event.payload as CmdType.EnhancedPayload;
@@ -220,6 +232,10 @@ class Enhance {
pdata = ignoreCase(pdata);
// save the fields state
this.fieldsState.config = Object.keys(pdata);
this.fieldsState.use = [...useList];
// filter the data
const filterData: typeof pdata = {};
Object.keys(pdata).forEach((key: any) => {