合并规则页(task/rules-page)
# Conflicts: # web/api.ts
This commit is contained in:
+31
@@ -121,6 +121,20 @@ export interface ListenerFields {
|
||||
types: Record<string, { note: string; fields: FieldSpec[] }>
|
||||
}
|
||||
|
||||
export interface RuleProviderInfo {
|
||||
/** domain / ipcidr / classical */
|
||||
behavior: string
|
||||
/** yaml / text / mrs。inline 类型的没有这个字段 */
|
||||
format?: string
|
||||
name: string
|
||||
/** 当前装了多少条规则 */
|
||||
ruleCount: number
|
||||
/** HTTP / File / Inline */
|
||||
vehicleType: string
|
||||
/** RFC3339。还没拉取过时是零值(0001-01-01) */
|
||||
updatedAt: string
|
||||
}
|
||||
|
||||
export const api = {
|
||||
readConfig: () => request<ConfigSnapshot>('GET', '/api/config'),
|
||||
|
||||
@@ -216,6 +230,23 @@ export const api = {
|
||||
refreshProvider: (name: string) =>
|
||||
request<unknown>('PUT', `/api/kernel/providers/proxies/${encodeURIComponent(name)}`),
|
||||
|
||||
/**
|
||||
* 每个规则组的运行时状态:装了多少条规则、上次什么时候更新。
|
||||
* 配置文件里只有声明,这两个数字只有运行中的内核知道。
|
||||
*/
|
||||
ruleProviders: () =>
|
||||
request<{ providers: Record<string, RuleProviderInfo> }>('GET', '/api/kernel/providers/rules'),
|
||||
|
||||
/**
|
||||
* 让内核立刻重新拉取某个规则组。
|
||||
* 这是运行时动作,不写配置文件,所以不走落盘那条保护链路。
|
||||
*/
|
||||
updateRuleProvider: (name: string) =>
|
||||
request<Record<string, never>>(
|
||||
'PUT',
|
||||
`/api/kernel/providers/rules/${encodeURIComponent(name)}`,
|
||||
),
|
||||
|
||||
/**
|
||||
* 订阅及其线路。配置文件里只有订阅地址,有哪些线路只有运行中的内核知道。
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user